This post is part of a three-parter:

  1. How The Job Search Went (you should read it first)
  2. What Helped The Job Search Work So Well (you’re reading it!)
  3. Differences Between The Two Tech Scenes

Here are some of the things I did that I believe made a difference, or stuff that I realized I could have done better.

Lead sources

Well, some of my early work was about finding the best sources of leads, and it turned out only 3 sources paid off:

  • companies apply to you, therefore make sure that your profile is explicit about your skills and expectations, and all leads coming in there are qualified. Also, the personal coach they assign to you will help you through all of your leads, including the ones that don’t come from them. Devin, the coach I had, knows the Chicago tech scene extensively, and he took a lot of his own time to give me insights. Would 200% recommend.
  • AngelList: I used their “Tinder-like” app for the fun of it (swipe left of you like the job listing, right if you don’t), but it turned out really amazing. The salary range is already displayed, so the leads are already pretty well qualified (no “senior” role that turns out to be $80k), and it’s not at all time consuming.
  • Friend’s referrals: you have a direct personal source of info about internal company culture, so that will help qualify the lead, but the huge upside is definitely about making sure that your resume makes it to a recruiter’s eyes for sure.

I also tried LinkedIn, specialized job boards, … but those gave 0 relevant leads.


This has been a real full-time job over 3 to 4 weeks: 2 weeks for phone screens and technical interviews, 1 week for on-sites, and about a week to close loops and come to a decision. That’s a huge time crunch, so there have been a few days with 6 remote interview iterations back-to-back. But people understood very well, and I would start a lot with “I do have a hard stop at X am/pm“, to which I always got a “Sure, no problem“.

Also, I was talking to so many of them that I knew I’d forget details of conversations, and just like in a sales/client relationship, you want people to feel like they’re the only ones you’re talking to (even though everybody knows they’re not). Therefore, I’d write absolutely everything down, and would even write up a report on each conversation to my coach, who would sometimes give me insights.

Also, I made my timeline very clear right from the start (2 weeks remote + 1 week onsite + 1 week decision), asking “Do you feel like that would be a realistic timeline on your end?” and everyone said yes. Once it was said, I knew that I had no choice but to make time for all of them within that timeframe, one way or another.


Come up with your own list of smart questions to find out more about what the job and the company are about. This really depends on what you’re looking for, but some obvious ones:

  • What do you think are the biggest challenges of the position? Of the company? (Helps you understand the context better, and helps them picture you as helping them with those.)
  • Do you consider yourself a “Java shop” / “Ruby shop” / “whatever shop”, or more of a “best tool for the job” culture? (Depends on what you like best, but I strongly lean towards the latter, because they tend to scale up better, and allow for more personal growth.)
  • When talking to executives, enquire about the stage the company is as (seed, series A, series B, publicly traded or acquired, …), and what is next. Try to see if their path is expectable, or if they’re confused about what their next steps should be.

Of course, no question you’re having should have an answer on LinkedIn, Crunchbase or the company’s website, since you will have checked them out thoroughly.

If you’re not sure what other questions to ask, one thing I did for my own list of questions: searched on Google for lists of them, and extracted those I cared about.

Also, another good way to understand the company when you know nothing about it is their technical challenge. It is a 2-way street, and the approach picked by companies is a good window into their culture, and definitely influenced my interest for them. For instance:

  • Is the challenge relevant to the company’s actual challenges, and the actual skills they need from me? (So, I feel they know why they’re hiring me for real, and are testing my actual skills.)
  • Is the challenge interesting and challenging? (So it proves me they know what “interesting engineering” means.)
  • Am I being treated as equal or in a confrontational way?

Transparency / genuineness

However stressful the process is, I tried to take it easy and to be my true self as much as possible, so people could get a sense of who I am for real, and how they feel I’d fit into the culture. I think it triggered some of them to do the same thing.

Also, I never once lied, not only about my abilities (Product X? I know what it is, but never used it. Product Y? Never heard of it. Your product? Never used it.), but also about my other current interviews. If asked, I was gladly disclosing who I was talking with, and at what stage I was with them. When I started getting offers (one employer extended an offer very early, before meeting me), I would gladly disclose what my other offers were. Not only this made for more mature non-antagonist conversations, but also might have increased FOMO a bit!

Also, I changed jobs a LOT (3 times within the last 3 years), and I know that doesn’t scream “stability” to an employer. This is not a problem in the Silicon Valley (some would consider it a strength), but in Chicago, your mileage may vary depending on who you are talking to. So I was as genuine and honest about each past life change, including personal motivations.

Don’t linger on dead ends

As soon as I found out that GrubHub was based in Chicago, I really wanted to talk to them, because I love their product a lot! I tried two avenues: getting in touch through their career site, and through a common contact with someone working there, but they never got back to me. It’s not a problem that I don’t fit what they need, but I was really surprised they didn’t even feed me an automated refusal, like the others did. So I decided not to linger on them, and focus on leads that were more responsive. I was later told that even when they are interested in people, their recruitment is notoriously inefficient, so it may have taken a part.

I also got my resume in front of Google’s recruiters for 3 different jobs through friends working there. It’s obviously an amazing company, so I wanted to pursue them despite their notoriously obsolete interview process, for which they demand tons of energy just for them, to test skills they most likely will never need again (CS academia stuff). I received a rejection for one of the jobs, but nothing for the 2 other ones; I didn’t enquire further, even though I would have loved to talk with people there.

The time not wasted on unresponsive leads allowed to focus my energy on recruiters who seemed more reactive, and therefore more genuinely interested of the value I could add. In the end, almost all of my time was used productively during the time crunch.

Bad apples?

I first started with the intent to separate the bad apples from the good apples within the companies I was talking to; but I quickly realized that when talking about companies that are already running pretty ok, there were no bad apples per se, just widely different situations. When I realized that, I also realized that the final choice would be a lot less about finding a good place to work at, than about what I really wanted, and it shifted my focus to the thing that would eventually be the hardest part to solve in the end.

Tech assessments

Like I said in part 1: if you remove the single “dumb CS algorithmic questions” company, about half of companies gave a take-home mini-project, and half gave a pairing session (remote or on-site). I was psyched to notice that most take-home mini-projects looked a lot like the projects that students at Holberton School are given, one of them being straight up “build an MVP for a social network clone of your choice” (it’s exactly a project that Holberton students are given, except they’re constrained to cloning Twitter).

Another thing I noticed: the smaller the company, the tougher the assessment.

For instance, roughly all mini-projects were to be completed within 48 hours, but they’d all really take 1 or 2 hours of my time; except for one of them, which took 2 actually full days, full time. That company had just raised their seed funding.

At the other end of the spectrum, the largest company I talked to barely tested my technical skills before making me an offer.
All other companies were somewhere on that spectrum, that seemed to match their size proportionally; well, except for the one company that asked me “dumb CS algorithmic questions”, which was a large company, but which I discarded quickly for the benefit of companies assessing skills they need.

You may think “well, that proves large companies are happy with bad engineers”, but I don’t think that’s the way it works at all. The truth probably stands in how it’s easier for large companies to absorb a bad hire, with an obvious option being: by re-qualifying the person’s skills, and offering them a more fitting job in another department. Smaller companies simply can’t afford to do this kind of things; the smaller they are, the more a bad hire can hurt their very survival.

Don’t forget to grow your network

Something I’d do better if I were to do it all over again. Right from the start, consider two goals to the job search: finding the job of course, but also meeting very key people in the tech scene that will be the foundations of your new network. To that end, I should have more aggressively added people on LinkedIn as soon as I met them, or talked with them.

I realized it very late, and ended up adding people on LinkedIn towards the very end, when I had already forgotten the names of most people I had met…

However, I did identify the most key people I built a great relationship with, and made sure to follow-up with them to keep in touch in real life (with a lunch, or subscribing to their events, or something like that, …). I want them to know they are very valuable to me as the foundations of my nascent local network, and I want to find ways to be valuable to them too.

Best long-term tip: become a senior full-stack engineer

Of course, what’s most important is that you do what you like; but if on the long run, becoming a senior full-stack (back-end + front-end) engineer overlaps well with what you like, it is definitely a pretty safe bet on the future. If you’re only getting started in the industry, obviously it will take some time to build enough experience to call yourself senior, but I really don’t think this kind of skills is going anywhere, even as the way software is done changes completely over the next few years, and the tools most being used get completely replaced. As a senior, you will be building and marketing an ability to have relevant opinions in any technical context anyway, as well as an ability to foresee common issues to come from a given situation, and this is all technology-agnostic.

Focus on getting an insightful picture of the tech scene

San Francisco’s tech scene and Chicago’s tech scene are wildly different. I’m focusing on those difference in the third and final part of this three-parter post: “Differences Between The Two Tech Scenes“.