Context
Here are some resources I’ve found helpful for candidates seeking jobs in the last few months, as I coached my sister-in-law, an ex-coworker, and a few friends and ex-coworkers through the job hunting process.
For my sister-in-law, her time with computer science had been mostly academic, with a few internships here and there. This coaching ranged from guiding her through some mindfulness training to getting comfortable with behavioral interviewing to learning Python (or any other high level language to avoid tons of time-consuming, boiler-plate code during interviews).
My goal in sharing these resources is to aid the transition of you or any ex-coworkers you have who faced this situation, especially for those who don’t have as much experience and haven’t nailed down how to interview yet.
Interviewee Resources
Finding Open Positions
Cold applying on a company’s site, in my experience, has a pretty low rate of success. I’ve had much better experience in the past, further corroborated by my sister-in-law’s experience, by:
-
Marking your LinkedIn profile as “Looking for Work” and letting recruiters reach out
- LinkedIn also has a pretty decent Jobs page with helpful filters here’s an example search)
-
Reaching out to old friends/colleagues to see if their companies are hiring. They can often give meaningful insight into what working there is like and what certain teams operate like.
-
If you have contacts that are hiring, try and connect your ex-teammate with that contact via email/LinkedIn! Direct referrals can go a long way.
-
Signing up for services that connect you with recruiters
- I have used hired.com and TripleByte in the past
-
Checking out Hacker News’s monthly Who’s Hiring post
- Here’s a compilation site for that!
-
Checking out Glassdoor’s list of currently hiring companies
In short, I think creating a push-mechanism where recruiters reach out to you if you’re a good fit and/or you can find companies looking to hire is generally easier, less effortful, and less demoralizing than rather than a pull-mechanism where you blast your applications out everywhere. Using your network is even better since you can get a foot in the door with a positive first impression more easily.
Technical Interviewing Preparation
-
Leetcode is a well-known tool is a place to practice software engineering questions.
- I have mixed opinions as many questions are truly convoluted and can be demoralizing if/when your ex-teammate can’t get one. In general, the questions are usually generic and less specialized. They’re good to practice for brushing up on data structures and algorithms before moving on to mock interviews.
-
Azure DevOps was a useful resource for my sister-in-law, who hadn’t worked with CI/CD before.
- It gave us a chance to build up skillsets around build/release/test pipelines, artifact repositories, test failures and how to diagnose them, repository permissions management, leading sprint planning, maintaining a wiki for a project that evolves, and more. I don’t think many people who have even a few months of experience will need this, but I wanted to include it for completeness.
-
Replit is a collaborative browser based IDE
- This was one of my favorite tools for conducting mock interviews. Replit lets you set up a “repository” of sorts, create files, work with packages, imports, and generally mimic the software development flow collaboratively online with your ex-teammate. It makes practice interviewing similar to tools like CoderPad where you collaboratively code with interview candidates, but this one is free!
Behavioral Interviewing Preparation
-
Behavioral interviews: How to prepare and ace interview questions
-
How To Use the STAR Interview Response Technique
- One thing worth highlighting in the above: I prefer the CARE (Context, Action, Resolution, Evolution) model over STAR (Situation, Task, Action, Result). I find that in STAR, Situation and Task can often end up morphing together, and there’s a missing component on what the interviewee did to improve their skillset/make sure that bad thing doesn’t happen again/etc. CARE has a more cohesive storytelling paradigm in my eyes and it tends to flow more easily. This is my experience though, and feel free to share otherwise.
-
r/cscareerquestions - A list of behavioral questions you should practice
- Beware of this subreddit: there’s a lot of harmful views there, but it has a lot of resources as well. Take everything said with a larger grain of salt than usual. bear in mind that the anonymity of the internet can lead some people to say cruel things.
Followup Questions
In general, I advise people to keep in mind that interviewing is a two way street: while the company is trying to determine if the candidate a good fit for them, the candidate should also be evaluating if a company is the right fit for them.
At the end of most interviews, there will be a few minutes for candidates to ask questions. This isn’t just a formality: it’s a great chance to hone in on things that will make or break your evaluation of a company and whether they’re the right fit for you. Evaluating things like how your interviewer talks about team culture, time off, how performance is rewarded, what are some projects coming up the interviewer is excited about, etc. can go a long way in showing how employees feel about their team/employer.
I also advise listening to your gut feelings if you’re torn. Our subconscious self is smart: there are little body language cues we can pick up without realizing, and if you have to justify working somewhere rather than being excited at the new projects, it’s not a great sign and can lead to a bad start.
Personal Thoughts
Feedback Structures
I introduced horizontal feedback structures to my team, where ICs can give lateral feedback to their peers to help build each other up. Most of the topics are applicable to feedback in general and can help you give and receive feedback more effectively. I found a really helpful resource on this:
- Employee Feedback Examples: 15 Actionable Techniques: this is one of my favorite blog posts I’ve ever read on the topic! It goes over what feedback is, why it’s important, what makes feedback good vs. bad, examples of good vs. bad feedback and why they’re good/bad. It also touches on how to effectively receive feedback and some guidelines for setting these structures up. I wish I had read this when I first started looking into this in the first place!
Please reach out if you have other questions/comments/concerns on how I set this up for my team. We just set up randomized pairings on a monthly cadence to foster horizontal feedback. The eventual goal was for people to feel comfortable giving feedback whenever, with these randomized pairings serving as a chance to sync up with someone they might normally not sync up with.
Skillsets: Interview vs. Onsite
As a personal note, one thing I often find frustrating is that the skillset involved in software engineering and the skillset involved in interviewing for software engineering don’t overlap as much as I believe they should.
One question I always ask myself during the interview process is how does the interview process make me feel? If I find myself frustrated because the problems feel irrelevant or unnecessarily convoluted, it can be indicative that a company hasn’t put effort into streamlining their interview process to be relevant. Some companies opt to do this to keep their process generic, but that’s a double edged sword, as people often specialize deeply in this industry.
The amount of preparation needed to solve these types of problems effectively can be daunting, and when people are already exhausted from other facets of life, it can be especially harmful to those with adverse life circumstances.
Final Notes
For anyone who’s still reading, thank you! Please let me know if this was helpful at all. Also, for anyone who’s curious, my sister-in-law got a job and is loving it. If you want her perspective on how this all went, I can ask if she’d be interested in chatting!