Sparkbox is an amazing place to work. They have a long interview process to ensure you’ll contribute positively to the culture as well as to the technical landscape. Having recently gone through the process of looking for jobs, I want to take a look back and share some of the things I learned.
This article will mainly be geared toward developers who have already had some sort of professional experience, whether it be through another company, an apprenticeship, or as a freelancer. I am going to talk a bit about resumes, deal breakers, and tips for interviews and coding challenges.
For those looking to gain professional experience, you should read Nathan Rambek’s article on starting your career in web development.
Prior to Sparkbox, I had been developing for a small company for almost 7 years. I had my foot in the door before there was even a physical door at this company. That meant there was no formal interview process when I became the company’s first employee. It also meant this recent season of interviews was a first for me.
During the process, I noticed a lot of similarities in how companies did their interviews. But before I get into those similarities, let me share some pre-job application prep-work I found helpful.
Before You Apply
Fine-tune Your Resume
Lindsay Silver already wrote an amazing article called “How to Apply for Web Development Jobs” that you should definitely read. It includes tips on writing your cover letter and resume and negotiating salary.
Have Both Developers and Non-developers Look at Your Resume
Having someone inside the industry review your resume will help you highlight your experiences. This type of reviewer will know the jargon and help you add it where appropriate. Having a good writer outside the industry that you trust to review your resume will also be helpful. They likely haven’t been living in the web developer ecosystem like you have and are more likely to spot oddly worded phrases and buzzwords that have little meaning outside the industry.
Do Not Fluff Your Resume
When I asked for advice on how to shape my resume, Justin Schroeder, a mentor of mine and the senior engineer at Braid, mentioned a trend in applicants listing technologies they weren’t truly comfortable with. He said, “if I see a technology on an applicant’s resume, I feel it’s fair game to give a whiteboarding challenge on it.” In other words, if you aren’t comfortable explaining a language without Google, I’d advise not putting it on your resume.
If you’ve taken a tutorial or had some small tangible experience in a new technology, you can mention it (with the appropriate caveats) once you have your interview.
Know Your Deal Breakers
Make a list of what’s essential to you and your “deal breakers.” This part of the process was critical for me. Making a list of what you want in a job helps you focus your time applying to places you think you’ll love and minimize your time applying to jobs that will just be “okay.”
Applying to different places can easily turn into a full-time job if you let it. Here are some questions you should ask yourself:
What’s the least you can take for compensation?
Lindsay’s section on salary negotiation is helpful here.
Why are you a web developer?
I was asked this question before starting the interview process, and it made me realize what about my job was meaningful for me. It helped me shape my motto as a web developer: “I want to help people, and I want to be creative.” This helped me narrow my search to companies who had the drive to help people with their services and were creating a product that inherently helped people. What’s your motto?
What are things about the company’s culture or values that resonate with you?
What type of people do you want to be working with? Every company has goals. How closely do they align with yours? Sparkbox’s motto to “build a better web” includes a high emphasis on education and contribution to open source. They value respect, professionalism, and quality, and that meant a lot to me.
Do you want to relocate, stay local, or work remotely?
As for me, I wasn’t willing to relocate because I was not going to say goodbye to my foster daughter. Harrisonburg, Virginia also isn’t what I’d call a “tech capital.” There is however an awesome co-working space that I work from called The Hub. Remote jobs seemed to be the best fit for me. You’ll want to prioritize what makes sense for you.
Your Interview
Now that you’ve made a list of things that are vital to you and your resume has been sent out, let’s talk about the interview process.
Personal Interview
For most of the companies I applied to, they started with a “let’s get to know you” interview. Luckily, if you already vetted who you apply to, the company will likely be a good fit for you. Still, it’s hard not to be a little anxious. These are some things that really helped me stay calm during this initial interview:
If you’re going to be interviewing remotely, as best you can, go to a place that’s quiet and that you’re comfortable with. I noticed that I was more anxious taking calls in places that I wasn’t able to freely walk around. Go to a familiar, comforting place. Also, preferably, somewhere that you know the wifi is good.
Prepare before the interview by taking some time to calm your nerves. For me, a few minutes in prayer or meditation can clear my mind and make a big difference in how naturally my conversation will go.
If it helps you, do some power poses to build your confidence.
Technical Interview
After getting through this first round, you’ll likely move right onto a technical interview. Here are some tips for live vs. take home coding challenges:
Live Coding
By its nature, live coding is intimidating. You should take the same steps you took in your first interview to calm your nerves. Remember, you know this, and the interviewers don’t expect you to have mastered everything. As you go, it’s important that you communicate what you’re doing, especially when you run into a snag. For example, you could say something like these:
“I’m having trouble getting this data to the frontend. I’m going to check the network tab to see if I’m receiving what I’m expecting.”
“I’m going to utilize a debugger here because what I’ve expected up to this point is correct.”
By processing things verbally, you show the interviewer how you work through problems. You turn bugs into opportunities for discussion.
Take-Home Technical Challenge
The second type of challenge, which I found most common, was being asked to create an application within a certain time frame at home.
The coding challenges I was given all utilized some kind of free API like the Pokemon API or Movie DB, for example. I was then required to make an app with a framework of choice. In my case, I used React.js. Each app was required to have a list view, a single view, and to make some sort of additional requests (like searching, pagination, or sorting).
Based on the feedback I was given, what helped my app stand out was:
If your coding challenge is in React.js, create-react-app is an amazing tool. Because of its simplicity, it’s extremely popular. It skips a lot of the setup and configuration that is often difficult for beginners. However, this simplicity robs you of an opportunity to show your expertise. No matter the framework, some ways to stand out include:
Use your own Webpack configuration or use Gatsby, Next.js or Razzle
Make aliases for your directory structure
Use CSS in JS or CSS Modules
Use a typing system like TypeScript or Flow
I found it’s usually not as crucial which tools you use but rather why you use them. Document your decisions. If you used React.js, Vue.js, Rails, or any other framework for that matter, describe what you like about it. One way I documented my decisions was structuring my README in this way:
3rd Party Tools Utilized
Tool - Explanation
Coding Decisions Made
Decision - Reason
Instructions
Final notes
Treat your code as if you are already on their team. This means thinking through how readable your code is and treating it as if another developer would be taking on the project after you. To do this, you should do the following:
Make comments in your code
Use linters
Decide on a coding standard and follow it
Make frequent and clear git commits to show your progress in building the app
If you’re a good designer, flaunt it. Make sure the end product looks good. You could use a design system to help get you started. You can also use a grid system like those found in Bootstrap or Material UI.
It’s likely that you won’t have the time to add every bell and whistle, but it’s important that you finish the requested functionality before adding any extra functionality. Sparkbox made it very clear what the expectations were for the task, and they listed out what they’d be grading on.
After Your Interview
Sparkbox was very good at giving feedback quickly. Other places were much slower. When you turn in your project, ask for an expected timeframe of when you should expect to hear back. If you are not given a clear timeframe, give it a little bit of time as they may just be busy. I’d say after two weeks of not hearing back, you could ask for an update.
When you do land your next job, let the other companies you were interviewing with know. It shows a respect for their time and is just plain good etiquette.
I hope you found this helpful, and I wish you good luck in your search! To sum things up, fine-tune your resume—but just as importantly—your desires. Take the time to recognize what you want out of your next job. Throughout the process, just remember to stay calm, represent yourself honestly, and apply to companies that align with your values.