Matt Makai - Python web dev & Twilio Developer Evangelist.

@mattmakai on Twitter & GitHub

My 2016 Software Development Year in Review

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.

Expectations vs. Results

My four goals were stated in my 2016 year ahead in software development as follows:

  1. Code, launch and operate my 2016 side project Plapi
  2. Inspire and equip fellow developers as a Twilio Developer Evangelist
  3. Release new updates to The Full Stack Python Guide to Deployments book
  4. Build on the Full Stack Python foundation with daily updates

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.

  • Spent significant time coding Python projects, both open source and some private side prototype projects
  • Developed with Swift and released a small iOS mobile app on the App Store
  • Coded occasionally on Windows with both Python and Java

Here was my GitHub commit log throughout the year, including both public and private repositories.

GitHub commits for 2016

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.

Book updates

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.

Streaming and Videos

I started streaming on 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.

Worked / !Worked

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:


  • Continued daily work on Full Stack Python
  • Reasonable technical tutorial output on multiple sites
  • Took time at the end of 2016 to stop and reflect on my work
  • Coded and learned way more in Swift & iOS development than any prior year
  • Became fully comfortable switching between Django, Flask and Bottle
  • Grew Full Stack Python to over 80,000 readers each month
  • Started Python for Entrepreneurs and ran successful Kickstarter with Michael Kennedy
  • Established a solid position to finish Python for Entrepreneurs course in early 2017
  • Had a better work/life balance in fall 2016 than 2015


  • Not yet fully comfortable with using Pyramid for web development
  • Did not produce enough book updates for readers
  • Overall did not spend enough time coding, especially on complicated projects
  • Did not do enough technical talks throughout the year


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.

« Back to blog