A software developer’s story — Part 1: Hit the Ground Running

In my first job out of college, I was hired as a software architect. Of course that wasn’t the title; there’s too much process and “years of experience” in the way of being hired for a position.

But, as a 19 year old with a Bachelor’s in Computer Science, two very mature senior engineers (one of whom was my team lead) told me to take the architectural lead on a project.

These were C/C++ veterans, but they hadn’t written source code for a decade!

That in mind, I suggest everyone’s favorite open source, enterprise programming language…

“We’re going to spend the next sprint training up on Java while Stephen lays the ground work.”

So I wrote a “Best Practices” guide (Markdown is amazing) for them to study with while I got to work.

What an experience.

I’d heard stories about being the lone developer who

  • Received requirements for managers and stake holders
  • Single handedly produces features
  • Guides a team in implementation decisions
  • Cites veteran sources as well as his- or her own experiences
  • Is respected by peers and superiors alike

And I was just out of college!

Needless to say, it was an empowering and exciting experience. My senior teammates quickly reached “know enough to be dangerous”-levels of Java fluency.

It’s always funny when someone who doesn’t know what they’re doing has to be wrangled by a veteran of the skill.

Woooooah there! Let’s just settle down. There’s a better way to do that.

But all wasn’t rosy.

Before I was allowed to architect this service, I had to be a sysadmin: CentOS 6&7 Linux administration, puppet scripts, and the Foreman for orchestration.

  • Hired to do something (you want to do) which comes with some unpleasantness you don’t want to do
  • Being hired to do a completely different job role than your supposed hiring position.

I felt I was in the latter camp, which I thought immoral and deceptive.

I was a programmer, damn it, and how dare you make me spend 4 months doing operations’ work?

Or at least that’s how I felt. I didn’t get over it, but I endured.

I learned a heck of a lot on the way.

  • I learned the glory of `rsync` and `scp`
  • I grew comfortable doing many things over ssh (goodbye IDEs and GUI tools)
  • Learning the power of scripting repeated Linux administration tasks (more than I had with ArchLinux)

And much more.

Why do I care?

Because I was still a Software Engineer 2. Unless someone spent more than the standard “ten second glance” looking at my resume, my experience wouldn’t be appreciated.

I came to learn this only recently.

Next time you’ll here about:

  • Being hired to migrate a team to a bleeding edge tech, only to be knocked down in my first week
  • Being assessed for a Senior Software Engineer position via 16 multiple choice questions.
  • What “years of experience” really is, why is matters, and why it’s an inaccurate measure of skill AND professionalism.

Till then.