Tim Juravich

Engineering habits: Prioritizing time to code, while being a leader

The fear of losing ‘the edge’

I began my career almost 17 years ago with a passion for developing products. This passion was about more than just writing code, it was about creating something new in the world, and connecting experience to engineering in a creative way.

This foundation allowed my career to progress, as it progressed the day morphed from full days of development, into meetings, workshops, and collaboration. This growth helped me take my experience and support the teams around me to help them learn, deliver and excel.

Along the way, I found it important for me to still find time to write code so that I could keep my edge as an engineer and as a leader. This edge is the ability to connect the dots in projects before you know they need to be connected in ways that accelerate value. This connection is not only in the product itself but helping my teams see a path to identify and resolve these roadblocks.

As things normally do, each year it has become harder and harder to keep this edge. This year, I made several conscious changes to prioritize writing code as a daily habit, allowing me to make 3,928 code contributions to Github so far.

Below are three big things that I captured as I reflected on this year:

1. Prioritize and find time

I used to be a night owl and would find time to write code late into the night, as I got married and had kids, my priority shifted from working later at night, to wanting to spend time with my amazing family. As I did this, naturally I found that I was going to bed earlier and waking up earlier. I embraced that shift and doubled down on finding time as soon as I woke up in the morning to write code, get a workout in and get ready for my day. It became my form of meditation, of seeing results and progress every single day.

Waking up at 4:30 am isn’t something I would recommend to everyone, for me it became the magic hour for me to focus on deep and focused work. If I decided to sleep in, I wouldn’t beat myself up about it, but I would know that I lost my coding time for the day.

2. Collaborate with others by being an accelerator, not a dependency

In the early days of this experiment, I wanted to help my team by signing up for work in the backlog and delivering alongside them in the trenches. However, I could quickly see myself turning into a roadblock as opposed to actually helping.

Instead of committing to tasks that might fall through the cracks during a busy week, my focus was being an accelerator. I found myself jumping into areas where I could exercise my skills across areas where others might not expect it. When I felt like pushing something new forward, I would contribute to core libraries that the team used or just build something totally for fun.

3. Remember that you need to find the fun again

That last comment connects to my final point here. I started my career as a developer because it was my passion and was something that I would do for fun. Outside of the drips of dopamine, I felt from solving complex technical challenges, I also found myself just having fun again in writing software. This mental shift was important for me and how I show up as an engineering leader.


Someday, despite my best efforts, I know that I’ll lose my software engineering edge. For now, I’m grateful to still be worthy of being a software engineer.