In the past several years I have taken time at the end of December to reflect on the coding projects, software talks and tutorials that I worked on throughout the year. It is useful to have an account of my software development highlights even though I do not expect this type of post to necessarily be riveting retrospectives for most readers. They are just an honest retrospective on what worked, didn't work and how I can get better going forward.
This post differs slightly from past retrospectives in 2012, 2013, 2014 and 2015 by starting with a big picture summary before diving into the highlights for what I created. I also wrote a forward-looking post on my year ahead in software development to kick off this year so I'll take a look at how my results stacked up to what I was expecting to accomplish.
2016 was my first complete calendar year as a software developer in San Francisco. Without looking too far ahead into 2017, it will also be my last year here as I am moving back to Washington, DC in April to continue the work with Twilio that I started there in 2014.
Overall I made progress on becoming a better Swift & iOS developer. My work continued on the Python projects that are important to me while also learning a bit more about the Bottle, Pyramid and Morepath web frameworks to branch out from my usual Django and Flask work. I invested significant time into live streaming programming and creating tutorial videos to put onto YouTube.
My four goals were stated in my 2016 year ahead in software development as follows:
Goal #1 to code, launch and operate the Programming Languages Web API was a semi-bust. I wrote a decent initial version and deployed it on a Linode server. However, I fell on my face while trying to operate it. Essentially, the operations did not happen. There really needed to be daily updates to the content and code for this project to take off. In the late spring the whole thing was shelved when Michael Kennedy and I started working on the Python for Entrepreneurs video course.
I will have to take another swing at building this programming languages web API again when I am more firmly committed to the project.
Goal #2 to continue inspiring and equipping developers as a Twilio Developer Evangelist was solid. Twilio is a special company completely focused on developers. I am just as stoked while entering my fourth year as a Twilion as the day I joined.
Goal #3 was to release several Guide to Deployments book updates. There was significant progress in the book toolchain, creation of the .mobi version and some content updates and tweaks. However, I really aim to get out an update each month or every other month at the least. In 2017 I need to do better to crank out regular meaty updates and keep the book's instructions fresh.
Goal #4 to continue building Full Stack Python with daily updates was very successful. While I did not deliver updates every single day, I was intentional in the days I would not commit a code change because I needed a break due to vacation or work commitments. I'm happy how this one turned out with the addition of the new tutorials blog, a revamped table of contents that includes a roadmap for upcoming pages significantly reduced HTML+CSS file sizes and a ton of additional content across many new pages. Crossing the 800,000 reader mark for the year is also a good stepping stone towards my 1+ million readers target in 2017.
I did a lot of coding this past year but a lot of it didn't feel as meaty as some projects I worked on for extended periods of time when I was a consultant in my pre-Twilio days.
Here was my GitHub commit log throughout the year, including both public and private repositories.
I'll need to think about longer-term projects in 2017 to make sure I do not get stuck spending all my time constantly creating new projects rather than maintaining and building upon existing ones.
My writing is split between several locations, including the Twilio blog, Full Stack Python, this personal blog you're reading right now and any outside sites I have the opportunity to write for, such as Real Python this year or O'Reilly's site in past years.
I wrote less Twilio posts than I would've like to put out there, but the resulting list is decent.
Back in May I started writing blog posts to supplement the explanation pages typically found on Full Stack Python. Most were written between May and July with a trickle of new ones throughout the remainder of the year.
My personal blog only had three posts, the look ahead for 2016, this year in review post and a summary of my SIGNAL 2016 talk on bots.
Daily updates to Full Stack Python, including the blog posts listed above, along with one major update to The Full Stack Python Guide to Deployments were the highlights on the book update side. There is a lot of work to be done in 2017 with more frequent updates to the Guide to Deployments book to improve it based on reader feedback.
I started streaming on Livecoding.tv at the end of 2015 and then moved over to Twitch Creative for the first six months of 2016. Finally I switched to creating videos for YouTube and the Python for Entrepreneurs video course. The two public videos I created were:
The rest of the videos I created are in the Git chapter on the Python for Entrepreneurs course page. I have a lot more videos coming in 2017 and that will be one focus area for me heading into the new year.
On the Twilio Developer Network we constantly use a simeple "worked / ! worked" tool for critical self-reflection after rehearsing and executing. We start with everything that worked for us then follow it up with what didn't go as well that we may want to improve. Here are my worked bits for 2016:
That's my long list of what I achieved, didn't achieve and some insight into what I hope to do better for 2017. Next up I'll do a short post sometime in the next few weeks that will look ahead towards my goals for the new year.