My awesome friend Monica wrote a year in review post, so I am writing one too! Here is the programming stuff I did this year. This features zines, pictures, blog posts, talks, and wrists that hurt.
I wrote a zine about how much I love strace and handed it out at a talk I gave. This was a huge success (someone gave it out to the students of their operating systems class!!!!) 2016 may have more zines. Here’s the front cover:
I was thinking of trying to sell it but it felt like too much work. Instead I spent maybe $300 on printing and gave it away for free, since I have a job. You can print your own copy if you want!.
I opened PyCon 2015 and got to tell 1000 people how great of a conference I think it is. (SO GREAT)
I also gave a talk at PyCon called Systems programming as a swiss army knife. abstract: “You might think of the Linux kernel as something that only kernel developers need to know about. Not so! It turns out that understanding some basics about kernels and systems programming makes you a better developer, and you can use this knowledge when debugging your normal everyday Python programs.”
I gave out 200 strace zines in the talk and people seemed to love it. Super happy with how that went. A+! Giving talks about systems programming seems to be super delightful.
I gave a talk at Data Day Texas (about the data infrastructure at Stripe) that was okay but not awesome. Giving awesome talks is hard! I’m going to hold off on giving any more talks about work until I have better ideas.
I rejected all invitations to give talks in the second half of 2015 and that was also a great choice. I think I’ll go back to it in 2016!
fun: papers we love!
I went to the papers we love meetup in Montreal a few times and it was awesome. Definitely my favorite meetup in the city. The organizers (Julian & Kyla) gave me a paper about profiling threaded programs and one about adversarial inputs to threaded programs and they both gave me awesome new ideas. I think I’m going to revisit my policy of “never read papers who needs papers not me!”. Possibly to “convince people to print papers and give them to me” =D.
Some posts I really enjoyed writing this year:
- How to trick a neural network into thinking a panda is a vulture
- Why you should understand (a little) about TCP
- A millisecond isn’t fast (and how we made it 100x faster)
- Nancy Drew and the Case of the Slow Program
- How I learned to program in 10 years
- How the locate command works (and let’s write a faster version in one minute!)
Apparently I like writing about how things work, and how to make computers go fast. I did some fun performance optimization at work. Maybe I will do more of that next year!
Blogging is pretty amazing. Writing down what I’m learning helps me not forget. And sometimes people will comment and say helpful things! For example, I wrote about writing a TCP stack in Python. In the comments, tptacek remarked on some things I wrote that he didn’t think were correct, and gave me some good ideas for future learning about TCP. I don’t know how I would have gotten such useful ideas without blogging.
fun: a GAME!
My awesome partner Kamal and I made a game! It’s called computers are fast and it helps you get better at understanding computer performance by making you guess how many of a given operation a computer can do in a second.
cool: machine learning REALLY WORKS (so does collaborating)
My job is machine learning. this year I did an ML project from scratch that saved a huge amount of money (like, way more than my salary).
I thought this was really cool not just because of $$$, but because I had this lingering skepticism about the effectiveness of machine learning. Now I really believe when you have a problem that’s well-suited to machine learning, machine learning REALLY WORKS and can make your life awesome.
It was also really awesome to collaborate on it – I worked on it with someone else with a ton of domain expertise, and we were a super amazing team =D =D. At Stripe working on projects on your own is extremely popular and I have no idea why.
I’ve also decided that black box machine learning models that I can’t debug are NOT OKAY. so I’m investing some time in learning about the math behind the ML I do, as well as thinking about tools for debugging models. Not being able to debug is a total disaster. maybe you will hear more about that soon! though, progress on that will be slowed down by…
less fun: wrists that hurt
I was thinking of leaving it at “there’s some awesome stuff. everything is awesome!”. But instead, let’s talk about less-awesome stuff! My wrists have been hurting me when I type all year. This sucks. I type a lot, and I work remote, where most of my communication is by typing.
I found out that when my wrists hurt and I have a job, there are basically two options
- do things that don’t involve typing
- type anyway
mostly I picked option 2) this year. this is not good for all kinds of reasons that are easy to imagine. I made some progress (ergonomics help! not typing helps! massages help!) but overall it’s been a bad year. @beerops has a great post about ergonomics which I love. The thing I learned about ergonomics this year is that you don’t do it because it’s fun, you do it because you don’t want to be in pain all the time :).
I’m supposed to go back to work in a week and my wrists still hurt. I have all kinds of awesome ideas for what to do at work, and they mostly involve a lot of typing. Gonna need to do better there =)
fun: drawing comics!
I didn’t blog for a few months because my wrists were a mess. But I found a fun thing to do instead! Here are a bunch of comics / mini twitter essays I wrote down and tweeted. I like them quite a bit. you can click on them to see a bigger version, and sometimes some discussion. they are popular tweets which is always fun.
Here are my 6 favorites!
what worked: learning how things work! building things I think are fun! collaborating on projects at work! (the most successful thing I did was a collaboration. a++ not working alone) giving talks! not giving talks! reading papers occasionally!
what did not work: pretending that I do not have a body.
doing important things
One good thing about wrist pain: it helps focus me a little. I’m less likely to work on things that aren’t important! If spending 3 hours typing hurts, it makes no sense to work on something in that time that doesn’t matter. There are so many important things in the world to work on, and I think I’m getting slightly better at working on them.
In 2016 I’d like to do more things that matter.