This is part journal and part cover letter. It's my short story of my professional life that I have always wanted to put to paper. If it's longer than you want to read that's fine. You won't hurt my feelings.
I grew up in a small town in rural southwest Missouri, but after a ten year vacation in Chicago, I now live in the suburbs of Detroit Michigan with my wife and two daughters. I work out of my home office as a Principal Systems Architect for CSG Systems.
Explaining what I do for a living is always a challenge. Most people asking such questions aren't looking for specifics. "IT guy" or "programmer" usually fits the bill. Sometimes when I'm in the mood I will respond with "Computer Scientist" or "Super Geek". Occasionally, I will meet someone that is interested (usually someone in the biz). That is when I give a short speech about how I work for a software company called CSG Systems - a communications industry service provider. I explain that we handle the billing and business support systems for the largest providers in North America. That usually satisfies the majority of the people in this curious minority, but every once in a while someone wants to know what I do. That's a longer story that I will get to in a bit - first some context.
I was a bit of late bloomer by geek standards. I wasn't writing compilers when I was 12, but I was introduced to BASIC in high school by my calculus teacher. It fascinated me, but at that time I was caught up with deciding between a future in professional football (ha!) and classical guitar. My parents gave me a Micron Pentium 100 Windows 95 machine as a high school graduation present. This immediately opened my world to hardware and home assembly as well as operating systems. I taught myself how to assemble PC's at home using cheap Cyrix processors and learned the bowels of Windows as I hacked drivers and OS configurations together. By the time I made it to college that summer and took my first programming class, I had forgotten all about football and the scholarship that was paying for my schooling. I ate and breathed Visual Basic 4 for three months. The departure from football forced a change in schools. Southwest Missouri State (now called Missouri State) was one of the best computer science programs in the area at the time. So, I headed there for my spring semester.
At MSU, I met a kooky professor named E. Reed Doke. He was teaching COBOL at the time which was a required class in my major. He was known as the guy "not to take" because he was tough. Something about him interested me though. I took him. He was indeed tough, but he captured my attention. The next year he was teaching a new class they were offering called "Object Oriented Programming in Java". I immediately signed up. But for that summer I had landed an internship at Hallmark Cards in Kansas City, MO as a junior COBOL programmer. I leased the cheapest apartment I could find in KC and spent the whole summer writing COBOL. When I returned to MSU the next fall OO, Java, and Professor Doke belew my mind. I was HOOKED. And I was done with COBOL. After two semester of Java the new Visual Basic 5 was released by Microsoft. And with this came ActiveX DLL's and the Active Server Pages (ASP) with Visual InterDev. It was Microsoft's web development stack. No one else was doing this in 1997. This stuff belew my mind. I could write WEB SITES. Java at the time was very immature from a UI standpoint. You could build lots of things, but UI's weren't really one of them. UI's at the time really interested me. The next two summers I spent at Cerner Corporation in Kansas City writing ASP apps as an intern.
I graduated with a degree in Object Oriented (OO) Programming and Design with Java and went to work for IBM Global Services in St. Louis. While Java introduced me to OO, I was hooked on the Microsoft stack at that point. This was a weird time to be a Microsoft guy within IBM. The bulk of the company was engulfed in Y2K work and there as a general anti-Microsoft sentiment. I discovered IBM actually had a little known but thriving consulting practice based on Microsoft Technologies and a huge client just up the road in Bloomington, IL that was doing a lot of Microsoft work. I spent my first three to four years working for a variety of large customers working on Microsoft technologies and learned a great deal. Microsoft released .NET and the C# language in this time frame and I knew this was the wave I wanted to ride. By then I was living in Chicago and through friends was introduced to Avanade. Avanade was one of the hottest Microsoft consulting shops in the industry at the time and were leading the industry in .NET innovation. I faked my way into an architect position there and spent four years learning everything I could. I was single, code-crazed, and sporting an iron man work ethic. Avanade had internal chat/forum thing filled with seasoned programmers from all over the globe. I would spend all hours of the day learning and coding... learning and coding. I was learning everything I could from some of the best people in the business. This springboarded my career, and after a few years I was no longer faking - I was good.
Soon, the consulting lifestyle - specifically the travel - was starting to beat me down. The general animosity dripping from large scale consulting engagements really bothered me. Most people you worked with day to day were unhappy about you being there, or at least was unhappy about cost of having you there. While consulting allowed you to be working on new technologies all the time, it rarely left you with a sense of satisfaction that comes from cultivating a system from start to finish that was being used by real business users over time. The fruits of my labor were typically only bore long after I had left a client. I wanted a change and I knew I needed to get out of consulting. I wanted to go to work for a software product company.
While in Chicago I found CSG Systems. I was a fledgling agilist and a cocky .NET code slinger going to work with a small group of cocky .NET code slinging fledgling agilists. I had found the perfect home. At the time I'm writing this, I'm nearing my 11th year with CSG. If I'm being frank, I'll admit there is a part of me that is embarrassed by the fact I've worked for one company that long. You're suppose to hop shops every couple of years and fill up your experience bag to the fullest - right? Well, that's a tempting line of thought, but I've learned over the years that molding and shaping the thing you have is almost always more rewarding that starting over. Within that 11 years, I've had the opportunities and experiences of probably six different companies. Every two years or so I've found myself on the front lines of something new that's critical to the company. Sometimes it's forging a new technical path or aiding with the acquisition of a company's portfolio. Sometimes I was helping roll out new processes or standards or helping a team dig themselves out of massive technical debt. All along the way I was doing it with that same group of code slingers. It turned out that small group was one arm of a much bigger company, and we're not just code slingers anymore.
I'm a well rounded technologist that can debug and sling code with anyone - and I like to prove it on a consistent basis. But I'm also skilled in communication and vision/strategy crafting. I understand people, business and economics, and mentoring junior people is something I've always excelled at. Over my 20+ year career I have written more apps than I can count. I have learned to love troubleshooting and debugging. I have learned how to design systems at the micro level as well as at the macro level. I have earned my agile wings and I'm in the process of earning my devops wings - and I have the scars to prove both. I've never met anyone with a stronger work ethic and the older I get the more my passion for learning grows. CSG has given me a place where I can be all these things and never get bored.
I still don't know how to answer people when they ask me what I do. I'll probably just stick with "Super Geek".