The process surprised me in a number of ways.

First, I thought it would be easy.

My reasoning was as follows:

It turns out it wasnt.

13 tough lessons I learned switching jobs as a developer

It wasnt radically hard, but it required significant thought and energy.

Ive tried to capture some of my learnings in a form that may be useful to you.

Take everything I say with a grain of salt.

developers

Everyones experience is their own, and this may not apply to you.

Also the TTL on any post like this is probably pretty short.

Everythings overloaded, and the job search infrastructure is no exception.

And I dont blame them.

Its almost like aRetry Storm.

Companies are overloaded with applicants, which ends up in a subpar experience.

Employer latency causes applicants to freak out and put out more applications, recursively exacerbating the problem.

My advice:

Be gracious in cases of rejection.

It doesnt matter how great you are, youre not a good fit everywhere.

And even when you are, misreads happen.

Maybe theyre making a mistake, or maybe theyre saving you from one.

There are more fish in the sea.

2. connection

Ive heard it said that most jobs are filled through networking…

I dont know if thats been rigorously established, but its the kind of statement that just feels true.

I wanted to branch out.

Broadly speaking this was a waste of my time.

I expected networking to be effective, but I was surprised by the degree.

I wouldnt disregard conventional wisdom on this one.

Use the networks you have.

I knew they wouldnt be read closely, but it required non-negligible attention from me.

I didnt want my cover letters to stand out in a negative way.

I observed a lot of variance in the effort required for me to write a cover letter.

Sometimes an articulate and crisp cover letter just fell out of my mind.

Other times it was like pulling teeth.

I started recording the subjective effort required to write a cover letter.

Maybe its a bad fit.

Like with all metrics, its imperfect!

This presents some unfortunate systemic biases.

A couple of companies paid me to do a take-home assessment, which I appreciated.

I took it as a signal that they valued my time investment.

Pick something to nerd out on

Looking for a way to go above and beyond?

Pick some aspect of the problem and take it to the next level.

Maybe you decide you want to go a step further and load test it.

Perhaps you might cover an edge case in an interesting way?

Have a good readme

Spend more time than you think on a readme.

Talk about what you did, how to run it, and what went into your design decisions.

For non-UItake-homes, include sample output.

Use diagrams

Take-homes offer an opportunity to show how you think and communicate visually.

Have tests

Write automated tests.

I believe that most companies will feel that a lack of tests reflects poorly on a candidate.

Focus on tests that are readable and help them understand how you think about the problem space.

Great tests read like documentation.

Validate inputs

Goodsoftwarevalidates inputs at its perimeter.

Sometimes companies will throw test data at your code that they didnt share with you.

If there are errors, thats not always a bad thing, but they should be semantic and sensible.

You should codify the assumptions youre making not just with tests, but with input validation.

Use modern tech

Dont pull out old libraries and tools.

Use the new stuff.

That may seem intimidating if you arent familiar with the latest tooling.

Just pick tools that are modern and minimalist, of which there are many.

These tools are also easier to read and understand if the interviewer also doesnt know them.

Salary negotiation

Im not an expert in salary negotiation.

Ill still share the general framework I used.

What are your expectations for salary?Many companies asked me about my salary expectations.

I said something like this:

Look, this is an unusual time.

Im actually not sure what a fair market rate is for me.

Some companies just took that information.

Others expressed concern because they knew they could not make offers in the high end of my range.

Whenever I had initial conversations with companies I told them this date.

Once I knew might be getting an offer from a company, I told other companies about it.

I said something like:

Hey [first-name]!

I wanted to let you know that Im expecting (?)

to get an offer from another company in the middle of next week.

Maybe we could conclude the process by y?

Id really appreciate it!

This approach worked every time and was 100% truthful.

I would not recommend doing something like this if youre not expecting an offer just to create FOMO.

Comparing offers

This is genuinely hard because predicting the future is hard.

All the companies I got offers from seemed compelling in one way or another.

I tried to assign a monetary value to everything in a spreadsheet.

I quantified uncertainty (bonus, stock performance, etc) as best I could.

It was abundantly clear which offer had the highest dollar value.

I framed it this way to myself because a dollar not earned is the same as a dollar spent.

That isnt the right choice for everyone in every situation, but it was for me this time.

Im a few months in, and so far Im pretty happy!

I didnt feel like taking the highest offer was a sacrifice in any way.

I wasnt selling my soul.

I felt good enough about all the companies and that gave me permission to make it mostly about money.

In summary

This is a great time to switch jobs if youre feeling the itch.

In my case, it required some real heavy lifting.

Figure out where your effort can yield the best results and lean into it.

make a run at learn about yourself in the process.

Journal, make spreadsheets, talk to friends.

Communicate openly and respectfully with the companies as the process progresses.

Sometimes the truth is the best negotiation technique.

Do what you’re able to to make the truth work for you.

When its all said and done, take care of yourself.

This process is exhausting.

If you’re free to, take a few weeks off.

This article fromOff-by-oneis a stream of thought about computers.

The author, Zeke Nierenberg, writes about programming, education, tech-enabled thinking tools, and product development.

Find the original articlehere.

Also tagged with