Switching jobs in the tech industry can be an interesting adventure, especially if you've had years of experience at your previous position. The dramatic change can spur many emotions, experiences, and situations in your life; both good and bad. Since I know many are either actively going through this process or are considering it I figured I would leave my thoughts.
For context, I recently went through a job transition and started working at Heroku - aka Salesforce - this past September. I won't go into why I left my previous position, but I want to discuss my discoveries once I started to get settled into my new position. I'm only ~51 days into this position, so while there is a lot more to learn, I find my immediate experiences to be most helpful for those considering switching.
During my transition phase, I decided to take almost a full month off between jobs. During this time, I went to Disney, played quite a bit of video games from my Steam backlog, and increased the amount of time that I was biking & exercising. It was all great! I felt like I had been revitalized as I was leaving behind some of the craziness of my old job, and I felt almost like a kid again with limited responsibilities.
The downside to this time off was that it was very difficult to get back into the groove of working again, as I struggled to find the motivation the first few weeks to actually want to work. Obviously the paycheck 💰 is the ultimate motivator, but it was still an adjustment to get back to always logging on 9-5 when I was getting used to being able to do whatever I wanted during the days of my unemployment.
I will say that this process was made easier by switching to a fully remote position with a globally-located team. Since everyone on my team lives in different timezones, it made the work-day hours less strict, and I feel more able to get away from the keyboard in the middle of the day to do something for myself, like a bike ride or a nap. Now that I've been around for more than a month, that productivity and motivation is back, but wow, it was rough at the beginning.
Without getting into specifics, I left my job because I was unhappy with something in their current position and I saw the opportunities of a better existence in a new environment. While I understood that no job was going to be perfect, I didn't realize the number of similarities that different companies shared, both good & bad. Many processes, experiences, and mindsets were similar to how my old job operated.
It was nice to know that I could already be familiar with some things, but there were other places where I could build off that knowledge to learn the unique aspects of my new team. The two positions weren't as different as I had anticipated though.
There was one area that I let myself be blind to during the transition process...
Without going into details, one of the reasons why I decided to find a new position was due to some internal bureaucratic decisions that I disagreed with. I got tired of playing politics for certain things that I thought were self-explanatory, and organization changes were occurring that went against some of the foundational ideals that my department had spent years building up.
I had told myself, "Hey, these B.S politics are getting old, let's go somewhere else!" and I quickly realized that every job has shitty politics and bureaucratic decisions to deal with. It's nothing against these companies, but at some point, business decisions have to be made and those are going to clash with engineering desires. Now, with that said, I believe that there is a line that can be crossed where one shouldn't keep putting up with politics, but to have the expectations of never dealing with politics?...that is just unreasonably in the modern workplace.
With this conclusion, I realized that I could change the angle that I was viewing some of these problems through. While I think the switch was still ultimately needed for me, I believe I've grown and have learned how to handle some of these situations better.
I find that the old adage of "One man's trash is another man's treasure" is pretty true concerning jobs during the Great Resignation. I saw pretty high levels of attrition at my old job - heck, I was one of those 😉 - and my new manager was pretty open that the team I was joining just faced some higher-than-average attrition levels.
Does that raise red flags? 🚩🚩🚩🚩🚩🚩🚩 Hopefully not if you've done your due diligence before joining the company. I knew that this was occurring, and I knew the situation was changing; not for better or worse, it was just changing. Changes meant new challenges and potential technology refreshers; it meant that I had the potential to make a bigger difference, and I was drawn to that opportunity.
One thing that really excites me about starting a new job is that I can bring fresh perspectives to projects that may need it. If the same people are working on the same project for an extended period of time, it starts to create a silo of ideas and knowledge. By introducing new people to these projects - aka me onboarding - then these projects can get some new life. This allows them to be viewed in a way that allows us to make any needed changes that might have otherwise been overlooked.
"Of course I'm open to new things, I just quit my job for heaven's sake!" I tell myself as I write this. But really though, I switched jobs and immediately was thinking about how to jump on a project that is most similar to what I'd been doing previously. I worked with a lot of Kubernetes cluster management at my old job, and I really wanted to just jump right into more Kubernetes projects.
Wanting to work with a specific technology is okay, but I wasn't really giving myself a full chance to grow more. With a new team & company came new opportunities, and I quickly realized that I was limiting myself by having such a small view of what I wanted to work on without knowing the full scope of projects and available capabilities. Once I saw myself doing this, I started giving other projects more of my time, and I found that I was learning a considerable amount in areas that I had limited familiarity in. This led to some of the confidence checks that I list below, but for the most part, its already been a pretty neat journey to connect the dots between my previous experience and the stuff that's totally new to me. By tackling these new problems, I am becoming a more well-rounded engineer, and I can feel my confidence raising by a considerable amount in these areas.
So this section depends on what level you were at your previous company vs what you are joining as, but I feel like there's something for people of any level.
For my situation, I was a newly minted Senior Engineer when leaving, and so I applied & received a Senior Engineer role at my new company. Do I deserve to be a senior right now? Well, my Imposter Syndrome says that I'm not good enough, but I've led projects, maintained critical systems, and built large complicated systems, so here I am as a senior. 🤷🏼♂️ I've solved enough problems and pulled out enough of my hairs to justify being a Senior - I'm looking at you Jenkins/Groovy for most of those hairs pulled!!!
Being a senior brings with it a certain level of expectations and responsibility, which I was familiar with in my old job. The issue was that I was attempting to maintain that same level of expectations in a job where I barely knew what was going on. Most companies and teams expect onboarding new engineers to take at least a few months - based on the complexity of the system(s) - and my new team was no different. For some reason though, I was trying to shortcut this timeline and prove my skills as an engineer to those around me as quickly as possible, which led to some failed personal expectations and confidence issues that made me question my own abilities as an engineer.
Dan StarnerI had a pretty nice blog post mostly together, but then _Imposter Syndrome_ hit, and I’m going to pretend like none of it was ever written because it doesn’t feel good anymore ¯\_(ツ)_/¯22:28 PM - 01 Nov 2021
Note: This isn't the blog post in question, but maybe I'll still post that other one implied in the Tweet 🤔
If you are like me who puts a lot of pressure on themself to succeed, then switching jobs will probably lead to some stress & Imposter Syndrome from facing problems against an unfamiliar position. It's okay to struggle the first few months in a new position. Like I mentioned, teams expect around 3-6 months to onboard engineers, so don't expect to start dropping big Pull Requests by the end of your second week.
I wish I told myself this earlier though. I've been in this position for less than 60 days and I've already almost burned myself out 😅 Why? Because I set an incredibly high bar for myself where I tried to match the work output that I had at my old position. The issue there is that I don't have the 3 years of institutional knowledge at my new job that I gained at my old job. During the beginning of my onboarding, I was constantly telling myself & my manager that I needed to get some big contributions out as soon as possible to prove I was worth hiring.
It's almost impossible to hit the ground running when starting a new job though. For example, its difficult when you have a system and multiple environments as complicated as Heroku's tech. Note: This is nothing against Heroku, its just **impossible* for anyone to learn a large company's tech stack within 2 months*.
As time progresses, I will get more comfortable with the systems and my productivity will rise. It's going to be bad for my mental health and productivity to assume that I will be able to solve all of my new problems with the same ease that I did at my old job. My manager & team are not putting that level of pressure on me, so why am I putting it on myself? This is still something that I struggle with occassionally, but being away of the problem is the first step to solving it, and I just need to take a deep breath and let myself relax a bit.
Switching has allowed me to get a brand new group of work peers! I worked with some really great engineers at my old job, and my new position is no different. Having the opportunity to work, learn, and grow with some of the best engineers in the world is something that I do not take for granted. While I'm not surprised by the fact that I am growing relationships to my new coworkers, I am surprised at how quickly it's happening. I already feel like I have the support of my managers, architects, and colleagues, and I am gaining their trust more and more as time goes on.
I really want to keep in touch with many of my old peers, and I'm sure I will to some extent, but I'm excited for the challenges that I'll be able to overcome with my new team. I just need to meet all of them first, which is okay, because I've been trying really hard to reach out and schedule 1:1s with everyone.
An easy way that I started to build relationships with my team was by reaching out and setting up 1:1 introduction meetings with many of the people I work with day-to-day. This included those on my immediate team, sister teams, and my management chain.
I tried to schedule meetings with the following approach, and I think it worked/is working pretty well!
- First 2 weeks: Meet with my manager and immediate teammates
- First 4 weeks: Meet with some members you are interacting with that are on sister teams
- First 6 weeks: Meet with any senior/principal engineers in your work tree and architects if those exist at your company
Heroku also uses Donut to connect different people in the organization, and I've been trying to actually schedule meetings with the other individuals the app pairs me with. It's made it somewhat easier to introduce myself across the organization, and to meet people in a way that is normally difficult for a remote-only workforce.
So I thought of this extra note about my onboarding experience, because I'm usually the one writing documentation or explaining a technical solution to others, and it's been a fun experience to turn the table on that notion as I get to learn everything my team interacts with.
Sometimes i feel like I am asking too many questions, but I recognize that is just a part of the onboarding process, and I appreciate my colleagues' willingness to always help me get the answers I need to understand the systems a little bit better. To keep this process more enjoyable for them though, it's important that I note & remember as much of the information they give me as possible, so that I don't need to ask again. This note-taking process also helps, because it provides the opportunity to convert these notes into real documentation that can be used by others who find themselves in my same position...then maybe they'll be asking me questions. 👀
As an extension, I'm glad that I found Obsidian right as I was starting my new position, because my gosh I would be lost without a good note-taking app. Everything from onboarding requirements, to technical notes, to people's names/positions...you name it, and I have it in some notes from my onboarding. This has helped me stay on top of things while I start to climb the mountain of knowledge that my team works with, and I find that writing stuff down really helps me remember important details.
I am excited to continuing growing in my new position, and I will probably have more posts to write about in the future regarding the cool work I get to do, but for now, I'm excited to just learn. The amount of information I'm getting to learn in my new position is truly incredible; it's like trying to drink from a fire hydrant sometimes. We'll see what I do and where the future takes me, but this transition period has been quite an experience, and I hope that some of my thoughts help you, wherever you may be in your own journey.