A resume can only say so much. This is the story of my career so far. ## Before Career It all started with a Commodore64. I grew up in a very small town, like 250 people small. We weren't well off but I was able to get a computer for Christmas one year. When I wasn't doing country stuff like shooting frogs with bb-guns or riding our bikes to a swimming hole I was messing around on my Commodore64. I taught myself BASIC. I wish I could say I was more of a prodigy on it, I didn't write any games but I did stay up late figuring things out and writing code. I sent a very small article for the _Hints and Tips_ section of _Compute's Gazette_ in July 1986. It was published, I remember getting a check for like $40. In high-school I completely dropped computers. I was a ding-a-ling, I didn't have much discipline other than for lifting weights. After high-school I enlisted in the [[Marines]]. I was primarily trained as an infantry rifleman with additional weapons, urban combat and terrorism training. My role job was to guard weapons at the now defunct NAS Alameda. If you have ever seen Myth Busters and they are doing stunts on a big landing strip, it's a few hundred yards from where I worked, across the bay from San Francisco. After that I went on to a Light Armored Infantry unit stationed in 29 Palms, California. I went to Somalia for 4 months, it was hot. When I left the Marines the plan was for me to get a degree in Law Enforcement. That's the obvious choice when you've been a rifleman and security guard for 4 years. My draw towards computers was re-kindled and when I thought I might be able to get through the required math I decided to get a degree in computer science. Since I was at a community college in Peoria, Illinois the first programming class was in COBOL. It was fun, it gave me an appreciation for good old fashioned flow-charts. Then I took a class in Pascal. After getting all my general education classes out of the way I went on to Bradley University in Peoria, Illinois and got a Bachelors in Science for Computer Science. ## Affina I found a job as an inbound electronics tech-support phone operator while in college. When I was working on the phones I saw an internal job posting for a COBOL programmer so I applied. I didn't have a degree yet but I was hired. So yeah, writing reports in COBOL, Job Control Language, walking across the street to pick up a stack of green-bar to see how well your job ran. It was cool to go to the mainframe room, computers the size of a refrigerator. I can't say I ever want to work on COBOL again but one thing that did stick with me was getting good test data for the work you are about to do. When you have to walk across the parking lot to see if your job ran well then it makes sense to be deliberate about testing. Serendipitously, [Uche Ogbuji](http://uche.ogbuji.net/) landed at the company I was at in Peoria, IL. I was able to get assigned to some efforts he was leading up. One of my first assignments was turn a big proprietary knowledge-base into standard HTML and JavaScript. Being a CS student I thought to grab C but Uche was a fan of Python and he encouraged me to look into it. It turned out to be a great tool for the job. Parsing markup and turning it into something else was a great use case for good object oriented programming. I was able to use Python for other tasks and put together some internal CGI web-based tools on the company intranet using Python. While I was wrapping up my CS degree I was able to convince some professors to let me use Python instead of C. That made things a lot easier. I was pulled into a big data-warehousing effort as well. I was mostly involved in extracting usable data from existing DB2 schemas. I have seen truly shocking ways that you can design a database. That experience is probably one reason why I really like a well designed, normalized database. ## ASD Interactive I was acquainted with someone that worked at Caterpillar and he said I should look into the Java programming language. I did, I like learning and that's what I did on my own. With that I was able to apply at a local company that was doing e-commerce using Java. It was all very new, we also used a lot of IBM tools like DB2 and the IBM application server. I remember writing JDBC code in my JSPs. It was also the early days of JavaScript. We were a little consulting shop and at one point I had to take a call from a client that wanted to know why some customers couldn't complete their transaction. It turned out that there was JavaScript code that didn't work well across browsers. It wasn't a fun call and it's probably why I have largely avoided JavaScript until very recently. When I graduated in 1999 things were hot. I tried to get a jobs in the Pacific North West, the Bay Area and in Colorado. ## Level3 I graduated with a bachelor's degree in Computer Science. Don’t ask about my GPA, I worked full-time as a salaried employee. While still in Illinois I saw a job posting from Level3 in Broomfield, CO looking for Python. I liked programming in Python so I applied. I flew out to Colorado and my resume was diverted to a team that was in need of a Java programmer. So I was on a team that did J2EE on Netscape Application Server as well as BEA WebLogic. I was finally in a situation where there were _a lot_ of brilliant people around to learn from. After the crash of 2001 and 9/11 there were continual rounds of layoffs but I avoided the axe either by being good or just being under-paid. At some point while at Level3 I worked over 20 days straight including weekends. Another time I wrote code for over 24 hours to prepare for a demo. I also saw a good performer let go on a Monday after she worked the whole weekend. That lessened my appetite to work a lot more than 40 hours a week other than for specific crunch-times and outages. Level3 has since been acquired by CenturyLink. ## Avaya I moved on to Avaya for a change of pace. It was another great group of people. We took initiative in terms of technology and process, we did great things. The work we did wasn't incredibly fun, we wrote software to integrate IBM groupware and communications software with the Avaya PBX to do things like initiate phone calls. From Avaya I learned that you can nail the software, win the battle but lose the war. To achieve the goals that were laid out for us we had to step on some toes. This turned out to be bad enough that many on the team scattered soon after our project was done. ## OpenLogic I'm a fan of open-source technology so I thought it'd be great to work at OpenLogic. The company's premise was to help their customers safely use open-source tools and libraries. At first I helped normalize open-source software into packages that could be distributed with their tooling. I also did Java web application development using JSF, SOAP and Hibernate. I don't like JSF, I never want to work with it again. Other than a few amazing people, frankly it was an odd little culture. It was acceptable for your IDE to be full of red squiggly errors. At one point in a private conversation with the CIO I respectfully suggested that the existing architecture needed to be scrapped. A few weeks later I was laid off. He was mainly responsible for the existing architecture. I feel I owe my employer the truth, delivered respectfully and possibly in private conversations. In the past when I have kept quiet I have come to regret it. ## Dash Carrier Services A friend introduced me to Dash Carrier Services. I was there for about three and a half years. They had recently acquired another company and they wanted to replace the .NET stack with Java. I came on as the sole engineer for what would become a lot of greenfield work. We eventually built up a team of about six people through hiring and acquisitions. The CEO was Justin Nelson, I've never seen so much technical ability, business acumen, intelligence and guts in a single person. We also brought on Johnny Wey, if you're in Denver you probably know that guy can crank at writing software, highly capable folks. Since there was a lot of code to write and our understanding of the data model was evolving I wrote a code generator that would take an existing MySQL database schema and turn it into a persistence layer (iBatis). It was a lot of work but it paid off. We continually used it as the database schema evolved. This also resulted in a layer of the architecture that was very consistent and easy for engineers to hop into and modify. I've never been more proud of the work I've done than when I worked at Dash, it was a feeling of being alive and in control. On a scrappy budget, in a startup environment we routed origination, termination and 911 calls among other phone (VoIP) services. Say _911 call routing_ and _scrappy budget_ in the same sentence and you might understand that towards the end it was stressful. ## Time Warner Cable Some former co-workers that I highly respect were at TWC and I joined them. Time Warner Cable set up an office in downtown Denver. The idea was to be something of a startup inside of a legacy cable company. Initially we worked on the first streaming cable application for the iPad. We built edge services in Java so the iPad knew that you were a valid user, what channels you could watch and so on. To do this we talked to a variety of back-end systems that used different variations of ReST and SOAP as needed. The goal was to come up with simple APIs so that the code running on devices could be more simple and abstracted from our back-office complexities. Time Warner Cable won a [Philo T. Farnsworth Award](https://en.wikipedia.org/wiki/Philo_T._Farnsworth_Award) for our efforts. As Time Warner Cable expanded IP video we continued to do more work on that. Through organizational changes some of us eventually morphed into working on our customer-facing portals. Existing portals were in ColdFusion, we ported them to Grails. At about the same time our team decided to embrace Scala for our back-end middleware tier that talked to about a dozen other systems to come up with an API the portals could use. Scala was fun but the danger is that you can write code that is hard to maintain. I wouldn't mind working with it again but I would have to know that the team is dedicated to writing pragmatic software. Scala code has a feeling of being _tight_. I apply those concepts to Java8 and Groovy. I think I'm a better Java developer for having done Scala. I went on to work on 2 Groovy / Grails applications that allow Time Warner Cable customers to pay their bills. The architecture was interesting as it was intended to limit the scope of PCI scrutiny. I also worked with a Java8 and PostgreSQL to create a system to store customer events. Eventually Time Warner Cable got acquired by Charter. Then things got weird. I went almost a year where I talked to my manager maybe once a month and there was no work assigned to us. Along with others I was waiting for a payout on our equity. In that time I kept busy learning and I had a side hustle. I also got all HAM radio licenses. It was surprisingly difficult to have no work expectations for a while. I’d get on video conferences with my peers and we’d say to each other that some day we’d look back with fondness on this time. ## Voyant Some of the same people that hired me at Dash Carrier Services had a new venture that was also in the telecommunications domain. A lot of familiar faces were there and it was a lot of fun. I was brought on to work on NextGen Emergency services. I played a role in architecting the solution. Johnny Wey was there but he rolled off to join MLB not long after I started. With him leaving I took on most of his leadership responsibilities as a Senior Director. We did some good work there and it was fun. Most notably I rolled out Scrum across 6 geographically diverse teams that I was responsible for. I’ve done Scrum since we used it at Avaya but usually I rolled it out to teams that I was a member of and I could be in the trenches for the implementation. This was different. I had to build consensus and be smart about what teams we introduced it to. I had a good clip of introducing it to 1 team per sprint. It was rewarding when we finally were able to do organization wide demos that showcased all the hard work. One thing I regret is not being aggressive enough with changing things up. The former leadership was competent and the teams said they liked the way things worked so I just kept things going in the same direction. I should have been more opinionated about how the technology organization operated. ## MLB Voyant was owned by a private equity firm. They were entering a phase where they were looking to be acquired. With this uncertainty I thought it’d be a good time to look for other opportunities. I got a call from Johnny Wey to work for him as a Senior Director at MLB to run their Predictive Gaming team. The mobile application was called Rally. Technologically and from a design perspective it was an awesome application. We had trouble finding product, market fit because the game required a lot of interaction throughout live baseball games. A need arose to run the Ballpark mobile team so I was put in charge of that. Great people, was able to do great things and get their process more sane. We added structure there and was able to identify leaders to take day to day responsibility for engineering. Then I started leading a middleware team that was responsible for serving APIs to the Ballpark app and calling back-end ticketing systems. Eventually Johnny Wey left and I took over his responsibilities _again_. Now I lead all of Venue Engineering at MLB. This includes the access control systems, the mobile Ballpark App, middleware, the website fans use to purchase tickets and the back-end ticketing inventory system. One of my teams worked on Go-Ahead Entry. In partnership with NEC it's a solution that allows fans to walk into the park using facial recognition and integration to our ticket inventory systems. It went from a proof of concept to a real product quickly. The product was a [CES 2024 Innovation Award Honoree](https://www.ces.tech/innovation-awards/honorees/2024/honorees/m/mlb-go-ahead-entry.aspx). I’m leaving a lot out but I’m having fun, I’m amazed at the brilliant people I get to work with and I’m learning a lot every day.