Nailing Your Software Engineering Interview at OY!

Nikolaus Indra
OY! Indonesia
Published in
6 min readApr 1, 2021

Our vision at OY! is to enable everyone to have access to world-class financial services and we started on it by building an extensive payment infrastructure that enable individuals and businesses to send and receive money simply, swiftly and securely. In order for us to effectively build out this infrastructure and realize the rest of our vision, it is imperative that we attract and retain world-class talents.

We have invested a lot of effort into designing our interview process so that it is comprehensive and consistent. Furthermore, we are also striving to remove as many points of biases as possible in the process. To that end, we are publishing this post to provide transparency into our interview process and how we evaluate our engineering candidates.

Who Are We Looking For

We look for problem solvers who are impact-oriented. You do not only seek the best possible way to solve a problem, but also seek to solve the right problem.

We look for people that demonstrate extreme ownership. You own your projects end-to-end from requirement gathering, design documents, implementation to productionizing your code and you get it done no matter what stands in your way.

We look for people who have growth-mindset. You are inquisitive and eager to learn about how everything work from how to write unit test, how to design an architecture that scales to millions of transactions to what our customers need.

Last but not least, we look for people who are passionate about software engineering and appreciate the art of doing it. Building a world-class financial service is a massive technical undertaking and thus, it is important to be able to solve it as effectively as possible.

Our Process Outline

Of course you don’t want to come to interview without preparation, so you can think of this post as your preparatory materials to acing your interviews. We standardize the process for all engineering candidates, regardless of technical function (e.g. web, backend, mobile, etc) as well as level of experience, as follows:

  1. Resume screen
    At a high level, we’re evaluating if you’re a good fit for the role you applied for — there are many amazing, talented people, but not all will be a great fit for OY! (and OY! won’t be a great fit for everyone). So make sure you put all your work experiences in details. We are not concerned with where (or even, if) you went to college as much as your experience and the passion for your work.
  2. A call with our people recruiters
    If we think you will be fit for OY!, our recruiter will contact you to cover high-level questions about what you’re looking for and your background.
  3. Technical + System Design interview
    The environment you will face is a room with whiteboard or laptop — moreover if you are more comfortable with your own laptop, you can bring one to onsite. You should expect to encounter questions along the lines of “How do you build a service that does X?” and how to scale said service.
  4. Coding/algorithm interview
    Currently we feel that this is the best indicator of how good of a problem solver you are. We do not require any specific programming language here. A good way to prepare for this interview is to practice solving questions on websites such as Leetcode or HackerRank.
  5. Culture fit assessment
    Other than technical assessment, we want to assess the candidate whether we share similar values. You could be asked a number of questions such as how you would approach a problem, your motivation on becoming software engineer at OY!, etc. There is no right or wrong answer here; we want you to be completely honest and the best way to do it is by picturing yourself in the aforementioned situation (or perhaps from your past experiences).
  6. A call with recruiter
    So you made it through the onsite — great job! We know it wasn’t easy. Now that you’ve finished the hardest part, you can expect to hear from your recruiter about how things went as soon as possible. We usually get back to every interviewing candidate in less than a week.

Given the nature of our work we’re generally a casual office (within reasonable professional boundaries, of course!). There’s no dress code; we recommend coming in whatever you feel comfortable wearing.

Note: Due to the existing global pandemic, all interviews will be held online through Google Hangout. Make sure you are either plugged in to the internet or connected to a reliable wifi network, and double check that you get a strong cell signal in the location from which you plan to take the call. Make sure to turn on your camera too!

Some things to keep in mind

The goal of our technical interviews isn’t just to see whether or not you can get the right answer, but to test how well you work with others and communicate your thought process. To that end, it is important to consider your interviewer as someone that’s there to help you solve the problem. We understand that no one person can do everything and that’s why we intentionally build our teams to have diverse backgrounds and skillsets. We are more interested in finding out where your boundaries lie than trying to find the perfect engineer.

In summary there are few points that we’d like to point out here — as we will assess these points on each technical interview session:

  1. Communication: One of the most important aspects of the technical interview is your ability to communicate with your interviewer. Don’t be in a rush to jump straight into writing code or solution. Rather, take some time to think about the problem and share your thoughts out loud. It is perfectly acceptable to make assumptions as long as you explain them!
  2. Time Management: While it’s always good to spend time designing the perfect solution, make sure you don’t end up in a situation where you don’t have time to implement it. Keep track of time and give yourself at least half the interview to actually write and debug your code or solution. It’s often better to implement a naive solution and keep working on the optimization in any remaining time than it is to run out of time in the middle of trying to implement an optimal solution.
  3. Testing: is one of basic responsibilities that engineers at OY! have to do. So take time to reread your code or solution line by line before saying “done”. Come up with a few basic test cases and step through your code one line at a time. And make sure you get to the expected answer.
  4. Q&A Session: Our interviewers will leave time at the end of each session for you to ask your own questions. Spend some time ahead of the interview reflecting on what’s important to you whether that is our engineering processes, our approach work/life balance, possible career paths or our technical stack.

We see our interview process as a two-way communication. Therefore, it is the perfect time for you and the interviewer to exchange information as much as possible and as efficiently as possible. You are therefore strongly encouraged to seize this opportunity to speak more about yourself and raise any questions/concerns you might have.

What technologies does OY! use?

In case you’re wondering what technical stacks and the motivation on why we chose them, check out our other blog post:
Technical Strategy Principles at OY!

How should I apply?

We have list of open roles for our engineering team. Do check out our list of open roles at https://www.linkedin.com/company/oyindonesia/jobs/

--

--