Be at war with your vices, at peace with your neighbors, and let every new year find you a better man.

– Benjamin Franklin

It’s again this time of the year when we get to reflect on the year behind us and hope for a better year ahead of us. Earlier today I read my summary of 2018 and the goals I set for myself for 2019. As usual, I’ve failed to fulfill all of my objectives, but I feels that I did reasonably well overall.

Programming

The year was a completely failure here. I think I read 0 books on programming and learned 0 new languages/frameworks/etc. I don’t remember when was the last time this has happened to me. Probably it wasn’t a complete zero, but my plans to finally master Erlang and Haskell, and to invest more time in software architecture certainly fell through.

Shame on me! The way things are going I doubt I’ll do much in this department next year as well. Bummer.

Open Source Work

I think I’ve had a good year on the OSS front. My focus (again) was mostly on RuboCop, CIDER and nREP. All of them got to important milestones in 2019. I’m especially proud with the work on nREPL, as the new version (a.k.a. nrepl/nrepl) has completely replaced the legacy tools.nrepl and brought a lot of improvements to both tool authors and end users.

I already wrote a lot about the big milestones the projects reached, so I won’t go into any details here. I’m a bit disappointed that I couldn’t ship a 1.0 version for any of them for various reasons, although all of them are pretty close to it. I’m also a bit sad that I didn’t find the time for my smaller projects (e.g. Projectile and Emacs Prelude), not to mention starting anything new. At some point everything else that you’ve started (and became somewhat successful) really starts weighing you down.

I’ve spent a lot of time this year working on documentation and mastering the fine art of Antora and AsciiDoc. I’m really proud with CIDER and nREPL’s documentation sites, although there’s certainly a lot of room for improvement there. I also spent a lot of time publishing AsciiDoc-powered versions of The Ruby Style Guide and The Clojure Style Guide. Believe it or not, documenting can be a lot of fun! I just wish I had more time for this. And more help from all of you!

I also wish I had more people supporting financially my OSS work. 2019 was certainly better than 2018 in this regard, especially for CIDER, but the funding my projects are getting is still very far from the point of sustainability. My biggest disappointment is that relatively few companies have pitched it and one of my goals for next year is to find better ways to get them involved. On a positive note - I think most of projects got a steady influx of external code contributions, which is always great. The key to the long-term success of any OSS project is to avoid a bus factor of 1, which is generally done by building a healthy community of contributors around the project.

Public Speaking

I’ve continued to reduce my speaking engagements. I think I did only 5-6 talks during the entire year and while I miss the fun aspects of being on the road more often, I certainly don’t miss all the extra stress that goes with it. I spoke in Bulgaria for the first time in a few years and it felt really great to be back in front of a local audience. I might do more of this next year.

In general I’ll probably stick to the same formula going forward. If I don’t have anything meaningful to share with people I might do even less public speaking down the road. Time will tell.

Blogging

I think I did pretty well on the blogging front, as I published 72 (!!!) articles on Meta Redux. I also wrote a handful of articles over at Emacs Redux, but I definitely didn’t do that well there. I’m especially proud of the Meta Advent blogging challenge, that I’ve managed to complete successfully. I’m thinking of doing something similar for Emacs at some point.

Still, I failed to meet my primary objective to write more essays and fewer howto/tutorial type of articles. Those require a lot of time and energy, that I certainly lacked throughout the year. Writing is hard. No surprises here I guess.

Career

Fun trivia - I’m a few days away from celebrating my 5th anniversary with Toptal. Never thought I’d stay so long with the same company, given how in the past my usual tenure would be something like 2.5 years. I joined Toptal when it was really small and it has changed so much in those 5 years that I feel like I worked in several different companies during this period. I liked some of them better than others, but I keep learning new things in all of them, and that’s good enough of me. Not to mention I cannot imagine working with a better team.

My role changed a lot this year and as I result I ended up being on the road less frequently and closer to technology. While it’s always a bummer when your role gets scaled down, this certainly affected positively my well-being and my work/life balance, as previously my workload was insane. The older I get and the more health issues I experience, the more I start to appreciate having proper balance in your life and your work.

The key word for 2019 on the job for me was OKRs. These make such a massive difference! I was skeptical of OKRs at first (who isn’t?), but now I’m a true believer and I feel than can really help you in your personal life as well.

Personal Life

A few months ago I celebrated by 35th birthday. Damn, time sure flies fast. I feel like the past 5 years took place in something like 6 months… The older I get the more philosophical I get. And grumpier. So many things to do, yet so little time.

This year I fulfilled my life-long dream to travel to South America and Buenos Aires in particular. Being in BA sure felt magical! I’ve spent a couple of months traveling around Peru, Chile, Bolivia, Argentina and Brazil and this was pretty was pretty amazing. During the course of this journey, I realized once I again I have to double down on Spanish, but on the bright side it seems I know enough of it to be dangerous.

I’ve read quite a lot during the year - a total of 42 books. Probably the last time I read so much I was still in high-school. I didn’t keep a solid track of my reading in the past, but this year I’ve been using Goodreads very consistently and I intent to keep it this way. I’m too lazy to highlight any of the books I read, but you can check out my profile and see what resonated with me.

One of the goals I’ve set out for myself last year was to take control of my finances and I worked pretty hard in this direction. I’ve been tracking my expenses more carefully, trying to optimize and plan them better. I also started to invest some of my income into stocks and mutual funds and I hope that one day this will allow me to live a better and less stressful life. Time will tell. I certainly learned that investing can be fun, but it’s also quite addictive - there’s a pretty thin line between investing and gambling. Every day I keep reminding myself that I know nothing and should stay away from speculative investments that I don’t really understand. A lot of my free time this year went into reading books on investing, and researching funds and companies, but I hope this was a one-time investment and that next year this endeavour won’t be nearly as time consuming.

I didn’t do anything on the guitar front. I did almost nothing in the Spanish department as well. Same with sports. Shame on me (again)! Next year I definitely plan to do better, which shouldn’t be hard given the super low bar I’ve set for myself.

2020 Goals

Here are my OKRs for 2020.

Objective: Become a better and healthier human being.1

  • Double the donations my OSS projects are receiving
  • Release RuboCop 1.0, CIDER 1.0 and nREPL 1.0
  • Invest 1/3 of my income
  • Read 35 books2
  • Write 50 blog posts
  • Learn Spanish at a B1 level
  • Learn to play 5 new songs
  • Visit 5 new countries
  • Exercise 3 times a week

Epilogue

Writing such summaries is pretty hard for me. I think 2019 was a good year overall. I’ll do my best to make 2020 an even better one. Happy New Year!

  1. I know it’s a bad objective, but bear with me. 

  2. Why 35? Because I’m 35 years old.