At Square One. Still.

Back on March 7, I referred to a project I’d taken on at work: re-engineering a large piece of open-source software, Phorum, which is written in a hypertext processing language called PHP (a scripting language similar to ASP or Cold Fusion), to operate against our in-house database schema. Phorum typically comes with its own database and is designed to be run in conjunction with an open-source database program called MySQL, and although ports to other database programs are available, it really only works best when compiled with MySQL. Our company uses Oracle as our database backend, and our platform engineering manager decided that he wasn’t at all pleased with the way Phorum builds and creates new tables, willy-nilly — we don’t want a third-party application, he told us, to build new tables at will in our database. So our senior database programmer built us a new schema and one of the Portland developers and I spent two months re-engineering Phorum to work with a new database schema built in Oracle instead of its native schema built in MySQL.

The project was finished, more or less, shortly before I left for Ireland and the UK. I was never quite happy with the way it turned out; there were major bugs in the program, and certain elements of its functionality were never thoroughly implemented. But QA gave our re-engineered version of Phorum a formal write-off and we implemented it and it went live and our customers used it (more or less, though I don’t believe utilization was ever very high). The other developer and I created a long list of known issues that we intended to work on and fix when I returned from my trip.

Of course, while I was gone, the axe fell, and the other developer that I’d been working with was laid off. I was told by one of the managers in the Sacramento office that I would be inheriting the whole of the Phorum re-engineering project when I returned, and I looked forward to that. There was a lot left to do, and with a whole new piece of functionality being implemented on our customer website, there was going to be a need for an entirely new set of code. Phase II of the Phorum Re-engineering Project would be kicked off around about mid-August.

And here it is, mid-August. And the other day, B–, the other developer in the Sacramento office, sent me an instant message telling me that he had been assigned to this project. He knew that I’d been anticipating this project and looking forward to it, and he knew that I would be upset that I wasn’t assigned to it. He was right. I was upset. I don’t think I’ve ever gotten that upset at work since my days working at Pizza Hut when I nearly got into a fight with an assistant manager who threatened to shove my glasses down my throat.

The reason B– was assigned and not me? Based on an IM conversation I glanced at over someone’s shoulder (not actually the way it happened, but I promised certain parties that I wouldn’t reveal how it actually happened), it was because the Production Manager wanted someone more competent to handle the project. "No offense [to Richard]", he said, "but we need someone to clean up the mess that he made."

Of course, when I asked the production manager directly why I wasn’t assigned to the project, he replied, "I’d forgotten that you’d worked on Phase I, and when [the other developer] left, all of his knowledge base was transferred to C–, and it was natural to assign this project to him." B–, to his credit, had declined to work on the project (which I told him was appreciated but really unnecessary — though B– told me that the Production Manager knew I’d be upset that B– was working on this and not me). So the project team for the project is composed entirely of developers up in Portland.

Of course, I knew that the Production Manager’s response to my own query was bullshit, but there’s no easy way to call a manager on that, so I let it drop. He told me that he’d assign me to technological projects in the future, but I honestly don’t believe him at this point. I’ve been hearing this sort of promise for nearly a year now and nothing, really, has come of it.

What this has all really made clear to me is the enormity of the error I made in taking this job, and how badly I’ve screwed my career up. I was eager to leave the University, but I can’t remember why at this point, if it was for anything besides the income. If I’d remained at my last position with the University, in Information Technology: Communications Resources, I’d have, by now, over a year of solid Cold Fusion programming experience under my belt, not to mention formal training in Oracle, XML, SQL, C++, and Java. And while my pay would not be as high as it is now, I would certainly be in a much better position to move forward in a career in programming than I am now.

And so I find myself taking stock of my situation. I know HTML — but that’s no major accomplishment any more. HTML is startlingly easy to pick up. I have a miniscule amount of experience with Cold Fusion. I pretend to know Java, but I really have very little experience with it, none of it paid; same with C, Perl, and Unix/Linux. I thought that I knew PHP and SQL.

It’s hard to accept that I am still far away from a decent career in the field, and I’m feeling overwhelmed and intimidated. I did major damage to my career by taking this job, and I have no idea how to go about fixing it. And I’m beginning to wonder if it’s really worth it.

Mind you, I’m not mad at the company, or the Production Manager, or anyone in particular, except for myself. This is rather typical of me. At the risk of sounding like someone who is deep in the throes of a typical midlife crisis, I’m looking back over my life and trying to find some accomplishment that I can really point to with pride and finding very little. I’ve never been very good at disciplined approaches to anything, nor at committing myself to anything. What I describe as "intellectual vagabondism", my tendency to expose myself to a wide array of fields, is not so much a broad range of knowledge as it is an inability to focus my efforts on one thing in particular. My degree in philosophy isn’t due to any noble commitment to learning as it is to laziness; I found that I could do well at philosophy with very little effort, but I could also do well at other fields, such as physiology or biology or chemistry, by applying myself. I just didn’t feel like it.

I hate feeling like I’m at square one, and I hate knowing that if I’d ever been able to approach anything with discipline I would not be at square one, that I might be able to point at something I’ve accomplished honestly, without having to fake or exaggerate its importance. I hate knowing that my college years were a waste and that I lack any sort of discipline or concentration that would allow me to move forward.

At least I have a job, which pays decently even if it is a dead-end job. And right now there are few projects that are pure HTML, and I’m simply not being assigned to other projects (and it’s not through a lack of my volunteering). So right now my workload is light, and my work load next week will be light as well. So I have plenty of time to crack open my books on C and Java and pretend that I have the discipline to learn something new.

I suppose that this might be a good thing.