// Adds dimensions UUID, Author and Topic into GA4
Saturday, July 11, 2026
28.9 C
Singapore

Charles Yeo becomes chairman of Reform Party

Reform Party’s Charles Yeo has just been elected as the Chairman of the party, according to his Instagram story posted on Mon, 3rd August.

photo 2020 08 04 15 08 49
Photo: Charles Yeo’s Instagram

Despite his relatively short-lived tenure as a member of Reform Party, Charles Yeo, a practising lawyer in Singapore, quickly gained internet notoriety following his speech in Chinese during the GE2020.

After having to improvise a speech in Chinese initially written for Soh Guan Soon, where he struggled to pronounce several Chinese characters, he quickly became an internet meme.

This announcement comes after the recent harassment lawsuit filed against him for hurling sexual misconduct allegations and racially charged comments against a prominent lawyer, Mr Imran Rahim, 32, from Tan Kok Quan Partnership (TKQP).

Mr Yeo will be taking over from the current Chairman of Reform Party, Andy Zhu.

Netizens were largely supportive of his election as RP’s Chairperson and many expressed their congratulations through Instagram.

photo 2020 08 04 17 21 32
Photo: Instagram, Charles Yeo
photo 2020 08 04 17 21 33
Photo: Instagram, Charles Yeo

However, there were some who expressed their wariness about his ascension as RP’s Chairperson, citing it as somewhat “chaotic”.

photo 2020 08 04 17 24 37
Photo, Twitter
- Advertisement -

Hot this week

‘Everyone gets stretched thinner’: Singaporeans discuss toxic workplace culture

On Reddit, a netizen asked: What's the most toxic thing that's become normalised in Singapore workplaces?

‘I keep feeling wanting to vomit and my heart races’: Unemployed Singaporean says job hunting triggers overwhelming anxiety

SINGAPORE: An unemployed Singaporean shared that she’s been experiencing extreme anxiety over the entire job search process. Every time she thinks about applying for jobs, she wrote in a Reddit p...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks