The ASOS Tech Blog
Published in

The ASOS Tech Blog

The Dreaded Technical Interview

The ASOS technical interview explained.

A quick search will show that terrible technical interviews are fairly common. There are horror stories where a candidate is expected to write perfectly compiling algorithm code on a whiteboard, observed by a room full of people — X factor style.

At ASOS, we really don’t think this is a good process

Whiteboard coding — why tho? (Image Credit dev.to)
  1. In many businesses, you rarely have to write sort algorithms or other ‘low level’ code — it’s more understanding principles and how to apply pre-existing packages.
  2. Day to day, you don’t write code on a whiteboard. In fact, I can’t think of any one time this was a useful activity. We use our IDEs, packed full of tools, shortcuts and macros to help us.

Whiteboard tests are supposed to take you out of your comfort zone and work as an aptitude test, and act as a benchmark for the interviewers to compare candidates — but we feel this really doesn’t assess abilities in a way that shows off practical skills learned on the job. We’ve learned to be experts of our IDEs rather than freehand (Knowing the Tools and Why It Matters) and for personality types who are more introvert, the whole process isn’t going to do them any favours.

You could miss out on a fantastic candidate because of an unfair interview process that puts undue pressure on someone in an unrealistic scenario.

The ASOS Interview Process

At ASOS, we know that engineers are in high demand, and we want to make the interview as slick as possible. We break this up into a few simple steps :

The Intro Chat

The first part of the interview process is a fairly informal chat — we’ll use Microsoft Teams for this.

We’ll tell you about ASOS, how we’re organised and the way we deliver software— this is very much an introduction and getting to know you stage to make sure the job is what you expect and something you want to pursue. You’ll be speaking with an engineer or someone else from ASOS that you’d consider a peer, so feel free to ask any questions you might have about our working practices.

As part of of the chat, there may be a few high level technical discussion points about different areas of the engineering discipline, such as testing or devops practices, but these will just be conversational and you won’t be asked to explain the internals of .NET garbage collection in intricate detail.

The call will last no more than 30 minutes — at the end of it you should be clear that the job is something you’re interested in and you’d like to proceed to the technical stage.

The Technical Stage

After the intro chat, a time will be organised that is convenient for you to take the technical test. We know you’ll probably have to take time from your current job or other obligations, so we’ll be as flexible as possible to accommodate you.

There are two varieties of this :

  1. In this version, we give you the solution files — you spend some time when you’re able to solving how you see fit and send it back when ready. We’ll give you a brief and ask you to timebox yourself — you work on your own machine, at your own pace and without any observers.
  2. In this version, you’ll pair with the technical interviewer — while not exactly Driver Navigator, it’ll be a version of that. You’ll be doing all the driving, you can ask any questions you like and you’ll get some input from the Navigator— they won’t be as proactive as a regular pairing partner, but they’ll give you hints and nudges to ensure you succeed

The test you’ll take depends on the role you’re applying for and your personal circumstances — we work that out with you when moving to the technical stage.

In both cases, we think giving you something to solve that you’re likely to have to deal with in your day job is a sensible thing to do and a fair assessment.

Depending on the area you’re interviewing for, there are different types of tests. For example, there are machine learning / front end / back end flavoured tests — but in all cases we’ll give you something that’s real world to the position you’re interested in

Driver Navigator Pairing (image credit — Martin Fowler)

For the driver/navigator scenario, if this is being conducted remotely — then you can use whatever IDE you like, configured in the way that makes you most effective. The files you’ll be working with will be shared at the start of the process and you can then share your screen.

If you’re visiting the ASOS offices, you’re welcome to bring a laptop to work on (again, so you benefit from a setup you’re comfortable with), otherwise — you can work on an ASOS machine for this.

What’s in the code test?

If you were to take a .NET or Java test, then there’ll be some existing code and it won’t be amazing. It’ll have a number of problems that make it difficult to maintain and make testing complex. This could be something as simple as poorly named and confusing classes, to bad design choices that make it hard to work with from a test project.

We’d like you to perform some refactoring to make the code testable, cleaner and easier to understand.

Either variety of test is timeboxed — we ask you to spend no more than 2 hours on the take away test, and no more than 1 hour on the pairing. If you’re actively searching for a job, then we’re conscious of the time you’re having to invest into each application.

We think letting you work with tools you’re comfortable with, on a real world problem rather than obscure algorithm code gives you the best opportunity to show off your skills. For the pairing scenario, we like to keep this informal and relaxed — although we understand that it can be nerve-racking to have people watching you code.

If you’re just starting your engineering career, then you might find this challenging. That’s totally OK — and if there’s something you don’t understand or need help with, then you can ask any questions you like or the Navigator will give you some guidance. If you need to search for things to help you — you’re welcome to do so.

If you’re a veteran of 1000 refactors, then you’ll likely find your sweet spot and can really demonstrate what you can do.

The Interview Part

After you’ve completed the technical stage, the final part of the process is a standard interview format where we get to know each other a bit more.

Technology at ASOS is large and there are many teams involved, but at this point you’ll be speaking with someone who is recruiting for a particular area. They’ll give you details about the type of tasks you’d be working on, the size of the team you’d be working with, and generally what’s expected for the position being recruited for. You can ask any questions you like about the area of the business and what it’s responsible for.

In this part, you’ll have the opportunity to talk about your history, your skillset, what you’ve been working on and what you’re looking for next in your career. It’s the chance to sell me.com, so come prepared to talk about what you’ve achieved and why you’d like to bring your experience to ASOS.

You would’ve had a high level introduction to technology at ASOS during the intro chat, but now we’ll talk in a bit more depth and answer any questions you have — we can talk tech stack, what new features we’re planning and explain what would be expected of you day to day. We want you to be excited about the job and make sure it’s the right fit for you.

We’ll also ask you some questions that align with our core values, which are:

Authentic — We act with integrity — committed to being our best.

Brave — We’ve been bold and ambitious since the start– it’s in our blood.

Creative — We have a curious and adventurous spirit — it’s who we are.

Disciplined — We work smart — planning and preparing for greatness.

Have a think about what you’ve achieved in your previous roles — how could you demonstrate these values to us?

While this stage is a more back and forth chat, there may be one bit of paper or whiteboard based activity. You may be asked to draw something you’ve worked on — this can be any system you like — we’d like to see you explain the moving parts and describe the system to us

We’re not expecting a work of art — some boxes, circles and arrows will be fine — a simple drawing to help explain how something works. NB: If the interview is remote, this may be a digital whiteboard in something like Microsoft Teams, depending on technology.

Draw and Explain a System (ImageCredit hackerrank)

We don’t think that writing code on a whiteboard is a good use of time — but being able to explain something to someone who knows nothing about it, that’s a valuable skill and something we think is a useful, real world activity.

Finally, you can ask us any questions you like. Have a think about what you’d like to know about ASOS, the role and responsibilities, and how you’d fit into the organisation.

Done!

That’s it — no more stages, no second interviews and we’d hope at this point both you and ASOS will know if the job is a good fit. After the interview stage is finished we’d like to complete and either make you an offer or otherwise give you some feedback on why we don’t think the role is right for you. This will happen quickly — ideally the next day or 48 hours.

Even if you don’t get the news you wanted to hear, we want the interview process to be a positive experience for you and for you to take away guidance that will help you in future interviews - you’ll receive written feedback from us that we hope will help.

Sound good? Think you could smash it? ASOS is hiring across a range of roles, see our open positions here. We’d love to hear from you!

About me

I’m Dylan Morley, one of the Principal Software Engineers at ASOS. I primarily work on the back-end commerce APIs that enable our shopping experience.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store