When Michael Cheng started developing an interest in computers working as a humble clerk during National Service, he never imagined that he would one day become one of the most prominent names in Singapore's software engineering scene.
Back then, Michael's main tasks were to "fix computer hardware and software and provide technical support [in the] MINDEF computer centre." Little would he know that it would be the beginning of an illustrious engineering career.
"My dad saw my interest in computers and bought me a desktop computer - an Intel Pentium 133 - and a 28.8KBPS modem. The first thing I did when I got my Internet account was to download Microsoft Front Page and Image Composer, and build my own home page that same night. Eventually, I was tasked to build an Intranet website for my NS department."
Even so, he was unable to enter the NUS School of Computing because he did not do C Maths (now defunct) in junior college. He ended up majoring in political science and history, and in fact did not graduate with a bachelor's degree - his CAP score was too low.
In any case, Michael figures it was for the best. "I felt that a formal education in IT would kill my interest," he explains.
Seeing how far he has come, I can't help but agree with him. Today, Michael is part of an all-star engineering team at Singapore Power Digital - also known as the "Avengers of engineering" - a new grouping within the Infocomm Technologies Division of Singapore Power Group. As the name suggests, Singapore Power owns and operates the country's power and gas supply.
Here's the story of how he got there.
The beginning of his career
While he was in university, Michael decided to pick up web design, and offered his expertise in HTML and CSS to companies on a part-time basis. "I have always had a keen interest in design. In fact, I almost pursued a course in product design at Temasek Polytechnic, but decided to pursue a university education instead," he explains.
During this period, he worked closely with three other IT graduates from Temasek Polytechnic, who taught him programming in Adobe ColdFusion. From there, he taught himself PHP as well.
"I attribute my continued progress to my sense of curiosity," Michael says. "I was always curious about how things worked. That curiosity led me to ask many technical questions, and opened up my mind to how things work."
Still, not having a formal education in computer science did hold him back somewhat - at least, in the initial stages. "Sometimes I do feel handicapped when dealing with some complex computing tasks like figuring optimum way of doing things," he explains. "That's where some knowledge of algorithms and maths would have been helpful."
However, Michael adds that most of these issues were "few and far in between." He got by simply "asking the right questions on Google, or having smarter colleagues."
Trying out the startup life
Things really started when he joined a startup called Foound in 2011, first as an outsourced developer - working on their backend API - then full-time once they clinched S$500,000 in funding from the National Research Foundation. Foound was one of the hottest startups in the local tech scene then, winning an award at e27's Unconference event that same year.
Things were hectic, as can be expected at any startup, but Michael says that he managed to learn a lot during this period:
"We had a crew of talented engineers, but we couldn't work together as a team. We had code merge conflicts and miscommunication on what the API and mobile apps were supposed to be doing. So our CEO, Danny Tan, roped in Pivotal Labs to help right the ship. I think he benefitted as he learnt to be a better product owner and project manager. The team also benefitted from the agile practices and engineering habits that we picked up during that stint."
Although Foound eventually ran out of funds and had to let the team go, it opened the door to many opportunities for Michael.He went on to join digital media company mig33 (now migme) as a frontend engineer in 2012, an agile consultancy called Neo Innovation (spin off from Pivotal Labs Singapore) in 2015, Pivotal Labs after the Neo Innovation acquisition, and now Singapore Power.
Startup vs agency vs consultancy
Having gone through a number of companies since, I asked Michael which experience he enjoyed the most. His answer, in a nutshell: it depends.
One thing he was clear on was that working at a digital agency wasn't for him, and he "doesn't recommend it if you are serious about growing in your craft."
"The digital agency life is hectic with crazy deadlines. These compressed deadlines are not good for learning and implementing good engineering practices," he recalls.
"I didn't stay long in my agency life," adds Michael.
That's not to say that the startup life isn't hectic either. In fact, Michael calls it "trial by fire."
"You fight fire (sometimes literally) on a daily basis. You also get quick feedback on what works and what doesn't. You also learn to be very frugal and dependent on open source / free software," he explains.
Still, Michael recommends that new engineers should join a startup if they "want the opportunity to try many new things." He believes that startups are a great place for freshly minted engineers to sharpen their intermediate skills, as the knowledge they pick up there is "invaluable and stays with you for life."
"In a startup, you really need to be a know-it-all. Startup teams tends to be small, so everyone plays multiple roles. That's when I learned a lot in terms of server management, writing code that scales (to support many concurrent users), trying different technologies, and sometimes making mistakes and blunders. As long as you are willing, people will give you a chance to try things."
What about consultancies like Pivotal Labs? "Life at a consultancy like Pivotal Labs can be quite good if you care about good engineering and product development," Michael says. "It was here that I learned the importance of doing the right things right, and not just jump into anything that the CEO or product owner wants."Here, he also learned to "ask questions on relevance and impact on the product [...] you begin to care about user experience (UX) and how to validate ideas quickly."
Advice for software engineersPut together his vast range of experience, and you can see why Chang Sau Sheong, who runs the show at Singapore Power, wanted to have Michael on his team.
As a software engineer at Singapore Power, Michael is now able to bring all his experience to bear "in terms of good and sustainable engineering practices, and balance it with lean product development methodologies."
Specifically, in his role in the Architecture and Processes team, he is responsible for inculcating agile engineering practices and ensuring common best practices are shared within the whole division - and eventually the whole Infocomm Technologies Division of Singapore Power Group.
Not surprisingly, Michael's advice to budding software engineers is to "try as many things as you can [to] figure out what you like."
He uses the example of product companies versus agencies and consultancies to illustrate this:
"Product companies tend to go very deep into building a single product. You end up trying many ways to solve the same problem. If solving one problem and doing it well is your thing, a product centric engineering job is really for you [...] But if you prefer variety and the option to solve many different problems in different domains, then an agency or consultancy life is really for you. You get to delve into all sorts of solutions and explore ways to fix problems, and then quickly move on to the next problem."
Beyond that, Michael also calls for engineers to leave the comfort of their homes and pick up new skills and ideas together with their peers. "Reading up isn't enough - go for meetups, talk to people, and more importantly, try things by experimenting with new tools and software," he says. "Sometimes side projects come in handy when the skills you learned are needed at work."
For instance, Michael likes to document his learnings and sample codes in his GitHub account as public repositories. "That way, I can easily share it with colleagues or friends who might need help in those areas," he explains.
Most importantly, he thinks that engineers should just have fun and enjoy coding.
"Everyday that I get to write code is a perfect working day for me," he says.
Want to check out opportunities at leading tech companies in Singapore? Sign up for 100offer now!