My Annual Review 2020
- 6 minutes read - 1088 wordsHere’s my annual professional review covering 2020.
This has become a favorite practice for me. The changes seem small day-to-day, but over a year they add up. Writing this review helps me feel like I’m going somewhere. Keep showing up and doing your best, everybody, and here’s to a better 2021.
Milestones
Here are some of my milestones from 2020.
- Started building a software product, per my 2019 goals. Can’t share more yet, but I’m psyched.
- Went remote and built a home office. Being remote has brought a surprising collection of joys. It helped that our entire industry simultaneously went remote due to COVID. Thank you Hashrocket for supporting this adventure.
- Consulted for four clients in the legal, PAAS, and retail domains, writing Ruby and React.
- Launched two newsletters: React Explained and TIL Monthly. I learned that writing a newsletter is a ton of work, and highly rewarding.
- Signed on as a startup advisor for an entrepreneur in my network.
- Built a Les Paul copy electric guitar from a kit. I did quite a bit of soldering, and had many opportunities to reflect on the similarities between lutherie and programming.
- Shipped a COVID-inspired art project, The Bell. The purpose of this project was to feel connected with other people, build something calming that defied simple explanations, and direct visitors to a charity supporting relief efforts. It was one of my favorite projects ever.
- Taught SQL to three cohorts of Code Platoon with my friend Jack Christensen, revisiting our perennial theme that ‘databases are important.’ Congrats Kilo, Lima, Mike platoons.
- Spoke at Hashrocket MiniConf (Florida and remote) about WebAssembly and project management.
- Migrated my note-taking system from LFTM to Bullet Journaling. Bullet Journaling won me over because it’s a pen-and-paper system, supporting my larger goal to limit screen time.
- Mentored two Code Platoon veteran students for an hour a week. Thanks for all your hard work, Daniel and Jarrett.
What did I learn?
- Remote pairing all day is challenging! I believe that pair programming is one of the most effective ways to work. It also requires a high EQ, mixing engagement and vulnerability. Remote pairing is even tougher because it removes body language.
- “Give updates without asks.” This is a concept I picked up from my business partner. When building relationships in a network, keep people in the loop about your progress without asking for something every time. I think this is a brilliant way to make networking feel less transactional.
- The value of a great product manager is massive. The blog post Momentum > Urgency helps define this feeling for me. I’ve known a couple of Drews in my career and each one felt irreplaceable.
- I acquired enough design and project management ability to fill those roles, when required. Doing some of the DailyUI challenge pushed me to learn Sketch, developing fledgling opinions on colors, fonts, layout, and accessibility.
- UI design is a legitimate area of expertise. If you want your application to look and feel professional, hire a professional.
- “It’s too hard/risky to rename this” is a code and organizational smell. To quote Martin Fowler: “Never be afraid to change the names of things to improve clarity. With good find and replace tools, it is usually not difficult.”
- As a senior developer, when arguing that something should be done because it’s a best practice, you have to understand the why and the tradeoffs. Having that information in your back pocket increases your believability, to borrow a Ray Dalio term: how likely it is that the argument you’re making is correct.
- On #LearnInPublic: you’ll only get feedback from a fraction of the people that you might be helping and inspiring. That’s okay. Keep going. By the same token, if you value the content somebody is making, tell them! You’ll make someone’s day, and maybe encourage them to continue.
- “Don’t ask for advice, ask for a code review.” If you want great career opportunities and influence on your team, learn how to write the best code you can. There’s a lot more to the job, but proficiency in the codebase is the fee at the door.
- “Never get off the ladder of learning.” This is a quote from a mentor. Knowledge is currency in this industry. It must grow with inflation to retain value.
- “The best way to get the right answer to a question is to post the wrong answer on the internet.” I posted my vimrc on Reddit and stirred up quite a bit of feedback. Apparently nitpicking people’s Vim config is an r/vim tradition. I certainly got closer to the right answer for me!
- Execution is at least as important as most ideas. To quote Paul Arden: “Do not covet your ideas. Give away everything you know and more will come back to you.”
- Buy the best computer you can; the dollar differences will amortize. I’m still working full-time on my 2014 MBP.
- Starting anything requires a few trips back to the drawing board. If the first version of every idea was a success, everybody would be an entrepreneur.
- Neglect ergonomics at your peril. The longer you program, the more it matters.
- I get as much or more out of mentoring than I put in. I’ve learned from every person I’ve mentored.
What did I write about?
Here’s a collection of my writing this year from the Hashrocket Blog, this blog, and Hashrocket TIL.
- How South Dakota v. Wayfair affects online businesses
- Why WebAssembly is the next language of the web
- Essays on Programming I Think About a Lot
- My Development Roadmap
- 10x Your Playback Rate
- Include vs. Includes 🤷
- Heroku Psql Oneline 🐘
- The Zen of Python 🐍
- Remove an Image Background with AI
- Git 101
- Supercharge Your Script with psql -c 🥞
- Vim Mark That Test! 🔖
- Base64 Encode Your Images
- Run Git Commands From Any Dir
- Swap JavaScript Array Items Inline
- Toggle Dark Reader 🌓
- List Files by Updated
- Perform on Zoom 🎸
- Git Diff Matches Paths 📁
- Firefox Profiles for Work and Home 👤
- Meaning of RC in a Dotfile
- Git + NPM: Resolving Lockfile Conflicts 🤝
- What Styles are Being Used?
- UUIDs in Vim with Ruby/JavaScript 🆔
- Repeat Last Command Mode Command in Vim ♻️
- What Does
\d
Mean in Psql? - Reopen Closed Browser Tab Cross-Browser
- React CodeSandbox with react.new
- Tmux Clear History
- DNS Lookup with host
- Git Checkout in Patches
- Finding a Data Attribute
Thank You
Thanks to my family, my business partner, my colleagues, mentors, and mentees, clients, and Hashrocket. I wish you all a wonderful and healthy 2021.