Carousell has recently become Singapore’s latest startup to reach Unicorn status.
With this in mind, it only makes sense for us to interview Carousell’s Director of Engineering, Victor Neo for our Ask Me Anything (AMA) series and find out what exactly makes Carousell tick!
Victor was the first engineering hire for Carousell's Singapore team. Read on to find out more about how he managed to successfully scale Carousell's tech team into what it is today.
Our favourite snippets from this interview:
*Parts of this interview have been edited for clarity.
I usually start my day going through my to-do list and emails to determine if there is anything critical or crucial that needs my immediate attention. If not, then it’s time to power through my to-do’s for the day.
My time is usually spent on three major themes: engineering initiatives that I am responsible for, my direct teams’ projects and where my inputs may be needed, and my team and people’s growth. Each day of the week will have different combinations of these three themes, coming in the form of meetings or 1 on 1 sessions.
All the Engineering Managers and Engineering Directors get together once or twice a week to review key metrics that we are responsible for, such as bug counts and uptime, which has a direct impact on user experience. We have a separate meeting for our key engineering initiatives and people matters, which matters as much as our metrics.
Joining Carousell as a fresh graduate, looking after all the backend infrastructure and services was definitely a challenge that most people don’t get to go through. It was challenging and fun at the same time, being able to try out different strategies to help Carousell scale.
Back then, a lot of time was poured into building new features, setting up and building up good technical foundations (eg. testing, CI/CD), and finally, hiring people who were senior engineers and better than me in many regards to improve our technical skills and level as a team.
Carousell's early days could be described as hectic and chaotic in many ways, but we were fortunate enough to have spent quite a bit of time laying down some of the key foundations that we still have today: automate where possible, a weekly testing and release cycle for mobile apps, and focus on user impact.
As a tech organisation with over 100 people now, we now incorporate a stronger written culture to help with communication and dissemination of ideas beyond groups. This has allowed us to have a record of all the different technical discussions that we have had, but also the ability for people to learn from unexpected errors and issues, such as downtime and incidents.
Two major things keep me motivated: one is the continued evolution of the company as we move beyond a small startup to one that focuses on building a sustainable business model by delivering value to our users, as well as our continued evolution as a tech organisation, from one that incorporates flexibility of a small startup to a rigorous one of big tech companies.
As our founders always say: “we are always less than 1% done” - there are always new challenges that we need to overcome, and during the 9 years, I have been fortunate enough to be able to continuously pick up new skills to get myself going.
For both types of candidates, we look at problem solving skills. For junior roles, this would involve technical discussions where we watch them solve a problem in real time, where these problems could be a simple extension of their school project or prior internship experience.
For more senior positions, the discussion becomes more abstract, and also at a higher level - we expect them to be able to incorporate more technical dimensions into their solutions, and even some level of business understanding to deliver the right-sized solution for the problem at hand.
I don’t have a particular question that I ask all candidates, but I do like to ask candidates questions on why they made a particular decision, to understand their problem solving and thought process.
You will be able to determine through the answers if the candidate is simply “going through the checklist” or able to think deeply about the problem at hand.
My two recommendations are:
An interview of Jessica McKellar, which I attribute to as “THE” article that pushed me over to try the management path (Link is at the bottom).
The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change is probably the best first book for anyone looking to move into a management role in Software Engineering, as it talks about the shift in mindset, the challenges, as well as what the future senior management roles look like.
Apart from technical skills, one very valuable skill that will come in handy is the ability to communicate to any audience in both written and spoken form.
As you become more senior, you need to be able to communicate technical information to your team, fellow engineers, senior engineers, and non-technical team members in a way that they can all understand.
Of course, we shouldn’t expect non-technical team members to understand the same things as technical team members, but you should be able to tailor the message to your audience to achieve your desired outcome.
Many people underestimate the need for this skill, and suffer when they become more senior and need to communicate with more and more people.
One aspect that I like about working at Carousell is the ability for me to pour through technical documents and use that as a learning opportunity to understand problems and how people solve them. When time permits, I would also look at pull requests by different Engineers working on different problems to see what they are working on, and what challenges they are facing.
Most of my front-end team members in the past were really surprised when they heard that I have read their PRs and can understand the challenges that they have gone through, as they know that I am primarily interested in backend development.
And of course, I periodically code on some side projects when the mood strikes to try out a new programming language or when I have some personal needs to automate things in my life.
One of the hardest challenges is actually to start the recruitment process for a new team in a new location, and doubly hard if you have a product that isn’t available for use in that market, eg. Carousell isn’t available in India at the moment.
To overcome that, we had to double, and triple communicate our achievements, interesting challenges, and the company's potential to the candidates, in order to have a chance to attract them from bigger companies.
For Carousell, we were lucky enough to have tools that supported team members from various locations since the beginning, so we didn’t have to customize our workflow to support new team members in new locations.
During the early days, our backend services will always go down during our peak traffic timings as the database wasn’t able to scale up properly. Fortunately, we managed to hire our first senior software engineer who promptly came in, investigated, and resolved the issue. This was primarily due to the lack of experience when it came to scaling services at a larger scale, and I still remember watching in awe on how the engineer was able to solve the problem so quickly.
This was the interview that Victor mentioned: An Interview with Jessica McKellar
Isn’t it frustrating to apply for a job without knowing the salary band of the company beforehand? We aim to empower you by making salary information more accessible to the people via verified data.
Contribute your salary anonymously today, and let us help you make smarter career decisions.
Click on the button below to do your part in putting an end to the opaqueness here in Singapore!
Follow us on Telegram (@nodeflairsg) for the latest Tech Insight, Reads, Salaries & Job Opportunities!