Throughout my career, I've had a number of employers. I can honestly say that none of them were particularly bad -- some contained fantastic experiences are are still highly sought-after -- however none thus far have been my forever home. Some of this is my personal nature, some the nature of the tech world -- the rest random chance. I've found that there's a lifecycle for companies in the tech world (possibly growth industries in general), that result in a path that is antithetical to what I have historically considered engaging work. There are two stages of a company that I particularly enjoy, each with a substantial list of caveats: 0 -> 1, for creating a new product whose existence I crave, or 1 -> 100x for products whose value I see, and present interesting technical challenges.
Over time, both you and your job/employer will evolve, and what was ideal for either party at one time can diverge in a myriad of ways. When considering whether or not a role continues to be a good fit, I've come up with three simple-ish questions.
I've surprised myself over the years in the breadth of topics in which I can become engaged. I've experienced an abundance of nerd-snipes, from TSDBs to service deployment tooling to CMS tools. If I can understand the value of the problem, or more simply empathize with user pain, I can engage in a solution. Sometimes, I'll even set my keyboard aside and talk to people to address problems, with a goal of nothing being built, because the problem doesn't actually exist or the tool that solves the problem does.
If you try to get me to address a problem I find to be contrived, or try to pull me into a doomed rewrite, we're going to have a rough time of it. Time is, as most people likely feel, my most precious consumable. I loathe wasting it.
If I'm engaged, I'm borderline obsessive. I'll lose track of time, and endlessly work on designs or code, pour over metrics and logs, and just generally give my all. From this comes my best work. Not all engaged work is my best, but my best work is all in a state of passionate engagement.
On the flip side, if I'm not engaged, I can barely get myself to function. I'll struggle to focus, spend a disproportionate amount of time shuffling tasks around and picking off small nuggets, making glacial progress in comparison to my peak.
I have been known to optimistically say "Of course that's possible, this is software. We are gods of our domain." It's a bit over the top, but fundamental computer science problems aside, most software problems can be solved with sufficient articulation, and acceptance of realistic constraints. We cannot go faster than the speed of light, we can't build things without people and time to focus, and we can't wiggle around concepts that are inherently in contradiction.
So, the question more aptly phrased might be "Is Success Possible?" If the answer here is no, and the powers that be aren't going to budge, we're going to have a bad unit of time.
While the first two questions are about whether or not I am currently happy with the role, this is really this linchpin of whether to stay or go. If I believe that change is required, and that I am unable to affect that change, then that's the end of the road.
Getting to a no here is a lot of work, involving conversations with peers and superiors, brainstorming on tactics and tracking outcomes, and considering whether there is an opportunity for personal growth in the situation.
The recurring theme for me has been the application of process over technology. In past lives, I've referred to these as "consultancy tactics" -- provide a list of good things to do, turn them into a checklist, and then hold regular meetings to hold subjects/targets accountable to their progress. I have been on both sides of this -- the target and creator of the checklist -- and find it insufferable. As technologists, we should build tools to help others build better tools. Managing a spreadsheet is a failure mode with a surprising following. An organization that prefers these tactics is the wrong place for me.
Specifics aside, this is about agency to improve your situation. If you're not able to move the needle yourself, you're leaving your fate in the hands of others. I have worked with a number of highly kind, capable, and competent people. I likely collaborated with them in the earlier stages of answering this question! At the end of the day, if I've run out of ideas to improve the situation, I will not hope for someone else to solve the problem for me. Hope is not a strategy.
I favor the independence and pace of small-to-medium organizations. I love to breadth of responsibility, and the ability to dive straight into the work. I love to use technology to solve problems, and to scale with leverage as opposed to human effort. Unfortunately, for all organizations I've seen, these are transitional states.
If a small or medium-sized organization succeeds (especially in tech, where growth is king), they become a large organization. A large organization must put a disproportionate amount of its effort into sustaining itself. It requires concerted effort as more resources are acquired, and must coordinate with each other to make forward progress.
Alternatively, if a small or medium-sized organization is not successful, it ceases to exist. Not a great employment opportunity.
A simple deduction from the above is that it's unlikely that I'll ever find an organization I want to stay at long term (barring changes in my own preferences). This was a rough realization! From another perspective, it was also extremely freeing. It allowed me to consider roles based on how I would grow, instead of trying to find an eternal (professional) partnership.
That realization also allows me to reflect happily on the good times -- I loved much of my work at Amazon, Snap, and Stripe. Each opportunity challenged and excited me, and I've made friends in the trenches I'll cherish forever. My preferences are for experiences that are substantial, but transient. That's ok!
No posts

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.