fbpx logo-new mail facebook Dribble Social Icon Linkedin Social Icon Twitter Social Icon Github Social Icon Instagram Social Icon Arrow_element diagonal-decor rectangle-decor search arrow circle-flat

Preparing for Tandem’s Apprenticeship Code Challenge and Interview

Dominic Bales Tandem Alum

With software engineer apprenticeship interviews starting soon, I want to share my apprentice interview experience along with tips that I felt helped me during the process. The great thing about this role is that it’s for people with little to no previous experience, no matter if you went to college or are self taught. Before taking Tandem’s apprenticeship code challenge, I had been studying web development on and off since 2016.

I originally applied for Tandem’s open Software Engineer II position in July 2019 but wasn’t accepted. I was informed that their apprenticeship role would be opening up within the next few months and that I should keep checking their Twitter for an update. In December while checking Twitter, I saw that they announced that they were now accepting applications.


When applying for the apprenticeship at Tandem, you will be given a zip file which will contain the code challenge prompt in the format of a PDF along with any additional files that are needed to complete the challenge. When I applied, there was a JSON file containing data for the challenge. Your completed code challenge has to be turned in alongside your application.

Tandem’s application period stays open for one week. You’re allowed to use whatever language or frameworks that you are comfortable with in order to complete the code challenge. I chose to use Javascript and React since those are what I’m most familiar with and enjoy working with.

Application Tips

  • Make sure to read the application thoroughly and include your code challenge submission when you apply
  • Download the prompt early so you have enough time to complete the code challenge
  • Provide thoughtful answers to the application questions

Code Challenge

The 2019 apprenticeship code challenge was a plant-watering scheduler. We had to create a program that would schedule dates throughout the week to water certain plants. We received a data JSON file that included a list of plants that were to be watered after a certain amount of days.

I really wanted to try and impress the code challenge reviewers. I started by reading the provided PDF file over and over again to find things that Tandem was looking for.

I noticed that they mentioned a README file, which is a file that introduces and explains your program to someone. They also included that they love testing. So I knew that I wanted to create a readable README file along with making sure that my code was tested.

Searching and reading README files for open source projects on Github is a great way to learn how to create a good README. You can see examples for how to structure the file and what information to include, like explaining what your program does and how to get it up and running. Looking up examples on Github also makes it easy to copy sample Markdown if you’re not familiar with that formatting syntax.

Next, I wanted to make sure that my code was tested. I knew a little bit about testing before starting the code challenge but not enough yet to actually be able to test my code, so I spent some time learning to test on the side. I figured this would be a great way to learn something new and it would be an interesting thing to mention during my next interview when I would be interviewed by Tandem engineers.

Since I was using React on my code challenge, I spent some time looking into specifically testing React components. Some resources I’ve found helpful with testing React components are:

Since Tandem is really transparent with their interview process, I knew that the next step after the code challenge was a video call interview where I was going to walk through my solution with Tandem engineers. So while going through the code challenge, I wrote notes about anything new I learned, what I found interesting, and any problems that I faced in order to guide my conversation.

This was really helpful since I had found an interesting problem where my program wasn’t working on my iPad. After doing some debugging I found out that Safari didn’t like that I was using a Javascript function called .flat() so I went ahead and removed it and created my own .flat() function.

Code Challenge Tips

  • Find things Tandem mentions within the code challenge PDF and spend some time focusing on those things (for example, they mention README files and testing so I spent some time on making my README file readable and adding testing to my code)
  • Try to learn and implement something new
  • Take notes of things you found interesting or problems that you had

Code Challenge Review Interview

The next step of the interview process was a video call with two Tandem engineers where I walked them through my code solution. At this point I felt very confident in being able to explain my code, since I had a list of notes that I had taken while going through the code challenge.

I decided to do a mock interview with help from family and friends to boost my confidence even more and to gauge how long it would take me to walk through my code. It went very bad: I found myself jumping all over with my explanations. And for some parts of my code, I couldn’t explain why I decided to solve a problem the way I did.

After those mock interviews, I felt my confidence drop fairly quickly. Reading my code and writing down my reasoning behind the decisions I made really helps me explain my code to others. I read and re-read my code until I had a list of bullet points so I could explain my code to someone with no programming experience.

Once I felt confident again, I decided to do another round of mock interviews. This time it went great! I was able to easily explain to my friends in a straight-forward manner what my code was doing.

Looking back at my whole apprenticeship interview experience, writing out my code and reasoning behind my decisions was one of the best things that I did to prepare for that upcoming interview. It really helped to keep my mind focused and to be able to explain my code in a step-by-step manner. When it was time for the video call, I was still nervous but that was more about being on video than the actual code walk through. I felt very confident and in control walking through my code and explaining my reasoning behind my solution and problems that I encountered.

Code Challenge Review Tips

  • Share and explain an issue you had and talk about it
  • Share and explain something you found interesting
  • Do a mock interview with family or friends
  • Review your code and get comfortable explaining what it does and why you implemented it the way you did

Final Interview

Finally, I made it to the final process of the apprenticeship interview which was an in-person interview where I would have three pairing sessions (in 2020, the final pairing interview will be conducted virtually). Before my interview, I was informed about how the day was going to play out and who was going to be interviewing me during each session. Knowing this, I had spent time reading through each person’s biography that is listed on the Tandem website, along with any blog posts that they may have published. I found this helpful for two reasons, one being that I ended up feeling more comfortable going into those meetings now that I knew a little bit more about that person and two being that it could potentially help with connecting with that person.

The next thing that I personally found helpful was coming to the final interviews with questions already prepared. I spent some time going over the Tandem website looking for things I found interesting or had questions about to make sure that I had enough questions to last me throughout the day. By having some questions already prepared you’ll be able to focus more on the pairing sessions than you would trying to do both, coming up with questions and solving problems. Having already gone through the final interview process, I know that it can be very draining so preparing beforehand will definitely help through the final process.

The final tip that I have is to focus on each part of the interview process step by step. When I first started going through the apprenticeship interview I only focused on where I was at currently, so when I was doing the first coding challenge I was only focused on the coding challenge and once I found out that I would be moving forward I started preparing for the next step.

Final Interview Tips

  • Research things about Tandem
  • Research things about the people who will be doing your onsite interview
  • Prepare questions beforehand
  • Listen and try to come up with questions while being interviewed
  • Go through the interview process step by step

Overall, try to relax, have fun, get creative and don’t be afraid to ask questions during the process. Hopefully I’ll get to meet some of you all in the future, good luck!

Learn more about Tandem’s Apprenticeship Program

Let’s do something great together

We do our best work in close collaboration with our clients. Let’s find some time for you to chat with a member of our team.

Say Hi