My winding career path

I got a question today about why I left the aerospace engineering to become a software developer and trainer, especially when the aerospace field is so popular at the moment.   I’ll assume for the sake of argument that the questioner is right about the popularity of aerospace engineering.  I don’t know any more, for obvious reasons.

I spent four years as a graduate student and eight years as a research scientist in the aerospace engineering world.  I started out investigating the flutter of airplane wings as an example of the nonlinear dynamics of fluid-structure interactions.  That’s what my Ph.D. thesis was all about.Even at that point the “engineering” part of my background was a bit of a running joke in my family.  I was never the sort of kid who took things apart to see how they worked.  I never learned the internals of a car or even a computer.  Everything I did was theoretical and mathematical.  Actually, going into Mechanical Engineering at M.I.T. was my way of doing physics without being a Physics major.  At the time it seemed to me that the Physics community had abandoned most of the “real world” in favor of the very, very small (quantum mechanics, string theory) or the very, very large (cosmology).  While I found both of those areas fascinating, my M.I.T. experience quickly showed me that I wasn’t going to be the next genius who revolutionized either field.  If I went into physics, I felt my career was going to consist of begging for funding to do slight modifications to the existing theoretical structure, just waiting for some genius to come along and revolutionize everything.  I didn’t really want to play that game.  By going into engineering, though, I thought I could make progress in existing fields by applying computer analyses to them.

I fully expected to become a professor after graduation, though.  I always wanted to be a professor.  I really liked teaching and I thought I was going to like research.  Being a professor always seemed like such a cool job to me.

When I was in my last year of my Ph.D. work at Princeton, though, my thesis advisor didn’t get tenure, despite his obvious qualifications.  I still think they made a staggering mistake, but their decision changed my perspective on the whole business.  I had no desire to be a glorified grad student with a title and then not get tenure.  Instead  I decided to go get a “real” job in an industrial lab, build a resume and funding contacts, and then go into academia.  That’s why I joined the United Technologies Research Center in East Hartford, CT.

Within a year or two after I got there in 1988, the market for engineering professors dried up.  I recall seeing an advertisement for an Assistant Professor of Mechanical Engineering at the University of Connecticut and hearing that they received about 450 resumes in response, all of whom were qualified.  I also got married in 1990 to a woman who had her own law practice in CT, so my moving options were also limited.

Worse, it turned out I wasn’t happy doing research anyway.  It’s a lot like the fiction writing I did in the early ’90s — I really enjoyed having done research, but I didn’t really enjoy actually doing it.   Doing productive research means working on hard problems all the time because the easy ones have all been solved.  It means working on problems that may not even have a solution at all.  It also means (and this was the worst part for me) constantly having to justify yourself to funding sources so that they’ll give you money to pay your salary.

I’ve never been happy at zero-sum games.  I’d much rather everyone win, as long as I get to win too.  I don’t need to get an A while everyone else gets Bs.  Likewise, I hated the thought that the funding I received meant that others with good ideas got less or even nothing.  That probably doesn’t make a good businessman, but I know now it’s who I am and I can’t change it.  I have to remind myself of it periodically so I don’t get greedy (I’ve posted about that here before), but it’s true for me.

Some of the work at the research center was very interesting.  I started off in a Theoretical & Computational Fluid Mechanics group working on the unsteady aerodynamics of axial turbomachinery, which is a complicated way of saying I used computer programs and math to analyze air flow through jet engines for Pratt & Whitney Aircraft.  Over the years I moved into aeroacoustics and worked on noise control in jet engines.  I even got a patent during that time, which you can probably find using Google Scholar.

I spent four years in that first group and then another four in the Physical and Mathematical Modeling group.  Eventually funding for acoustics dried up, though, as it always does.  Acoustics doesn’t affect engine performance.  It just affects where and when the planes can land.  Once that’s fixed by some jury-rigged solution (or a change in regulations), it’s back to performance issues.

That happened to me around 1996.  I discovered Java around that time, too, which was still fresh and new enough that it was considered “easy”.  Just download a JDK, write some code in Emacs (I was firmly a Unix user at the time) and run from the command line.  I’d already dabbled in C++, pretty much unsuccessfully, and Java was a welcome respite.  I also had a friend at UTRC that ran an Artificial Intelligence group, and he was willing to take me on.

In the AI group, my task was to help apply AI technologies to engineering problems.  I learned a lot about genetic algorithms and neural networks, or, as I used to call them, the cool stuff in AI.  I worked on one project to analyze elevator data to predict mean time to failures and another to design a distributed, enterprise architecture integrating systems across Otis Elevator’s international network.

That project was an unmitigated disaster.  I suppose it’s possible it all worked out, but it was certainly a disaster for me.  The project used CORBA and C++, neither of which I found very comfortable or easy to implement.  The project also involved three different project managers who disagreed on nearly everything.  We wasted staggering amounts of money.  Plus, I quickly learned that about 15 years of coding in Fortran (and a little Pascal) hadn’t taught me anything about modern software development.

During that time I also knew that I was growing increasingly unhappy with what I was going and where I was going it.  In response, I went to a woman who called herself a “career counselor”.  She gave me a barrage of tests (Myers-Briggs personality tests and things like that) and tried to help me discover what I really wanted to do with my life.

She told me that nearly 75% of all workers are unhappy in their jobs.

That’s a scary statistic.  I’m not sure where it came from, but it rings true, too.  I know lots of people who don’t like what they’re doing.  They get there by all sorts of paths, but it’s very difficult to make a fundamental change.  I usually feel that the problem can be fixed, but it often can’t be fixed easily and almost never right away.

At the same time, a new manager at UTRC gave everyone a copy of “First Things First” and forced us all to come up with our own personal mission statements.  Normally I viewed such a Dilbertian exercise as an amazingly useless waste of time and resources.  This one time, however, I decided to do it right.

In trying to decide what I wanted, I narrowed my list down to three items:

1. I like learning about new, state-of-the-art technologies.

2. I like playing with state-of-the-art toys, especially computer toys.

3. I like sharing what I’ve learned with other people and helping them learn it too.

As a reaction to what I was learning, I started looking at teaching as a possible alternate career path.  In 1997 I made a contact at Trinity College in Hartford, CT, and a year later that gave me a chance to teach a course in sophomore dynamics.

(That figured, by the way.  M.I.T. didn’t have a class like that and I was already in an AI group, so I was hardly prepared to teach it.  That’s one way G-d often plays games with me — often when I struggle with a subject or do badly in it, I  wind up having to teach it.)

I also decided to do some substitute teaching at the high school level.  I was a sub at Glastonbury High School in physics and math.  I quickly became known as a “teaching sub” who didn’t need hand-holding to help the students learn something.  That was fun.

Teaching full-time in the public school system requires a certificate, though, which I didn’t have.  For a few months I looked at the private school system, which was quite attractive until I found out how little they pay.  I’m still rather astonished that they can charge so much and yet pay so little, but the way the system was set up there was no way I was going to be able to afford that move.

In the summer of 1997, I decided to attend the Alternate Route to Certification program.  Connecticut has an eight-week summer program where you can go full time to be eligible to be hired in a public school.  I took an unpaid leave of absence from UTRC and learned about becoming a physics teacher.  Someday I’ll say more about that experience, but not in this post.

Connecticut has one of the highest teacher salary scales in the country, but the gap between the starting salary and what I was making at the time was still too great.  Since teachers are unionized, too, the scale was based purely on seniority and had no provisions for my particular expertise or capabilities.

In early 1998, I wound up on that nightmare CORBA/C++ project I mentioned above.  That convinced me it was time to fill in the educational background I’d been missing, so I decided to go to Rensselaer at Hartford (a division of R.P.I. in Hartford, CT that catered to working professionals) and get my MS in Computer Science.  I also was not blind to what was going on in the community, so I decided to get my Java certification.

One Saturday morning in late 1999 I was sitting in a networking class (some kind of queuing theory as I recall), stewing.  Another member of my team at UTRC had arranged to attend a Java training class, without even asking me about the required code.  Here I was, one semester from graduation (I took two classes a semester all year around to finish as quickly as possible) and with existing Java experience, and nobody even thought to talk to me.  I wasn’t happy.

Then a light dawned.  It seems so obvious now, but at the time it was a huge revelation.  I suddenly wondered, “who teaches those classes, anyway?”

I’d never attended a training class in my life.  I didn’t know how they worked or how they were arranged or taught.  I did know how to find out, though.  If someone on my team had arranged for one, I just needed to follow the trail to see how it was done and asked who they used for instructors.

I got some names and made some phone calls.  I knew I was leaving UTRC, partly because I didn’t want to be there any more and partly because they didn’t really need the sort of work I wanted to do.  Those of you in the IT field may remember that in early 2000 the bubble had burst, but we didn’t know it yet.  You could still write a “Hello, World” program in Java, put it on a resume, and get calls.  Enron didn’t start to collapse until the Fall of 2000.

Interviewing that Spring was a strange experience for me.  I had been in such a specialized field as a research scientist that I knew exactly where all my opportunities would be and, perhaps more importantly, where they wouldn’t.  As a freshly minted Java developer with industrial experience (even if most of it wasn’t in I.T.), I was very popular.  That was truly fun.

Eventually I narrowed down my options to a developer position at a major insurance company (Hartford, CT — as they say, the insurance capital of the world) and a new trainer position at a training company.  The developer position looked a lot like what I already knew, even though I didn’t have a lot of I.T. experience.  The trainer position looked more fun, but I arguably knew even less about that.

My favorite day was when I went home from work one day and I announced to my family that I’d made a decision on a job.  My son Xander (only 7 at the time) said, “did you pick the one you liked, or the one that had more money?”

Out of mouth of babes, or at least young goofballs.  I was very happy to say that I’d taken the job I liked, and the rest, as they say, is history, or at least the subject of future posts.

When students ask me whether they should bother going into IT in these days of outsourcing and few jobs, here’s what I tell them.

Try to find a field you enjoy.  If the field is popular, you’ll stand out because you like what you’re doing so you’ll do it well.  If the field is unpopular, there will be little competition but you’ll stand out because you like what you’re doing so you’ll do it well.

Finally, the vast majority of jobs are found by meeting the right person at the right time.  That usually requires meeting all the other combinations (right person/wrong time or wrong person/right time) a LOT.  Hiring is no fun at all, so most technical hiring managers will do anything to shorten and simplify the job.  That means if they can get a candidate referred to them by someone they trust, they’ll like that person and be eager to say yes rather than no.

I’m sure the poor soul who asked me about my decision to change careers is seriously regretting that now, so I’ll stop.  Thanks for the comment, though. 🙂

About Ken Kousen
I teach software development training courses. I specialize in all areas of Java and XML, from EJB3 to web services to open source projects like Spring, Hibernate, Groovy, and Grails. Find me on Google+ I am the author of "Making Java Groovy", a Java / Groovy integration book published by Manning in the Fall of 2013, and "Gradle Recipes for Android", published by O'Reilly in 2015.

One Response to My winding career path

  1. Stephen Moon says:

    Ken,

    It was interesting reading about your reason for changing your career.
    As for myself, I worked as a vibration engineer. I decided to change my career around 2000 because I enjoyed programming. So, I enrolled in masters of computer science program at nearby university. Back then I didn’t know that I would be interested in teaching, but I somehow got hired as a part time lecturer at a community college teaching Scheme language. I still teach on part-time basis 2 years later. After doing vibration for nearly 10 years, I finally made a career change. Initially, I started out programming in C, Perl, Visual Basic and then Python. A couple of months ago, I was hired as a Java developer at UCB. Since they were doing a lot of Struts/XML/Velocity/MySQL, that was a steep learning curve for me because I hardly knew any Java from get-go, but now I am getting used to it.

    I guess you are wondering how I stumbled upon your blog. I stumbled upon your blog because we used your Hibernate courseware for our training. We are thinking of incorporating Ajax and Hibernate to our Struts 1.38 framework. I don’t think incorporating Hibernate would be difficult, but incorporating GWT (Google Tool Kit) may be challenging (partly because we are new to GWT:))

    Thanks for your lengthy post. I can very much relate to your unhappiness and struggle.

    Take care.

    -Stephen

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: