MarketingMax/content/blog/Proudest-software-engineering-achievements.md

42 lines
3.3 KiB
Markdown
Raw Normal View History

2024-02-25 10:10:30 -08:00
---
title: "Proudest Software Engineering Achievements"
description: "A few highlights of my time programming"
date: "2023-12-1"
---
### Mitigating hype-driven-development as a team lead. Building a cohesive tech stack and uniform product
Migrating from an old, unsupported technology to a new, feature rich technology is often the crux of a companies future proofing strategy. Being left on an aging platform could hobble future growth and slow development.
When I was team lead at Article One Partners, this was the first thing I wanted to tackle. How do we migrate an antiquated, fragmented system, to a more cohesive stack? A previous dev, convinced the manager to adopt new technologies as they became popular. This left us with a LAMP stack, running Smarty (an old PHP frontend) jQuery UI, Angular, React and Vue, with two weird support microservices written in Node.js and a nightmare webpack config. All this was built on top of an old Zend 2 backend with a partially implemented ORM on an aging version of PHP.
We needed a clever strategy to mitigate tech debt, remove unused technologies, update to new technologies, support old features that could not be updated, all while allowing for development of new features.
The first order of business was to plan a path forward with the technologies that were giving us the greatest benefit. For the front end it was Vue, with a custom webpack config. Which required the phasing out of the React, Angular and jQuery. For the backend we planned a migration path, removing all handwritten MySQL and MySQL stored procedures, migrating to the latest version of Doctrine ORM and then migrating the entire stack from PHP 5 to PHP 7.
The first step was to build a uniform data layer between the backend and the frontend, this allowed all technologies to exist at the same time using the same data. Pieces of the frontend and backend could then be replaced piecemeal without disrupting the current application.
We continued:
- Isolating Features per page with a uniform data delivery for entire site.
- Removing dependencies on old pages that used Smarty, Angular & React.
- Building Interoperable components for legacy pages and vue pages.
- Replacing dated pages, as time allowed, with single page applications.
As time went on, the efforts and planning paid off. The entire application was using a uniform frontend and styles framework. Each page was an isolated single page application which could be maintained and updated easily. The backed was secure and much faster thanks to PHP 7. The whole stack was maintainable. Dependencies and packages were at their latest versions.
This is one of my proudest achievements because of the scale and foresight put into the project was a massive success. The tech stack became much more secure, faster and
maintainable, new features could be developed and uniform technologies across the platform allowed for very fancy new projects to be built and implemented with minimal hassle.
(More in progress)
### building a performant browser based pdf annotator
### integration of socket.io backend and vue event-bus for solid scribe
### analytical engine for finding study submission duplicates
### dynamic programming for satisfaction criteria in submissions highlights
### cross implementation of smarty and vue for migration