Busy week. Wrote a lot of code. Fixed some bugs. Almost missed a conference call. Got self-conscious about the man smells present in the office space I rent. Other building occupants stop by to chat and I wish I could crack a window for them.
Luckily this past Monday wasn’t as emotionally unstable as the previous week. It’s no fun struggling to care about work and then ultimately feeling powerless against the overwhelming desire to stop work early, go home, grab two beers, and listen to music for 3 hours. I’m grateful that telecommuting and a flexible schedule gives me the option of coping with those days in that way, but it’s still no fun to deal with. I’ve always thought depression was a luxury of the first world, but since these episodes have happened a handful of times over the past year I now give the condition slightly more respect.
On Thursday I started working on some new stuff at work that thoroughly sucked me in, in a good way. Of course there were hurdles, accompanied by the muttering of many swear words, but by Friday afternoon I’d made great progress, which left me in a great mood for the weekend. Friday evening my lady wanted to draw, which left me the time to poke around on some of my personal projects. We talked about what I worked on afterwards and she made the point that I need to do more exploratory programming. I told her that when I’m tired after work I rarely want to work on anything. But when I do, I’m so accustomed to directing my energies to best use of my time, so I’m often too concerned with “being productive” to just play.
Another part of my difficulty comes from my tendency to use an external motivation to spark progress, as in: wouldn’t it be nice to finish this code, then I could stop using X, or maybe use it to do Y as part of a larger side project to generate some extra income. Seems the key is keeping each project as an island unto itself for as long as one can, to keep the pressure off. Pressure often means a feeling of obligation, and I’m no good with obligation. I despise it. Add to that anxiety over having let something languish for 10 months and you’ve got a stew laden with much self-hatred.
In a past life I tinkered with creating custom Linux installs for my old laptop. Compiled a custom kernel, used buildroot to assemble packages, a bit of cross-compilation. Bam! Didn’t always work, but it was fun to learn about all the moving parts. And of course, there are the small C libraries. uClibc, busybox and others. Love those types of projects.
In the same vein, tonight I checked up on what Rob Landley’s been up to (via his website, I don’t know him personally). He has rebooted toybox and wants it to replace busybox on android. I’m all for that!
I’ve followed him off and on since 2004 and in 2009 I made a fledgling attempt to contribute some code to toybox for the “cp” command. It was my first-ever attempt to contribute to open source. My code wasn’t a dismal failure, but I fell short of following open source contribution etiquette, so the experience didn’t turn out like it should have. Maybe I should revisit that and make sure cp functionality gets rounded out.
And here’s where I give the same excuse I always do: If only I had enough money in the bank to take a month off, use the extra energy to contribute, learn more, build up some credentials and earnestly search for a low-level programming job, perhaps in the embedded space.
Sigh. Given yesterday’s blog post, one might think I have no clue what I want to do for the next phase of my life. Yes.
It does me no good to put my foot down and say “this time I’m going to keep it up” or “I’m going to starting learning more every night”. That just doesn’t work. Something else is at play here. Maybe I’m deluding myself altogether. Perhaps I’m tagging low-level as my “out” — a way to get away from UI work and the web applications space. Too much speculation, but it’d be nice if one day I worked through it. But it’s late (isn’t it always?).