How It Feels to be the Worst Developer on a Team and How it Accelerated My Career
2 years after I joined my first company as a developer I knew it was time to leave.
The decision was not easy. I liked my co-workers, managers and the company. But I knew that in order to grow as a developer I needed to be exposed to a more modern tech stack and different ways of working. I successfully passed an interview for a very early stage start-up using EmberJS, Rails and Postgres. At this time I had been using C#, SQL and AngularJS.
My salary also doubled. Making the move was a no-brainer.
On day one I knew I was in over my head.
The co-founders at this 5 person start-up were featured in Forbes. They had worked at multiple letters in FAANG. The lead developer was the creator of a popular library for EmberJS.
And then there was me. I had no experience with Ember, Ruby or working in a start-up.
But at least I knew Javascript… or so I thought.
On day 1 there was no onboarding. I jumped straight into pairing with the lead developer and CTO.
There were jokes about Djikstra. Who the hell is that?
A bug with closure scope. Huh?
Hoisting was affecting a test. I had never written a test before.
Overall, the team was very patient with me. Until…
I finally got called out on my lack of fundamentals and performance
First there was the bug I caused from misunderstanding how enums work that resulted in a thousand emails being sent to customers.
Then there was the feature that took about 1 month longer than it should have because I didn’t reach out for help.
I simply could not keep up with my workload and concepts like closure, classes and testing still escaped me which made pairing with the other developers a chore.
I had a 1 on 1 with the CTO/co-founder and he told me some areas where I needed to improve.
- learn the fundamentals of JS (closures, promises, es6 classes)
- speak up and ask for help when needed
- stop making quick fixes and investigate root causes of problems
These seemed do-able.
Then I had an epiphany.
I knew this wouldn’t be my last company. I was never going to be better than the super seniors around me so I made a resolution to suck a lot less. I would use this as a learning experience. What’s the worst that could happen, I thought.
Here’s what I did NOT do:
- Buy a bunch of Udemy courses (ok, bought 1 on EmberJS)
- Read a ton of articles and mistake that for progress
- Get lost in a YouTube rabbit hole
- Get mad and rage quit
Here’s what worked really well for me to improve my communication and coding skills.
- Asked the lead developers for book recommendations (more on that below)
- Read about classes, closure and promises THEN actually coded out examples using them to really understand the concepts
- Set a goal to ask at least 1 question per meeting and be very transparent with my status updates
- Volunteer to investigate critical issues to learn what was causing them
I never became the 2nd worst developer on the team 😿.
BTW — I work with career changers who want to learn to code and maybe NOT be the worst on the team. Join me and my posse here at Parsity.
Eventually I left the company to work at a larger startup where I got promoted to senior using the lessons I learned here. The CTO did me a massive favor by giving me that feedback even though it stung in the moment.
If reading is your thing… and it should be honestly. Here are a list of books that have made me a better developer and engineering manager:
- Clean Code in Javascript
- The Phoenix Project
- Functional-Light JS
- The Manager’s Path
- System Design Interview by Alex Xu
If you’re feeling like the worst developer on the team that sucks. It’s also a learning opportunity. I can throw a bunch of cliched advice your way but that won’t help.
Action cures anxiety.
Identify your weak areas, make a plan to strengthen them and maybe read some of the books above and level up.
Hope that’s helpful.
BTW — I work with career changers who want to learn to code and maybe NOT be the worst on the team. Join me and my posse here at Parsity.