Introduction
As an early-stage company, one of our biggest priorities is hiring. Over the last couple of months, we have spent considerable time and effort tailoring our engineering interview process.
Our goals for growing our team are straightforward:
- Grow a diverse and high performing team with a diversity of opinions but an alignment of values.
- Hire smart, effective people that don’t necessarily have all the answers but like process of figuring them out.
- Build a collaborative work environment in which individuals can grow and come to work with a smile on their face 😄 (very important!)”.
If you're considering applying for a position at Userled and want to know what’s in store and how to best prepare, this post is for you!
Overview
A good interview should feel like a conversation, not questions and responses. We have observed that the interview is smoother and beneficial to both parties when the interview process is shared ahead of time. We have decided to outline our interview process here, hoping it can serve as a source of alignment prior to starting the process.
Before we dive in, you’ll notice our open positions are for Product Engineer as we expect our engineers to work across the product stack and collaborate multiple stakeholders, both internal and external. This means we don’t only focus on your technical abilities as we care deeply about your communication and collaboration skills, both written and verbal, as well as emotional intelligence.
The process is as follows:
- Technical chat (45’)
- Live coding (60’)
- System design (60’) or take home challenge (for frontend developers)
- Culture fit (45’)
- Offer
This article will cover the tech chat, live coding, system design and culture fit interviews.
Technical chat
Expected outcome
The introductory call is for us to get to know each other and ask questions about challenges you’ve faced and solved in the past. This helps us assess your technical knowledge and mindset.
Mindset is important as we are a fast-growing, early-stage startup. In our environment there will be a lot of uncertainty that implies taking ownership of tasks and being receptive to constant change which is not necessarily for everyone.
Format
The call lasts 45 minutes and is done remotely over Google Meet. It will be either with me (CTO) or someone from the engineering team.
- Brief introductions on both sides - we’re always particularly keen to hear how you came across us, what prompted you to apply and what you’re looking for in your next role!
- Questions from us - your most impressive projects and biggest wins. We may go deep in a specific area and ask about what you actually did i.e. what your contribution to the project was and how it evolved over its duration.
- Questions from you - perhaps about the product, the team, our culture, our tech stack or the interview process itself. Whatever’s on your mind.
- It’s also a chance to discuss expectations around timelines, location, visas and salary up front.
- Next steps - assuming you're still keen to move forward (which we hope you are) we'll talk next steps!
How to prep
The idea is to form a foundation for a good conversation.
Some of the questions we focus on are:
- What’s an example of an exciting problem that you’ve solved?
- What’s an example of something you’ve done that had a high impact?
- What’s an example of a problem you've had to solve quickly?
- What’s an example of something you’ve learned that you want to bring to Userled?
To get ideas of questions you can ask us about our product and business:
- I recommend reading through our website and blog to get a high-level idea of what we build, how we differentiate, and why.
- Consider why you want to join Userled. We are a fast-growing, early-stage startup. Not everyone will like a scrappy start-up environment and that’s absolutely fine, but it’s a good opportunity to align expectations.
- We also have a product demo we do our best to share ahead of the process. If you haven’t received it, feel free to ask for it.
Live coding
Expected outcome
At Userled, we’re a very small team and we are just beginning our journey. We work closely and collaboratively to find solutions to problems that may be new to us.
While this exercise presents itself as a coding challenge, the core focus in on your communication and collaboration skills when paired with another engineer to solve a problem.
Format
The call lasts 60 minutes and is done remotely over Google Meet. It will be with two members of engineering team. One will lead, with whom you will pair program while another shadows.
The task is designed to be representative of the kind of challenges we face here.
- A quick round of introductions for anyone who is not acquainted
- We’ll give you an initial problem statement to warm up
- We’ll extend it the problem statement with further requirements. This step constitutes the bulk of the interview with about 40 minutes for the coding task overall.
- We set aside 10-15 minutes for you to ask questions before we wrap up the interview.
We use Codeshare as a live IDE:
- You can choose your language of choice to solve the problem.
- Code execution and syntax highlighting are turned off.
- You can take shortcuts and skip boilerplate code as long as you communicate to us why you are doing so. Pseudo code is also fine as long as your thought process is clearly communicated.
How to prep
- Pick a language that you know well. Our stack is Go and Typescript but if your favourite language isn’t one of those that’s not a problem.
- Familiarise yourself with some core data structures.
- Remember to communicate your thoughts rather than sitting in silence or just starting to code without sharing your thought process.
- Relax and don’t hesitate to ask questions or ask for help if you are blocked.
System design
Expected outcome
As a team, we follow an RFC approach to solution design. Most significant solution decisions come with a proposal document and a high-level architecture diagram attached to it. We come together often to think through how we’d build a new feature or product before diving into implementation.
This challenges gives us a chance to simulate this type of high-level solutioning and gives you insights into the types of challenges we solve at Userled and how we approach solving them.
Similar to the previous stage, the core focus in on your communication and collaboration skills when paired with other engineers to solve a problem.
Format
The call lasts 60 minutes and can be done remotely over Google Meet or in-person. It will be with two members of engineering team.
The task is designed to be representative of the kind of discussions where we talk through a potential product idea, think through requirements, technical implications and design the system we’d have to build to power it. It’s the kind of conversation we would commonly have here at Userled.
- We’ll present you with a real product idea a client wishes for us to build where we’ll explain the high level scope of the problem, and let you ask any questions you might have up front.
- We’ll build out a solution, with you leading on the design - ideally focussing on the simplest working solution to start with and expanding on it together.
- We may focus on specific parts of the architecture and dive into technical implications, limitations of our designs, things that could go wrong, how we could avoid or address the issue, etc.
We use Miro for the exercise when done remotely so it’s useful to get familiar with it prior to the task. If in person, we’ll use a whiteboard.
How to prep
- Be sure to clarify and understand requirements before you jump in to solutionising.
- Familiarise yourself with some of the core building blocks of systems and why we’d want to use them - databases, queues, caches, etc. and how you would use them to represent a basic web application? Now how would you extend or optimise it for our specific use case?
- Practice articulating your ideas clearly using visual systems. If you haven’t done a lot of work with web applications and distributed systems, don’t worry, let us know and we’ll guide you through it!
Culture fit
Expected outcome
The culture fit interview is a two way conversation for you to examine whether our team and culture constitute a work environment you would truly enjoy over the next many years, and for us to understand what learnings and values from your past experiences you will bring with you.
Format
The call lasts 45 minutes and can be done remotely over Google Meet or in-person. It will be with myself and my co-founder and CEO, Yann.
How to prep
Reflect on your career learnings and consider the characteristics of a healthy work environment and overall team culture. What would you bring over to from your past experiences and would be disappointed not to find at Userled?
- Values - what do you value most in a work environment?
- Motivation - what drives you? What can we do to support that?
- Learning - what are you interested in learning? Where can we help you develop yourself?
- Autonomy - how do you like to work and make decisions?
Conclusion
Et voilà! It’s all there and we’d love to chat 🤝
We have spent a lot of time fine tuning the process to fit our team, culture and values. This process is focused on communication, collaboration and immerses you in challenges we have faced ourselves so you get a good idea of what it would be like working with us day to day.
We are looking for Product Engineers to join our core team. If these job listings don’t fit your profile, don’t let that stop you from reaching out. You could be our dream match and us not know about it!
Note: we are avoiding remote teammates in the early days. As our team culture is still forming, it’s important to have everyone in the same building. We push for a hybrid model of minimum 2 days in the office a week.