home blog


20 Nov 2018

I got dumped again. This time not by a person, but by a company. The why is always murky to the dumpee. The dumper presents you with some explanations, you develop some of your own theories, the reality is probably a mix of both as well as other unsaid reasons.

The short answer to my understanding is I was not a good fit for what the company needed (anymore? ever? the more I think about it the more I can’t tell), and they didn’t have the resources to wait for me to grow into it. Like with a relationship, potential to be an amazing partner isn’t enough. If you’re not meeting the present needs of the other, it’s reasonable for them to not wait around for you to get where they need you to be.

The days immediately after, I experienced all the stages of grief, cycling from one to another and back. Something that I’d spent so much time and energy on was involuntarily ripped away from me — it’s the closest I’ve felt thus far to loss. It hurt like hell, but surprisingly I also felt a deep relief. A friend told me this was the least stressed I’d looked this year. No longer would I be permanently on-call, always with a lingering sense of responsibility in the back of my mind. No longer would I feel guilty whenever I got sick or felt burnt out for not being better.

After processing the situation logically, I thought I’d reached acceptance and was proceeding along with my life as normal again, but even now I find myself periodically falling into a state of malaise; unmotivated to do activities I usually enjoy, only capable of mindlessly watching TV. I wanted to work on a side project but found it hard to get myself to code again. When I stumble into the Mission district passing by the office, I unexpectedly end up in a state of anxiety. I know I’ll be okay eventually, but it’s taking longer than I expected to get there. My hope is in structuring my thoughts here, I can reach closure faster.

It’s crazy how everything in life spirals together. When work has me down, I also have a harder time getting myself to exercise and eat healthy. Then I get groggier and more drained by social interaction and I want to do even less. I have to constantly remind my inner critic that being lazy, fat, unlikeable, and/or incompetent are not parts of my identity, just my perception of my current state, which is changeable.

Despite hitting one of my lowest lows, I’m glad I went through this latest segment of my life. I got to find and push the current upper limit of my abilities as an engineer, and learned a lot in the process.

My previous definition of a “good” engineer was based on what I’d seen in school, where we competed for jobs at the brand name companies and thrived in the energy of hackathons. A good engineer was someone who worked for prestigious institutions and could crank out entire tomes of code in days.

After many failures, I’d finally reached what I deemed to be that benchmark and I convinced myself I was hot shit. I’d worked at one of the best companies in the world and received solid performance reviews there, and then I worked at a “YC-backed startup” as “engineer number one”. I was the definition of a good engineer.

I now see that all of those optics are meaningless. Those labels don’t mean I actually accomplished anything of substance for the world. And it certainly did not mean I was good at my job.

My new definition of a good engineer is someone who supports the rest of the company without fail. The scope of this changes as the size of the company does, but the gist is that a good engineer doesn’t just optimize for speed, but balances making changes happen fast (whether through writing code or not) with ensuring changes are reliable (catching all unexpected edge cases) and forward-thinking (durable to future happenings).

Ideally changes would be done well and fast, but when there’s constraints that make it infeasible, they know where along the spectrum to lean. Other stakeholders shouldn’t have to sweat about technical details. The engineer should be giving dependable time estimates for planning, or when it’s not possible, understandably conveying and empathetically resolving blockers. It’s ultimately less about the accomplishments of the individual and more about those of the team together.

Many of these criteria I got better at, but still have room to improve in:

  • With my previous definition of an engineer, I sometimes gave off an arrogant vibe and was blind to my own mistakes
  • When I make mistakes, depending on the communication style of others, I can get defensive and not properly acknowledge my mistake, making it harder to resolve
  • If an issue seems urgent, I sometimes jump into implementations without without giving enough thought to the edge cases / if I’m making the right decisions / working with others through it
  • My architecture skills are still lacking, so I don’t always have confidence in my designs, leading to compounded stress when systems get complicated
  • When I’m extremely stressed, I can be snappy and poor at explaining my thoughts, making it hard for others to communicate and work with me

I’ve got some ideas for how to work on some of these in the immediate future. Architecture I can study established design patterns and learn how other companies have structured their systems. Making less careless mistakes I’ve learned I can avoid through establishing better engineering workflows which I can read more about and put into practice.

The rest, however, will require me to place myself in similar scenarios of stress and responsibility again and be mindful to avoid the same mistakes, and I sure as hell will continue to put myself into exactly such places. I may have failed this time around, but my failure does not define me.

I have no regrets with the journey I’ve taken this past year and I’m appreciative of the team for giving me as many chances as they did. I won’t stop pushing my abilities. Stay tuned for more of me to come.

comments powered by Disqus