This week, I’ve focused mostly on articles from CHI, but I did read a few shorter things in my spare time.

So you want to be a wizard

Link: https://jvns.ca/wizard-zine.pdf

Author: Julia Evans

Julia Evans’ blog is one of my favorite places to learn something new, and she also publishes zines about how different tools work. This one is more general: it’s about general tips for becoming a better engineer. Highlights include:

  • how to ask good questions and dumb questions
  • learning to use debugging tools
  • writing a design doc
  • how to approach diving into a complex system
  • reading source code

Asking good questions: learning how to target my questions, and asking people who are closer to my level of knowledge, is excellent advice.

Reading source code: I’m not sure when this changed, but I’m much more comfortable looking at the source for libraries I frequently use than I once was. When something doesn’t work the way I expect, I’ll of course always go to the documentation first, but my second place to go is usually searching the Github issues and the code itself (rather than StackOverflow or other programming forums). This might because I’m using more specialized tools, but I think I’ve also improved my ability to find what I need in code.

Writing a design doc: dammit, I should have done this for the rescue project. I’m still in the process of rewriting a bunch of code, though, so I think that’d be a good use of time this weekend.

“Love your bugs”: this is advice that Evans took from Allison Kaptur’s “love your bugs” talk. Debugging is a way to update your mental model about how something works (“oh, I guess I can’t do that”) and learn more about a system. Debugging helps you become a better detective and learn to write more resilient code.

Her advice for debugging includes remembering that the bug is happening for a logical, not magical, reason. Anchoring myself to this idea is helpful to debugging, similar to getting away from the attitude of “this is too hard for me to understand.”

In conclusion: this is one of the best general-purpose “how to get better at what you do” resources I’ve seen. The struggles that Evans illustrates in this zine are quite common, and she gives great advice for overcoming them.

When scaling your workload is a matter of saving lives

Author: Werner Vogels

Vogels writes about a recent ask by the former White House Chief Data Scientist, DJ Patil, asking for help scaling up a COVID-19 model for governors across the US to use. The team was using a model from Johns Hopkins researchers, but it was running on-prem and not able to scale to meet the needs of 50 states in a variety of different scenarios.

Patil reached out to Vogels for help scaling it up. Immediately, people across AWS sprung to action to help rearchitect and redesign the model pipeline, from recompiling numerical libraries to making it HPC-friendly to creating a containerized CI/CD pipeline, and more.

Thoughts: what an amazing story. That’s all—it’s incredible to see people coming together to help researchers fight COVID. It’s also a good lesson of knowing your place and expertise; the folks in the story were helping with what they could do best (cloud applications), instead of rushing to build a model themselves.

How to get your team to speak up

Author: Dave Bailey

Bailey gives advice for assertive people—often team leaders or company founders—in encouraging their team to challenge them more. “When you present your ideas assertively, it’s not always clear that you want to be challenged or that you’re open to new ideas.” The article provides strategies for finding the “sweet spot” of assertiveness, where you come off as neither weak nor aggressive.

For assertive people: learn to ask questions, make sure that everyone gets a chance to speak, and avoid generalizations.

For non-assertive people (hello!): over-prepare and practice speeches in advance, learn facilitation techniques (“I think I hear you saying …", “This is a good discussion, but …", etc., and allow yourself to be vulnerable.

Managing Remotely

Author: Julie Zhuo

This is a list of tips for managing remote teams. I appreciate when articles about the new remote world recognize that not everyone’s situation is the same:

For those of us lucky enough to be able to do our work from home, this means getting thrown head-first into the Great Remote Work Experiment along with the rest of our colleagues. Some folks have it easier (natural introverts with great home office setups) and some have it on Super Challenge Mode (folks simultaneously running a school or daycare; folks in a small space with multiple roommates; folks with bad Internet; folks who do their best work in the presence of other people’s energy).

Some of my favorites:

  • Exercise kindness to everyone. Assume that everyone is doing the best that they can. Forgive people who fail to deliver. Allow people to express anxiety or loneliness.
  • Cancel meetings whenever possible, and instead write more documents. When necessary, make sure everyone gets airtime, take notes, and make sure agendas are clear.
  • Improve your WFH environment when possible, including getting a dedicated webcam, better headset, and / or good chair & desk.
  • Make small daily commitments like not checking social media during work hours (not letting perfect be the enemy of good) and going for walks. Doing the hardest work when you have the most energy is another great one.

My favorite:

Don’t beat yourself up if you’re not as productive as you used to. You don’t need to “take advantage” of every minute you have at home. If you need to cut your “productive working day” in half to spend time with your kids (as I am) or to check in with friends and family or simply to keep yourself staying well, know that it doesn’t reflect on your abilities or integrity. Let your colleagues know what they should expect. Be kind to others, but also be kind to yourself.

Love this.