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.