Saturday, January 12, 2008

My New Job: Sr Tech Lead

The past year has been hell. Really, it's been the past few years, but this last was definitely a climax. I hope. It's a long story and I'm not going to start in on that.

However things are starting to look up. After being in a stagnant company for the past two years, then getting laid off, I'm about to get an offer with this really cool consulting company here in Columbus. I've spoken with them in the past out this position and did a little contract work for them before the last job. Now we've been talking again and it looks like they want me full time this time.

The position they need to fill is for Senior Technial Lead. I'd be utilizing all of my past design and development skills to put together teams for whole software projects. It sounds fascinating to me and should be the next logical step in my career as a Software Engineer. This company is also in well on all the newest software technologies, which is a far cry from the last one. It literally took years to get a new piece of software to be introduced into the system due to beurocratic limitations. Government work, trust me, is not the place if you want to keep your career moving forward. I feel a little aged having been in that environment for so long, but that's all about to change. Once again i'll be back at the forefront. Keeping up with technology instead of government.

I will still be developing software with this position. I made it clear that i didn't want to lose that. I will be taking on the root of the problems. Then i will have to design a flexible system that can be developed using the Agile paradigm. Agile stresses fast interative deliverables and open architecture that can be changed midway through development if necessary. This is challenging. It takes years of seeing these systems in action in order to be able to design one from scratch. That's why it requires a senior level developer.

These systems must be able to be broken down into tiny deliverables which can be delivered to the client immediately as they are completed. Systems like this require and lend easily to constant client interaction, since they have sometimes weekly deliverables. Rather than setting up an entire project plan from the beginning and knowing everything up front, Agile systems lay down the milestones, rank them, then develop them without having to know all requirements up front. Project velocity is measured in deliverables rather than milestones. Many deliverables creates many check points. Each deliverable must have demonstrable functionality. Since the system must be developed with all of this in mind, it must be able to accept changes midstream if problems or requirements change.

No comments: