So you’re interested in joining SuperAwesome.
You probably already fell in love with our mission – “Making the internet a safer place for kids” – and our values, and you might have read how last year we ranked as one of the fastest growing companies in UK. You know that investors believe in us, that we’re really innovating the kidtech industry, and that over 250 companies use our technology to ensure safe digital engagement with kids around the world.
The good news is that we’re always looking for great engineers – and the other good news is that I’m here to help to familiarise you with our hiring process.
Firstly, what is unique about developing ‘kidtech’ or technology built for the kids industry? A few things:
- Being mindful of adult engineering bias
- Thinking about ‘zero-data’ as default (rather than ‘profile everything’ as default)
- Thinking about the law and code together. Data privacy legislation for kids is changing. In Europe, we have GDPR-K and China is also introducing new laws. Our technology has to ensure our customers are compliant.
- The need to work with partners who need educating
- More problem-solving than normal. We’re building much of the kids internet and there are a lot of challenges to solve
- Thinking about our end users, kids. Keep security, network usage, and unpredictability in mind.
What’s our hiring process like?
Our hiring process consists of three steps: a code test, a video call with our engineers, and an onsite interview in our London office right above the Covent Garden tube station (we also have offices in New York and LA, but all of our engineering is in London).
We tend to be quite swift, and on average the whole process takes no more than five working days.
The code test
As an engineer at SuperAwesome, your day-to-day will consist of working on complex problems at scale together with your teammates (e.g. moderating ad creatives seen by millions of young eyeballs, implementing digital curfew features to take into account multiple time zones, identifying child behavior without collecting any data on the user etc) and our code test reflects that.
You will be given two hours to complete two coding assignments and review a piece of code a hypothetical team member might have added to a pull request.
Once we have received your submission it will be reviewed by our engineers. It will take us a couple of days to come back to you (depending on the workload at the time). Even in the case of a negative result you will receive feedback, so you can leverage your experience with SuperAwesome as a training experience and re-apply in the future.
What success looks like
We ask for production-quality code that you would be confident and proud of pushing live.
A good submission not only accomplishes the task but is resilient, performing, and easily maintainable by anybody in the team (read: automated tests, edge cases, error handling, good separation of concerns, good runtime and space complexities).
Details are important, and you should treat your submission as if it were a pull request ready to go live and serve millions of users. A good code review points out the flaws in the code and suggests a way forward to reach the quality we want to ship that code to production. We want to see you doing your best to help a colleague in pushing something over the line.
Preparing for the code test
The assignments are challenging but you can do it if you focus. You should allocate yourself two full hours for the code test.
Make sure you have everything set up on your computer – you don’t want to spend time configuring the IDE, updating the Android SDK, or setting up a new project.
Refresh your algorithms and datastructures knowledge. The code assignments are definitely solvable with basic structures but having a good grasp on CS fundamentals will help your submission stand out. Practice makes perfect! Get yourself used to resolving complex problems in a systematic way.
The video call
The second step of our hiring process is a video call with our engineers (usually one or two). It will all start with a quick informal chat to get to know each other, and to discuss your current situation and why you want to join SuperAwesome.
The interviewers will then ask you to share your screen and run them through the code test. We want to know the train of thought behind your choices, what options you considered, what would you have improved if you had more time, or how would you evolve the code should the requirements change.
Preparing for the video call
You’re going to talk with engineers who are familiar with your code test, so you should master your ground and know your code. Dive into the concepts behind your choices – why did you choose that specific data structure? Why did you test that case?
Review your submission after some time, or ask a friend to review it for you. You will always find ways to improve it, and the interviewers will love to hear your thoughts.
A great candidate is also someone who understands our business and the environment we’re operating in. Research our products, read how we think about making the kids internet safer. Try to draw parallels between the problems in the code test and our products. For example, when would you encounter a problem like the one you solved with your submission?
Communication is key not only on the technical side. Practice introducing yourself in a reasonable amount of time. We’d love to hear what you have achieved in past roles and how it helped your team and the business.
Be punctual. Our video calls happen over Zoom, so set up your computer upfront and have your code test ready to be shared. If you can’t organise conferencing software, we’d be nervous about setting you loose amongst our code!
The onsite interview
At the final stage we will finally meet in person. You will be invited over to our London office, and you will spend a good amount of time with some potential colleagues.
This is your chance to interview us as well, get to know the people and the environment, and ask more about the role or clear any other doubts you might have.
The onsite interview will be a combination of in-depth technical, cultural and behavioral type questions with our product team. The purpose of this interview is to assess your ability to describe and build software systems at scale, together with your teammates.
You will go through two sessions: a system design/architecture interview and a cultural interview. The overall time needed is usually ~3 hours, including breaks.
In the system design/architecture interview you will be asked to describe a system you know and/or design a system to address a specific business need. We expect you to have an overall picture of the system end to end and to be able to deep dive on the part of the stack in your area of expertise.
You will be given a pen and a big empty whiteboard, and the more boxes and arrows we see at the end of the session, the better!
You might want to ask us about our legendary swarm weeks, or what idea won the last quarterly hackathon, or who was awarded the last GSD award? (You might also want to know what the GSD Award is).
Preparing for the onsite interview
The onsite interview is probably the most difficult to prepare for as there’s no right or wrong answer to many of the questions you will be asked.
Try to bend what you know into something more similar to what you’ll be doing at SuperAwesome and ask yourself what you would change if your current system’s users were kids?
Remember, there’s no right or wrong answer, it’s matter of choosing a good trade-off and explaining the rationale behind it.
I hope you found all this information helpful – and if you got to the end of this long post, you’re already on the right path for joining our team. Now it’s just matter of applying for the position that best suits you. I wish you luck and I look forward to making the internet a better and safer place for kids, together!
Piergiorgio ‘PG’ Niero is Head of Engineering at SuperAwesome.
Interested in working with PG at SuperAwesome?