Compile Time is a Precious Resource

Matthew Joseph Taylor
5 min readSep 19, 2022

--

MJT + Stable Diffusion 2022

I’m a software developer. The bane of my existence is waiting for a compile to finish.

I’m ruthless in the pursuit of making my dev-loop as short as possible.

My goal is a < 16ms action->evaluation cycle.

Unfortunately, waiting on something (these days it is usually related to large data, and the distributed nature of computing) is a kind of fact of life. Darn speed of light!

We all have our own version of ‘compile time’. I’m using that as a metaphor for ‘waiting on a thing before I can continue’.

Hack Time Itself

Recently I’ve discovered a trick to keep me productive in these ‘waiting’ times.

I do what I’m doing right this moment: I write natural language (English) instead of code.

This allows me to both organize my thoughts AND produce a sharable result to an audience.

Writing natural language is easy compared to writing code. I can come and go with an article as I choose over the course of a day without worry.

Writing is an easily interruptible task. I can easily go back and forth between writing and coding.

It is true that I might be a hair slower in coding because I’m finishing a thought while writing. However, I find that the benefits outweighs this small loss in wall-clock time for a coding task.

I’m not trying to optimize for smallest coding-time/task. I’m optimizing for greatest overall impact and effectiveness.

Writing as a Tool for Forgetting

I’ve come to realize that writing down thoughts and ideas is a powerful way to efficiently forget.

I simply have too many complex things I’m working on, to keep it all in my head all the time.

I have to be good at forgetting to be good at focusing.

“You appear to be astonished,” he said, smiling at my expression of surprise. “Now that I do know it I shall do my best to forget it.”

“To forget it!”

“You see,” he explained, “I consider that a man’s brain originally is like a little empty attic, and you have to stock it with such furniture as you choose. A fool takes in all the lumber of every sort that he comes across, so that the knowledge which might be useful to him gets crowded out, or at best is jumbled up with a lot of other things so that he has a difficulty in laying his hands upon it. Now the skilful workman is very careful indeed as to what he takes into his brain-attic. He will have nothing but the tools which may help him in doing his work, but of these he has a large assortment, and all in the most perfect order. It is a mistake to think that that little room has elastic walls and can distend to any extent. Depend upon it there comes a time when for every addition of knowledge you forget something that you knew before. It is of the highest importance, therefore, not to have useless facts elbowing out the useful ones.”

Sherlock Holmes, A study in Scarlet, Connan Doyle

By writing down my thoughts I can freely empty them from my mind. Move on to another thing. Have confidence I can reload the context as/if needed.

I find this works best with ‘technical topic writing’.

I explain to an audience how to do a thing and share it. Later I can use that guide myself when I need to revisit a topic.

Ever google yourself for a how-two guide? That is a satisfying feeling.

Letting the World Know

Humans are social animals by nature.

We work in cooperative groups. Like any cooperative, there are specializations. Some are good at X, some at Y.

By writing on topics of interest to a community I advertise that I know something of the topic. There is no need to be an ‘expert’ (a term I avoid at all costs). One merely needs to show some degree of familiarity and interest on a subject, and write something that would be of value to a friend.

The benefit to the reader is that they pick something up that is useful to them. The benefit to me is a small dopamine hit for each like or comment, and the fact that others know I know a thing or two about a thing.

As a social creature, sharing with others is a key to success in life.

Share freely, share often. :)

Avoiding the Siren’s Call

“Idle hands are the devil’s workshop” — Proverbs, The Bible

It is tempting to sneak off to ‘browse’ while waiting.

By always having a ‘shovel ready’ creative task at hand I find I’m less attracted to ‘browsing/scrolling behavior’.

Not to say that I don’t do that as well. Breaks are important!

But by having an easy creative task for me to jump into/out of I find I don’t engage in that activity as much. For me and what I want in life, I find that helpful. I personally desire to engage with and be as creative/productive with the gift of this moment as I’m able. You do you.

Stress Relief As Things Go Wrong

As I’m going through my compiling/waiting loop. If at the end of the wait I don’t have success, frustration can slowly creep in.

Frustration isn’t a bad thing. It is a natural human emotion, and serves a useful purpose.

However, it can also cloud the mind, and make one less effective if it gets out of hand.

If I’ve spent my waiting time productively/creatively I feel I have not ‘wasted it’, and so find that my outlook upon failures is a bit healthier and less emotional.

In other words I don’t add the additional ‘feel bad’ of ‘lost time’, to the ‘feel bad’ of an unsuccessful compile.

This allows me to keep a better perspective on the problem, and not become too focused on the problem itself, and so I’m better able to think my way around it.

Brain chemistry works in mysterious ways.

Summary

A background writing activity is helpful tool for remaining productive while waiting.

Writing is a rewarding activity that gives one the freedom to forget, while simultaneously being of value to others.

Keeping busy while waiting allows one to keep proper perspective when things go wrong.

--

--