Ownership:
All about ownership at Agoda. The management have faith in a bottom-up management style. This means as an engineer I still have the trust and belief from management to suggest and work, and live MY ideas. Not only is this OK – it's actively encouraged.
I just cannot see a situation at Amazon where I go to Jeff Bezos, "Hey Jeff, let me rewrite your whole taxation engine." At Agoda, that's nearly the reality. Management worked with me on my idea, suggested changes, put me in charge, I chose the team, and... OK, I was a little late, but the project was hugely successful and made us a tonne of money! Really, really satisfying.
Technology:
Agoda surprised me. I didn't think their technology base was that impressive on joining; I quickly found out this isn't true. Kafka, Cassandra, Vertica, Hadoop – it's all part of the repertoire.
In my time at Agoda, not only have I been exposed to a heap of technologies that ordinarily wouldn't come across, but I've done the research and made the suggestions myself. I've learned Java, Scala, Python, R in addition to the tech I already knew.
Business:
I've always worked in small enterprise companies – basically, they pay well. Agoda is the first big company I've worked for. If big companies are like this, I'm not working for a small company ever again.
Agoda has exposed me to the business; I make business decisions. Whether to prioritize issue A or issue B, it's actually up to me. Now, I'm not making choices like buying companies or where to create the next datacenter, but... I can decide that working on the maps will increase conversion and create a whole heap of new features about maps and work on them. I just have never had that level of autonomy at another company.
Thailand:
Living in Thailand is awesome. I cannot begin to compare it to my life in London. Everything is cheap, everything is accessible, people are wonderful. This, for me, is a major bonus!
Ordered chaos! Agoda is growing very aggressively and still growing at a high rate. This means that sometimes we're unable to clean up the code as much as we would like. This is kind of frustrating. I do understand it's a function of a successful company, but at the same time, it would be really good to find more time to do some of the clean-up work.
Testing
I know I shouldn't say this, but Agoda tests so much. Every line of code we have tests for.
Honestly, I don't enjoy testing. I totally see the value in it, and we have way, way fewer problems than when I first joined. But testing is boring – I want to code more.
Communication Downwards
Agoda is really big, and I know the bosses try to make sure there are opportunities to talk with senior management. Our CEO, Rob, will fill a movie theatre and let us know what is happening, but it would be much cooler to have this more often and from other people.
Continue to let engineers make more decisions.
Hire more QA staff so I don't have to do the testing.
More technology, please! I loved my Kafka project, and running Scala in Apache Spark is way cool. But I've finished that now. I need a new toy, so find me the next big thing.
Not enough exposure to senior management. I know who the CEO is, but what's important to him? Does he think IT is doing a good job? What about the CMO? How is he benefiting from the changes that we've done?
The interview began with a LeetCode problem round, which served as a good gauge of technical and problem-solving skills. It was a medium-level problem.
More specific questions on system design (how to design systems with high load scalability) Competitive programming (about basic data structures and algorithms, e.g., binary tree questions, Union-Find, linked lists).
After my failed interview for a Software Engineer position at Agoda, I was disappointed and tried my best to pinpoint what could have gone wrong. However, my destiny was totally changed a few days later. After receiving that rejection email, another
The interview began with a LeetCode problem round, which served as a good gauge of technical and problem-solving skills. It was a medium-level problem.
More specific questions on system design (how to design systems with high load scalability) Competitive programming (about basic data structures and algorithms, e.g., binary tree questions, Union-Find, linked lists).
After my failed interview for a Software Engineer position at Agoda, I was disappointed and tried my best to pinpoint what could have gone wrong. However, my destiny was totally changed a few days later. After receiving that rejection email, another