# Tidbits from Pritam's Second 15th Dec COP hearing

Given that Pritam had just given evidence on the 10th, it is surprising to see him called up for a second time. What exactly transpired between 10th and 15th Dec that justified a second summoning?
More importantly, Raeesah’s testimony that WP leaders told her explicitly to keep up the lie differs greatly from the others. You would think that calling up Raeesah to give statement on this is of grave importance. But since Pritam was called up first, the committee must have thought otherwise.
So what exactly were the motivations for a second Pritam hearing.

## Tidbits:

1. Edwin’s first set of questions shines light to the motivations for Pritam’s second hearing.
It was a meandering series of questions from Edwin. He first revisited a series of past questions and events. Then he finally brought up Sylvia’s evidence in her hearing, and clarified that they summoned Pritam again to seek clarifications on this.
Specifically, it was Sylvia’s submission of the meeting notes of the DP that happened on the 29th November:
2. The COP used Sylvia’s evidence as proof that Pritam had given Raeesah the choice to lie.
Specifically, the first line in Sylvia’s evidence gave them a strong case.
Pritam had said it was clear in his view that he had told Raeesah to tell the truth in the meeting before the October parliament sitting. But this evidence contradicted that because, he used the phrase “I told you it was your call”.
The line, by itself, does show Pritam has left it vague and told Raeesah it was “her call”. You could see why the COP could use this as evidence that Pritam was insinuating that it was alright for Raeesah to continue covering up the lie.
The COP could make the case, if Pritam had wanted her to tell the truth, Pritam would have used exact words to that effect, instead of “I told you it was your call”.
3. Pritam’s used the following parts of the same evidence as his defence.
Pritam stated that in his mind, he still thought it was clear that he wanted Raeesah to tell the truth.
He also pointed out the rhetorical statement of “Can’t lie, right?” in the same evidence as proof he did not want Raeesah to lie.
4. Raeesah was crying and crying during the 29th DP hearing.
Pritam used that as the reason why he used phrases such as “your call”. He thought it was the most suitable way to elicit a response from Raeesah.
5. Pritam actually wrote an email to Raeesah’s father in the second half of Oct.
In that exchange with Farid Khan, ownership and responsibility are quite a major part of Pritam’s message. Pritam used that as evidence that it was clear what he expected Raeesah to do.
This was submitted as part of Pritam’s "100 pages of documents" to the committee. I hope the COP takes all evidence into account and not just cherry pick certain phrases like “I told you it was your call”.
6. The remainder of Edwin's questioning orbits around Sylvia’s submission, again, specifically the phrase “your call”.
Edwin asked why not be clear, especially since Raeesah was a rookie MP. Pritam conceded that he could be more direct and clearer. But he also stated that they had to see the context of why those phrases were used.

## Afterword:

1. Raeesah’s statement of “take the truth to the grave” is an elephant in the room.
For me, I don’t think the hearing can proceed (or worse, conclude) if we don’t first clarify with Raeesah how she came up with the phrase.
Consider the hypothetical scenario, that Raeesah is called back and she once for all, admitted no WP leaders told her to “take the truth to the grave.”, that she had lied again in her hearing. It would have saved everybody a lot of time and help the COP arrive at a fair conclusion.
Not asking Raeesah back to clarify this statement, is incongruous with the COP’s proclaimed mission of “fact finding”.
2. So does the COP still suspect that Pritam wanted Raeesah to cover up the lie?
It seemed that this was what the second hearing was seeking to clarify. And of course, it was another opportunity for the COP to re-emphasise Pritam's communication failures.
But there’s only one new evidence which is Sylvia’s “your call” submission. That, to me, seems flimsy compared to:
1. the rhetorical question “can’t lie, right” that followed
2. other evidences presented in line with wanting Raeesah to tell the truth, and,
3. that there were no evidence of direct instruction to cover up the lie.
3. It is COP’s right to call up anyone they want to talk to.
Chairman Tan Chuan-Jin took time at the end to explain the reason for calling Pritam up a second time. I appreciated that he did illuminate some light behind the reasoning.
I only wished he had done the same in Jamus' hearing.
With great powers to call up anyone, comes great responsibility. From the public’s point of view, if the COP keeps calling up people to restate evidence for the record, while skirting around glaring points of contention (such as from Raeesah), public opinion will sway against this COP.
4. Looking at the special report worried me.
The hearing by itself is pretty straightforward, but the special report is infuriating. Firstly, it states that the hearing is largely concluded save for a few outstanding matters which will be assessed and addressed by the Committee henceforth.
I cannot understand how it’s “largely concluded” when we have not heard from Raeesah how she thought she was given instructions to continue lying. The degree of culpability for all parties involve hinges greatly on this.
Reminder that the "crime" here is that "Raeesah lied in parliament". And the COP's job is to investigate the responsibilities of guilty parties that may help craft this lie.
Their job is not to investigate if Pritam could have communicated better with his team. Yes, they could investigate if he was the mastermind of a coverup attempt though careful use of words. But COP cannot cherry pick evidence to build their narrative that incompetency in communication was an attempt at coverup.
So, the heart of the issue, is whether Raeesah lied because WP wanted a coverup. Raeesah has accused the WP leaders of asking her to take the truth "to the grave". We must get to the bottom of Raeesah's statement before the hearing can conclude.
5. Another important point in the special report stated that Pritam, Sylvia and Faisal failed/refused to provide documents requested by the COP.
Specifically, the documents requested include internal correspondence between senior leadership concerning issues raised in the COP (from Faisal's hearing). As such, summons were issued to them.
Exactly why they didn’t submit the documents are unclear. I would like to hear the reason. Perhaps they needed time to redact items discussed in senior WP meetings that are irrelevant to this case?
We won’t know until we hear statements from WP.
6. Edwin and Pritam have shared interests to keep the hearing a non-contentious affair.
After the verbal sparring in the first hearing, I was worried that I would have to nurse another headache while listening to this.
But this hearing was not like the first. It was short and clear, and both parties made their points clearly through the questions and answers.
Edwin has much to gain by keeping this civil. He had more time to deliver clearly pointed question, without the opportunity for Pritam to turn it into a dirty verbal slugfest and avoid answering.
The current version of events recounted by Pritam is already damaging enough to WP. Politically, Edwin has more to gain by keeping quiet and letting Pritam dig his own grave and account for multiple failures in full view of Singaporeans.
Similarly for Pritam, not coming across as evasive/defensive is a better look for him. In this hearing, he could better articulate his defence, justify his actions and show his compassion as a leader for Singaporeans who have yet to form an opinion of the matter.
It takes two hands to clap. I'm glad both parties are able to keep this hearing more civil than the first.

# Tidbits from Sylvia's COP hearing

Sylvia's hearing shed much light into the disciplinary panel hearing against Raeesah Khan.

## Tidbits:

1. The word “rape” came up early in the hearing and was redacted.
There was an exchange requesting Sylvia to use the phrase “sexual assault” instead of “rape”. Sylvia clarified she was just presenting evidence as it is.
It’s a new era of social media where outrage can be easily manufactured online. You could see politicians are keenly aware of this and are careful with the words they used.
Another telling example, is when some members insist on using the term “Female Genital Cutting” instead of “Female Genital Mutilation”.
Raeesah is keenly aware. She thanked Grace Fu for using the phrase "Sexual assault survivor" instead of "sexual assault victim" at the end of her hearing.
But social media is not real life. Things you can say in social media to earn you "likes", can get you into trouble in real life.
Perhaps Raeesah needs to disassociate from online social media and relearn the real life.
2. I like this version of Edwin Tong.
Calm, cool and collected, he was able to put his questions across in a way that was logical and easy to follow.
The truth honestly already looks bad for the WP, just letting WP come clean on record is damaging enough. There’s no need to word play and quibble with the witnesses.
3. Now that time isn’t wasted on word sparring, the hearing is significantly shorter than the two before.
In my opinion, the quantity of information which came out is equivalent to each of the hearings before.
I believe I thank Mr Tong on behalf of many Singaporeans for not letting the proceedings drag on.
4. Raeesah volunteered with Pritam in Eunos for a year.
So I guess in that sense, she did pay her dues before she was selected to be a candidate for Sengkang.
There were online chatter and I did wonder myself too as to whether her parents played a part in securing her nomination as the candidate. Well, at least now we have some evidence to the contrary.
5. Raeesah needed convincing to tell the truth, according to Sylvia.
It seemed like Raeesah had wanted to keep up the lie. She was reluctant to accept that she needed to tell the truth in parliament. The leaders had to urge her to tell the truth.
Which brings us back to the origin of the phrase “take the information to the grave” It seems more and more likely that phrase was born from her imagination.
6. Sylvia's testimony is largely consistent except for one huge difference.
Sylvia asserted that Pritam did tell the CEC that they knew of the lie, before presenting the recommendations of the DP.
The testimony from Sylvia is inconsistent with that of the others. And it actually paints Pritam in a good light. In fact, this means he actually followed the advice of Pei Ying and Nathan.
But nobody on the committee seem interested to pursue clarifications on this and it was left as such.
To be honest, I suspect there are already opinions formed and conclusions drawn by the members of the COP at this point. I don't think mentally, they had wanted to spend more effort pursuing new threads. It could also explain why the hearing is becoming shorter and shorter.
7. More details of the DP hearing came out.
As part of the DP hearing, Raeesah submitted a report from her psychotherapist. It stated that she had PTSD.
Regarding the now infamous “substantiate” point from Pritam, Raeesah thought her anecdote was enough.
8. In her DP defence, Raeesah brought up her mental health, age, her status as a minority woman.
Basically she tried to use every single disadvantage she has to her advantage.
Interesting.
9. In the DP, Sylvia made effort to clarify once and for all, did Raeesah accompany any victim to the police in Singapore?
In her recounting of Raeesah’s response, Raeesah’s answer was shifty.
First she said, “I didn’t go with them inside, but I dropped them off. They were my friends”.
Ok, so she didn’t “accompany” as much as she “ferried” them. And conveniently, they were her friends.
Then she went on to say, “this didn’t happen in Singapore, but I’ve done it in Australia”.
I guess she just couldn’t bring herself to answer a simple “no” to this question.
10. Australia sounds like a scary place to be in.
Raeesah said she was sexually assaulted there. In the DP, she also said her friends were sexually assaulted in Australia.
I, for one, am glad to be in Singapore, where so much effort was made to investigate accusations of police mishandling one sexual assault case. 1,400 cases were reopened and investigated to make sure every single one was handled well. Quite honestly, my faith and confidence in SPF is reinforced as we come to the end of this episode.
Perhaps the Australian media/police should follow Singapore’s example and pick up on Raeesah’s statement and investigate her sexual assault case rigorously. I have heard many nice things about Australia, but Raeesah and her friends’ experience in Australia scares me.
11. Raeesah told Sylvia she couldn’t resign and leave the team because she was informed by “someone” that it will trigger a by-election.
Firstly let’s just call her out on her bullshit. It’s convenient that there’s an unidentified “someone” who gave her this advice.
Who this “someone” is, cannot be answered when Sylvia pressed her on it. Well, it sounds like “someone” is a figment of Raeesah’s imagination, that was created to give her justification for not resigning.
Raeesah’s relationship with reality is tenuous. If this “someone” did in fact exist, Raeesah should still resign for taking heed of such lousy advice.
12. Raeesah messaged Pritam on the 4th of August to ask if she had a future in the party.
I don’t think we found out what Pritam’s reply was.
Perhaps if Pritam could go back in time, there’s the possibility he will reply GTFO.
13. There was an interesting piece of evidence that could work for and against WP.
Pritam asked Raeesah during the DP, “before the October session, I met you and I told you it was your call. Did the need to tell the truth in parliament occur to you?“
To which Raeesah replied, “Yes, but I was consumed with guilt and my own experience” and Pritam ask her rhetorically, ”You can’t lie right?”
Pritam telling Raeesah “it was your call” is not a good look. It should not have been her “call” as much as it should have been expected.
But Raeesah’s reply of “Yes” is telling too. She tried to build a narrative that she lied the second time in Oct because she thought she was following the advice of senior party leaders during her COP hearing. From this exchange, it seems clear that there wasn’t any advice from the leadership to lie and cover up. In fact, it’s clear there was no advice at all.
She clearly lied for a second time in October’s parliament sitting on her own accord.
14. One final bombshell came at the end where Sylvia revealed they investigated whether Raeesah’s anecdote itself, of her hearing about the sexual assault from the group chat was indeed true or not.
Well, save the best for the last. I waited with bated breath for the great reveal.
It turns out the organiser did indeed see Raeesah Khan in the chat during 2018 and 2019.
But the organiser was unable to confirm if that recounting of the police mishandling the case did indeed happen or not. So with the benefit of doubt, WP decided to leave it as it is and believe Raeesah.

## Afterword:

1. Things are now ever more damning for Raeesah.
Pritam, Sylvia and Faisal’s evidence have been pretty consistent throughout the hearing. The crux of the issue is that they all testified they never ever told Raeesah to cover up the lie.
You could dispute they could have been clearer in instructions, that they should have told the public etc, but incompetence is not malice.
Raeesah, on the other hand, had been exposed to not be a credible witness. She embellished her words, has a track record of lying and did not appear to be stable based on reports from her own therapists.
Pei Ying and Nathan are secondary witnesses in the sense that they have been prejudiced by falsehood from Raeesah, such as “take the information to the grave”. I think there should be justification to question the weight of their evidence based on this.
2. Mental health issues are not to be trivialised. Sexual assault trauma is also of grave importance.
But we should also place equal, if not more, weight in truth, integrity and facts. We must not let Raeesah abuse these important matters as excuses to obfuscate the truth from us.
There must also be proper and fair repercussions to serve as a stern warning for other politicians who may want to flirt with untruths.
3. Lawyers, psychotherapist, psychiatrists, therapists… Raeesah has access to a lot of resources that day to day Singaporeans do not.
With all the advice she’s getting, how did things still end up that bad? Perhaps too many cooks spoilt the broth.
4. From the testimonies, you could build a consistent narrative that Raeesah lied and came up with many untruths to try and make herself appear like a hero to the public.
When that failed, she tried to turn herself into a martyr.
She might want to talk to her therapist about god complex in their next meeting.
5. Pritam needs to be more firm in his leadership.
“I will not judge you”, “I told you it was your call”, etc are not words from a firm or experienced leader.
6. Does Edwin monitor online chatter?
Perhaps he did also notice that online opinion swayed against him.
Or maybe he had realised the futility of his questioning, since the truth seems quite clear cut now?
If he does indeed listen to online chatter, I would like to bring the following to his attention.
7. What conclusion you draw from the hearing so far depends on what you subscribe to most in life.
If you are of the firm view that mental health is an issue that is often overlooked, you will say that Raeesah deserves more therapy.
If you firmly believe that we don’t listen and believe sexual assault survivors, you will say that Raeesah’s bravery deserves support.
End of the day, you might still stand with Raeesah.
For me, I subscribe to the phrase: "fool me once, shame on you. Fool me twice, shame on me.”

# Tidbits from Pritam's COP hearing

Here are some interesting things that were surfaced during Pritam’s hearing that wasn't picked up by the mainstream media.

## Tidbits:

1. Right at the start, Pritam’s rejection of the idea that an incorrect accusation of the police will cause adverse impact to it is ludicrous.
Quite honestly, that rejection of the idea is quite simply, ridiculous. Obviously the lie is bad and hurts the reputation of the police.
Having said that, if Pritam admits it is bad, then the line of questioning would be, why did you not do anything.
In the end, Pritam dodged this and we didn’t get anything definitive about why the leadership did not step out earlier to defend the police’s reputation. It set an adversarial tone that was carried on through the hearing.
2. Edwin’s Tong repeat of “I have no agenda, please don’t read into my questions”, “I’m only here to fact find”, etc is now becoming very sus.
I believe you the first time you say that.
But when you repeat this statement for the twentieth time in 5 hearings, I’m beginning to suspect you do have an agenda.
3. Pritam brought up the Hendrickson affair.
Very interesting story actually, here is the link.
4. There were some slight digs at Leong Mun Wai.
Not gentlemanly, but everyone had some chuckles.
If you are wondering why they are laughing, it's because Leong Mun Wai raised a point of order at an incredulous moment. The video is here.
He did this right before Shanmugam stood up to grill Raeesah, which was followed by her lying a second time on the 4th October. Leong Mun Wai's action must be jarring to everyone who are waiting with abated breath to see Min Shan go up against Raeesah Khan.
It was an innocent mistake for sure. But coupled with other gaffes, Leong Mun Wai has certainly not gained the respect of fellow members. You could hear LHL muttering incredulously under his breath along the lines of "did he call a point of order?" to Teo Chee Hean.
They chuckled again at his gaffe when the incident was recounted during the hearing. There's finally a moment of camaraderie as they bantered over the incident for a few seconds like old friends.
I hope the NCMP member has not become equivalent of a modern day court jester for the MPs.
5. There’s a great exchange where Pritam called Edwin out for trying to entrap him.
Pritam told Edwin, "You are a good lawyer, but I’m a good listener." To which Edwin muttered, "I don't know about the latter." lol
6. From private messages revealed, it would appear He Ting Ru did not hold Raeesah in high regard.
In fact, it might even appear that she’s the first to officially hold the opinion Raeesah should resign.
Good on her for smelling and calling out bullshit before the rest! There’s a good reason why she’s the leader for the Sengkang team.
Jamus seems to be only friend to Raeesah in the Sengkang team, Louis seem to be neither close nor adversarial to her.
7. A very surprising thing too is that Raeesah had revealed the sexual assault to Pei Ying and Nathan BEFORE her parents and the leadership.
Obviously, sexual assault is traumatic and survivors deals with it differently and it’s her right to choose who she wants to share with.
But, you could see how Pei Ying and Nathan will firmly be on her side once they found out, given that they now enter a small inner circle and see her as someone that needs to be protected.
A more cynical take would be that Raeesah had been manipulative and was working Pei Ying and Nathan against the WP leaders once the lie was exposed.
This would be coherent with why she used terms like “take it to the grave”, to build a narrative to the volunteers that she was following WP's orders, but is backstabbed by the leadership, and how she’s now a victim who needs their help.
8. I suspect Edwin’s favourite word is “germane”.
It was repeated so many times in the hearing.
On the other hand, Pritam’s new favourite word must be “irrelevant”.
Things that are “irrelevant” to him, are in my opinion, “very relevant”. Now I’m a little bit shaken and do want to ask, what other things, in Pritam’s opinion, are irrelevant?
9. Edwin pressed Pritam on why he only clarified that they knew Raeesah was lying during the press conference, and not all the months before.
Pritam maintained he thought it was irrelevant for the public to know so he didn’t talk about it.
Edwin kept pressing, insinuating Pritam had wanted to hide that truth from the public.
Pritam masterfully brought up TraceTogether to draw similarities between his actions and that of the gov. You could see it knocked the wind out of Edwin’s sail slightly.
I’m not sure if Pritam had prepared to bring up TraceTogether before the hearing. But if he did prepare and rehearse this line, kudos to him.

## Afterword:

1. Pritam’s performance was great.
You could see his training as a lawyer and experience as a seasoned politician by how he weaved and jived with Edwin Tong.
He minimised a lot of the damage from the hearing and you can’t really edit a clip from the hearing that paints him in too bad of a light.
BUT Pritam was selected to be the leader of the opposition and the party sec of WP to provide leadership, not just by virtue of his eloquence alone.
There are many times where he admitted with gusto that he wasn’t clear with his instructions. He proudly owns up to multiple leadership failures in not addressing Raessah’s untruth.
He can embellish his words, but the facts surfaced in the committee speak poorly of his leadership, his position as party sec and WP as a whole.
2. Edwin Tong’s performance wasn’t that great.
I mean so much for “I have an open mind” when all your questioning is to force and box someone in to agree to your point like a lawyer.
I agree to a certain degree with a lot of the online comments that his performances were good prior to Pritam.
But those "opponents" were either untrained (Pei Ying and Nathan), ineloquent (Faisal) or a deluded party (Raeesah). That’s like watching a trained fighter going against an untrained opponent. The trained fighter will win, but we will not get a fair assessment of his skills.
Against Pritam, Edwin struggled and laboured. End of the day, I won’t say anyone “won”. But I think Edwin has lost points in the public with some questioning that in my view are unfair, and that is difficult for Singaporeans watching to square with.
There were also some questions that in my opinion sounded rehearsed and orchestrated. I mean as a top lawyer, I'm sure he has spent some time in front of the mirror practising how the questions will come across.
But there were so much legal jargon in those prepared questions that it just didn't make sense at all. Quite honestly, I think it was a missed opportunity that he didn't just yell, "creating the DP, when you already knew of the lie for three months, is OWNSELF check OWNSELF"
The conclusion I drew from this is that… there can only be one legal mind like Min Shan. Edwin came out of this looking like a pirated Mini Shan.
3. Obviously, there is much to be gained politically for the PAP to prolong this affair.
But it would appear that much of the 9 hours in Pritam’s hearing is spent quibbling over Pritam’s position to little effect. And much of the 6 hours for Faisal’s hearing is spent trying to understand the meandering questions asked and the incoherent answers given.
Not sure if the strategy was to prolong the hearing long enough to wear the WP down and get them to admit to things in PAP’s favor.
But this war of attrition goes both ways. There are a number of clips going around showing Edwin fumbling and painting Pritam in a good light.
4. WP came across as rudderless without Pritam.
It sounded like Faisal and Sylvia did not do anything and just rely on Pritam for leadership.
Surely one of them should have came out and said something when the lie was not clarified after so long. But it seemed like they were just along for the ride. Faisal, especially, in his hearing came across as inept.
I don’t know how power became so concentrated around one person. It’s not a good look for the party.
5. Raeesah’s immaturity, lies and crazy love for drama are all exposed through many of the private messages brought out by the COP.
From the hearing so far, it appears that Raeesah has muddied the truth by telling the volunteers that the leadership told her to “take the truth to the grave”.
So far, there’re no evidences this phrase was ever uttered by the leadership, with credible testimonies these words were never used.
To me, it seems like she has manipulated the volunteers to take her side against the leadership by building a narrative that the leaders knew and hung her out to dry.
Having said that though, there are many times where Pritam could have clarified with the volunteers separately, that he wanted Raeesah to tell the truth. The issue was left to fester and became ruinous to their relationship.
I’m curious how Pei Ying and Nathan will react to Pritam’s hearing.
6. Personal messages from Pei Ying and Nathan to Raeesah paint WP and Pritam in a very very bad light.
The mainstream media seem to have not reported much on this. But it’s worth hearing part 3 and 4 of the hearing yourself to watch the messages come out.
7. The spectre of Raeesah's parents loomed over the hearing.
In Faisal’s hearing, he said he wanted to meet Raeesah with her parents. In Pritam’s hearing, it seems like he’s also quite close to the parents.
I wonder how close the parents were with the WP leadership, and also are there any other shared interest (financial/political) between all parties that should be declared to the public.
I hope that nothing had influenced Raeesah’s nomination to become a candidate for Sengkang.
More can be said and investigated about this matter. Hope there can be some quality journalism to shine some light on this.
8. Jamus is coming.
Somehow, Jamus is now suddenly asked to appear before the COP.
We first found this out from the special report, before Pritam’s testimony was released.
We still didn’t know what Pritam said yet at that point, and I was worried Pritam said something stupid to drag Jamus into the fray.
But he didn't, from what I watched in the hearing. I'm surprised then why Jamus is called to appear before the COP.
You can also see in the report that MP Dennis from WP voted too to call Jamus to the hearing, despite voting "No" to every other item.
Well, anyone from WP that is involved in this debacle will not come out looking good. This is PAP’s best opportunity to drag Jamus through the mud and dismantle what goodwill he had built in GE20. And this could well be the reason he's called up, given there's nothing else at the moment to support summoning him to the hearing.
BUT, I think PAP will do well to be careful.
The fact that WP has so many supporters sticking to it through thick and thin can be attributed to the status of WP as an underdog. If PAP overplays its hand and turns this into a heavy handed assault on WP, public opinion can easily sway against them.
And also, never underestimate Jamus.
He is more eloquent than the common opposition member. Having said that though, a COP hearing is unlike anything he has faced before. I’m interested to see how he, as an academic, perform under this different kind of pressure.
The last time we had an academic go up against a minister, public opinion didn't turn out very well for either side. The COP should bear that in mind.
9. I looked up Dissociation online.
I’m not a trained psychiatrist but it does match some of Raeesah’s behaviour.
I looked up pathological lying too, and realise it also matches. 🤷‍♂️

# Tidbits from Faisal's COP hearing

There were a few interesting nuggets of information that came out of Faisal's hearing.

## Tidbits:

1. In the same 3rd Aug speech where she lied, Raeesah also offended feelings of the Muslim community in Singapore.
While most of the public were focused on Raeesah’s accusation, a part of the Muslim community in Singapore were outraged by her statements on polygamy and genital mutilation.
The outrage was significant enough to draw attention away from the issue of the police accusation within the party. In other words, right after 3rd Aug, WP had to start fighting fires on multiple fronts.
Faisal was busy helping her draft public statements to apologise to the Muslim community. While presumably, Pritam was working on getting more information from Raeesah’s regarding her accusation of the police, separate from the others.
Her first major speech, and what a disaster that turned out to be.
2. Raeesah wanted to start wearing a hijab in public.
Raeesah had requested to meet with Faisal after the disastrous lie on 3rd Aug. They met on the 7th Aug before Faisal found out about the truth. She wanted to ask him for advice because.... she is considering to start wearing a hijab in public!?
This is out of the blue, considering there were many other pressing issues at hand.
I’m skeptical as to what her true intentions were to put on the hijab, given that she had just angered the Muslim community and is in crisis control. It would have been definitely a good PR move to placate the Muslim community. This is consistent with her lies and acts of manipulations which have come to light so far.
Or perhaps I'm reading too much. She could have had a religious awakening after 3rd Aug and wanted to start wearing the hijab.
3. This whirlwind of events after the lie actually sheds new insights to why WP leadership might be slow to react.
Faisal was more concerned about getting the record straight with the Muslim community, he wanted Raeesah to publish public statements that she was not against the teaching of Islam. From the hearing, this was his only concern at that time.
Having said that though, WP is still at fault for ridiculously dragging their feet way past 3 months.
4. Religion definitely has a big influence in Faisal’s life.
From his private messages, it is consistent that Faisal is truly faithful and sincere to the teachings of Islam. I have a lot of respect for his conviction and sincerity.
But I will definitely not be taking leadership advice from him anytime soon.
5. Faisal wanted to meet Raeesah with her parents over the statements that angered the Muslim community.
The reason he gave was that her parents are influential members of the Muslim community, and it was important to meet Raeesah with them. Sounds interesting, almost like a meet the parents thing from school.
Raeesah is a grown woman, her actions should be decoupled from her parents. Wanting to meet Raeesah with parents gives the public an insight to how Faisal viewed her.
6. After the break, the hearing turned adversarial.
The committee asked Faisal whether Pritam and Sylvia brought any schedules/notes to a meeting which took place a day or two before. Faisal turned very defensive refusing to answer the question.
To me, the committee was just trying to establish if there were any other evidence in the form of documents. And also, to understand before the hearing, to what degree they might have worked together to confirm the events that transpired. It's well within the committee's rights to ask these questions to investigate any possibility that there were any form of coverup.
I didn’t expect Faisal to be so defensive though. It felt like a non matter until he still refused to answer the question despite warnings about contempt. You can watch that exchange but fair warning, it's quite frustrating to watch.
It was a yes no don’t know question but somehow Faisal blew the question out of proportion. This will definitely be brought up again in either Pritam or Sylvia’s hearing.
7. There were moments where he exploded in rage after that too at Edwin Tong’s questioning.
Listening to the hearing after the first break is quite a frustrating experience.
Edwin wound up long meandering questions that was hard to follow. Faisal was evidently exhausted. He was already having problems following the questions when he was fresh.
It was not a good look for Faisal’s temperament.
8. The WP leaders do come across as being compassionate to Raeesah.
But there are other more important matters than compassion for Raeesah. Integrity, leadership and governance are all sorely lacking from Faisal’s hearing of how they handled this.

## Afterword:

1. WP’s leaders came across as clueless and inept in Faisal’s own testimony.
I don’t understand how Faisal could think that there’s no need to give Raeesah advice because she “did not explicitly ask for advice” is a good look for the party.
As a leader, you have to step in, give advice and correct the members if something is wrong.
Isn’t this kinda like “nobody asked for an apology” moment for WP? Just in an opposite “nobody ask for advice” bizarro way.
2. Were there were other times where Faisal had to meet Raeesah with her parents?
I’m also wondering how close the parents were with the WP leadership, and also are there any other shared interest (financial/political) between all parties that should be declared to the public.
I hope that there were no undue influence in the decision for WP to field Raeesah as a candidate for Sengkang.
3. I was very unimpressed by Faisal’s testimony.
There’s a clear abdication of responsibility on his part. There’re moments where he deflected the questions and stated he couldn’t do anything by saying he was “overwhelmed” when Raeesah admitted the lie.
I question if he’s qualified for the position of vice chairman. From his testimonies, it sounded like he’s not leading WP. He's more like an audience with a front row ticket.
Anyway, that’s my opinion, you can watch the whole thing and arrive at a different conclusion.
4. On that note, Faisal should thank his lucky stars that Min Shan was recused from the committee.
There was no way Faisal could have kept up with Min Shan in an intellectual legal exchange.
Case in point, watch this exchange in parliament.
Min Shan would have his head served on a platter for the PAP if he was asking the questions.
5. What is the organisation structure of WP?
How big exactly is the leadership team in WP? From the testimony, it sounds like Pritam, Sylvia and Faisal are the only three avengers of the WP that is handling almost everything.
The CEC sounded like a afterthought, instead of an integral part of the WP organisation. I know there was a leadership renewal process that just took place, but couldn’t they request for the previous leadership to fight this important crisis together?
6. I think by now everyone should doubt Raeesah’s version of events.
Faisal gave credible statements refuting Raeesah's evidences in her hearing. Most importantly, the part about taking the lie "to the grave".
For the WP cadre members supporting her, I understand why they feel angry and unhappy with WP’s handling. But, I wonder if they were also hoodwinked as they were spoon fed information from Raeesah’s narrative.
7. Somehow, Jamus is now suddenly asked to appear before the COP.
According to what I can gather from the special report, that happened after Pritam’s testimony. We still don’t know what Pritam has said yet.
8. If Pritam somehow frivolously incriminated Jamus into this situation, it will just be another new level of incompetence.
Pritam should have tried to limit the fallout. Of course I’m not advocating that Pritam lie and cover up the truth. But if he stupidly said something non important and gave PAP a gun to shoot Jamus, I would be even more disappointed in him.
9. We can blame Raeesah for many things, but much of this mess is also caused by WP’s leadership self sabotage.
Even without Raeesah, would something have happened in the future that bring light to the multiple leadership failures in WP?
10. A strong democratic society requires a high functioning government plus credible opposition.
That's why regrettably, there are no winners, only losers at the end of this debacle.

# Analysing Singapore's Gross Monthly Income Changes From 2010 to 2020

## Introduction

This triggered a lot of online chatter from many Singaporeans. Much of the sentiment is that Singaporeans are always in "survival mode", because price has risen but income has not.
Personally, I do also feel and worry about the financial burden of living in Singapore. This motivated me to do an analysis of the income earned by Singaporeans.

## Hunting down the data

First, we need to find the relevant datasets to work with. Usually that means searching on the amazing data.gov.sg. However, that not yield any datasets related to what we are looking for.
Well, the next best alternative is to Google, and I was not disappointed. It led me to MOM's site, specifically here.
There are a lot of amazing data sets here! It would be worth revisiting some of the data sets here in the future for analysis.

## Cleaning the data set

It's time to use a bit of Python magic to clean up the data.
Firstly, the data set is available in excel. Since the data set is small, let's convert it to a csv file by hand for analysis using Python.
We will read in the data set using the pandas library in Python.
.css-ds3kc{display:table-row;}.css-r6t11e{display:table-cell;opacity:0.5;font-size:var(--chakra-fontSizes-xs);}1.css-1k55bzt{display:table-cell;padding-left:1rem;font-size:14px;}import pandas as pd 2df = pd.read_csv('gross monthly income.csv', index_col=0)3df

## Range of Gross Monthly Income By Year.css-1hnlq6l{font-weight:var(--chakra-fontWeights-normal);font-size:var(--chakra-fontSizes-sm);}(Excluding Employer CPF) 2010 to 2020 (June)

20102011201220132014201520162017201820192020
Under $50056.35151.344.346.74743.84341.239.547.5$500 - $999191.4185.3186.7162.8133.3125.9113.7110.9102.2101.9105.8$1,000 - $1,499238.1227.7216.6209.8235.8234.5225.9218.7210.1198.6202.1$1,500 - $1,999236233.2223.9210.9211.8203.9203.8189.6186.1172172$2,000 - $2,499215.9211.7207.3203.6201.1205.8204.7203.1200191.8187.4$2,500 - $2,999161.1159.1152.2156.8161.7164.3166.1151.7163169.8157$3,000 - $3,999252.2259.6269.3277.6286.1294.4299.3306.1309.3317.1313.4$4,000 - $4,999153.1161.6176.6188.4185.7194.7208.3211.9223231.6226.1$5,000 - $5,999114.6122.5136.3144.8147.1157.2160.6166.6167.1175.7179.4$6,000 - $6,99962.971.876.985.685.394.896.7103106.4108.9109.6$7,000 - $7,99948.352.958.460.367.972.279.780.884.192.592.3$8,000 - $8,99938.342.546.552.354.359.165.565.467.271.276.9$9,000 - $9,99921.928.3293338.14040.743.647.153.551.1$10,000 - $10,99927.331.933.440.643.240.743.850.254.359.357.5$11,000 - $11,99913.71517.719.621.623.724.827.529.629.532$12,000 - $12,99912.213.514.615.418.32120.422.126.326.224.1$13,000 - $13,9997.78.81011.914.114.314.116.815.918.219.1$14,000 - $14,9996.37.3799.81310.911.814.41414.5$15,000 - $19,99923.224.829.434.337.639.740.546.249.350.350.7$20,000 & Over31.337.745.143.852.251.549.756.558.162.462
Total1911.61946.519882004.62051.82097.52112.92125.42154.92184.22180.4
Value in Thousands
(Exclude Full-Time National Servicemen) Aged fifteen years and over

## Limitations

While we have found a good data set to work with, there are a few limitations that we need to consider in our analysis.
1. The data is presented in ranges/buckets. This means that the true value might be obfuscated within the ranges provided. i.e. $3,001 and$3,998 are all within the income group of $3,000 to$3,999, even if they are quite different.
2. This data set excludes CPF contributions.
3. CPI is not factored into our analysis (until later).
Now that we have the raw data and understood our limitations, let's do a few data visualisation to look for patterns and trends.

## Analysing Gross Monthly Income

Firstly, let's take a look at the breakdown of the raw number of population per monthly income group in Singapore.
We will look at the comparison of all the values using a stacked bar chart. It should give us an understanding of the breakdown of each income group by year, and at the same time allow us to compare the differences per year.

## Gross Monthly Income Bar Chart

Using the bar chart is still a little messy given that there are many gross monthly income ranges in the dataset. We will improve on the charts and visualisation later.
Next, we will also try and take a look at the breakdown by year for each income range. We will use a sunburst chart to group up the data for visualisation, broken down to a pie chart for per income range breakdown.

## Gross Median Income Sunburst Chart in 2020

Selected Year: 2020
2020

## Visualising Change By Year

We will inspect the changes of each income group by year using a line chart for each income group.

## Measuring Rate of Change

A better approach would be to express each cell as a percentage of change based on the preceding time period. This will give us a sensing of the rate of change in each income group by year.
1# 1. get rid of 'total' row2# 2. convert cells to percentage change from previous row using pct_change()3change_df_by_year = df.drop('Total').pct_change(axis='columns')4change_df_by_year.multiply(100) # express as percentage out of 100

## Percentage Change of Gross Monthly Income By Time Period

20102011201220132014201520162017201820192020
Under $500--9.41%0.59%-13.65%5.42%0.64%-6.81%-1.83%-4.19%-4.13%20.25%$500 - $999--3.19%0.76%-12.8%-18.12%-5.55%-9.69%-2.46%-7.84%-0.29%3.83%$1,000 - $1,499--4.37%-4.87%-3.14%12.39%-0.55%-3.67%-3.19%-3.93%-5.47%1.76%$1,500 - $1,999--1.19%-3.99%-5.81%0.43%-3.73%-0.05%-6.97%-1.85%-7.58%0%$2,000 - $2,499--1.95%-2.08%-1.78%-1.23%2.34%-0.53%-0.78%-1.53%-4.1%-2.29%$2,500 - $2,999--1.24%-4.34%3.02%3.12%1.61%1.1%-8.67%7.45%4.17%-7.54%$3,000 - $3,999-2.93%3.74%3.08%3.06%2.9%1.66%2.27%1.05%2.52%-1.17%$4,000 - $4,999-5.55%9.28%6.68%-1.43%4.85%6.99%1.73%5.24%3.86%-2.37%$5,000 - $5,999-6.89%11.27%6.24%1.59%6.87%2.16%3.74%0.3%5.15%2.11%$6,000 - $6,999-14.15%7.1%11.31%-0.35%11.14%2%6.51%3.3%2.35%0.64%$7,000 - $7,999-9.52%10.4%3.25%12.6%6.33%10.39%1.38%4.08%9.99%-0.22%$8,000 - $8,999-10.97%9.41%12.47%3.82%8.84%10.83%-0.15%2.75%5.95%8.01%$9,000 - $9,999-29.22%2.47%13.79%15.45%4.99%1.75%7.13%8.03%13.59%-4.49%$10,000 - $10,999-16.85%4.7%21.56%6.4%-5.79%7.62%14.61%8.17%9.21%-3.04%$11,000 - $11,999-9.49%18%10.73%10.2%9.72%4.64%10.89%7.64%-0.34%8.47%$12,000 - $12,999-10.66%8.15%5.48%18.83%14.75%-2.86%8.33%19%-0.38%-8.02%$13,000 - $13,999-14.29%13.64%19%18.49%1.42%-1.4%19.15%-5.36%14.47%4.95%$14,000 - $14,999-15.87%-4.11%28.57%8.89%32.65%-16.15%8.26%22.03%-2.78%3.57%$15,000 - $19,999-6.9%18.55%16.67%9.62%5.59%2.02%14.07%6.71%2.03%0.8%$20,000 & Over-20.45%19.63%-2.88%19.18%-1.34%-3.5%13.68%2.83%7.4%-0.64%
Visually, it will be easier on the eye if we present the data in the form of a heatmap.
1import seaborn as sns2sns.set_theme()3import matplotlib.pyplot as plt4
5grid_kws = {"height_ratios": (.9, .05), "hspace": .1}6f, (ax, cbar_ax) = plt.subplots(2, gridspec_kw=grid_kws, figsize=(25,10))7
8ax = sns.heatmap(change_df, ax=ax, annot=True, fmt=".2f", linewidths=.5, cbar_ax=cbar_ax,9                  cbar_kws={"orientation": "horizontal"}, center=0)10
11ax.xaxis.set_ticks_position("top")

## Heat Map of Gross Monthly Income Percentage Change By Time Period

By visualising the heat map data set in a yearly period, we could see that most of the reds (decrease) are located in the lower income ranges, while most of the greens (increase) are located in the higher income groups.
That is a good sign! It means we have fewer people in the lower income groups each year (pre 2020), and more workers in Singapore entering the higher income groups. Particularly in the period from 2016 to 2019, the data shows sustained percentage decrease across each of the income ranges below $2,500. However, 2020 has reversed the trend (definitely due to COVID-19). We could see percentage increases for all income groups below$2,000. In particular, there is a worrying 20.25% increase in the under $500 earners from year 2019 to 2020. On a side note, I'm now interested to analyse the impact of COVID 19 on Singaporean's income in a separate article. If we take a look at the heatmap in a 10 year period (from 2010 to 2020), the data set is definitely healthy. We could see a decrease in the lower income groups that are under$3,000, and an increase in growth from $3,000 and above. This means that there are more Singaporeans are earning$3,000 and above.
But, it does seem like the percentage growth increase in the higher income groups is disproportionate to the percentage decrease in the lower income brackets. This could be a sign of income inequality, which we could try to explore later.

## Gross Monthly Income Group of Singaporeans by Percentile

Great, we should also analyse the income buckets by percentile. This should give us a sense of income changes in each percentage group of Singaporeans.
1year_range = range(2010, 2021)2
7def find_bucket(series, value):8    sum = 09    idx = 010    for val in series:11        sum += val12        if sum >= value:13            return idx14        idx += 115
16def bucket_for_year(df, year, p):17    series = df[year]18    return df.index[find_bucket(series, get_percentile_value(series, p))]19
20def format_percentile(p):21    if p > 50:22        return "Top {}%".format(100 - p)23    elif p < 50:24        return "Bottom {}%".format(p)25    else:26        return "Median (50%)"27
28def construct_median_pds(df, percentiles):29    values = {}30    for p in percentiles:31        data = []32        for y in year_range:33            bucket = bucket_for_year(df, str(y), p)34            data.append(bucket)35        values[format_percentile(p)] = data36    return pd.DataFrame(data=values, index=year_range)37
38percentile_df = construct_median_pds(data.drop('Total'), [5, 10, 25, 50, 75, 90, 95])39percentile_df

## Gross Monthly Income Range by Percentage of Singapore Population

Bottom 5%Bottom 10%Bottom 25%Median (50%)Top 25%Top 10%Top 5%
2010$500 -$999$500 -$999$1,000 -$1,499$2,500 -$2,999$4,000 -$4,999$7,000 -$7,999$10,000 -$10,999
2011$500 -$999$500 -$999$1,500 -$1,999$2,500 -$2,999$4,000 -$4,999$8,000 -$8,999$11,000 -$11,999
2012$500 -$999$500 -$999$1,500 -$1,999$2,500 -$2,999$5,000 -$5,999$8,000 -$8,999$12,000 -$12,999
2013$500 -$999$500 -$999$1,500 -$1,999$3,000 -$3,999$5,000 -$5,999$9,000 -$9,999$12,000 -$12,999
2014$500 -$999$1,000 -$1,499$1,500 -$1,999$3,000 -$3,999$5,000 -$5,999$9,000 -$9,999$13,000 -$13,999
2015$500 -$999$1,000 -$1,499$1,500 -$1,999$3,000 -$3,999$5,000 -$5,999$9,000 -$9,999$13,000 -$13,999
2016$500 -$999$1,000 -$1,499$1,500 -$1,999$3,000 -$3,999$5,000 -$5,999$9,000 -$9,999$13,000 -$13,999
2017$500 -$999$1,000 -$1,499$1,500 -$1,999$3,000 -$3,999$5,000 -$5,999$10,000 -$10,999$14,000 -$14,999
2018$500 -$999$1,000 -$1,499$1,500 -$1,999$3,000 -$3,999$6,000 -$6,999$10,000 -$10,999$14,000 -$14,999
2019$500 -$999$1,000 -$1,499$2,000 -$2,499$3,000 -$3,999$6,000 -$6,999$10,000 -$10,999$15,000 -$19,999
2020$500 -$999$1,000 -$1,499$2,000 -$2,499$3,000 -$3,999$6,000 -$6,999$10,000 -$10,999$15,000 -$19,999
So far, we have not used CPI (consumer price index) in our analysis of the data. We will take a look at CPI in the next section.

## CPI

Consumer Price Index (CPI) is designed to measure the average price changes of a fixed basket of consumption goods and services commonly purchased by the resident households over time. It is widely used as a measure of consumer price inflation.
Quite simply put, it helps us to measure the relative value of money between different years, i.e. what can $500 get you in 2010 vs in 2020. In our analysis, let's make use of CPI to calculate the income earned by each percentile relative to the value of money in year 2020. ### Calculating Income Ranges of Different Percentiles using CPI We start by getting the CPI values from data.gov.sg. We will convert the indexes to switch the base year from 2019 to 2020. ## CPI Value with 2020 as Base Year 20102011201220132014201520162017201820192020 CPI87.56792.16396.3898.65499.66499.14398.61599.18599.619100.182100 To calculate the adjusted wage, we can make use of the following formula: $$\text{wage}_\text{target_year} = \frac{\text{wage}_\text{year}}{\text{CPI}_\text{year}} * \text{CPI}_\text{target_year}$$ For example, for a wage of$500 in 2010, we can use the formula to find out that its corresponding value is $570.99. $$\text{wage}_\text{target_year} = \frac{500}{87.567} * 100 \approx 570.99$$ Using this, let's calculate the relative value of each income group using 2020 as the base. 1import re 2 3def parse_value(str):4 str = str.replace(',', '', -1)5 regex_search = re.findall(r'$(.*) - $(.*)', str)[0]6 return list(map(lambda x: int(x), regex_search))7 8def get_cpi_by_year(year):9 return round(cpi_df.loc[cpi_df['year'] == year]['cpi'].values[0], 3)10 11def convert_value_to_2020_base(value, year):12 return round(value / get_cpi_by_year(year) * 100, 2)13 14def format_currency(value):15 return "{:,.2f}".format(value)16 17def format_values(values):18 return "${} - ${}".format(format_currency(values[0]), format_currency(values[1]))19 20cpi_2020_df = percentile_df.copy()21 22for col in percentile_df:23 for year in percentile_df.index:24 values = format_values(25 list(26 map(lambda x: convert_value_to_2020_base(x, year), parse_value(percentile_df[col][year]))27 )28 )29 30 cpi_2020_df[col][year] = values31 32cpi_2020_df ## Gross Monthly Income Range by Percentage of Singapore Population using CPI with 2020 as Base Year Bottom 5%Bottom 10%Bottom 25%Median (50%)Top 25%Top 10%Top 5% 2010$570.99 - $1,140.84$570.99 - $1,140.84$1,141.98 - $1,711.83$2,854.96 - $3,424.81$4,567.93 - $5,708.77$7,993.88 - $9,134.72$11,419.83 - $12,560.67 2011$542.52 - $1,083.95$542.52 - $1,083.95$1,627.55 - $2,168.98$2,712.59 - $3,254.02$4,340.14 - $5,424.09$8,680.27 - $9,764.22$11,935.38 - $13,019.32 2012$518.78 - $1,036.52$518.78 - $1,036.52$1,556.34 - $2,074.08$2,593.90 - $3,111.64$5,187.80 - $6,224.32$8,300.48 - $9,337$12,450.72 - $13,487.24 2013$506.82 - $1,012.63$506.82 - $1,012.63$1,520.47 - $2,026.27$3,040.93 - $4,053.56$5,068.22 - $6,080.85$9,122.79 - $10,135.42$12,163.72 - $13,176.35 2014$501.69 - $1,002.37$1,003.37 - $1,504.05$1,505.06 - $2,005.74$3,010.11 - $4,012.48$5,016.86 - $6,019.22$9,030.34 - $10,032.71$13,043.83 - $14,046.20 2015$504.32 - $1,007.64$1,008.64 - $1,511.96$1,512.97 - $2,016.28$3,025.93 - $4,033.57$5,043.22 - $6,050.86$9,077.80 - $10,085.43$13,112.37 - $14,120.01 2016$507.02 - $1,013.03$1,014.04 - $1,520.05$1,521.07 - $2,027.07$3,042.13 - $4,055.16$5,070.22 - $6,083.25$9,126.40 - $10,139.43$13,182.58 - $14,195.61 2017$504.11 - $1,007.21$1,008.22 - $1,511.32$1,512.33 - $2,015.43$3,024.65 - $4,031.86$5,041.08 - $6,048.29$10,082.17 - $11,089.38$14,115.04 - $15,122.25 2018$501.91 - $1,002.82$1,003.82 - $1,504.73$1,505.74 - $2,006.65$3,011.47 - $4,014.29$6,022.95 - $7,025.77$10,038.25 - $11,041.07$14,053.54 - $15,056.36 2019$499.09 - $997.19$998.18 - $1,496.28$1,996.37 - $2,494.46$2,994.55 - $3,991.74$5,989.10 - $6,986.28$9,981.83 - $10,979.02$14,972.75 - $19,962.67 2020$500 - $999$1,000 - $1,499$2,000 - $2,499$3,000 - $3,999$6,000 - $6,999$10,000 - $10,999$15,000 - $19,999 ### Median (50th Percentile) Earner Looking at the median (50th percentile), there is definitely an increase from$2,854.96 - $3,424.81 in 2010 to$3,000 - $3,999 in 2020. The increase is not as big as I had imagined, but it's a clear sign that Singaporeans are earning more than before. Another thing to note is that the growth seems to have stagnated from 2013 onwards to 2020. However, it should also be noted that the data is presented in ranges. So there might be growth, for example from$3,001 to $3,998, but is not readily represented by the data set. ## Income Inequality Taking inflation into account, the data doesn't look good for the 5th and 10th percentile in Singapore. The bottom 5% population has in fact regressed from 2010 to 2020. On the other hand, the 95th (top 5%) percentile has seen a huge increase in the income range from$11,419.83 - $12,560.67 in 2010 to$15,000 - \$19,999 in 2020.
This is definitely a clear sign of growing income inequality in Singapore, with the rich getting richer and the poor becoming poorer.

## Conclusion

The data looks worrying for the population earning under the median. Income growth has largely stagnated, and you could even argue that it has regressed when you take CPI into account.
On the other hand, everybody above the 50th percentile has seen their income levels soar. You could see sustained income growth for each of the percentile groups (25%, 10%, 5%).

## Afterword

Well, that's all for now. This is actually the first article I have written. I've decided to start this blog to express my thoughts on technology, data science and politics (to a lesser degree).
If you are interested in articles like this, I would really recommend you subscribe to my telegram channel. It's completely anonymous, and you will receive instant notifications when I have new articles.
Also, if you are interested to learn coding and data science, I teach at UpCode Academy in Singapore. Courses can be fully covered under Skillsfuture. Check out the website for more information!
Lastly, if you have any leads or interesting things that you think I might be able to analyse and write about, feel free to reach out to me on my social media! Any feedback is also welcomed!