Winston Teo lives a life between the world of engineering and management. Currently the deputy director of digital technology at SP Group, he oversees engineers at the enterprise that runs Singapore's gas and power grids. Like several leaders in tech, he's a man of many hats: he has organized the Singapore-wide Ruby On Rails get together RedDotRubyConf and is founder of Jolly Good Code, an organization that trains software developers and offers support for startup creation.
When it comes to thinking of software programmers as managers, Winston makes a distinction between engineers, engineers who manage people, and engineers who manage projects. “I think there are more and more engineers who don't want to become managers because [...] being a people manager or becoming a manager requires a different set of skills," Winston observes.
Not all coders are meant to be leaders; nor are all meant to manage people. “Some engineers feel that they'd rather build their technical skills. That is actually okay," Winston says. “In the past, a lot of engineers didn't have the choice to remain on the technical track because it might not be as lucrative, valued, or looked up to, so people felt they had no choice but to move on to become managers."
Before he became a software developer and leader, though, he was just a guy who liked writing code in his spare time.
Flashback to around the year 2000. Winston was dabbling in HTML code then and uploading it to a little web hosting service called Geocities.
In 2002, Winston entered university as a computer science major at the National University of Singapore, where his work gained an academic and theoretical foundation. “I learned more about backend stuff, systems, service, programming - even AI - so that sort of exposed me to different areas of what programming can do, and computer science really grounded me in programming foundations," he remembers. “It was easy for me to pick up any language after that."
However, despite his passion for what he was doing, if you'd asked him what he'd wanted to be at the time, coding only played a tiny part in the future Winston envisioned for himself.
What do you want?
“The tech industry is changing, changing every day - new things are coming up, and it's so exciting," Winston says. He names next generation IoT and AI among the things that excite him. But the tech scene in Singapore wasn't nearly as robust when Winston graduated university. Now, there are more options out there for software engineers.
So, when it comes to considering whether developers would be right for a management position, it's important to figure out one thing first: what do they want? What are their long term plans?
The dream career for computer scientists when Winston graduated from NUS in 2006 was actually to get out of programming as quickly as possible - a view he shared. “To be honest, at the time I was in university [...] the startup scene was basically nonexistent." Hopeful computer science grads aimed to pay their dues developing software, then become company project managers - the bigger the company, the better.
Winston's classmates saw software development as a place where one could get “stuck in this career." Becoming a project manager brought programmers more freedom, more esteem, and more income. Winston recounts an inside joke they had at the time: it doesn't matter where as long as the name is good.
It doesn't matter where as long as the name is good.
Staying true to that philosophy, Winston took a job with IBM as a database administrator, a role outsourced to Singapore Airlines. He ran written scripts for the database. If there was an error, he notified the application developers.
Meanwhile, his entrepreneurial spirit remained restless.
“I was feeling a bit bored," he admits. He'd had the startup mindset since university. He and a group of friends had started Futureworkz, a small consulting agency that worked with content management, ecommerce solutions, web marketing, and web hosting. Working at IBM put that on hold. “I still love programming - I don't want to do this administrative job," he remembers thinking.
He tried to take on extracurricular projects - Greasemonkey-types of projects, a precursor to today's Google or Firefox add-ons. He automated several of his work tasks. Then, he attended a conference that changed his life.
There, he met Ross Veitch, co-founder of Wego. While Winston had found other startup talent hunters were prone to see corporate developers as less creative and drone-like, Ross was willing to give him a chance.
“I was very lucky," Winston recounts. “They saw potential in me." He joined in 2007 and took a developer position. He eventually transitioned into his dream of being a project manager and calls it his second best career move.
The best move was the one he made right after.
Path of growth
Three years into his time at Wego, Pivotal Labs came into the picture and shook up Winston's idea of what developers could do.
“It turns out they had very different engineering practices, like pair programming, test-driven development, all the stuff we had never heard about. I'd never seen anything being practiced like this in Singapore," says Winston. He went for the interview and accepted the position. “I felt like I could learn more by being an engineer again at Pivotal Labs."
He found himself remembering why he became an programmer in the first place. “I never regretted that decision. It was the best decision of my life so far," he tells me. At Pivotal Labs, he learned about management and honed what he considers core programming practices, like test-driven development and writing high-quality code.
About a year and a half in, Pivotal Labs Singapore was sold to Neo Innovation. Winston sensed the culture changing and realized that he wanted to do work a little closer to home.
“I wanted to reach out to Singapore entrepreneurs to do more teaching and do more education," he says. So, he made a move familiar to several entrepreneurs: he made the jump from paid worker to unpaid entrepreneur.
The product of Winston's imagination and newly discovered passion for mentoring was the consultancy Jolly Good Code, which began in January 2014 with two people. It combined Winston's love of coding with a leadership role in a way his previous positions hadn't. He set to work growing the team, and while his work/life balance went a little “wonky," he found freedom in choosing projects to work on, which ranged from core software development projects to advising startups.
He let his love for programming guide his management style.
“I didn't grow the team very big - just a small team with three persons so I had time to do the programming work myself. I didn't want to move all the way to managing at all," he explains. He let his love for programming guide his management style, rather than the other way around. “If you ask me what I enjoyed doing more, I feel I enjoy doing programming, but as I was managing my own business, there were a lot of business aspects I started to enjoy as well."
Three years later, when he took up his current position at SP Group, he moved into a role that involved programming, mentoring, and management. “SP Group was where the purpose and meaning were," he explains. He also saw a chance to create the kind of software-building environment that he'd always wanted.
A recipe for management
“I wouldn't say I'm a good manager now," Winston says, then pauses and laughs. “I don't know if I'm a good manager." SP Group's digital team amounts to around 60 people currently, and Winston heads up a team of three that supports the entire enterprise. He focuses less on “management" as a concept and more on the concrete tasks of mentoring people throughout the company and growing the team's culture. “A good culture allows engineers to hone their skills and have a feeling: I am no longer a code monkey - I am a craftsman," he details.
For Winston, signs that a programmer might do well in a management role include an ability to communicate clearly, express thoughts, and an inquisitive mind that tends toward introspection of the self. “Only when they can do that, they can have more empathy toward the people around them," he says. Transparency is also key, he adds.
I am no longer a code monkey - I am a craftsman.
In the startup world, there's often not enough time to spot qualities in a programmer worth growing into management. Developers with one or two years of experience can get thrown headfirst into a management role because they're the only ones around or the best fit for the job. Lack of good role models for them to follow can prove unhealthy for both the individual and the company. If things get dire enough, Winston suggests bringing in “adult supervision" into the company to help.
Mentorship is important to him - and something he says he lucked out on. “I'm grateful for the experience I had in Pivotal Labs - I had good managers at the time who taught me the principles of being a great leader," he says. The best thing a wannabe manager can do is to find a good model to emulate - or at least a trusted network of professional contacts with whom to meet and exchange ideas.
With the right intent, skill set, and support, a developer has the makings of a leader. A breadth of experience, much like Winston's, completes the cycle.
Are you a developer looking to stretch your wings? A company looking for your next project head? 100offer specializes in finding the best fit between tech companies and software engineers. Find your next career-defining experience - sign up below.