By: Wang Jun Hao
This article was written by a third-year undergraduate who interned with our Tech team in Singapore. He shares his reflections on his internship experience.
I had the privilege to intern as a Backend Software Engineer at Carousell during my summer vacation this year. While it was challenging, it was also where I learnt and grew the most.
I wanted to intern at Carousell, because I wanted to experience working at a “true” tech company where technology is at the forefront of operations. Being an online marketplace platform that provides the technology to connect buyers and sellers, Carousell was exactly what I was looking for. As the most popular marketplace platform in Singapore, it allowed for my work to impact the user experience of millions of people. Also, the office looked very cool :D. Needless to say, I was really excited when I got my offer and accepted it immediately.
Prior to starting the internship, I was quite nervous about what was ahead of me. It was my very first internship and I did not really know what to expect. Will I be able to understand the codebase after having only completed my second year in university? Will I be able to learn well through a remote work arrangement? Will I work well with my team? Fortunately, my team was really understanding and made me feel really welcomed and valued. I was assigned a buddy, Praveen, who patiently guided me through the onboarding process and eased me into my first few tasks. Because of that, most of my fears subsided within the first two weeks! It also helped that most of my colleagues were in their 20s and 30s, which made it a lot easier to relate.
Interning at Carousell was really fun and meaningful. I still remember the moment of pride I had when my first Pull Request got approved and merged! I vividly recall staring at the health metrics dashboard of the service I deployed and hoping that nothing disastrous happened. Witnessing my bug fix deploying successfully was really empowering, and each feature and fix release gave me a motivation boost to work on as many features as I could in the short span of 3 months. And of course, these achievements did not go unnoticed by the team. Carousell has a culture of #kudos-ing others when milestones are achieved, which made these achievements even more rewarding.
Learnings and takeaways
One of my biggest takeaways from this internship is that learning never ends and self-directed learning is extremely important for success in the working world. This is especially true in the technology industry, where new tech solutions are always being developed and we, as developers, always have to keep ourselves updated on the latest tech to stay relevant. Despite having completed a software engineering module in university, there were so many technologies that I have never heard of that Carousell utilises. In my first few weeks of internship, I had to pick up a new programming language called GO, new frameworks like Django, and understand containerisation technologies like Docker and Kubernetes. It was overwhelming at first, but my buddy and my colleague, Dylan, provided useful resources for me to pick them up on my own. I am also really grateful that my team manager, Ketan, was really understanding and allowed sufficient time for me to learn these concepts properly before tackling the deliverables. Looking back, I would say that this was the hardest part of my whole internship, but the value I got out of it — learning how to learn on my own — is immeasurable.
Another thing that I found really interesting is that there often isn’t a single right or wrong way to design and implement something. Coming from an education system notorious for encouraging rote memorisation of the “correct” solution, this came as a bit of a surprise to me. Interns at Carousell are given the autonomy to not just implement a given design, but also to chip in to or even make these design decisions themselves. Towards the end of my internship, I was given a bigger task where I had to design the logic flow and placement of various components myself. Initially, it was daunting and I did not know what to do. After consulting my buddy, I realised that there isn’t a single correct way to do it. At the end of the day, it just comes down to weighing the alternatives on your own, and being able to reason and justify your chosen option.
On a less technical note, I had a wonderful time with the team. The Covid restrictions did not stop us from bonding and enjoying time as a team. My team would usually hold game nights fortnightly, where everyone would come together and play online board games over Zoom while drinking. In the brief periods when Covid measures were relaxed, we took the chance to hang out in person and enjoyed activities like VR games, pizza parties, and durian tasting together.
Throughout the whole company, I could feel that everyone has a passion for helping others, and the community was very inclusive, encouraging and fully committed to our shared mission. At no point did I feel like I didn’t belong here or was incapable of meeting expectations.
All in all, it was a fruitful and rewarding experience where I made many new friends and learnt many new technologies. I am so grateful for having had the opportunity to dive into a huge codebase, learn about it, and improve upon it to create a better experience for end-users.