// Adds dimensions UUID, Author and Topic into GA4
Sunday, June 7, 2026
30.5 C
Singapore

Software engineer feels undervalued after being tasked with training higher-paid fresh graduates

SINGAPORE: A 28-year-old software engineer whose salary has remained at S$3,500 a month says he feels “demoralised” after being tasked with training newly hired fresh graduates who are reportedly earning around S$5,500 a month.

In a post shared on Reddit on Tuesday (Jun 2), the engineer said he has been with his company for four years and currently handles a wide range of responsibilities, including maintaining production servers, developing new applications and features, automation work, and both frontend and backend development. His work primarily involves Python, Java, and frontend technologies.

When he first joined the company, the team consisted of 10 employees. Over the years, however, staff departures steadily reduced the team to just three people as colleagues left for better opportunities or moved into different industries altogether.

“The HR has refused to replace them until recently, so the workload has increased significantly,” he continued. 

“I started with a diploma and completed my degree part-time 2 years ago while working full-time. I’ve been told promotions are frozen and, from what I can see, nobody in the company has been promoted in the last 2 years. It’s a GLC, and my managers have actually been supportive and have tried pushing HR on my behalf, so I don’t think they’re the issue.”

He was shocked, however, when the company hired two fresh graduates to replace a departing team member. 

According to him, the new hires have “non-tech degrees” and are earning salaries of about S$5,500 a month.

“I’m now responsible for teaching them from scratch because they have little to no technical background,” he added. “I’m happy we’re finally getting more manpower, but it’s hard not to feel demoralised when I’m earning much less while handling production systems and training new hires.”

Unsure whether his frustration is justified, he asked other locals: “Am I being unreasonable for feeling underpaid, or should I just be grateful I still have a stable job in this market? Would you stay, keep applying, or take the risk and leave?”

Struggling to secure a new job

The engineer also revealed that he has been attempting to leave the company for more than a year.

Although recruiters regularly reach out to him and he occasionally lands interviews with larger technology firms, he has not managed to convert those opportunities into job offers.

“I’ve passed several online coding assessments, but after that I usually get rejected or ghosted. It’s made me wonder if maybe my current pay is just what the market thinks I’m worth.”

These ongoing challenges, he admitted, have also led him to consider taking a temporary break from work.

“Part of me feels I need a break after working full-time while doing a part-time degree for 3 years, but I’m worried a long employment gap could make things even harder if the market gets worse.”

Financially, he believes he is in a relatively stable position. “Financially, I have about SGD 110k saved (80k in tech stocks and 30k cash), no dependents, and no immediate plans for marriage or BTO for at least another couple of years.”

In terms of monthly finances, he allocates around S$1,800 towards investments in stable stocks and the S&P 500, S$400 towards cash savings, and roughly S$600 for other expenses.

“You are severely underpaid.”

The post quickly gained traction on the forum, drawing more than 106 responses in less than 24 hours.

Many users felt the author was being underpaid and encouraged him to start looking for better opportunities elsewhere.

One user told him, “You are definitely underpaid as a degree holder, and never trust the company to promote cause I was in the same situation as ya. They are holding you while they get new hires in. Just apply for new roles. Company will never appreciate you. We are just disposable assets. Look at the MNCs recently.”

Another said he could understand the frustration, writing, “This is why I hate corporate. Hire 2 pax in S$5.5k but they are less competent than you, and you literally have to teach them. Such nonsense exists only in corporate. It’s damn stupid. I feel damn bad for you.” 

A third commenter agreed that the author was underpaid but suggested that sharing his salary history with recruiters may have hurt his chances of getting better offers. 

“You are severely underpaid, though it’s neither you nor the fault of the company. And, perhaps critically and sadly, if you revealed your salary to recruiters, that may what did you in. Unfortunately, with the market now: job hug, but furiously find job – and do your very best not to reveal salary.” 

Some users also urged the author not to stay in a job where he felt undervalued. One commenter said, “Screw those that said never leave before securing [another job]. If you have savings, just go for it!”/TISG

Read also: ‘There’s 0 flexibility’: Singapore worker opens up about burnout and workplace stress

- Advertisement -

Hot this week

Life expectancy rises to 83.9 years as Singapore sets new record

According to the latest data released by the Singapore Department of Statistics on June 3, the life expectancy at birth for Singapore residents will reach 83.9 years in 2025. This is not only an in...

SG father rants online after son allegedly squandered S$240k in education fees; Redditors discover why: ‘You had an extramarital affair!’

SINGAPORE: A Singaporean father is absolutely devastated after his son decided to drop out from a prestigious international school, an opportunity he believes could have opened many doors for him i...

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