This was originally posted on my blog.
It may have seemed a bit quiet here over the last few weeks, but there's certainly been a lot of activity below the surface.
After nearly seven years at my previous position, I've decided to finally make a change. When this post goes live, I'll officially be working for the engineering team at Bay Dynamics, a San Francisco-based Risk Management and Cyber Security firm. I'm extraordinarily excited to get to join the amazing team there and be a part of something much larger than anything I've worked within the past.
The decision wasn't something that I just made on a whim, so I thought I'd write a short post on some of the factors that I considered when making the change. Hopefully, if you are in the same boat, it'll help you make a decision when the opportunity presents itself.
I remember seeing the following advertisement recently that is basically the antithesis of everything that I believe about work:
I understand that some folks live to work, and that's completely fine. But if you do have children and are explicitly valuing your work over the lives of your own kids - then you and I probably wouldn't get along very well.
Work-life balance is arguably the most important factor in any career move (with a heavy emphasis on the life side of that hyphen).
As much as I enjoy building applications and writing code, if either of them ever compromised my ability to be a good father or husband - I'd gladly dig ditches for the rest of my days.
So we've established the importance of work-life balance (at least to me), but there are tons of other factors that go into a software developer role that can shift the scales when deciding to make a change:
- Freedom to experiment (and fail)
- The impact of the work being done
- The team that you are working with
- Company culture
- Location (or flexibility in the case of remote work)
- The Benjamins
There are countless others and everyone is different. But if you are thinking about making a change, consider all of the factors that are important to you and think about how those things would change if you made a switch.
I've been extremely blessed throughout my career to have had the opportunity to work for some really great places, particularly my previous position. The company leadership was always supportive of my decisions there and provided the following which are more than most developers can ask for:
- The flexibility to explore, grow, and experiment.
- The autonomy to make decisions that directly impact the products and implementations.
- Problems to solve that directly impact the lives and well-being of people.
As a software engineer, these types of freedoms can be worth their weight in gold (or salary). So at this point, you might be asking "why would you leave all of that?", and that's a great question.
So here are three of my reasons, which I'll cover in a bit more detail individually:
I'm always constantly striving to become a better person, both personally and professionally. As a developer, this generally requires you to break out of your comfort zone and challenge yourself.
Some folks pick up a new unfamiliar programming language or write their own compiler - I decided that I needed to surround myself with an entirely new (and much larger) group of folks.
Many of these folks will have extremely different backgrounds, experiences, and personalities than my own, which is exactly what you want in a team. People that will challenge your preconceived notions of "the right way" and force you to become a better developer professionally while at the same time sharing experiences that can affect you personally.
Each of these forces, both personally and professionally, will help you grow not only as a developer, but as a person.
While the scenery itself won't change too significantly for me (as the new position is 100% remote), it will bring about a lot of changes that I haven't experienced before.
I've never worked 100% remote. I've never attended a SCRUM meeting. I've never worked on a large development team. These and countless others all culminated into a huge impostor syndrome bubble that made me feel like less of a developer (or that I was missing out on a huge part of the software development world).
While all of these changes were scary, they were exactly the reason I was doing this. I didn't want to have any regrets in my career of missing out or "playing it safe".
I internalized some of these shortcomings as weaknesses, and so I thought a change in scenery would be a good way to tackle these fears head on.
I knew that I couldn't possibly be worse off for not at least giving it a shot.
To be clear, I wasn't looking for a job when this opportunity presented itself. I had always been so happy where I was that I rarely even considered the idea always touting "it would really take something special" to get me to leave.
Well this one was special. It was also very different from what I had been doing the last seven years, and it was the different part that made wheels the wheels turn a bit more. There were so many differences that in fact that's what started becoming one of the most appealing parts of the opportunity.
The change wasn't so much about the companies involved, but rather me making a leap of faith to try something completely different and new.
So, I closed my eyes and made the leap, half-scared and half-excited, to join a new team. I'd be joining a new team, working in a new environment with so many unknowns and differences from what I had grown accustomed to.
My only hope being that all of these differences would make the difference.
I'll wrap this up with a few bullet points for those of you that might be on the fence about making a change and to recap what helped me make mine:
Find What's Important to You - Prioritize what in your career or professional life is important to you. If it's unlimited vacation, a flexible schedule, remote work, a humongous salary, working with Perl, whatever.
Now Find a Company That Those Things Are Important To - It's crucial that you make it clear to any potential employers what is important to you. Remember, interviews are bi-directional and you need to think of them that way. It's find to negotiate and make some concessions but make sure you keep your priorities in mind.
Only You (Can Prevent Job Unhappiness) - If you aren't happy with your current job, then do something about it. Determine what you like/dislike and see if you can find something new that will allow you to keep the good (and get rid of the bad). Only you can know what's best for you and your family.
So if you find yourself consistently unhappy, irritated, or burnt-out at your position, it may be time for a change. Likewise, if you are too comfortable, bored, or you simply just want to do something new, you might want to look around as well.
You are the only person that can decide if you are happy and only person that can do something about it.