A few years ago, I was contacted by someone in Gilt Groupe about a potential role in their front-end engineering team in Dublin. At the time I was happy in my Product Manager role in Core and was routinely ignoring similar emails from recruitment agencies and other companies. I also generally had no interest in living in exile in Dublin — I’m from Cork, and us Corkonians generally don’t want to become jackeens so avoid moving there like the plague.
With the Gilt role, however, I was intrigued. There was a potential future move to their HQ in New York, which was something that I found very tempting. I also liked the company — a very well funded startup with big ambitions. Their sites were pretty fantastic too, so it seemed like it could potentially be a good move. I responded favourably, sent over my CV (which I rushed to update after it had spent several years gathering dust) and a short time later I was called for interview.
I took the day off work and travelled the 160 miles to Dublin. I arrived early so went for a stroll around the area — Starbucks around the corner, loads of parking nearby, very close to the heart of the city — I could work here, I thought. I focused my thoughts and went in, greeted by Gilt’s HR lead, who brought me to a small meeting room and talked me through the agenda for the day.
It was at this point I started to feel a bit out of my depth. I hadn’t interviewed for a job in years, and I didn’t really know what to expect. All of my previous interviews (except an awful one with Oxford University) had been pretty straightforward, and I was surpised to hear that I would have four further meetings that day:
- With Gilt’s VP of Engineering, who was based in Dublin.
- A technical interview with one of their senior front-end engineers.
- With their CTO and another technical lead who were over from New York for the day.
- With HR to cover some of the basics, go over my background and that kind of thing.
The day was gruelling and exhausting. I think the VP of Eng liked me, although when I told him I had worked with Oracle and PL/SQL he asked me to whiteboard code some advanced joins. I completely blanked and struggled to come up with a solution. The technical interview was a mixed-bag — basic stuff like client-side performance and using sprites, but then some bizarre CSS questions that I can’t quite remember the detail behind. At one point I asked the interviewer if he would have known the answer to one of his questions prior to joining Gilt, and he said no.
The meeting with the CTO was a disaster. I remember talking about the Lift framework, on which I had recently written an article for IBM developerWorks. Their CTO was seriously impressive, and went into great detail about what he didn’t like about Lift, and I was lost. I think the other guy in this meeting liked me, but one of his only questions had something to do with Linked Lists, and at this stage I was almost ready to give up. I don’t cry often, and I have never done so in a professional situation (and hopefully never will), but at one point during this meeting I had to fight hard to stop myself from doing so. I was completely mentally and emotionally drained.
The HR meeting was a piece of cake compared to what I had just been through, and after it the VP Eng asked me if I would join him for lunch. I had expected the interview to last an hour, maybe two max, so at this point I just wanted to get in my car, drive to Cork and forget that Dublin even existed. I initially said no and came up with some made-up excuse about needing to get home, but then managed to get my shit together and said that I would be delighted to.
I jumped at the lifeline, and despite the exhaustion I drove home, told Jill (my then girlfriend and now wife) how badly it had gone but that I had a chance to prove myself. I had played Sudoku before but had never attempted to write a solver. I hacked on the project for the night, and came up with something that I hoped would show that I can deliver when pushed. The original solver I wrote is still available, unchanged from that night, on GitHub. It’s far from perfect, but I was happy with it, especially given the time constraints.
The next day, the VP Eng acknowleged that he had received my mail and would look over my work. Within a few days I got a call to say that he was impressed and wanted me to talk to two of their New York engineers. Yes, two more technical interviews. At first I was disappointed, as I had hoped hacking together the project would have been enough to prove myself. But I pulled up my socks and got prepared.
A week or so went past before I heard anything further. Eventually the email from Gilt came. It wasn’t good news. Apparently a hiring freeze had been put in place, so they couldn’t offer me the role. I was assured that I was the preferred candidate, but that they wouldn’t be making any offers at this time. I was absolutely gutted, and to be honest I was quite pissed off about it. I had given up the bones of two days of my time to prove my worth, and they didn’t even have the go ahead to hire someone in the first place? At first, I thought that I would have preferred if they had told me I wasn’t good enough, at least then I could chalk it down to experience — but in truth I was satisfied that they at least said that they wanted to hire me — it was a morale boost, if nothing else.
A couple of months later I received another call from Gilt. The hiring freeze had been lifted and they were ready to start the selection process again. At this point, the opportunity no longer appealed to me — I had been promoted to Head of Technology at Core, I was engaged to Jill, and I had put the whole idea of a move to bed. Besides, the last thing I wanted was to go through the pain of their recruitment process again. I said I was no longer interested but wished them well in their search.
I learned a lot from the interview process at Gilt. The main thing I learned was to be humble when the shoe was on the other foot. Every time I interview a developer, I think back to the Gilt process and remember just how tough it was, and then try to give the candidate every opportunity to prove themselves, without destroying their soul in the process. It’s also the primary reason I will never ask a candidate to code on a whiteboard — if you want someone to write code for you, give them a problem to work on, a computer to work with, some room to breathe and leave them at it.