Friday, September 4, 2015

Career Path Ups and Downs

I've been a working as web developer since 2000, did professional web design starting in 1998, and messed around with websites circa 1996.  Even though I've been around for quite a while, I haven't exactly been a rock star or code ninja, though I did have my moments.  The bulk of my experience is working for smaller companies where I had to do most everything (server setup, database creation and management, and web - both design and development.)  Currently, I am a lead senior .NET developer in a support role.

Note:  Originally, I intended to write about becoming a lead before I was ready, but it morphed into a brief history of my career in computing.  Perhaps, it will be of interest.

Way Back

In the beginning, there was the Commodore 64 and life was good.  Seriously, I got my first computer when I was 12.  It was fun programming on it, but I was no hacker.  I made a color-based alarm that flashed all colors to wake me up in the mornings.  I made a program to help me create characters for different role-playing games (pen and paper variety).  Otherwise, I remember playing games, and writing papers for school on it.

In middle school, I "believe" that I programmed on an Apple II.  Can't swear to it.  I did some simple graphics programming, and even took a course.  There was an amazing guy that was more the hacker, and I did learn some from him.  Sadly, he didn't survive his teens (reckless driving.)  Back to me, I liked computers a lot, but I didn't LOVE them.

Good Beginnings

I got my first taste of the web sometime around 1995/1996.  I'm not certain of the exact date, but I was working as a library assistant for a university library.  I found the web, and I was excited.  It was a whole new world.  I found so much cool information, and I learned that I could make my own pages!  It was simply astounding that I could use notepad to write HTML and see it in the browser.  I still remember when I saw the colors change on hyperlinks when you moved your mouse over them.  Wow!  I dug in, and copied the JavaScript code, so I could learn and do the same.

A Break and a Bump

In 1998, I actually got a job as a web designer.  My personal web page impressed them.  That was a great moment, then I had to work.  I affectionately refer to my work as fast-food web design.  It was work for an online directory, and I had to crank out three page sites for their customers.  The first tool that I had to use was dreadful.  It was all drag-and-drop, and here I was used to hand-coding everything.  It got better when we switched to Dreamweaver.

I did that for a year, and then was moved into a position to manage four web designers.  That was a drag.  I enjoyed working with my designers, but management was a mini-death.  I didn't have time to make anything and I was bored.

Excited Again

Another opportunity arose.  A company wanted a web designer that they could teach to program.  I jumped at the opportunity.  My training?  It consist of them pointing at a computer and telling me to get to work.  I didn't have the benefit of a mentor or even skilled coworkers.  I had to discover everything on my own.  The first year was a little rough as I learned ASP development using VBscript, but it was exciting!

I learned a lot, experimented a lot, and made major improvements to the code base.  I was becoming more skilled as a developer, and cared about my work.

501 Developer

The downside?  There were plenty.  I was too isolated from the development community, and I fear that this has stuck with me even now.  The sites that I worked on changed from greenfield development to legacy projects.  I was being left behind as technology moved forward.  My company resisted the .NET framework, because classic ASP still worked for them.

Why didn't I leave?  I had several reasons for not leaving.  The biggest reason:  I worked in the same office as my older brother.  Other reasons:  I made good money, and the office was 11 miles from my home.  Talk about a great commute.  But I was becoming a 501 developer, and losing my overall excitement.  I still enjoyed experimenting, but I was no longer passionate.

A Kick When I was Down

Sadly, my brother passed away from a brain tumor.  It was a gut-wrenching experience that threatened to break me.  My young daughter kept me grounded, and gave me more support than she will ever realize.  A little less than two years later, the company laid me off.

I got lucky and landed a contract job within two days of being officially unemployed.  Only it wasn't so fortuitous.  The job was maintaining and extending a horrid code base laden with so much spaghetti code that it made me want to run for the hills screaming.  The contract ended early, since the lead wanted fast development without any eye to maintainability, whereas my approach was slower but more maintainable.  Even though they were unhappy with my speed, they freely admitted that I was skilled and knew what I was doing.

From that contract job, I saw the writing on the wall that I should never develop classic ASP again.  Now, I did like it, but putting it on IIS 6 was an issue.  The technology worked, but the support was diminishing and that would make it much harder to support these sites as technology marched on.

Excited Again and Then...

I managed to land a .NET web developer job, but at a 20% pay decrease.  In the long run, I thought that it was worth it.  And I was right.  It started off as a wonderful place.  I got some excitement back, and was able to do more in the .NET space, and showcase my JavaScript Client-Side skills.  There were still issues.  The environment started to shift from the attitude of doing everything in-house to in-house bad, COTS (Commercial Off The Shelf) software good!  I was beginning to wonder why they were employing me.

A Career

I still feel like I haven't decided what I want to be when I grow up, but I should take a programming career seriously.  Amazing, isn't it?  I've been working over a decade in development, and I just now decide that maybe this is my career.

New Goals and D'Oh!

I started a new job with the purpose of becoming a better developer, and really start taking my career seriously.  I told my manager about my goal of sharpening my skills, so that I would be worthy of the title of lead senior developer.  Well, son of a gun... they hired another developer, waved a magic wand, and made me a lead.

What's the deal with the d'oh?  Isn't this what I wanted?  Honestly, I don't think that I'm skilled enough yet to be a lead.  This will definitely be on-the-job training.  I've been successful with mentoring junior developers in the past, but a lead is different.  Juniors come to the mentor for help and to learn.  A lead must, well, take the lead.  I can no longer be heads-down with my code and oblivious of others.  I need to be more aware of what my team mates are doing, and I need to check on their work when necessary, and guide them as needed.

So Far

It sucks.  I have a lot to learn, but I think that it will be good for me.  I have no desire to move into management, but I will need to develop a subset of managerial skills.  I need to improve my own programming skills, and be confident in my knowledge, but not arrogant.