A quick history of my career
tl;dr: I've been at this for a long time! (You can skip.)
I started coding on Commodore 128 around 1987. I wrote and sold two BBS products on this platform. (Before the web, we'd use modems to "dial-up", one at a time, onto the computer of somebody running a BBS to leave messages and files. This was our social media.)
Upon receiving my BS in Computer Science in 1998, I started my professional career. I learned solid software engineering practices working on GPS navigation for the Federal Aviation Administration at Raytheon, did a stint with a company building an XML database platform back when that was all the rage, and then ten years at two companies in the automated car wash industry doing work that we would now call IoT.
In 2014 I started with a consulting company... of sorts. Netbrains was more of a custom software development house, using tools like Java, MySQL, and JWT. There were about 26 of us when I joined. Customers needed a place to run the software, so Sturdy Networks was spawned for AWS DevOps. Soon we found ourselves acquired by Onica and that's when I became an AWS solutions architect and part of a real consultancy. Onica grew to have over 400 people, be an AWS Premier Consulting Partner, and AWS loved sending us their customers! We not only did traditional DevOps, but the history of Netbrains lived on to produce cloud-native serverless application solutions, including what is now called IoT.
In 2020, Onica was acquired by Rackspace Technology.
I joined a little shop of 26 developers, and found myself helping to manage the cloud-native development practice in a corner of a 6000+ employee public company spread around the world.
For those keeping score, that's 35 years of writing software, 24 years as a professional engineer, over seven years as a consultant, and five years in the AWS cloud-native serverless space. Contrast that with the average software engineer at just five years of any experience.
See more career history on LinkedIn.
Why now? What now?
First of all, the culture changed. The can-do, make-in-happen, socialize-together, engineering culture of Onica was wiped out by a combination of the big company sales culture of Rackspace, and by COVID-19.
Secondly, I was promoted to management.
As a manager, I was spending more time dealing with administrative task and little delivering products. For the last eight months, the job just hasn't been satisfying anymore. The challenge is gone. My sense of (professional) value has even diminished. I last interview for a job nearly eight years ago, but I am no longer working that job. That job though, as a full stack full process application software engineer, is who I am as a professional. But I've become a victim of my success. I have, in short, achieved the Peter Principle.
I looked at moving out of management over to a Principle Solution Architect role, but the culture loss was still there and that new poorly defined role I suspected would be manager-lite. I looked at moving back to my old role at another consultancy with a (seemingly) better culture, but that felt like going backwards; too easy, a cheat, and still not maybe the full life-cycle engineer I longed for.
Many of my colleagues with the same frustrations have gone to product companies. I had done this previously. This too was going backwards and the thing I really like about being a consultant is building new solutions, not maintaining old ones.
What I really was searching for was the fun challenges of consulting, while building new products. Seeing the rates my employer was changing for me, and what surveys were showing for rates for AWS solution architects, I also felt I could offer a win-win cost scenario for clients.
Charting my Own Path
Like many, I've daydreamed of going independent for many years. Like nearly everyone else, it felt too risky and so I didn't seriously consider it. Corporate jobs offer more stability and benefits built in. If the sales pipeline drys up, you keep getting paid. (For a while anyway, as long as the business recovers… and it isn't your problem to solve!)
The downside when working for consultancy is that there is the middleman - your employer. They take their (huge) cut. They set their policies. They get in the way of providing the best service to clients.
The downside with working for product companies is that you get stuck in maintenance mode, your skills stagnate, and you become trapped there in safe secure boredom.
Now I have reached a point in my career where I have a breadth and depth of expertise to offer clients a full package of skills. So I am removing the middleman. I am going to choose my clients, and they will choose me. I will help them build great products and set them on a path to success. I will keep learning and growing and, I hope, leave a wake of younger software engineers who have learned and grown as well.
While my first choice is to work directly with clients, I remain open to the right opportunities, whether they be a consults, long-term contract, sub-contract, or regular employment. An employer would have to be the right employer and product - something different and meaningful.