// Adds dimensions UUID, Author and Topic into GA4
Tuesday, September 22, 2026
29.9 C
Singapore

Singapore TikToker exposes 10 workplace red flags employees may have started seeing as normal

SINGAPORE: In a recent TikTok post, finance professional Christopher Cho (@chrischo77) explained the red flags that he says have become normal in Singapore’s workplaces.

Mr Cho, whose book The Money Reset Playbook was published in June, wrote in the caption to his Aug 3 post, “If your office normalises 10 p.m. WhatsApp messages, public group chat scoldings, and polyclinic MC guilt, you aren’t working in a ‘fast-paced, dynamic environment’—you are navigating systemic workplace abuse.”

He added that while “agility” has been pushed in corporate culture, what companies decide should not be allowed to transgress Singapore’s labour laws regarding workers’ rights.

Mr Cho listed the 10 tactics of “quiet psychological warfare” that companies employ as:

  1. Superiors reaching out to staff late at night, on weekends, or when they are on leave, and “demand immediate execution.” Mr Cho wrote that, in the face of the refusal to reply being weaponized as a “lack of commitment,” Part 4 of the Employment Act and Tripartite Guidelines says that text spam after hours is unauthorised labour.

  2. Bosses who dress staff down during town halls or passive-aggressively scold them in main departmental channels. Mr Cho pointed out that while this type of public humiliation is branded as direct feedback” or “accountability,” its intent is to humiliate workers.

  3. Quiet firing, or reassigning workers to dead-end tasks while their important projects are taken away from them. This is meant to demoralise employees to the point of resigning, which saves the company from paying severance. 

  4. Managers who give incomplete or vague information about a project, or change deliverables. This is designed to ensure that employees fail and create a record of underperformance, which affects promotions and bonuses.

  5. Workplaces that treat employees like small children by live-tracking them at work or enforcing “camera-on” when they work from home.

  6. A dismissive attitude from bosses when it comes to complaints about excessive workload. Instead of addressing the problem, workers are blamed for not being resilient.

  7. Threats and intimidation from managers, who tell employees they will be blacklisted if they file complaints and grievances.

  8. Guilt-tripping employees when they take sick leave and expecting them to be available to answer emails, or questioning or even invalidating their MCs. “Under Section 89 of the Employment Act, employers must accept valid MCs from registered doctors. Guilt-tripping sick workers is illegal,” wrote Mr Cho.

  9. High school-type cliques formed by senior management, where certain workers are excluded from key meetings or lunches.

  10. Excessively long workdays when employees work for as many as 14 hours due to understaffing, and they’re expected to take on the load of their departed colleagues without additional pay. Workers who fight for their 9-to-6 contract boundaries, meanwhile, are penalised. /TISG

Read also: Should Singapore follow Australia in giving workers the right to ignore office calls & emails after working hours?

Hot this week

Singapore man, 65, a plumber, assaults maid in Telok Kurau after she breaks up with him before returning to home country

The man, a plumber, entered the helper’s employer’s home at night and broke into her room after she planned to return home when her work contract ended

Fallen tree in the road was cleared in minutes as dozens of strangers unite to move the branch, preventing traffic

A tree branch suddenly fell across MacPherson Road during the evening rush hour yesterday (18th), obstructing traffic. Dozens of people spontaneously moved the branch, clearing a lane to prevent tr...

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