Crossroads – Epilogue

The crossroads turned out to be a busy intersection with no crosswalks or pedestrian lights.

You know, sometimes all the motivational talk that’s thrown at you, and your own will to persevere against all odds, and that fighting spirit that makes teachers and coaches proud, aren’t enough.

In my new town there is a single company that employs hundreds of technicians and engineers. Let’s call it Schnitzel Engineering Labs.

Schnitzel is doing well, and they’ve been staffing up on techs and engineers and programmers over the last year. Most times there are four or five positiobs advertised.

I applied for no less than six different positions over the months. The only response I got was six form letter rejection emails. The last one I tried, I thought to myself I’m either a persevering fighter or a fool.

That job was for an operator position. For that application I got a “phone interview”, which was nothing more than an uninterested and unskilled recruiter re-asking me the essay questions from my application.

One week later I got the familiar form-letter rejection email. I even emailed my interviewer and asked for feedback. I got no answer.

That was the straw that broke the camel’s back, but it didn’t break it right away.

Over the next few months I started asking myself why I was so eager to jump back in to an environment that DOES NOT mean me well.

At the same time, I came to realize that I’m not exactly a prize. My work history is a dingy with big holes in it, my contribution to my employers’ bottom lines have been marginal at best, and I don’t even have a “skill set”. I know lots of little things that don’t fit together.

I can program in ColdFusion or Python, but that can’t be expressed on a resume because my experience has either been too short of a time or too long ago.

I could prove my ability by having a public repository of self-created software, which would take me forever to build.

For years I’ve blamed my resume for my difficulty finding work. It was only the messenger.

At some point I asked myself, “what the hell am I doing? What SHOULD I be doing?” The answers came to me.

I should be doing something with my hands (NOT typing).

I should create things.

I should be my own boss.

None of those things pay. That sucks.

What good is a spouse who isn’t a tag-team partner when things get rough?

What could be worse than an aspiring artist living in your house, eating your food? A couch potato, maybe, except they don’t spend your money on tools.

I was kicked off the wagon, and now I’ve stopped running after it. I’m not even walking toward it. I can’t even see it any more, I can only just make out in the distance the cloud of dust kicked up by the wheels.

Hey, look at this stick of sagebrush. I bet I can make a spoon out of it.

End of Blog


Posted in Uncategorized | Leave a comment

Another Crossroads

Alas, he am I at another crossroads.

Looking for work in a new town, and it isn’t going well.  I’m trying to make the most of my technical experience, but that’s really hard when it’s “messy”.

I’m not saying it’s impossible, because I’ve done it before.  There really are hiring managers out there who are smart enough to see through the awkward work history to the applicant’s real value and potential.  I just have to look harder to find those people.

It’s necessary to have a thick skin to do real job hunting, even before the first application is submitted.  For starters, there is a supposed “shortage” of software developers, yet there are thousands of unemployed developers who can’t get hired because their resumes don’t “smell” good.

I believe in my abilities and I know my value.  It’s a pity there’s no way to communicate that to someone who doesn’t know me from Adam.  Probably better pump some of my time into the github repo.

Posted in Uncategorized | Leave a comment

SaaH (Software as a Hobby)


There’s a possibility I might be given a permanent position at the food pantry where I volunteer.

This is no ordinary small-town food pantry.  We feed thousands of families in this area, many of them working poor.  One week last year we took in 10 tons of donated food, much of it from local manufacturers.  The numbers are staggering, as is the need.

Too many people here wouldn’t have gas to get to work if they had to buy the food we distribute to them.  This state has the lowest average wages in the country.

When I’ve been between development jobs, I’ve spent two mornings a week working the shelves and climbing the ladders and rolling the pallets.  I’ve learned most of the ropes.  Somehow, the place and the people and the work have gotten into my blood.  Coming home sweaty and sore from a morning at the pantry leaves me more fulfilled than a whole day of coding.

It’s not even a conscious thing, but I remember many times during my quarter century in tech work where I asked myself just who was benefiting from my efforts.  This line of questioning was most disturbing when working for a less than philanthropic employer.  I’ve never felt guilty about what I’ve earned and how far I’ve gotten, but I’ve never forgotten the resources and privileges and family support I was blessed enough to be born into.

I love writing software, just as I love making music.  What would happen if software became the hobby instead of the occupation?  Actually, it’ll be a little of both, because expanding and improving the pantry will involve some software work.  Lucky for me, it’s inventory/warehousing stuff, which I’ve always enjoyed.

I’m at the age where giving back feels righter than ever.  In my spare time, I can contribute to open-source projects without the stress and the pace of paid development work.

2014-08-07 18.06.17

Posted in General Software | Leave a comment


lucee-logoTake the term “Open-Source”.

Open-source software is a good thing.  Theoretically, it means you or I or any developer can contribute our ideas and work to that software.  A very democratic idea.

Like the real world of politics, though, the ideal isn’t always practical to implement.  When, in the United States, the electoral college was created, it was meant to extend the promise of representation by letting rich and powerful men decide for their mass constituents, thereby saving their little people all that trouble of having an opinion and voting and such things.

When I think about the Linux kernel (up until a couple years ago), I think about the electoral college.  A small group of people had complete control of what was implemented in the Linux kernel.  They decided what was good for us.  Even if I could submit a pull request, it would have been ignored.

Was that bad?  If my dream was to contribute to the Linux kernel it was bad, but as a consumer of the Linux kernel I got a very stable end product.  Say what you will about the personalities involved, it worked.  (Right, and Mussolini made the trains run on time.)

It’s called “open”, yet it is only open to a handful.  An aristocracy.  That’s bad, right?  Not especially.

If a system is to have conceptual integrity, someone must control the concepts.  That is an aristocracy that needs no apology.

– Fred Brooks,  from The Mythical Man-Month

Conceptual integrity is the key.  As it turns out, a fully democratic development environment makes bad software according to Brooks.  The most effective development organization, as measured by the quality of the end product, is the “software tsar”, a single manager at the top who may accept and entertain suggestions, but whose judgement on what goes into the product is the final word.

As I understand it, one source of tension in the PHP community is that too much democracy has eroded the language’s conceptual integrity over the years.

I happened to be on IRC this morning when Lucee was announced.  A little later, there was a tweet about how one must make a $7000 contribution to influence what goes into Lucee.

Didn’t sound very democratic.  But knowing the history of CFML, I completely understand people’s frustration with a single closed-source vendor.

Having a tsar or other ultimate control of an open-source product is not necessarily meant as a barricade against the imagined anarchists in the streets and an affront to democracy.  I think the people at Lucee know the lessons of PHP and the Linux kernel.  There are good reasons for various degrees of openness in open-source, and conceptual integrity is foremost.


Posted in ColdFusion | Leave a comment

Frowny Face :-(


The job didn’t work out.  My 90-day evaluation period ended unhappily.  It seems that my two years of CFML experience was just too little.  I was getting the work done, but it was taking me too long to do so.  While they liked me personally, my pace didn’t work for their business model.  They have a huge backlog of work, and they need developers who can kick ass in a hurry, and there was no time to bring me up to that speed.

It makes me feel pretty good though, the fact that I was working with ColdFusion legends, especially since I’m still so new to the language.  In a short three months I learned FuseBox and FW/1.

Where my departure from the previous job left me bitter and angry, this departure left me sad and disappointed in myself.  I’m trying not to beat myself up over it, but don’t need to.

The simple facts have brass knuckles.

Posted in ColdFusion | Leave a comment


8 big fat Gigs of RAM on the dev machine. And 64-bit Windows 7.


Posted in Hardware, Uncategorized | Leave a comment

Those Who Wait

Everything comes to those who wait, right?

I’m pretty good at waiting. You might even say I’m too patient for my own good.

I finally have the job that fits me perfectly. It took thirteen months- this time. Last time I waited 16 months for a job that didn’t appreciate me and eventually tossed me aside.

In the middle of that job, which consisted of replacing ColdFusion apps with .Net, I realized that I much preferred the existing ColdFusion code. I became a convert and started developing greenfield ColdFusion apps, utilizing new frontend technologies.

The writing was on the wall though. The company did not want or need a ColdFusion developer. At the same time, I was daily becoming MORE of a ColdFusion developer, reading blogs and following Tweets.

To me, to be a “real” CFML developer, one must be hired for their CFML skills. This was my goal, to some day be hired to work in ColdFusion.

The dream has come true. Today I accepted an offer with an East Coast company as Web Application Developer, working remote. Not only that, but I’ll be working with some big names in ColdFusion.

I’m still pretty tickled that THEY found me on LinkedIn, and somehow I’d missed finding them in my daily job search.

The Lord works in mysterious ways. But you have to be patient and LET him.

Posted in Uncategorized | Leave a comment

Ridin’ the Bike Again

This morning I had a technical phone interview.  It was my second with this particular company, and was a follow-up to a project the company assigned me as a sort of test.

The project was a blast.  At almost every step, I was doing things I’d never done, for instance developing on a Mac.  I used jqGrid for the first time, and it was much easier than the cfGrid fiasco of 2013.

Most of all, it felt really good to be coding.  I’ve always got things to do, even when I’m unemployed, so I’ve hardly done any coding at all, certainly nothing meant to impress an employer.

I feel that I did a good job on it.  I may have left one or two cf variables un-scoped, but everything worked perfectly and errors were handled and the help content looked good and made sense.  While it’s not likely to wow an experienced developer, it was enough to show competency and consistency.

During this morning’s interview, I was asked whether I had experience in a number of technologies, and I was absolutely honest in telling them if I had or had not.  Unfortunately those questions are still rewinding and replaying in my mind while I wait for the offer/rejection (once several more candidates have been interviewed).  The rational part of me knows that there was simply NO alternative to telling the truth, but the irrational part says I screwed up.

In the eleven months I’ve been unemployed, this particular job has resonated more than any other.  I’ve had interviews and second interviews, but this one just feels different.  I believe that explains the anxiety I’m feeling right now.

A rejection is not going to crush me.  I’ve kept stomping forward after every rejection, and chalked up the interviews as practice.  I don’t have room for drama in my life any more, especially the kind I author for myself.  If I don’t get this job, I will look for more like it.  I have connections who have connections.

In a way, just completing the interviews and the project with this company is a victory.  If I were obviously a bad risk, these very intelligent people wouldn’t have even answered my application.


Posted in ColdFusion, General Software | Leave a comment

Put it on Paper First


When I first wrote software, I didn’t get to use an editor.

You didn’t write software on a screen with a keyboard, you wrote it with pencil on graph paper.

This meant that you had to “play computer” to check your code.  In order to do this, you really had to understand how things worked.  Every time you submitted your stack of punch cards and it bombed, you wasted a day, so the most economical form of debugging was playing computer.

I sometimes miss those days, mostly because they were the days when I was still excited about software and the fact that I was telling a very expensive machine what to do for me.


Posted in Old Man Stories | Leave a comment

The Real Programmer



There are two ways to become a programmer, through formal education or through self training.

I once worked at a company that considered itself “top-heavy”, meaning a large percentage of the company held masters or PhD’s.  This isn’t a real surprise, since the company’s value was in its intellectual property.

Working at this company, I remember feeling I wasn’t a “real” programmer because I wasn’t writing the production software, I was “only” in the operations group who ran it.  I sat in on the stand-up meetings with the designers who used words like “singleton” and “factory”.

I began college as an engineering student.  In that time and place, there wasn’t a computer science curriculum.  By the time I knew I was an incurable software nut, it made more sense to finish my engineering degree than back-fill with software classes and get a degree in Computer Science.

In the 80’s and 90’s, it was very common to have software workers who had trained themselves.  I was one of them.  The others I knew were top-notch, often brilliant programmers.  They loved software so much they paved their own way into a career in it, and they excelled.

There still seems to be debate whether a computer science graduate is automatically a good programmer.  But one should ask whether a self-taught programmer automatically has a solid grasp on theory and the big picture.

You see, somewhere along the line I decided that to be a “real” programmer you had to have been formally trained.  That’s where you learn what a singleton is.  It’s where you are forced by an instructor to sit and discuss the big boring block diagram and then later focus in for the fun stuff.

It can be easy, in any pursuit, to imagine that everyone around you is more advanced than you are.  Most of the time, they don’t volunteer the stories of all their stupid mistakes, and you are well too aware of your own.  They’re controlling their “brand”, their image.  Also, with the speed of change in this business, even seasoned software gurus are admitting they sometimes feel stupid.

I have to wonder.  Are there CS graduates out there who feel they aren’t “real” programmers because they didn’t teach themselves C++ from a book on the weekends?



Posted in General Software | Leave a comment