Team

How to Prepare for our Associate Software Developer Position

June 30, 2023
How to Prepare for our Associate Software Developer Position

For over 4 years, Michi­gan­Labs has hired Asso­ciate Devel­op­ers who are typ­i­cal­ly in col­lege or are new to soft­ware devel­op­ment. Our goals have always been to help men­tor them, treat them the same as any oth­er team mem­ber, and have them direct­ly con­tribute to projects we’re pas­sion­ate about. As we’ve improved our inter­view­ing process­es over­all and are being more open about how we hire, I want­ed to share this post in col­lab­o­ra­tion with Rohit Kartha, one of our newest 2023 Asso­ciate Devel­op­ers. We’ll be look­ing at high­ly action­able advice, tech­ni­cal­ly and behav­ioral­ly, for any­one look­ing to apply to our Asso­ciate pro­gram in the future, and what they each mean to us inter­nal­ly. Rohit will start us off with behav­ioral prep advice, and David will respond.

Behav­ioral prep #

Rohit Kartha — Asso­ciate Soft­ware Developer
Dur­ing the inter­view process, and typ­i­cal­ly before any tech­ni­cal inter­view, behav­ioral ques­tions are asked to get a bet­ter under­stand­ing of the appli­cant and assess their fit for a role. In my opin­ion, answers to these ques­tions are best unpremed­i­tat­ed. In oth­er words, it’s a good idea to think of what types of behav­ioral ques­tions might come up, but prepar­ing a script or mem­o­riz­ing exact respons­es to com­mon ques­tions should be avoid­ed. I usu­al­ly aim to keep this por­tion of the inter­view casu­al and con­ver­sa­tion­al by know­ing broad­ly what I’m going to say, but not how I’m going to say it. There are count­less blogs that con­tain pop­u­lar behav­ioral inter­view ques­tions that might be worth­while to look at. It’s a great idea to have a cou­ple of talk­ing points ready for these com­mon questions.

David Craw­ford — Soft­ware Developer
There’s no ques­tion that the longer your career is, and the more expe­ri­ences you’ve had, the eas­i­er behav­ioral ques­tions are to answer both nat­u­ral­ly and with lit­tle prepa­ra­tion. Behav­ioral ques­tions are best answered with sto­ries that exem­pli­fy what­ev­er the answer to the ques­tion might be. That being said, for our Asso­ciate pro­gram, we under­stand that this could be your first job and that you like­ly haven’t worked in soft­ware devel­op­ment before. So how can you draw from expe­ri­ence with­out hav­ing experience?

Hav­ing a port­fo­lio of projects done on your own can help bridge this gap. When asked about how you deal with chal­lenges, use the chal­lenges you’ve faced on your own per­son­al projects. We also rec­om­mend using school as exam­ples, such as detail­ing how you nav­i­gat­ed a dif­fi­cult group project, or a tight dead­line. Every­thing you expe­ri­ence in life con­tributes to your behav­iors, and that’s pre­cise­ly what you should draw from dur­ing a behav­ioral interview.

Rohit’s advice about keep­ing the inter­view casu­al and con­ver­sa­tion­al is impor­tant. Our goal isn’t to ask you trick ques­tions, but to have a con­ver­sa­tion about who you are. Be hon­est about your strengths and weak­ness­es, and be able to artic­u­late how you man­age them.

Prepar­ing for the Tech­ni­cal Inter­view #


The Michi­gan­Labs tech­ni­cal inter­view helps us under­stand how you approach prob­lems. It involves a prob­lem that can be real­is­ti­cal­ly solved in day-to-day devel­op­ment. We want to know if you have enough of a foun­da­tion to under­stand and apply data struc­tures, and that you can com­mu­ni­cate your thought process to us.


Although the thought of a tech­ni­cal inter­view might seem intim­i­dat­ing at first, there are sev­er­al resources out there to help pre­pare for a cod­ing inter­view. Here are some that I per­son­al­ly used before inter­view­ing with MichiganLabs:

Leet­code — The wide­ly known plat­form, with over 2500 cod­ing inter­view prob­lems, is a great way to prac­tice work­ing through the types of ques­tions asked in a typ­i­cal tech­ni­cal inter­view. Tak­ing a data struc­tures and algo­rithms course before com­plet­ing prac­tice prob­lems on Leet­code is extreme­ly ben­e­fi­cial, as sev­er­al of the prob­lems are based on the usage of basic data struc­tures. When com­plet­ing prob­lems, it is often impor­tant to look for pat­terns rather than com­plet­ing prob­lems in a ran­dom order. Leet​code​.io is a great resource for focus­ing on com­mon prob­lem pat­terns and the Blind 75 com­pi­la­tion is a great start­ing point for com­mon prob­lems asked in tech­ni­cal interviews.


For our Asso­ciate pro­gram, we’re not look­ing for mas­tery of tech­ni­cal skills. We under­stand that this may be your first devel­op­ment job, or that you’re still in col­lege and learn­ing. We’re instead deeply inter­est­ed in how you approach some­thing unknown, what type of ques­tions you ask, and how you break down a prob­lem. Leet­code, and oth­er algo­rithm prac­tice solu­tions, are great at fram­ing your mind around how a com­plex cod­ing prob­lem can be bro­ken down into man­age­able com­po­nents. We want to see that you can log­i­cal­ly fol­low a prob­lem, and talk through, often­times with pseu­do code, what you would do if you had more time out­side the interview.


Pramp — Some­times over­looked, the prac­tice of explain­ing your own thought process and com­mu­ni­cat­ing the approach to a giv­en prob­lem is extreme­ly impor­tant in the tech­ni­cal por­tion of an inter­view. Pramp is a web­site that pairs appli­cants up and pro­vides a col­lab­o­ra­tive envi­ron­ment for a mock inter­view. The envi­ron­ment is extreme­ly sim­i­lar to what one expe­ri­ences dur­ing a tech­ni­cal interview.


If you don’t have a lot of expe­ri­ence with inter­views, find­ing solu­tions like Pramp to fill that gap is impor­tant. Everyone’s day-to-day at Michi­gan­Labs involves explain­ing our thought process­es to each oth­er or to clients. Because of this, we want to know that you can artic­u­late ques­tions you have for your men­tor, explain what you’re work­ing on to a client, and com­mu­ni­cate well with your team. Take advan­tage of mock inter­views at your col­lege, or use Pramp to prac­tice with oth­er devel­op­ers. Even though you may not get all the feed­back you want, what real­ly mat­ters is get­ting into the mind­set of com­mu­ni­cat­ing your thoughts out loud.

Con­clu­sion #

We want Asso­ciate Devel­op­ers who are com­fort­able artic­u­lat­ing their thoughts, who know how to break a con­cept into man­age­able pieces, and who love soft­ware devel­op­ment. We under­stand that you may not have a lot of expe­ri­ence in this field and that you’re still pos­si­bly in col­lege. What we offer you is a place to learn, a men­tor who can help guide you, and an oppor­tu­ni­ty to devel­op soft­ware for, and direct­ly com­mu­ni­cate with our clients.

If this inter­ests you, look out for our next open­ing in the Asso­ciate Devel­op­er pro­gram, and fol­low Rohit’s advice. We would love to hear from you!

Lat­er this year, Rohit and David will con­tin­ue this con­ver­sa­tion through more blog posts tar­get­ing application/​resume advice, and final­ly a ret­ro­spec­tive on Rohit’s project experience.

David Crawford
David Crawford
Software Developer

Looking for more like this?

Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.

UX Writing Tips
Design Process

UX Writing Tips

February 3, 2023

Kai shares a few tips he's collected on how to write for user interfaces.

Read more
Advanced Tailwind: Container Queries
Development Web

Advanced Tailwind: Container Queries

July 28, 2023

Explore some advanced web layout techniques using Tailwind CSS framework

Read more
A 3-part framework for getting your software project approved internally

A 3-part framework for getting your software project approved internally

September 25, 2024

Explore this strategic approach to securing internal buy-in for your custom software projects. The framework emphasizes starting with a lean business case, engaging key stakeholders across the organization to align economic, operational, and technical considerations, and embracing an iterative learning process to make informed decisions.

Read more
View more articles