I’m a lead software architect working in defense for the past thirty years. Worked on many projects – missiles, aircraft flight displays, transport aircraft avionics, battle management systems, smart munitions, radar, targeting pods and armored fighting vehicles. Back in January a small defense machine shop type of company in a remote part of the country won a huge software contract to develop an infantry fighting vehicle. By chance, I was available and by chance a recruiter matched me up with a job I would not normally have known about. The company had no software experience – the boss and the system engineer were mechanical engineers and understood almost nothing about software development and even less about the software implications of the contract they had just won. The team was small and had only two experienced software engineers neither of whom wanted to the the lead architect. The company hired me enthusiastically, paying me a very high salary (like twice what most of the other engineers in the company made) and the promises of a very high bonus.
I began work, learning all I could about how to adapt the legacy software to the new system. Boss insisted that we had to reuse the legacy software because we didn’t have time to “reinvent the wheel”. Unfortunately, the legacy software was developed to run on totally different hardware than what we would be directed to use and the software was deeply coupled to use the legacy proprietary interface communications software which also would not be compatible with the new system. Nonetheless, I was directed to make full use of the legacy software and a trip was set up in order to confer directly with the developers of the software.
The trip was a disaster. The system engineer hijacked the entire meeting turning it into an exercise to transfer files from the other team to my team’s individual laptops. I couldn’t get a word in edgewise to discuss what we should be doing. All of the time to spend discussion and learning their software’s function and operation was taken away and we were left with only a transfer of code – which we didn’t need to have traveled to do. After several days of having my teams time wasted, I confronted the system engineer and had a few words of open disagreement. And left for the day.
Half an hour later my boss (also the system engineer’s boss) called me and was “displeased”. I probably used some poor language in response. Anyhow, the next day we went back to “work” and nothing more was said. We all returned home and went back to work for the following months. Nothing more was said to me about the incident. Work progressed and about two months later we hosted out customer on site for a meeting that went well and then went out to a team building event at a fancy hotel bar and restaurant for drinks and food. I chatted pleasantly with the other engineers, my boss, and customers and the president of the company. All seemed well and normal.
And so my team had been working to understand how to get the legacy software to a point where we could think about how to port it. The consensus of the senior engineers was that this was not a viable approach due to complexities of the new required infrastructures and architectures of the new system. So I went about a compromise solution and put together a plan to bring our software development into line with the new standards. I planned a group meeting to socialize the approach with the team. And, I lined up the customer to start bringing their architects into the discussion.
The day before the meeting, my boss wanted to have a “pre-meeting” to discuss what I was about to communicate to the team. So the next day I came into work for the pre-meeting. Strangely, he had the company’s CFO sitting in on the meeting. I sat down and he simply said, “I have decided to terminate your employment. I have lost confidence in your ability to lead the software team.” I said, “Oh, OK.” He said, “You don’t seem surprised?” and I said, “Whatever.”
I was out the door a few minutes later.
So it turns out that my replacement started the next week. Which, if you walk back the timeline of hiring a person means that an offer would have been made to that person three weeks earlier, the decision to hire would have been made a week before that, interviews two to three weeks before that, and then the time to advertise and attract candidates… pretty much implies that my boss had decided to fire me two months ago. Not only that, but there was never any talk about his dissatisfaction with my work or behavior, no warnings, no HR involvement, just silence. I had been monitoring the company’s advertisements for new people on Indeed, LinkedIn and such and did not see an advertisement for a lead software engineer. So that means that he spent two months completely in secret recruiting a new person into my position (!) And, rather than just fire me when he had decided to do so, he kept me on at cost of two months salary and travel expenses and totally wasted all my work of those two months.