Every person’s career is unique. There is no traditional path
Every person’s career is unique. There is no traditional path.
People come from different educational backgrounds and different industries. There are themes, however, and skillsets and frameworks that anyone can apply at the right time in their career. That’s what Work In Programming is all about. Here are a few themes I’ve found in interviewing over 24 software development professionals across different areas and from 7 years as a software developer.
Here are the most important things to keep in mind if you’re exploring opportunities.
When you change Jobs you are making a serious commitment for the next few years of your life, leaving behind your existing job where you’ve likely built relationships and knowledge. It can be a stressful decision, and one of the most significant financial decisions you can make.
It helps to start looking when you don’t have to make a move.
A lot of folks give the advice “always be interviewing”.
I don’t abide by this, because I find the overhead of interviewing and searching to be too much of a drain on energy I could apply to my job and side hustles. If you’re looking to make a change though, it would be a good idea to start early. That way you can take your time, be relaxed, and put yourself in the best place to negotiate.
A job change is one of the biggest financial decisions you can make.
It’s important for companies to increase your salary in order to remain competitive as you grow in experience and subject matter matter expertise, but unfortunately for many, this is often not the case. This, combined with the fact that the tech job market is on an ever-increasing trend upwards as bigger and bigger companies become competitive, and funding is abundant. By the time you’re ready to make a move in your career, your expectations will likely need to recalibrate.
Getting proficient and learning a product market takes time.
Making a two or three-year (minimum) commitment to join a company means you need to take the company and team seriously. This doesn’t just mean asking really pressing questions like “what are your values” and “how does your team work” during your interviews. It means evaluating the feeling that you get from your interviewers, how they communicate with you, how they talk about their work and teams, how they negotiate once you’re given an offer. To do this, you’ll need to see many interviewers and teams. That means you should speak with at least a few different teams to learn what you like.
When I was looking for my current job, I interviewed at tech giants and much smaller startups as well to get an idea of what I was really looking for.
It says more about the company’s interviewers, not your skills.
Most interviews are bullshit. Most people get rejected for arbitrary reasons. In my career search over the years, I’ve been rejected by Finaeo, Opencare, VTS, Wealthsimple, and several more companies. Less than a year later, I received competing offers from several companies including roles at Google and my current role at Auth0. I say this not to brag, but to illustrate that there is no such thing as an objective interview. Most companies reject candidates for arbitrary reasons.
Do not take it personally when you inevitably get rejected. It often has little or nothing to do with your skills.
Just because you aren’t a fit for one team doesn’t mean you’re not a fit for the company.
I interviewed twice at Auth0. The first time it was for an intermediate role that I was honestly over-qualified for. I didn’t get the job. Six months later I interviewed for a senior role on a different team. I got the job. This role was a much better fit for my experience building new user interfaces.
A talented engineer that I respect immensely had the same experience applying to Github. They applied many times over a year. They even interviewed for multiple teams. During their interview, though, the recruiter kept their resume on file for other roles. 3 months later, a new team reached out for a full-stack role that was much closer to their experience. They joined as a senior engineer for a job they now excel at!
When I interviewed at Google, I was nervous as all hell. I didn’t feel ready, and I told my interviewers that (because candour is important). Not only did they assure me that everyone feels that way, but several of them confided in me that they’d applied 2, even 3 times. Most engineers do.
All this to say: If you do your job search right, and apply for companies that you really want to work for, then apply now. If you don’t get the job, don’t be discouraged. Take the feedback you receive from the team seriously (but with a grain of salt) and re-apply in 6 months if you’re still looking.
Not only will this mean that a no is only temporary. You may even find yourself enjoying interviews, and getting to know your interviewers on a deeper level. This will help you present your best self, and it will make it easier to decide if the team is a truly good fit for you.
Too many engineers are afraid of getting rejected from a role they want and spend months or even years procrastinating before even applying. This sets you up for a huge kickback when they do get rejected.
Because there is no objective standard for hiring good engineers, there isn’t an objective standard to hold yourself to when applying. You can master all the Leetcode interview questions you want, but most engineering interviews are designed to really focus on subjective metrics like “fit” and “thinking process” anyways. Solving the technical interview question is just table stakes.
So, how do you get better at interviewing? By interviewing of course!
If you really really want a job at a particular company, apply now. If they are you can always study before the actual interview and even ask the recruiter what to focus on.
If your get rejected by the company you really liked, don’t be discouraged. I know engineers who were denied at the same company 3 or 4 times before getting the right job at the right time. Good companies know that their interview processes aren’t truly objective and won’t hold it against you
If you’re worried that you’re rusty, or that you don’t interview well and don’t feel comfortable applying for the job you really want, then just start practicing. Apply at similar roles that seem interesting but that aren’t as exciting to you. Rejection or offers from these smaller companies will fuel your jets to apply for the real deal. And who knows, maybe you’ll find your real dream role somewhere you didn’t expect!