What is the Value of Your Work?

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.

What is the Value of Your Work?

Knowing the Value of Your Work

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.

Value Your Yourself. Know Your Worth

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.

How to Determine Your Worth

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.

SVM Metaphor
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).

Rules for Knowing Your Worth

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:

1. Are You Actually as Good of an Engineer as you Think?

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.

2. Set Your Limit

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.

3. Signs/Signals in Companies to Lookout For

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.

Lessons I Learned

  1. Never work for free (unless it’s a non-profit): the only company I don’t regret working for free for is Open Learning Exchange. No I am not advertising them, this is just the only company I ever enjoyed working for for free (I was a young, inexperienced intern) because I knew it was for a good cause. I also learned A LOT here, surpisingly more than I did at some of my paid positions. We had calls a few weeks where interns would take turns pair programming with the CTO. Just watching and listening to the CTO I was able to learn so much. Non-profit companies are much less likely to take advantage of you than for-profit companies do. Do not let for-profit companies profit off your hard work with no cost to them.
  2. Never spend more than a few hours proving your worth in the interview process: Seriously why do companies think they have the right to ask for more than a few hours of your time to be interviewed. Big take home assignments are a no. Multi-hour and multi-day interviews are a no. If the best companies keep their interviews to about a 5 hour process, smaller companies have no grounds to have longer interview processes than this, they should be much less as they can’t compete with the Tech Giants.
  3. Always vet the company you are interviewing for: I once was reached out to an interviewer about a hedge fund startup that was located in the Bahamas. When I researched the company the CEO claimed he was getting insane returns of over 1000+%. When I Googled him I couldn’t find anything. I started to put 2 and 2 together, realized the Bahamas is very lax on financial regulations and lots of shady shell companies are created here and realized his outlandish claims were most likely false, fraudulent or both
  4. Always vet the founders/member of the company you are interviewing for: I once almost joined a startup that was run by con artists. If I had done my due diligence I could have saved myself a lot of time. Eventually I was able to tell they were shady people with shady pasts and knew I wanted nothing to do with them (one of the cofounders bragged about an NFT pump and dump scheme he pulled on our second call!).
  5. Do not bend over backwards for companies: Your time is valuable. Treat is as such or companies will treat you as disposable.

Conclusion

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 :)