The end of the year is a good time to step back and take stock of everything accomplished throughout the past 365 days. This software development year in review post continues the retrospectives I performed in 2012, 2013 and 2014.
All of my technical writing is based on open source coding projects. Typically I start a project prototype with a fury of programming in a couple of days or weeks. Then I'll write a blog post on it. In some cases, that's the end of both the programming and writing unless there are bugs found or unexpected questions asked by the community that make me want to take the project further.
In other cases, the initial code is a foundation for a larger effort that weaves coding, writing and speaking together. In these cases, such as with Coding Across America, Full Stack Python, Choose Your Own Adventure Presentations, The Full Stack Python Guide to Deployments and Plapi, I seek a fast feedback loop based on in-person and online conversations, pull requests, GitHub issues, online comments, emails and tweets. Updates are made based on the feedback received.
These are some of the projects that followed the community feedback formula that will continue in 2016:
To keep the above projects moving forward I try to make an improvement and Git commit every day to at least one of them. In 2014, I missed 3 days out of 365. This year I missed 2 days, which snapped my 505 day commit streak but is still crazy in how consistent I was able to be despite my intense travel schedule. There were several hundred more private commits but here is how the public commit chart turned out:
I also started live code streaming in the second half of this year on both Livecoding.tv and Twitch Creative. The dozen streams added up to about 18 hours of video. There is still a lot of work to figure out how well these platforms work. However, the initial results are encouraging.
The majority of my technical writing this year was for Twilio, my Python deployments book and Full Stack Python. My goal in writing is to be accessible to developers of all skill levels. I skew towards pragmatic projects and much of my writing boils down to "try out this tutorial and you'll learn x, y and z". My 2015 Twilio blog posts closely followed this formula:
These tutorials are solid executions of inspiring and equipping fellow software developers that I look forward to continuing to write in 2016.
My technical talks delivery was a tale of two halves in 2015. The first half of the year I gave one of my favorite talks ever at SF Python called Async Python Web Apps with WebSockets and gevent. The aspect I enjoyed the most about this talk was that it was almost all lived coded and there were several sections where the audience could interact with what I was building.
In April I was fortunate enough to have two incredible speaking partners in Kate Heddleston and Renee Chu for two PyCon US talks. Both talks went well. However, afterwards I was exhausted and realized that over the past couple of years I gave over fifty full length talks. Most of those talks were new or customized for the audience since that's what typically produces the best results for the folks who are taking time to listen to what you have to say. It's difficult to keep that pace though so I significantly cut back as I moved from DC to SF in June.
There hasn't been a subject that I've been excited enough to get back into crafting a new talk. I still give plenty of live coded demos and shorter talks but for now I'm going to chill on tech talks to focus on coding Plapi and writing Full Stack Python.
It's been a good year across my major focus areas in software development. 2016 will be another solid year of learning, growth and software delivery. For more on that, check out my software development year ahead in 2016 post.