Proudest Software Engineering Achievements

A few highlights of my time programming 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

Other Projects

Tell Android to ignore folder contents

Tired of showing the contents of your audio books library in your music app?

Atreyu keyboard Build

Creating a working ergonomic keyboard. From files to physical.

Build a Keyboard Links

Trying to build your own keyboard? Here are some links!

Creation of Solid Scribe

How I created, encrypted note taking application, solid scribe.

Catch missing image assets inside image tag

If an image is being displayed on a website and for some reason that asset disappears, you can catch that error and display a placeholder image with a little inline js.

Change remote origin in git repo

Sometimes you need to change the remote origin in a git repo, if the server moves or if you just get better at NGINX and change the URL to something cleaner. Here are the simple steps on how to update your remote origin.

crDroid 9.1 OnePlus 7 pro install/update

This will walk you through installing a custom rom on your phone, updating the firmware and installing google apps. Then rooting your phone.

Creation of Ravenwulf Consulting

Designing and building of Ravenwulfconsulting.com

Obligatory I am starting a blog, blog post

As we fumble around life, doing little projects we end up learning little things and forgetting a lot of things.

Killing programs in mac or linux

To kill all instances of an application us the command killall

Linux Search text in this and all sub directories

Search text files in current directory and all sub directories. Its super fast so don't worry if you have a node_modules directory or something.

Lower Pipewire CPU usage on Ubuntu while using Firefox

I was noticing high CPU usage for the pipewire process on Ubunutu.

Neovim

Why would anyone in their right mind us vim? I asked myself this question 543 times in the last 3 years. To my own surprise, I found myself wanting to use vim. The justification being that you can write code without using a mouse.

Sunshine a Parsec Alternative for Linux, GeForce Now alternative for Windows

Sunshine is a desktop streaming client for linux that offers efficient, low latency PC streaming, for free. Download Sunshine onto your linux machine (the host) Sunshine Github Download moonlight onto whatever device you streaming on (the client) Moonlight Homepage

PC Builds

At some point I became infatuated with the SAMA IM01 Case. At only 22 liters, it can house an ATX power supply and a large cooler. I bought two! Thus began the journey of rebuilding both my PC and my unRaid server into smaller cases.

Proudest Software Engineering Achievements

A few highlights of my time programming

Run bash script on linux start

Running a bash script on system start can be an involved process, depending on you distro. The proper way is to create a system service and plug it into /init.d but you can leverage the crontab if you want a simple quick way to run something on startup.

Sending Emails with Cloudflare Workers

Cloudflare has a partnership with MailChannels which has allowed Cloudflare to introduce email sending into its web workers. There is some documentation to set this up but its all over the place. Here are the steps I took to get email sending running, using workers.

Setup nginx to point subdomain at port

You can setup nginx to point subdomains at specific ports.

Sleep Linux Mint Keyboard Shortcut

Sleep Linux Mint with this keyboard shortcut

Get .env file variables into bash scripts

If your server has a .env file, it may be necessary to parse those variables into a bash script. This can be accomplished by using the 'source' command.

Why use ergonomic keyboards?

Ergonomic keyboards have a number of benefits.

Windows Hello for Linux

There is a program called Howdy, which is like Windows Hello. It uses face data as authentication. Howdy Github Repository

Max Gialanella - 2024