My experience in the job search
Published: 2024-04-29 20:38:25

## Background

For those of you who know me, skip this paragraph 😅, for those of you who don't: I'm a full-stack web programmer with a front-end focus and 12 years of experience. I've worked on teams ranging from 10 engineers, to well over 100 engineers (and have a slight preference for the former, I like wearing many hats!). I consider myself to be a bit of a polyglot and have worked with languages ranging from Java to Rust, C# to Elixir, Ruby to Python, and the obligatory Javascript and Typescript. I also have put significant time and effort into learning about the data architecture, flow mapping, and interaction pattern/user conditioning parts of UX design (though I make no claim of being a designer! I just think its really neat). I have done a bunch of work on the Ops side of things as well - working on build tooling, deployment pipelines and automated testing.

## Introduction

So far I have applied to well over 250 positions, focusing on positions that offer work in the parts of my career that I've enjoyed the most over the last 4-5 years: the developer acceleration roles. It brings me joy to build tools that enable other artists (yes, software development is a creative job) to do their work more quickly and/or easily.

We all know the job market is "tough" right now, but I'm not sure that everyone understands just how tough it is. My experience trying to find work over the last 6 months is as follows:

## My Experience

I've found that the large majority of companies just ghost you when deciding that they don't want to pursue a working relationship which feels bad and as such I've taken to sending thank you notes when a company does let me know that I'm not what they're looking for.

### Technical Assessments

I've interviewed for a couple companies that do not use humans in their technical assessment process. I think this is absolute folly - there is far more to building software than a simple testing framework can validate. Is the code extensible? Is it maintainable? Is it compose-able? All of these questions and more require creativity and the ability to see more deeply than testing frameworks and AI are able to. It takes an artist to assess an artist.

It also seems that my programming style is quite different from the majority of candidates on the market right now (and I'm unsure if that's a good or bad thing). I tend towards figuring out which data structures are most appropriate to hold whatever information I'm asked to work with, and then designing a flexible (read: mostly generalized, functional) solution to whatever problem I'm presented with during the interview process. This results in solutions that are easy to maintain (as I try my best to follow the single responsibility principle when appropriate), easy to validate, and easily reconfigurable. This doesn't seem to be something that the folks I've been talking to recognize/value.

I've interviewed with some companies that are definitely doing the technical assessment process "right" (at least in my mind). They sit you down for an hour with a real human and have you work through a problem together. This gives the interviewer and a candidate a chance to talk and work on a small problem together in order to get a feel for how each party operates. As someone who has been on the hiring side of this process I've found that within half an hour or so of chatting with someone I can get a pretty good grasp on their level of technical ability and I think this step will give companies invaluable insight into how the candidate will actually perform in the role. That being said, make sure the code problem is actually applicable to the job that the candidate would be doing! Brain teasers/leetcode can be a fun exercise, but 99% of the time it isn't actually applicable to the job you're hiring for!

### Languages and Frameworks

Programming languages are an interesting thing for me. I see different languages as alternate ways of expressing the same concepts - eg: If a language has pattern matching, its a more concise way of handling switch/if statements. If a language has dynamic length arrays its a more ergonomic method of handling unknown length vectors.

I find this view is often not shared by the folks on the hiring side of interviews. They're looking for people who have specialized in their language/framework rather than people who have a wider breadth of experience. I think this can be problematic, as someone who has experience with other paradigms can bring solutions that wouldn't be obvious to someone who has only worked with one language/framework throughout their career. A breadth of experience is, in my opinion, invaluable. Being able to choose the right approach to solve a problem within the constraints of the operating environment is a powerful skill. Folks who have experience with a bunch of languages are also often able to pick up new languages very quickly since they tend to have picked up on the underlying concepts of how programming works in general.

There are definitely positives to being a specialist as well - intimate knowledge of a particular stack allows for the candidate to avoid footguns and work around idiosyncrasies that might catch the generalist off guard, but I think having a balance of generalists and specialists on a team brings the best results!

### People

When I get a chance to meet and speak with people during the process for the most part they've been wonderful. Honest, caring, and intelligent - really, it has been a pleasure to be involved in the large majority of the interviews I've had the opportunity to take part in.

I interview as an open book and am more than willing to share anything about myself and that seems to have been appreciated for the most part, but I also fear discrimination. I had to take a year off recently for my mental health; it turns out I wasn't just struggling with (diagnosed and medicated) major depressive disorder, but I'm also dealing with ADHD! Getting diagnosed and medicated for my ADHD has made a _WORLD_ of difference for me (please, anyone who's struggling, talk to a professional - things will get better!) but there's always a voice in the back of my head wondering if that's the reason I get turned down from so many positions. I don't want to not be honest and up-front so both parties know what they're getting in to, but the doubt is there. The stigma around mental illness is still a very real thing.

### Titles and Postings

Personally, I don't put much value in a title, especially since titles aren't really portable to another company's structure. It can be difficult for me to assess whether or not a position is one that I should apply for because of this disconnect. In some companies my 12 years of experience means I should be applying for Staff/Principle roles, in some it means Senior/Senior 2, and in some companies it means I should be looking into more managerial-type roles - Lead/Manager/some sort of officer.

Many job postings don't clearly call out whether or not these roles are more collaborative (my preference; providing guidance, but still hands-on-keyboard), more individual contributor focused, or more managerial, and that can be a problem when assessing if I even want to apply for a role.

## The End

If you've made it this far, thanks so much for reading the ramblings of an out-of-work software developer!

Its a tough market out there and finding the right fit can be incredibly difficult. You're not the only one struggling, and the global financial situation doesn't reflect on your personal skills or capability. I can't imagine how rough it would be to be someone trying to start their career in the situation we find ourselves in now. There are so many talented folks out there who are incredibly capable of fulfilling companies needs at every stage of their career. 

Keep your chin up - you've got this!

### PS

I'm still very much available for hire. The majority of [my Github](https://github.com/RageLtd) is public and you can feel free to peruse to check out some of the stuff I've been working on. My experience is also available on [my LinkedIn](https://www.linkedin.com/in/nathandevuono/) and I'd be more than happy to help your company with any hard problems its running into!