Lately, programmers have been tweeting confessions of their inability to balance a binary tree on a whiteboard or remember the parameter order for various functions in response to the horrible interview processes at many companies. I've been lucky enough to avoid most of those interviews, but I thought it would be nice to call out some better interviews I've had over the last few years.

Freshbooks

I don't think I wrote a single line of code during this interview process. We discussed things on a whiteboard and I wrote some pseudo code. The problem I was addressing evolved over time and the conversation became more words and less drawing. For the "programming" portion, I was paired with one of their engineers. He sat at the keyboard and gave me a problem to solve in their actual codebase. Rather than being forced to navigate a foreign code base, figure out some editor, etc., I just said things like "I'd open up the template for that page", or "I'd jump to where that form was processed" and "Look at that function and its unit tests to see how it handles that". He navigated his codebase with ease, took the suggestions I gave him, and we fixed a bug. When it came time to write unit tests, we talked about the function we were looking at and agreed it didn't really need one.

By placing their engineer at they keyboard, rather than me, I felt like Freshbooks did a great job of learning if I could code without testing my memory of parameter order. Before I left Freshbooks, they were improving their interview process to provide gender parity on the part of the interviewers at each stage of the process, which seems like another good move.

Freshbooks is hiring in Toronto, no remotes.

Stripe

The first thing Stripe did when we set up an interview was send me a document describing their interview process and how I'd be evaluated. I thought this was quite helpful! If I'd had fewer interviews under my belt, I would have found it invaluable. The "phone screen" was me sharing my screen while I solved pre-defined problems in my language & editor of choice. The instructions I received ahead of time asked me to make sure I had the software required ready to go to write & run code. She encouraged me to Google, use documentation, etc., whenever I wished. When it came to the in person interviews I answered theoretical questions with drawings or pseudo code on a whiteboard. When it came to actually coding, I again wrote on my laptop, in my language of choice, Googling/reading documentation etc. as required without judgement. When I finished a problem a bit early, the interviewer and I discussed some next steps: making a webpage, adding extra data to the display, etc. We both agreed that asking a PHP developer to make a webpage wasn't actually going to be a challenge, so we ran with something else.

Stripe solved some of the problems differently than Freshbooks: by telling me in advance what I'd be doing, I was able to prepare. By letting me code in my own environment, and my own language, on my own computer, I really felt that they had set me up for success. As I left, I was given an iPad with an optional survey to take about the interview process and how they could improve.

Stripe is hiring in San Francisco, they have some remotes.

In Closing

Not all interviews are horrible, and there're ways to do them better. If your company is hiring, talk to recent hires and make sure your interview process isn't about to be the butt of someone's twitter joke. If you're about to interview somewhere Julia Evans has a set of great questions to ask in an interview.

disclaimer: I clearly worked for both Freshbooks and Stripe; I don't anymore. Neither of those links are affiliate/referral ones.


My mom helped me open my first bank account when I was 16. I remember the little book I could stick in the machine to get an update of all my transactions. These tended to be concentrated around Christmas and my Birthday, at least until I scored my first job at Walmart.



Since then Canada Trust was purchased by TD, I went to University, memorized my account number while working for eDonkey (USD cheques, quite the pain), moved to Montréal, back to Ontario, got married, and had 19 jobs I can remember. Throughout all that, as far as I can tell, my bank got steadily worse. Features I cared about (like being able to buy things up to my account balance with my debit card, setting my own cash withdrawal limits) went away, and fees climbed steadily.



About two years ago I thought the fees I was paying were out of control, so they moved me onto a fancy "unlimited" account, which included a bunch of things I'd been paying for individually, including my USD account, and some "overdraft protection" I never actually used. Three months later they "adjusted" their account offerings, and my "unlimited" account stopped including the other things I was using. This bumped my fees up by another $10/month. I tried to go back in and find a new account, but couldn't even get past the "Welcome" desk. The gatekeeper there told me I already had the best account, and wouldn't let me talk to anyone else in the branch.



I signed up for an account with ING Direct (an online only bank) many years ago for some basic savings. As my frustration with TD Canada Trust peaked, their ease of use, interest payments on accounts, and complete lack of fees struck a chord. I began moving all my transactions over. Somewhere long the way ING Direct became Tangerine. Cheque deposit with my cell phone, easy automatic savings programs, great stuff.



Tangerine has a neat feature where you enter your monthly fees at your old bank, and it counts those up over time. It's nice watching those numbers climb.


The only draw back to Tangerine is that they don't have a mechanism to receive wire transfers. During my tenure at Social and Scientific Systems I participated in their ESOP, which they pay out by wire. Getting paid out is a lengthy process, so despite departing in 2014 my disbursement didn't arrive until this week.


So today, about 20 years after opening the account I closed it forever. I'm saving over $300/year in fees, earning interest, saving more money with their easy automatic withdrawals, and actually enjoying their website. Would recommend! If you sign up today they'll give you $50 for free! My "Orange Key" is: 16928758S1.


Hi, I’m Paul Reinheimer, a developer working on the web.

I co-founded WonderProxy which provides access to over 200 proxies around the world to enable testing of geoip sensitive applications. We've since expanded to offer more granular tooling through Where's it Up

My hobbies are cycling, photography, travel, and engaging Allison Moore in intelligent discourse. I frequently write about PHP and other related technologies.

Search