Fog Creek Software
Fog Creek Software Interview Questions & Reviews
Getting an Interview
Product Marketing Manager, FogBugz and Kiln Interview (Positive Experience; Average Interview)
I applied online and the process took 1 week - interviewed at Fog Creek Software in July 2014.
Interview Details – Sent in email including a resume and the answer to a programatic problem posted along with the job description. They respond with a nice auto-generated email indicating a number of follow-up questions and a description of the process. They use their bug tracking tool to track candidates so all communication with them is threaded.
Interview Question – The programming problem was basically to parse, filter and sort a string in the applicant's language of choice. It wasn't very hard but my guess is some languages lend themselves to easier wolustions than others. Answer Question
Software Engineer Interview (Neutral Experience; Average Interview)
I applied online and the process took 2 weeks - interviewed at Fog Creek Software in June 2014.
Interview Details – Application was very easy. You e-mail your resume. A follow-up bot responds and asks for any additional information that you might have left out.
Some time later, a human schedules a 15-minute phone screen as a quick bozo filter. This is to determine if you are worth spending interview time with a more technical and expensive employee.
The next interview was over the phone, and was overwhelmingly a technical demonstration to prove that you do, in fact, know how to write software. I was dropped after this point, given the explanation that it was a "painful choice" to pass over "extraordinarily promising" candidates.
Interview Question – Write a stack-based calculator that uses reverse Polish notation as I watch you do it on a shared text area. View Answer
Software Engineer Interview (Neutral Experience; Average Interview)
I applied online and the process took 1+ week - interviewed at Fog Creek Software in June 2014.
Interview Details – Emailed in my resume, heard back maybe 2 weeks later from someone in HR. Spoke with her, had a brief phone call with someone else, mainly just giving me info and making sure I was worth the time for an engineer to interview. This was followed up with a technical phone interview.
Interview Question – Standard question. Interview definitely played to my strengths and tried to help where needbe. Answer Question
Software Intern Interview (Positive Experience; Average Interview)
I applied online and interviewed at Fog Creek Software.
Interview Details – Applied through their website. Fun questions. Two phone screens then onsite.
Software Engineering Intern Interview (Positive Experience; Average Interview)
I applied online and the process took 4 weeks - interviewed at Fog Creek Software.
Interview Details – Emailed them my resume and cover letter, a robot responded asking for some additional information which I provided and was contacted some time afterward (forget exact time frame).
I went through 2 or 3 phone screens, each one following the typical format of experience, coding question, then my turn for questions. Each interviewer was fun to talk to and the process was smooth. Their follow up time was quick (1-2 days after each interview) but not the quickest.
I was flown out to New York and put up in a fairly nice hotel for the on site interviews (try the fish and chips from the in-hotel restaurant!). They went alright and covered things you'd expect (cs questions involving graphs and such). I had a serious problem with jet lag and adjusting however, I also messed myself up by agreeing to come up the day after my last final. The day of the interviews my body was about as angry at me as it could be, and I was absolutely not performing at my best. Here is what I absorbed from my visit though:
* That office is swanky. It's so incredibly nice I was actually a little put off by it. There is a guard and greeter at the bottom floor who printed out a name tag for me, and you have to be buzzed in to get into the office. The couch in the front area is insanely expensive and artsy. I wouldn't take anyone to visit the workplace because I'd be embarrassed. Over-the-top in my opinion.
* The people there are very nice and laid back, definitely all people I could imagine hanging out with after work and playing video games with. They all seemed very intelligent as well. You will definitely be among great people if you work there.
* Their whiteboards are tiny. Not even close to big enough. Sure they're extra nice because they're made of glass but I would definitely prefer size and functionality over the prettiness factor there.
* Their food is incredibly delicious, and they have a ton of snacks. Didn't get to try their coffee but I bet its amazing because the machine was apparently bought from some fancy coffeeshop that went under.
* They did not seem very familiar with C++. That could have been a trick to get me to explain C++ concepts to test me but I think that most of them are much more familiar with C.
* A lot of their work is done with Windows. If you come from a Unix world like me this can be a little off putting.
* Gorgeous view from the office. I could stand and look out that window for hours, and I'm betting many of them do when thinking about particularly challenging problems.
* Center of wall street, prepare to be hassled a lot in front of the entrance by tons of solicitors.
* New York is a very different time zone from the west coast, did you know? If you're going for an onsite interview, prepare yourself for the incredible jet lag if you're coming from far away. Try to convince them to let you stay more than one night to get acclimated. I know it would have helped me immensely. I was a total mess internally for the interviews.
* I did not get anywhere near the feeling of passion I get when talking to engineers from other companies. Ask each of your interviewers why they chose to work for Fog Creek, I did not get a lot of motivating answers to that question unfortunately, most of them could be summed up by "well I applied and they took me".
* A sign hung on the wall that said "no fun allowed" would not be out of place. The atmosphere felt very much like a corporate office (albeit a totally decked out and beautiful one). Lively is not a word I'd use to describe the office environment. This could have been a quiet day though (it was a Friday).
Interview Question – Typical questions like the ones presented in Cracking the Coding Interview. Know that they're very creative and organized though, so don't plan on getting a question you've heard anywhere else before (which is perfect imo). If I wrote an exact question down here you can be assured they wouldn't ask that question again. They will almost certainly test you on your ability to use pointers. Answer Question
Software Engineer Intern Interview (Positive Experience; Difficult Interview)
I applied online and the process took 5 days - interviewed at Fog Creek Software in December 2013.
Interview Details – I found their careers web page and contacted them through the email address provided. Initially I sent a short stock cover letter with my resume in PDF but I was immediately rejected and told to re-apply with a more a creative cover letter (I was told to experiment with form) and resume file format. I now realize that had I sent a poem (I chose haiku, but I'm sure they would've accepted anything creative) and a Markdown/PostScript resume to begin with (which is what I sent the second time) I wouldn't have embarrassed myself. That'll teach me to read between the lines of a job posting at a no-nonsense company like Fog Creek!
A man named Lucas contacted me immediately the second time and scheduled a code screen. The first code screen was difficult, mostly because I only had a cursory understanding of physics/chemistry, which is apparently a topic they expect a high-school level understanding of. (They seem to really stress a well-rounded liberal-education-type candidate! I was surprised, but fortunately I had taken junior-level STEM classes prior to switching to computer science.)
I was pleasantly shocked to receive an invite for a second code screen, which was more traditional computer science. However, this one I definitely bombed. It was a question about the Paxos consensus algorithm. I had, of course, studied and memorized basic Paxos prior to the interview question but I didn't realize that we'd also be implementing Multi-Paxos' start and steady-state message flows. Needless to say, I wasn't invited to interview in person.
All in all, it was an enlightening experience. Clearly Fog Creek's interview process is no walk in the park -- should've studied more and paid better attention!
Interview Question – How would you explain titration to a five-year old? (More of a getting-to-know-you question to test your communication abilities.)
Describe, then implement, the extra message (Verify) required to extend Paxos to Byzantine failures using the "Actor" model in your language of choice. Answer Question
Software Developer Intern Interview (Positive Experience; Average Interview)
I applied online and the process took 2 weeks - interviewed at Fog Creek Software in March 2012.
Interview Details – Applied online, got an email the next day to schedule a phone interview. Got rejected after the second round of phone interviews.
Interview Question – Write strtok()
Write a reverse polish calculator. Answer Question
Software Engineer Intern At Fog Creek Interview (Neutral Experience; Difficult Interview)
I applied online - interviewed at Fog Creek Software in December 2012.
Interview Details – Applied online, received an email asking me to fill out some information including my GPA and SAT which I found a bit strange.
Interview Question – Given a Node with a reference to a child, its next, its previous, and a variable for its value (1/2 tree, 1/2 doubly linked list structure), you have to find a way to flatten the structure. IE, create a doubly linked list but maintain the references to the children.
1 = 2 = 3 = 5
6 = 7 8
(reference down is child and reference across is next)
this above diagram becomes:
1 - 2 - 6 - 7- 9 - 3 - 5 - 8
but 2 still has child reference to 6
7 still has child reference to 9
5 still has child reference to 8 Answer Question
Very Difficult Interview
Software Engineer Intern Interview (Neutral Experience; Very Difficult Interview)
I applied online and the process took 1+ week - interviewed at Fog Creek Software in October 2012.
Interview Details – Sent my resume and cover letter to the email listed on their site. Got back a robot response asking for my GPA/SAT scores and some other things. 4-5 days later, got an email to set up a phone interview. The interviewer was friendly, and identified himself as a former intern at Fog Creek himself. He asked me a few questions about my background/experience, and then we got to a coding question using an online shared editor.
Software Developer Interview (Positive Experience; Average Interview)
I applied through college or university and the process took a day - interviewed at Fog Creek Software in January 2011.
Interview Details – Fog Creek is a take no prisoners kind of firm with questions that will draw primarily from the data structures and algorithms. Be familiar with C as well as with a mainstream OOP language such as Java/C++. Other than that, the interview questions are fairly standard and of the same variety you can expect from Google or Amazon. Be prepared! My mistake was not reviewing enough of the relevant material. Seems like a great company to work for though with a solid grasp on the concept of best practices (thanks, I'm sure, in large part to the prominence of Joel Spolsky).
Interview Question – Dynamically resizing array-backed bounded queue. View Answer
Interviews for Top Jobs at Fog Creek Software