After being laid off 52 days ago, I’m happy to announce that today I’m starting with CoderPad (https://www.coderpad.io) as a Developer Advocate (working in a mixture of marketing, product and dev). I’m super excited to work with some really smart people and look forward to learning a bunch/working my butt off. Funnily enough, one of the companies I was interviewing with was using CoderPad so it was cool to look at it from the candidate side, but sorry! That's not the point of this article.
Being that we are in crazy times, I thought it’d be beneficial to talk a little bit about searching and finding a job (specifically software development/tech) in today’s market. I learnt a bunch over the last 5 weeks and want to give some tips to anyone out there hunting for a new position.
To give some background - my last role was a Senior Software Engineer at a ticketing/events company working remotely. I was laid off from the role. Knowing this information will help give context to my situation - the types of interviews I was able to get, the questions I was asked in interviews etc.
- Amount of applications: 53
- Applications responded by company to get first interview: 18
- Applications rejected: 12
- Recruiters worked with: 7
- Live coding interviews: 5
Code Projects worked on: 3
Amount of whiteboard interviews: 4
Got to final interview but did not get offer: 2
Job Offers: 3
I don’t want to give away the exact companies that I was interviewing with, but I can tell you in an abstract way -
- One of the MAJOR banks
- A place you’ve probably shopped online before
- Construction software company
- Oil & gas data company
- Major oil/gas company (not a super major but big)
- Legal software company
- Electricity power company
- A cyber security company
- Technology agencies
- Marketing Firm
I live in Houston, Texas hence why all the oil and gas companies that I was interviewing with. It was up for debate whether I wanted to continue working remotely or find a position in Houston.
Software Engineer, Senior Software Engineer, Software Developer, Front-End Developer, UI Developer, Product Manager, Project Manager, Developer Advocate, Implementation Engineer, Web Developer
- Fizz Buzz (I don’t know why a company would use this anymore ha)
- Write a for loop that goes over the array in reverse order and create an array of arrays grouping the numbers that are the same e.g. [[1,1], [5,5,5], [2,2], [21, 21]]
- Figure out if input is palindrome (numbers and strings)
- Create a function to determine if a number is a power of two
- Turn this CSV string into an array of Objects with the same keys and associated values
- From two arrays, find the numbers that AREN’T in either array
- What efficiency is this algorithm? Explain how you would improve it or make it better (Big O Notation)
- Given this method, how would you make it better?
- Build an abstraction of a shopping cart
- Show us how you would build out a car utilizing Object Orientated design
- Describe one of your most recent projects you worked on
- Build out a relational database for a vet showing appointments and anything else you might find applicable
- Build out a simple CRUD API in NodeJS
- Build out UI components that use an external API to digest data and show in graph
- In this codebase, make changes to a method so that it caters to what they were looking for
Ok so now we have all that stuff out the way, here are some of the things I learned and hopefully some tips you can take with you or pass a long to someone you know who’s in the interview process:
It’s a good way of finding out what salaries you would be looking at for a role, and if someone has gone through the interview process before, you can perhaps even get a good grasp of what technical questions they might ask. I did this for the major bank that I interviewed with. And I got asked a question that I had prepared for. Part of me says this is wrong, you know moral high ground. But then part of me thinks what’s wrong with being prepared with all the information out there?
Some people give LinkedIn a bad rap. I’ve never been one to use LinkedIn actively while I’ve been working at other jobs. But having used it pretty extensively during this job search — there are a few things that make it great. First off, their job search functionality is amazing for searching by location and position. Second, the quick application feature makes it super easy to apply to a bunch of jobs. Most of those jobs don’t require a cover letter, and maybe an answer to a question or two — so it’s super easy to apply to 30 jobs in an hour if you really wanted. And lastly, the amount of traffic your profile can get is pretty insane. I had at least 3 to 4 recruiters per week contacting me about open opportunities they thought I’d be a fit for. Not all are, but it’s still a great thing to see.
I had never worked with a recruiter before this because I had never had to. In the past, I’ve been hit up by hundreds (not joking) of recruiters asking if I was looking for a new role or saying that I’d be the perfect candidate for X role. I always just responded “no thanks”.
But I think the biggest help on my job search was using recruiters. They allow you to skip the line of the interview process at companies because you’ve already been “vetted”. And they are there to help you. Ultimately, if you get hired, they make money so it’s in their best interest to set you up for success. Being it’s their full-time job, they have a good grasp of the market, what positions you would be good for and help prep you for interviews. All this being said, I actually didn’t use a recruiter to get my role at CoderPad, but the other offers I had were because of recruiters.
No matter what you do, technical interviews are always going to be nerve wracking. So prepare! Take a bunch of Leet Code — most companies ask easy to medium questions that I’ve experienced. And most likely, if you practice enough, you’ll be asked problems you’ve solved before. I think if you are applying at the FANG companies and high up engineering positions (director of engineering), that’s when the “hard” questions start being asked because they are dealing with issues at extreme scale.
Also get familiar with some of the technical interview IDE’s. You’ll be taking live coding interviews a bunch. Try one like CoderPad ;) https://www.coderpad.io
I often find that leet code questions bear no similarities to the things you’ll be working on in your actual job. My mind thinks differently when trying to solve Leet Code questions versus the usual tasks I have as a software engineer. Preparing and practicing these questions makes the switch into thinking about these questions easier in my brain.
You are competing with hundreds of people for a job. Think of ways you can stand out in the job application. One way is to use Recruiters like I said before to skip the line, but what I found really successful was creating a page on my website specifically for a company and hiring manager.
I can show you one I made for CoderPad: https://www.lukeduncan.me/coderpad — I haven’t asked if this helped but I can only imagine it doesn’t hurt. It shows you put time and effort into your application and it’s a good way of getting your foot in the door. I have had major success with this in the past as well. It turns you into a person rather than an application in my opinion.
Recruiters and companies are looking for specific languages, but they are also looking for the type of things you’ve worked on in your prior experience. Be specific on what languages you used and what you accomplished with them. Here is one of the lines I have on my resume as an example:
Recruiters are looking for these buzzwords all over and it will get you a lot more opportunities by including them in your resume.
I reached a few final interviews during this process and didn’t get an offer. It can be a real hit to the gut especially when you are just one round way from being hired. But to move forward and learn, I ended up asking for feedback about why I wasn’t selected or what they liked and what they didn’t like. Ultimately I ended up using the feedback from a few final interviews and took it into my other opportunities. It helps you grow as a developer, thinker and candidate!
A big problem that I had/have, I think of a solution in my head to a problem which fine. But when I start to describe my solution, other things that I maybe missed out in my solution start to pop in my head and I start to include them into my solution. So I start to add random bits into my answer and everything becomes less clear. I got this feedback from one of the first interviews I was rejected from and used it to catch myself when I was doing this at later interviews.
And that’s that. If you have any questions about my interviews, have any other tips you’d like to share (I’ll add them to this article) or are interested using CoderPad in your interview process (perfect for hiring Remote in todays climate) — I’d love to talk! Email me at firstname.lastname@example.org
It's hard times out there for everyone, so if there is anything I can do to help anyone, I'm all ears!