Posts Tagged ‘story’

Running Towards Something

January 21, 2011 Leave a comment

Warning: this post contains no code, no technological jargon, nothing interesting to the average geek.

Instead, I want to tell a semi-personal story which I hope will inspire others to greater heights. Failing in that, I’m sitting on a train and have nothing better to do… so here we are.

I had an interesting conversation with an acquaintance a few months back, he was talking about the importance of running towards something. His point was basically that too many people spend their careers (lives?) running away from the things they don’t want to do, when instead they should be running towards the things they want.

I know, he’s a flippin’ genius.

But in general I think he’s spot on… You tend to get what you focus on in life, so why not put your focus into figuring out what you actually want to do, and go do it? Instead of running away from bad decisions… Make good ones.

I know I’m belaboring the point, but it’s pretty awesome that something so simple can have such a profound impact on your life. Well, in this case, my life.

A few months ago, I started getting a little bored at work. Things were a bit slow, and I always get a bit moody when I’m not insanely busy or when I have too much time on my hands. I shouldn’t have been bored – I really loved my job, it was challenging and rewarding technically, socially, and many other ‘ly adverbs. I had carved out a niche where I was respected and treated well, and the team had some top notch people on it. We were working on some pretty revolutionary technology that could someday make big headlines and change computing in cool new ways.

But I found myself getting agitated. Well, maybe that’s not the right word. More like, unfulfilled. I’ve always had some vague general career goals, but never really put the whole game plan together. I just knew that someday, somehow, my goals would take me away from my current job and in search of something else.

So when my friend brought up the “run towards something” speech, it really hit home for me. I had a great job, was comfortable, my family was settled into a nice routine in a great family town, and everything was status quo. So I knew with 85% certainty that I should just put my head down, enjoy life, and take a chill pill. And above all, not give up what I had for the wrong reason… I shouldn’t run away from a great thing.

But what he said bothered me a lot too, because it made me realize that I didn’t have a concrete plan for my career. I honestly didn’t know what I would run towards, career-wise. I’m a low level, OS and drivers and filesystems type of guy who loves tinkering with Linux and wants to make an impact on the real world and real end users. But what do I actually want to DO with my career?

When I get to the end of my career and look back at what I’ve done, will the world be any different because I was here? And if not, will I be OK with that? What do I want to look back on and be proud of because I did it, and did it well?

While I think there are much more important things than work and technology — relationships, how you treat other people, your family, people you can teach, etc — these career-centric questions bothered me for weeks.

The good news is, I figured it out.

I have a plan for my career, I know what I want to run towards. I now have several goals I want to reach for, things I think will make an impact on the world in some small way.

My friend was right, this is awesome. It’s seriously an amazing feeling to finally know what I want to do. And in the end, maybe I won’t actually get it all done. Maybe I’ll fail, and fail big a few times. But at least I will have tried.

The tricky part about this knowledge is acting on your plans.

One of my first plans is taking me and my family on a wild sprint out of our comfort zone, to another city and another job… but I’m ok with that. I’ve taken a job that will require us to relocate, and it’s a bit weird because of a transitionary commute while we make the moving arrangements.

So as I’m sitting on a train watching the world go by, I find myself feeling super excited about running towards something I want. Tired, exhausted really, and a bit overwhelmed by all the new ideas/people/work and things to learn… But excited.

And I’m super excited about seeing my family at the end of the train ride… So technically that’s TWO things I’m running toward. 🙂

Anyways, this rambling story has gone on long enough. If I haven’t put you to sleep already, here’s wishing us all insane amounts of success.

Run towards something! You’ll be glad you did.


Categories: Life Tags: , ,

Extreme Dollhouse Programming

November 13, 2010 Leave a comment

My kids woke up at 5am on Saturday morning, which was not surprising or particularly unusual.

Being the awesome, totally cool dad that I am :-), I let my wife sleep in while I entertained the kids.

Also being a geek / engineer, it obviously wasn’t good enough to just play with my kids’ toys… I soon found myself balancing dollhouse people on top of dollhouse furniture on top of dollhouses.

Ladies and Gentlemen, without further ado I give you… Extreme Dollhouse Programming.

I learned three things from playing with dollhouse toys:

  1. engineer + dollhouse = weird things happen
  2. it’s really hard to balance odd shapes while kids are trying to knock them down
  3. a lot of software is built just like these rickety furniture stacks

On #1, what else can I really say… weird stuff happens when you let engineers out of their cubicles. My wife tells me that I should get my head examined, because normal people might play house or act out episodes from Lifetime TV. Leave it to an engineer to stack Grandma 6 chairs and a toilet up in the sky.

#2 almost goes without saying… but it’s quite entertaining to see just how fast you can rebuild your tower before it gets knocked down by your toddler. Think of it like a game of reverse speed jenga. Someday it’ll be a competive Olympic sport… I can almost see my gold medal now 😉

And #3 is my lame excuse of a tie-in to justify this post.

But seriously though, how many projects have you worked on where you felt like the whole project could come crashing down at any minute? How many complex software systems are thrown together at high speed, held together by baling wire and ugly Perl scripts? How many projects have no formal requirements, or worse yet no real customers?

How many software projects are really, carefully, methodically planned and executed in an elegant way?

This is not a critique / rant where I tear into the software industry and make stupid arguments like “software developers suck” — I’m thinking more about the way I approach software development, and thinking we all have room for improvement.

And while there are some great ideas found in eXtreme Programming, Agile, etc – I don’t think there’s one true software development style or approach. More like there are some good ideas out there, and everyone should use these ideas to improve themselves and get better at the “craft.”

So here’s to building better dollhouses software, self improvement, and all that jazz.


Categories: Uncategorized Tags: , ,

Joel on Software

November 3, 2010 Leave a comment

I’m sitting at the Garden Court hotel in Palo Alto, California where there are no less than three bubbling fountains within earshot. I’m seated in an open-air courtyard (see photos below) where I’m impatiently waiting for 3:00 to roll around.

Joel Spolsky of “Joel on Software” fame is doing a world tour to pitch FogBugz and Kiln. I’m not familiar with FogBugz (been a JIRA/Crucible user for a while) but I’m mildly excited about hearing about FogBugz, especially if he demos Evidence Based Scheduling. Kiln, well, yes I am very curious to find out more about what they’ve done to Mercurial especially with the recount announcement that Atlassian purchased BitBucket. I’ve been wondering for years why people spend so much time worrying about revision control tools and forget about the whole rest of the stack – GitHub is a perfect example of going beyond just revision control to include the whole change flow from code to bugs to review and so on.

So yes, I’m excited to learn more about Kiln… But the real reason I’m here is Joel.

It’s silly I know, but I’ve been following Joel’s blog for a number of years now and I’m sad that he’s stopped. I’m sure that after 10 years of blogging he’s on to new and better things – but Joel has always stood out in my mind as someone who makes things happen, someone who makes a difference. Am I personally a better developer because of Joel’s ramblings? Maybe, hard to prove. But he made me think new thoughts and helped me to see the world in a slightly different light, see things from another perspective. Do I agree with his thinking that .NET is awesome and Open source is pointless/misguided? Not in the slightest. But I am excited to finally meet the man who challenged my way of thinking and ultimately made me a better person through his long and analogy-ridden blog posts.

Well it’s getting close to the event, so I’m going to go join in the fun.




Categories: Uncategorized Tags: , ,

Installing Linux

October 31, 2010 Leave a comment

I still have a hazy recollection of my very first experience installing Linux.

My brother and I had read about Linux on some bulletin board (or maybe it was a library book, not sure), and we bought slackware 3.x CDs from some online retailer. Remember the days when you had to buy CDs because downloading 700 MB was completely and totally impossible over a 9600 baud modem? Man, those were the good old days.

We waited and waited for those CDs to come in the mail, and it took *forever*. Well, it felt like forever to me and my brother, but maybe it was a week or so.

We ripped open the packaging, threw the CD into the drive, and booted into the (curses-based) text installer. A few steps later, it asked us which drive partition to install Linux into. Partition? What’s that, some kind of privacy screen? Being the clueless noobs that we were, we told slackware to blow away the existing partitions and create new ones. Little did we know we had just tossed all our schoolwork, and 8 months of work on a 3D game engine we thought would make us rich and famous.

The next few hours were pretty stressful, as we ran all over the house looking for anything we might have backed up to a 3.5″ floppy, then we searched all the 5″ floppies. No dice, all our code was gone.

On the bright side, I stopped spending all my free time on Pascal and 3D models and started focusing more on my homework. Also, we both got completely and totally hooked on Linux. Something about the whole experience either scared us into learning more, or intrigued us – we spent the next several years fiddling with every *nix distro we could get our hands on. I’ve installed (in no particular order) Slackware, Debian, Knoppix, Gentoo, FreeBSD, OpenBSD, NetBSD, Ubuntu, MeeGo, Fedora, RedHat, CentOS, OpenSUSE, SLES, and probably some I’ve forgotten.

Along the way, I’ve picked up some useful skills that I turned into a career which I owe largely to the open nature of Linux. But that’s a story for another day.

Fast forward a bit to 2010. I recently made the switch back to Linux from Windows… on my work laptop.

I’ve been using Linux fairly consistently for about 15 years, but a lot of that time it’s been on desktops and/or servers. I’ve tried all kinds of Linux distros on laptops, but nothing ever seemed to work right. The video card didn’t work, or the wireless driver crashed, whatever. And even assuming the drivers were fine and everything worked on boot, let’s face it – there’s a lot of reasons Linux is in the minority of desktop OSes.

But I digress. I installed Ubuntu 10.10 (aka Maverick Meerkat) on a thinkpad, and I was pleasantly surprised. The installer was nice looking, easy to navigate. The partitioning wizard automatically resized my Windows partition so I can dual-boot if I ever need to. Installing the graphics card driver was painless, the sound card works out of the box, and I was pretty much blown away by how accessible Linux is on 10.10.

I guess the proper way to summarize it is Ubuntu makes Linux painless / easy. Or at least, nearly painless. Evolution/exchange support is still buggy as all get out, plugging into my docking station doesn’t change my monitors, and suspend/resume/hibernate always crashes… but all things told, Linux ala Ubuntu has come a long long way.

By way of reference, I’ve had to install Fedora, CentOS, and OpenSUSE recently and not much has changed in 10 years. The desktop is still ugly and inaccessible, the package managers rely on mirrors which are broken more often than not – and OpenSUSE refused to recognize my existing partitions, I had to boot a Ubuntu LiveCD to delete them so OpenSUSE would install.

Also as an interesting data point, I found a Ubuntu 6.06 LiveCD lying around and booted it up for old times sake. Wow, I forgot how terrible Linux was as a Desktop OS back in the day. I’ve always been a Linux junkie and I LOOOOOOVE the command line… but I am very glad to see the progress of Ubuntu and I have high hopes for Unity on the desktop.

So that’s all really, just a rambling long story about my experiences installing Linux. I spend most of my time fiddling around in the kernel, but it’s amazing how much impact minor usability improvements can have for even a kernel hacker / developer like me.

Here’s hoping the future of Linux is even brighter, and that we’ll see amazing user interfaces and other improvements that make Ubuntu 10.10 look pathetic.

Rock on Canonical, rock on.


Categories: Uncategorized Tags: , , ,