Knowing the value of your work is extremely important in navigating the software engineering field. There are too many people who are incorrectly valuing themselves which leads to poor career opportunities.
This is not going to be a typical software engineering post about some obscure practice or technicality. Rather it is going to be about something I consider much more important, the value of your work.
It is beginning of August 2024. The software engineering job market has not been kind to applicants as of lately. This is one of the most important times to understand your worth as a software engineer or you may sell yourself short.
There is no concrete, quantitative way to value your worth as a software engineer. The industry’s interview process is quite the obvious indicator of this fact. Even the biggest tech companies have a very hard time determining who is a good engineer and who is not. They even admit to preferring rejecting false negatives over admitting false positives (they would rather reject qualified candidates than hire an unqualified candidate). This obviously leads to less false positives and less obviously more false negatives. This can sort of be though of as Support Vector Machines (SVMs) that aim to increase the margin or the distance between the closest data points from each class.The tech companies are basically trying to make the margin as wide as possible to prevent incorrect classifications, in this case they want the margin as wide as possible to prvent false positives (unqualified candidates).
It is important to know your value when interviewing. If the interviewer’s interview process is not good/finetuned you are likely to be misclassified even though you may very well be qualified. Here are some rules and signs to look out for the interview process to avoid wasting your time in the interview proces:
This is a deep introspective question you need to ask yourself and be honest about. There seems to be as many bad engineers who think they are good as there are engineers with Impostor’s Syndrome. You need to be honest with yourself here. Are you actually a good engineer? Do you enjoy coding and do it in your freetime? Or are you just in it for the money, clock your hours in for the week, then logout? Typically the good and best engineers code in their free time. They are constantly learning. Do not delude yourself here or you may be overselling yourself.
It is vitally important to know how far you are willing to bend for a company that you are interviewing for. How much are they asking of you? Are they sending you a take home assignment that takes you 40+ hours like this poor naive guy? Clearly, in this example, the company could have saved the interviewee’s time by doing the interview (which is when they realized they didn’t want him) before the take home assignment. If a company is not able to determine if my skills are fit for them by looking at my resume, portfolio, Github and blog then are they really going to be able to after a arduously long take home assignment? Any company that does this is a hard no for me. Sadly, in my naive days when I was green this was not always the case and I did more than I should have and it never paid off in the end. If you are a good engineer your online presence/portfolio should say plenty about your skills for companies to determine your skill. Think about it, do you think Ilya Suskever would do a take home assignment for a company? This is one of the most important things to set for yourself. When you do set your limit, you are telling the companies you either are low value or position yourself to be expendable. Either way it won’t work out good for you.
If the interview process has taught me anything, it’s that I need to interview companies as much as they are interviewing me. Just as there are plenty of bad/unqualified engineers looking for positions, there are plenty of companies who are not a good fit for YOU or don’t know what they are doing. Here are a few red flags that I have learned to lookout for that would have saved me a lot of time had I known these rules sooner:
They don’t have their interview process fine tuned: This may seem obvious but it is important to note as I have interviewed for numerous companies who seem clueless when interviewing. I understand that interviewing and finding good engineers is an extremely difficult task but when you know your worth and your portfolio/online presence is significant you can skip these companies because it most likely isn’t going to work out for you. If they don’t have their interview process down then what other issues will be lurking in the company?
Their website/founders have very little online presence: This is especially important for startups. If you can barely find their online presence then do you really want to work for a company who either has no idea what they are doing or is just getting started? The risk is extremely high here so the payout has to be worth the risk here (i.e. a lot of points in equity for being one of the first) and most startups are unwilling to do this. Save your time here, and learn from my mistakes, move on.
Most of their engineers are from a region of the world with very low wages: I once interviewed for a startup that had engineers almost entirely from Ukraine despite being a North American company. This should have been a huge red flag to me. If they are skimping on their engineers and severely underpaying them like they likely are for places like Ukraine then how can you expect them to ever fork up enough compensation for your worth? (I’ll give you a hint, they won’t).
They’re interview process is more than few hours: Don’t be that poor chap that gets suckered into wasting hours upon hours of their time in the interview process for a company that doesn’t know what they are doing, or even worse is just using you for free labor. You are better off just walking out the door. This seems to be pretty common with startups unfortunately. 90% of startups fail so if you are going to invest your most precious resource (time) into one make sure you vet them heavily.
I have been through many interviews in my, so far, relatively short (~5 years) software engineering career. If I could go back in time I would send myself this blog post and save myself hundreds of hours. There are very few companies that it is hard to justify spending more than a few hours in the interview process. FAANG-esque companies are the only ones I can reasonably justify investing a lot of time in and even these companies have figured out to limit their interview process to usually less than 5 hours. So when a startup or smaller comapny asks me to do a take home assignment that is dozens of hours long or seems like they pulled it out of their Jira board as a ticket I know they aren’t valuing me so I kindly tell them I am going to pass.
The market may be rough now but it does not mean you should sell yourself short. Strengthen your weaknesses, make sure you are actually a good engineer and I guarantee you will be able to find yourself a quality job at a quality company.
And lastly to clarify, I am not claiming I am an amazing engineer or the best. I know I have my weaknesses and I work everyday to improve my skills and make myself a better engineer. It is for this reason that I consider myself a good engineer despite my flaws.
TLDR: If you’re a good engineer know your worth and don’t undervalue yourself. Good luck :)