Job 2: Contemporary Technnologies
While there was a lot I enjoyed about the work I was doing at ANSYS, I didn’t see it as the type of work I wanted to continue doing for the rest of my career. I wanted to do more traditional software development, and specifically get into web development. (At the time, there was plenty of software being written that wasn’t being delivered as HTML applications, but even though the shockwaves of the 2001 “.COM Bust” were still being felt, this was clearly the future.) I started to interview with companies around Pittsburgh, and eventually got an offer from a company with the rather meaning-free name “Contemporary Technologies, Inc.” (CTI) who wanted to build a Java web development team.
From what I recall (I could be wrong), the company’s long term strategy for this “team” I was starting (I was the only person on the team) was to have me build a couple of websites, and then use those skills to launch a consulting business to build websites for others. In 2003, Sun was pushing their “Java 2 Enterprise Edition” (J2EE) hard, and the belief was that a J2EE consulting company was good business. Because CTI was also an Oracle consultant and reseller, they wanted me to build these websites using Oracle’s JDeveloper IDE, which was completely unfamiliar to me (and added a lot of its own strange bells and whistles on top of J2EE).
The two websites I was tasked to build were related to existing businesses within the company. The main product the company offered at the time was a Client/Server application used by chemical and other manufacturers to keep a record of how their environmentally hazardous waste was being disposed. The first website I was to build was a web-based portal allowing an interface to this data. The second website was a little weirder. The founder of the company had made some major life changes and had a radio talk show on weekends where he would share some of those experiences and help coach his listeners going through similar changes. He wanted me to build a website he could share with his listeners to allow them to track their goals.
The first few months in the role involved a lot of setup and research. In some of my later work at ANSYS, I ended up doing more Java development then when I started out, and had some familiarity with a lot of the industry-standard tools at the time — Ant, Maven, JUnit, etc. — so I had a bit of a jump start, but still had a lot I wanted to do around continuous integration, code coverage validation, and similar ideas that sounded like good best practice, but that I hadn't felt the need to do at the time. I started building out login screens (because how can you do anything on a website if you don't login first?), and ended up with some well-tested, reliably deployable, and J2EE-compatible login screens for both of these websites. I had good CSS rules in place that exactly matched some design mocks they had from a designer, and was ready to get down to business and build some real functionality.
Then they laid me off, because I forgot to build anything of real customer value.
1: Lessons I’m Still Learning
The obvious takeaway from this experience is that I put way too much energy into automation and tooling for myself up front, and not enough into showing customer value. There is long-term customer value in doing all of that CI/CD automation (and our tools are much better for it now than they were 20 years ago), but if your employer wants to see a working demo, make sure you work on that. It's not just good for your employment; early working prototypes help to validate early on that the overall idea makes some kind of sense.
While I 100% understand why I was laid off from this job, and even at the time seem to remember understanding, I also remember being a little bit surprised, because I didn’t fully realize I was missing expectations. I was doing better than I’d done at some earlier jobs and was taking initiative to do things on my own, but I wasn’t doing a good job of making sure what I was doing lined up with company leadership's expectations. In the end, they didn’t line up, and I was shown the door. (There were some other challenges at the company, so I might have been laid off even if I had done much better at delivering customer value.)