Welcome to the Event Horizon

« SASsy | Main | Cake redux »

Friday Apr 20, 2007

Hello again. Long time, no blog.

It has been a busy couple of months in HBA engineering land as we approach a nexus on several projects. In the mean time, I've given a great deal of thought to what it means to me to be a software engineer. With a nod to Robert Hunter's first album in the title of this entry, I figured now was a good time to take a few minutes to wax on about software engineering and grinding code.

I've been writing kernel/driver software for about twelve years now. It's what I've wanted to do since the first time I poked around on a TRS-80 Model 1 back around 1981. I've been fortunate enough to be able to do just that to my heart's content until I took this role in HBA engineering in September, 2006. Without going into the gory details of just how I ended up in a position with essentially no code development, suffice it to say that I've been pining away since then in an attempt to get back to doing what I love. As the months have passed, though, I've come to a couple of conclusions.

1. Software engineering != grinding code

Yes, duh. I don't claim that this is some major revelation, but bear with me here.

There is a big difference between being a programmer and being a software engineer. I doubt any professional software engineer would dispute this, but I suspect there are plenty of software engineers that would be rather disheartened to have to give up writing code. It's always possible to remain a software engineer who writes code day in and day out if that is what gives your job meaning. Unfortunately, it's entirely possible, especially at Sun, that regularly writing code can be in direct conflict to my second conclusion.

2. I'm not sure what I want to do when I grow up

For the past 25 years, I've never once had a question in my mind about what it was I wanted to do when I grew up. Write code. I love code. I love diagnosing problems, analyzing core dumps, and fixing bugs in kernel code. That hasn't changed. What has changed, however, is that I've come to a point in my career where I now need to answer the question of whether I want to be a "programmer" or a "software engineer." At some point in any lengthy software engineering career, this question is likely to present itself. Do I want to write code forever, or do I want to eventually get to the level where I can get involved in more interesting, architectural-type work and solve larger problems?

I'm fairly certain that the answer to that question is that I want to advance my career and work with the minds that are solving the architectural issues that not only face the industry today, but will be facing the industry in the future. With that said, I need to resolve the issue of regularly writing code. I'm not sure if I'm ready to give up writing code. Perhaps I don't have to altogether, but it's not clear to me whether I'm reluctant to give up coding because I've done it for so long and I'm comfortable with it or if it's simply that I am worried about not being able to advance my career without giving it up.

It is obvious that these are questions I need to answer for myself, although I suspect there are plenty of engineers out there that have faced the same dilemma. I would love to read comments from anybody that has faced this or is facing this. Chime in. Give me your thoughts.

Until next time,

David

Comments:

Post a Comment:
Comments are closed for this entry.