About Me

My name is Bill Nalen and this is my little corner of the interwebs.

My goal here is to record my decisions regarding technology, development and other things in life. This is done with the hope that it will help me remember why I made certain choices. In order to capture this I will try to focus on the underlying assumptions I had at the time. This should help me (and others) decide when I should make changes or move on from a particular decision. With this in mind, I should start with an overall description of what I do, how I generally think and what my general requirements are.

I was born in 1967 and have been programming computers since I was in my mid teens. The first computer I owned and programmed on was a Commodore 64. I loved that computer. I still have many fond memories of it. Even though it has been a really long time since I used it I can remember as many details about it as any other computer I’ve owned.

Aside from computers I also have a huge interest in pretty much anything electronic. I’ve always loved disassembling gadgets and trying to create my own gadgets. My tendency is towards software now simply because hardware costs money and takes more time.

My schooling was quite normal although I’ve had an aptitude for math since about 9th grade. I attended Carnegie-Mellon University and graduated in 1989 with a degree in math. I loved being there and still regard it as one of the best universities in the world. Two wishes I have are to travel back in time and get more out of my 4 undergraduate years and secondly, to go back to school and learn more formally about Computer Science.

My programming life has been quite normal I think. I’ve had very few formal programming courses mainly learning things on my own. I’ve programmed in many different languages from 6502 assembly in high school to C#. I’ve used many different libraries as well generally trying out things as I hear about them.

As a result of not being formally schooled in computer science, I tend to doubt myself when it comes to “serious programming”. Some of the topics I consider “serious programming” include compilers, operating systems, and device drivers. I’m sure that once I’ve worked with these they wouldn’t seem so mysterious, but for now they do. I also tend to think badly of my own code. I know its not too bad since I’ve seen other really terrible code. I hope that these feelings keep me interested in improving and so far these feelings haven’t been a negative force for me.

Over the years I’ve worked in a lot of different situations. I’ve worked alone and on a team. I’ve worked in very structured environments and without any procedures at all. I’ve worked from detailed specifications and created my own functionality as I’ve coded. I’ve used a lot of editors, IDE’s, compilers, API’s, etc. I’ve used Windows, OS X, and Linux. I’ve deployed to the web, to handheld devices, and to desktops. I’ve managed my own servers and have worked with IT departments. I’ve worked on commercial software, open software and closed enterprise software. Hopefully I can give some value to others based on my experiences.

One thing that I really love about computers and programming is change. There are always new projects to work on, new developer tools to try and new languages to learn. In addition to local things, there are many online things to play with too: hosting companies, DNS, site creation tools, hosted solutions, etc. I love trying new things out and overall I think this has been positive for me in the long run, though it does have drawbacks in the short term.

Because there are so many different things to try out and play with, I’m trying harder to maintain focus and spend less time changing back and forth between things. I need to put more thought into the reasons for a change before making the change. I don’t intend to stop playing, but I intend to research more instead of following the herd. There are many more voices than just five years ago and my time is even more valuable to me now.

Currently I’m a full time developer for Towers Perrin where I write ASP.NET applications and live just South of Denver Colorado. In my spare time I like to write applications for the Mac and iPhone. As with most people my age, programming is not the only area of my life. I have a wonderful wife and four great children, I’m an active member of the Church of Jesus Christ of Latter-day Saints, and I have the usual home and life stuff to keep up with. I add these to give an indication that there other areas of my life besides technology and to give an idea of the amount of time I can dedicate to technology.

Feel free to contact me at bill@nalens.com.

To get more of a flavor of my thinking, I’ve linked to a few articles that I really like.

Rise of the Tablog by Nick Cernis

Getting S--t Done by Bill Westerman

N.A.D.D. by Rands

The Nerd Handbook by Rands