Five years ago today, I submitted the first of two programming assignments as part of a job interview with a company that makes applications for the trucking industry.
May 2017
My interview at the company’s head office is going well. I’m giving them my Q&A A-game, the back-and-forth is flowing smoothly, and my knowledge of the trucking industry and lore — a combination of having done some research as well as repeated listenings to the Mark Dalton, Trucker/Detective audiobook series — seems to be paying off.
Ninety minutes into the one-hour interview, the CTO puts the brakes on the conversation and proposes a next step.
“We like your breadth of experience,” he says. “Now we’d like to test your depth. If we gave you a quick programming assignment, which would you prefer — writing an iOS app, or an Android app? You should go with the one you’re stronger in.”
I’m a much stronger iOS programmer than an Android one. The smart move would be to answer “iOS,” and be done with it.
But in that moment, I remember the motto: Be like Han.
Instead, I reply “Yes, but you’re looking for someone to lead a team of both iOS and Android developers. You really should give me both.”
The CTO raises an eyebrow, makes a note on his pad, and says “Hmmm…I think I will.”
This is either a “total baller move” (to borrow a turn of phrase the kids are using these day), or the end of that job prospect. But for the job that they’re trying to fill, taking on that challenge was the right thing to do.
I leave the interview with just one thought: Good thing I don’t have a job. This is going to be a lot of work.
The app
I decided to tackle the iOS version first. The tricky part was that the assignment required that the app be written in the old iOS programming language, Objective-C. In 2017, Swift had been around for 3 years, so it was still reasonable to expect to do some Objective-C development.
I made the leap to Swift as soon as it came out, so it had been 3 years since I’d done any Objective-C coding. It took me a couple of hours to regain my “C legs,” but after a few days’ work, I managed to come up with this app:
For the really curious, you can check out the project I submitted in this GitHub repo.
5 years later
Now I’m in the position where I am handing out programming assignments to prospective employees. I keep my 2017 experience in mind, which means:
- I try to be respectful of their time. The assignment should be detailed enough to provide a realistic picture of the the candidate’s abilities but not so complex that they have to drop everything — including home/family responsibilities and their current job — to be able to complete it.
- I try to be open to communication and responsive. I never want them to have that “ghosted” feeling I got five years ago.