In my twenty plus years I've worn many hats. They've all fit quite well. After graduating with a Bachelor's of Science in Computer Science from the University of Rhode Island, I landed a position with Anteon Corporation (now General Dynamics Information Technology) as a Software Engineer. My years in the Army infantry helped me attain the security clearance required and my studies at URI gave me the knowledge I needed to excel.
I worked on a team developing software for the Navy and joint operations training exercises that could be used to determine the odds of detecting enemy crafts (air, sea, and subsea) based on environmental information and friendly technical capabilities. I developed code performing detailed calculations over vast sets of data primarily in Java. My success was rewarded with more responsibilities, tasked with tracking down memory leaks in native C++ code, which led to other work for NATO, porting our legacy application from Windows to UNIX. All of this gave me a solid understanding of object oriented programming and its principles as well as configuration management tools and processes.
After buying a house, Anteon offered me the ability to transfer to another office that was closer to home. It was here that I worked on coding the Paperless Ship, an Apache Tomcat JSP site with an Oracle backend, built as a means to modernize and lightweight submarines by removing all the paper on a boat. Instead of having physical logs of every duty performed, sailors would use our system to track everything - from workflows to scheduling. I disliked writing front-end code (all the stupid nuances between browsers was infuriating at times), so I began working with another team maintaining an aging submarine simulator.
The simulators were room sized platforms that were suspended on hydraulic actuators that would react to how students "drove" their simulations. The original simulator was written in the 70s and ran on an old DEC Alpha server. This old hardware (and software) needed constant maintenance so I was always updating the code. The Alpha server interfaced with a real time processing unit that took analog inputs from switches, levers, and wheels and translated them to digital outputs which were read back in by the simulator. The RTP unit also drove analog gauges from digital outputs calculated by the simulator running on the DEC alpha server.
We were constantly replacing gauges that burned out. It weasn't long after I came onboard that we decided to replace some of these gauges (the Common Instrument Panels) with computer monitors and digital replicas. I took photos of the gauges onboard the boats, cut them into pieces and cleaned them up in photoshop. I spliced and animated them using Open GL and developed an interface for the new virtual instrument panels to communicate with the old DEC Alpha servers.
And then the money dried up. I had to make a choice, stay with Anteon and work on the Paperless Ship developing front-end code or find something new. So I applied to a job with RITE Solutions. I found out during my interview, they would be hiring me to work on Submarine Simulators - yes the same submarine simulators I was already working on. RITE Solutions had won the follow-on contract and I had no idea. It seemed a no-brainer to me.
I started at RITE as one of three leads on a project to replace the old DEC Alpha server and all its simulator code with a modern Windows server and a brand new brain, completely re-engineered based off the existing system, but enhanced with new capabilities such as multi-threading and a brand new hydro-dynamics model produced by the Navy. It was exciting! There was a team of nine developers in San Diego and a handful of us back in Rhode Island. The team worked great together. I was in charge of updating the Instructor's Operating Station and integrating everything and there were two other teams to implement the Real Time Processor Unit control software and the submarine simulator itself. I performed all the onsite testing and after the development work was found to be complete, I flew out to five sites and performed the hardware and software upgrades, tested the updated systems, and trained the Chiefs how to use their new simulators. This project was a huge success and was the most interesting project I've worked on to date. But after the job was completed, I needed to find new work.
So I went to work for Progeny Systems Corporation. Progeny had taken over the contract of the Paperless Ship and I went to work for them as an Integrator. I took the code Anteon wrote and tested it in our labs and then went out to the boats to do the installations and trainings. The software had come a long way since I left Anteon and had since become a platform for other software packages to be run on. With me as the technical lead, Progeny bid on a contract to develop one of the LANs onboard the USS Ford - the latest aircraft carrier, still in development at that time. We won!
I built a redundant and highly available system to use the Paperless Ship as the platform to host other applications which the Navy needed running on the Machinery LAN. I developed single sign-on capabilities with these applications, using the Paperless Ship as the backbone. I packed up the system and traveled to Norfolk, demonstrated, and presented the results of our work. We were rewarded with follow-on contracts. It was after this that I decided it was time for me to try working in private industry, rather than the DoD. I enjoyed my time working for the government, but 16 years was a long time and I needed to see what else was out there.
I was excited to join Lapis Software Associates, working on their secret project building a next generation lottery terminal for use by the Chinese government. Everything was going great until some bloke from the UK lost us the contract. So I went to work on their Gem Intelligence software, updating the core infrastructure and the databases behind it. The software was used to track lottery sales - "scratch" tickets and online tickets like Powerball. We had multiple jurisdictions across the world and the code bases were diverging for each. They needed someone like me to reduce the work required to maintain all of these. So I unified their codebases and purged their databases of duplicate tables, while maintaining unique difference between jurisdictions and using Microsoft SQL Server views that were read by the infrastructure code instead of the original tables. But my boss was a micro-manager (and one of the original owners). I learned I can't work in an environment like that - I need freedom to grow, not walls to confine me. I left Lapis with nowhere to go. It was one of the hardest and most foolish decisions I've ever made and I'm still paying for it, but I wouldn't change it. I've grown a lot from that mistake.
After a year and a half of virtually no income, losing my brother, and breaking my arms while working as a landscaper, I was hired by InsureMyTrip.com as their Lead Web Engineer. I mentored younger developers and helped build the team to become a successful group of engineers. I was on the team that accomplished GDPR compliance and helped spearhead us toward PCI compliance. I was promoted to DevOps Manager after our previous IT manager quit. I had to learn how all their systems worked and were networked. I documented everything - something the previous IT manager was against (security through obscruity is not a thing people). I hired and trained a Systems Administrator and managed a team of two to accomplish some big goals - building a version of the site in the AWS cloud and developing a Disaster Recovery plan. And then Covid-19 struck. No one buys travel insurance when they aren't traveling. I was laid off - I am bitter and can't help ask if there's something I could have done differently, but I'm much better off now than I was then.
Now I work for Markforged - reinventing the manufacturing industry. I am in Sales now, working as a Software Engineer wherever possible, improving processes and enabling my teammates. It's a new industry, a new role, with new faces and experiences. I'm loving every minute of it, coming out of my shell more and more. I'm not done engineering. I work with some of the best!
I've designed systems for the US government, from submarine simulators and their components to firewalls and networks. I've integrated business systems with third party tools using APIs. I've built reporting systems and maintained databases. If you have a need for something complex, I can do it.