Phirasit (right) at Agoda Programming Competition 2019 award ceremony with Idan Zalzberg (VP, Data)
Phirasit Charoenchitseriwong won the first prize at Agoda Programming Competition 2019 with a perfect score when he was a final year student at Chulalongkorn University. In 2020, he joined Agoda right after graduation as a Software Engineer in our Bangkok office.
We chatted with him about his Agoda experience and his competitive programming journey.
What happened after the programming competition in 2019?
I had a chance to speak with Levon Ter-Isahakyan (ex-Director of Engineering, lead organizer of the competition) at the award ceremony, and we got along. So he asked me if I wanted to join Agoda. After the event, a recruiter got in touch. I was in my final year at school, so I was pretty busy, but after a few months, I interviewed with Agoda. It happened within only one day, with a few interviewers asking me how I’d design a system or find solutions. And then I got an offer. I’m not sure if that was because I was fast-tracked. But it was quick.
This is my first job, and it’s been a year now. So far, I like the team and the way we work here.
What do you do at Agoda?
I work on technologies for the Partner Development team. Our main task is to provide tools to our Partner Development colleagues to work faster and smarter. I got my hands on building the integrations with external software, e.g., a CRM that has helped us save time from manual uploading while also providing real-time updated data. I also helped build an internal system that generates a list of partners we’d prioritize in a given campaign from the partners’ database.
Outside of my scope of work, I’m also part of the Codegoda 2021 organizing team. It’s exciting to be on the other side this time.
Tell us about your competitive programming journey.
I joined a programming club in junior high school, and that was when I started writing codes. Since then, I’ve participated in competitions, big and small, local and international, out of fun. It became my hobby.
One of the most significant events I took part in was the International Olympiad in Informatics in 2016, where I won a silver medal. As a high-school student, I was inspired and became more confident that I’d like to continue on the programming path.
What have you learned from competitive programming, and how does it apply to work?
Coding at work and in competitive programming is very different. When you compete, it’s like you scribble with code because you need to do it fast. Chances are, other people won’t be able to understand your lines of code. But in the real world of work, you must make sure it’s clean and readable because people need to review your code or develop them further.
But competitive programming has trained me to work in a time constraint and see a problem from end to end, including the steps to solve it.
It’s 1 or 0. There’s no “almost there”–you either get the correct or incorrect result. That seeing-through mentality sharpens how you approach a real problem.
What makes a good competitive programmer? Do you have any advice?
First and foremost, a person who likes to solve puzzles, and second, can code. Coding well is another thing. Programming languages are like other languages—it’s meant to express what’s on the user’s mind. So, it also takes some skills to be able to code well. Then, if you know a few programming languages, you can pick the suitable one for a specific problem, bearing in mind the pros and cons of each one. For example, if you write in C or C++, the program may run faster, but it’d take you shorter to write in Python. There are all these micro-decisions along the process.
But I believe that practice makes perfect. The more problems you’ve seen, the more patterns you recognize. The more code you write, the better you understand how each language can favor you. You’ll also realize that it takes you less time to read and understand a question, and that’s already a head start. Competitive programming is like many other things: you’ll get better at it if you keep doing it.
So my advice is – enjoy coding.
Enjoy competitive programming? Check out Codegoda, a programming competition by Agoda.
Lead/Staff Software Engineer – Android (Bangkok based, relocation provided)