Sometimes I feel like the universe gently corrects my path to get me where I need to be.

When I talk about these sorts of things, I sound an awful lot like the mystic I am, but keep in mind that I'm not necessarily talking about a fixed and unchangeable destiny. It's more like I mean that, if we could run a simulation of our universe starting from a set of givens, individual people and situations would probably end up in very similar places a lot of the time. Who we are at our core makes certain outcomes more likely in the greater scheme of things. You can fight "destiny," but you might just be fighting a very likely outcome that's compatible with yourself and your life situation.

In my own life, I see this tendency strongly in a multitude of specific areas, but it's extremely apparent to me when I consider my career/vocation. (Not coincidentally, it also happens to be an area of my life that's easier to write about publicly, which makes it an excellent example for this article.) I'm pretty sure you could run this universe a thousand times from the same starting point, and I would end up a computer programmer of some variety in the vast majority of them. I'm not even sure it matters from which point in my life you start the simulation.

Up through coming to college, I had no idea that programming computers could be a job that someone paid you for. I had been writing programs for school computers, our crappy Atari 600 XL, and eventually our home desktop computer for most of my life, but that was my hobby. I went to school in a very rural school district, and I honestly can't remember a guidance counselor or teacher ever telling me about computer science or engineering as a career path. It just didn't come up. I came to college thinking I would be a teacher, and I majored in English because that seemed like the most interesting topic to teach.

When I got to college, I didn't stop making my little hobbyist programs. I kept making my computer spit out random bits of poetry and video game theme songs. I learned entire programming languages and libraries just to make little Final Fantasy sprites dance around my screen. I lived in the honors dorms, so I was surrounded by engineering students, but I wasn't nearly as uptight as them. I was just having fun. Why would I change my major to something that would interfere with and control my hobby?

I graduated with more Bs and Cs than was strictly necessary because I vastly preferred doing what sounded interesting over the homework my professors assigned or even attending classes with "mandatory" attendance. By this time, I was dating Allyson, and she was still in school for another year. I got a job as a clerk at the Registrar's Office. I also wiped my computer and installed RedHat Linux because I couldn't afford Microsoft Visual Studio anymore without my student discount. Also, someone on the internet had told me that if you wanted to be a real programmer, you needed to know your way around Unix.

RedHat, though, wasn't very unlike Windows—at least to my eyes. I could be lazy and just use the graphical tools, and I assure you if there's a lazy option I will most definitely take it. So I wiped my computer again and installed FreeBSD, where you had to compile all your programs from source code. I didn't let myself install a GUI either. Everything I wanted to do—browsing the web, sending email, writing—all had to be done from a command line interface. For someone with no formal training, I was suddenly thinking like a programmer, and more than that, I was thinking like a classic Unix hacker.

That in turn led to me automating things at work. I kept replacing what I did with a series of shell scripts and Perl programs. As I had less and less work to do, I started automating my co-workers' tasks as well. When I replaced one of my co-workers manual processes with a Microsoft Access database, I got the attention of the IT staff. After all, just who the hell did I think I was?

Two very nice folks gave me a chance. Suddenly, I was the nighttime operator who supervised batch jobs on the mainframe that had to run outside of business hours. Now my world was JCL, Mark IV, and abend codes. Because I didn't want to waste this opportunity, I learned everything I could. I made it my mission to solve as many problems as I could instead of just calling the daytime developers to get them to fix their broken code. After all, who really likes being called and asked to fix a program in the middle of a good night's rest?

That led to a daytime job as a full-time developer. I had arrived. I mean, I wasn't trying to arrive here, but now that I was actually a computer programmer, it just felt natural. The only trouble was that my emotional health wasn't in as great a place as my technical skills. A medical issue that I had been dealing with since birth started to get the better of me, and my life-long battle through depression became unmanageable. I started drifting further and further away from "who I was" at my core.

I stopped tinkering with Unix because everything felt exhausting. I just kind of relaxed into the whole Apple/Mac ecosystem, telling myself that it was BSD underneath there somewhere. I stopped active development on, the web site I had worked on for nearly ten years. And then, finally, I left IT work altogether for a secretary job where I handled accounting and purchasing.

In the tight grip of depression, everything felt like an epic labor. I produced a level of work that I found personally shameful but that somehow impressed my boss. I had hit what the AA people refer to as rock bottom.

And thus began the long-term course correction. I'm not just talking about therapy, medical treatments, and getting emotionally healthy (though those were certainly a much required foundation). At my job, people started to find out that I was a programmer, and they put me in charge of the department web site. Next, I became responsible for their online courses in the course management system.

That in turn led to a job in central IT where I worked on the course management system itself and the ecosystem of apps that had grown up around it. Suddenly, I was back to writing PHP using MySQL as a data store—something I could do in my sleep after so many years maintaining my own homebrewed content management system.

Over time, my responsibilities grew. When my co-worker left, I became the technical lead. When a major initiative for my University hit, I was right in the middle of it working with people who I had worked with when I was a developer before.

That led to being moved into a larger IT unit along with the other developers. Now I was writing Perl and Java, and I was once again part of a team that solved big problems. And all of my old colleagues from my first job as a programmer were my now officially my co-workers again.

I spent yesterday writing the beginnings of a NodeJS open source application to display the phases of the moon in the system tray of my Linux desktop environment. For fun on a long weekend.

And the circle of "destiny" is once again closed. I'm precisely where I'm supposed to be. Not as quick or direct as being swallowed by a whale and vomited up on the shore, but ultimately just as effective.