How to stay technically up-to-date in ways other than coding
Some of us engineering leaders no longer code as part of our jobs. What are some other ways we can stay up to date technically? I’m not saying that you shouldn’t make it part of your job to code. But if you’re unable to do, what are other ways to stay sharp?
Interviewing candidates, which forces you to learn. When I note down a question to ask in interviews, I sometimes find myself unsure and so Google and learn.
Reviewing: Instead of doing the work, review other people’s work, like code reviews, design reviews, or reviewing a company’s cloud setup. Reviewing is typically off the critical path, so you can do it at your convenience, which makes it low stress. In fact, I’m even able to offer a cloud review for free.
Create content: To keep yourself up to date, create content. This could be Youtube videos. For example, I’m creating a playlist where I refactor my prior startup Futurecam’s code, with the benefit of hindsight and without the time pressure of an early-stage startup, to see what I can do better. If video is not your style, you can write a blog post on a topic like FaaS:
Writing this forced me to learn about AWS Lambda. As Lambda evolved, I updated the blog post, thus keeping myself up to date too. I also created spreadsheets like a hiring planner, a prioritization exercise, an app development estimator, a framework picker, and a company debugging checklist. Whether video, blogs or spreadsheets, keep creating content.
Side project: I maintain a Marginal Tax Calculator as an open-source project. I do this to learn, not to earn. Working in Python is good, since I don’t get to work with it. All the more so since most of my experience is with statically-typed languages. As part of working on this project, I referred to the Google style guide to get a perspective on what features of Python not to use, and why, and how to use others effectively. I ran a lint tool, which led to further improvements both in the code and in my Python habits like writing docstrings.
Consume content made by others, like conference videos (AWS Reinvent, Google Cloud Next, Google I/O, Apple WWDC), other Youtube videos, blog posts, etc.
Learn in conversations: When I talk to someone and he mentions some technology, I try to learn at least a little from the conversation. If I know about it, I might ask a specific question. For example, a CTO I was talking to mentioned that they’ve used AWS Lambda. Since I’ve researched this, I was able to ask specific questions: “Do you have a problem with cold starts? What cold start latency are you seeing?” On the other hand, if the person I’m talking to mentions some technology I know little about, I might ask a high-level question. For example, if they talk about HyperLogLog sketches in AWS RedShift, I might zoom out and ask, “At what scale of a startup is a data warehouse appropriate?” Even when I’m not interested in the details of a topic, I find that I’m still interested in knowing where it fits in at a high level.
Follow some technologies closely: There’s so much tech that one can’t keep up with it all closely, so I picked some. Some of these are things I worked on and don’t want to lose touch with (like iOS programming). For example, I keep up with what’s new in Swift. I’ve also picked topics like AWS Lambda which I believe are important for the future.
These are all the ways you can stay current with technology despite not coding. Again, I’m not saying you shouldn’t code — if you want to, that’s best. But if you can’t, consider these other ideas.