These are your three career signposts, the ones you want to avoid. I’m not sure how many thousands or hundreds experience this, but sharing it is a balm for me. Maybe it will help someone else stumbling onto this post too.

  1. You furiously take notes over a technical detail for optimizing performance, thinking “I’m not paid enough to think like this.”
  2. Your fellow teammate and supervisor fall silent as you walk past, but you know – you feel – that it’s about compensation. You realize there’s a limited pool of money for raises. You question whether you should have helped them.
  3. ________________________________________________________

Run away before your soul gets hardened forever. This is the ever after, where hope lives so long as we don’t finish the last page, as long as the book stays open. It’s strange to keep a blog for several years and to wonder if this is its end. I guess it’s time to pivot.

Now is not the time to give up. Now is the time to fight. If you’re at this point in your career, it’s time to realize apps are not your future. It’s time to put on a hat.

The lucky stiff

Reading CLOSURE, _why scribbled code with graphite. He got added to my list of pencil programmers, which I could peek at when I felt silly squiggling braces. Paper is a script-free backup when the first file gets saved. Getting over the hump and making it practice is to acknowledge rewrites are OK, revisions are OK, and time is not wasted in either.

J.G. wrestled with nulls, imbibed MSDN, and out of it produced beautiful projects and a conclusion for Ruby. But he’s asking me to accept the end without the means, to ignore C beneath and to embrace the new brevity. “Look at this glory,” he exclaims, pen-marker in hand. “Here is what makes programming fun again.”

I can’t get into Ruby or python, though. I guess I haven’t programmed enough procedural to imagine the machine code abstracted by shorter constructs. Or I need to become a “white belt” again. Since I took on a drop of jadedness between compensation and the exercise of skill, things have become difficult.


You like computer class in school because they let you listen to any music you want. You work for your dad and see your future in it, labors to make you strong. You’ve never seen the Google campus, the Elysium of works forged out of characters crunched into machine instructions. I promise they would let you listen to whatever you wanted.

“But I’ll probably never work there,” you said.

If it’s the last thing I do, child, I will build the paths for your practice. The dirt I will smooth out and crush to dust, signposts to guide your learning. Each obstacle I will obliterate into the clarity of steps; clearness of thought to erase your doubt. At your age, there is no reason to become discouraged at smarter others; at your age, you ought to dream as far as your mind can cast, a net for an infinitude of possibility.

I will write this program against sleep and amid tears; I send it into the future to shape your destiny. All I want to see is hope, that you shall not fear these quizzical questions, but smash them in the surety of your growing intellect, eager challenges to face and to grow by – there are enough mysteries to fill a life; this is not one of them.

A dream of flight

I write less in my notebook than usual, and that means I’m not learning new – or notable – things. An optimistic view is I’ve reached a skill level where most problems are solved by reusing existing code. Alternatively, it’s a local maximum of minimum viability: no fresh framework, no additional source control, and no diffusion of expertise seem to be a sign of stagnation.

Here I have to be careful, because I’m “running out of programming languages” to learn. That’s patently silly, but the question is “Which language can I learn that is just as effective in production as AutoIt, Excel VBA, and Tcl/Tk?” And barring any fancy programming paradigms, these languages are scarily sufficient.

I feel I need to stretch out and learn a different development posture. Those companies with happy people, who insert jokes in pitches, landing pages, and comments. Realizing my resume might be the opposite of what they’re seeking is kind of a humorous gloom: several years of Windows and still a longing to grok UNIX.

diff with Access

Concurrent VBA is one option for performance, but I had overlooked another idea: you don’t need to import the entire dataset of something if it only differs in small places. Of course, your schema should protect you from duplicate inserts – but iterating through half a million rows is still a wait on the user-side. A diff is quick and the subsequent insert takes a fraction of the original approach.

This idea came from the supe, and I felt I had learned a useful nugget. We almost went with version control (!) to manage imports, because one requirement was a historical view of the data. Fortunately, cygwin comes with diff and hopefully things will stay performant.

Actually, I was afraid today. We were discussing computer science ideas and I thought, “I’m not paid enough to think about this.” It was scary because I had somehow combined a disgruntled attitude and a certain jadedness to tamp on gaining skills. All I can say is I hope you never experience it.