CPAP.com

TMy time at CPAP.com was from November 2018 - May 2021 and man was it an exciting journey. When I first started, the e-commerce application was a ~15 year old frankenstein legacy system that desparately needed some updating. After I started, we built a new web application using modern technologies in a rather unqiue way. CPAP.com has been in business for close to 20 years. When I first came on, the e-commerce-application we worked on was a monolithic application that housed both the frontend and the backend. This legacy system was tied to other homebrewed systems such as a Product Management System (PMS), Content Management System (CMS), Warehouse Management System (WMS), and a few others. It was fragile and all of the systems were very dependent on each other, especially the client-facing application. About one month after I started, that's when all the fun began...

Type

Full-time Job

All the Tech I've Worked With

Apollo

GraphQL

Jest

Kentico (headless CMS)

Laravel

Magento (headless PMS)

Show More

View It

Link

Details

The Technology team decided it was time to take advantage of more modern web technologies including a Single Page Application with a Microservice (REST API) layer. This would give us a more performant application and let us keep the code base modular by separating client-side and server-side logic. At the same time, we also adopted Agile so we had to think of creative solutions in order to launch a Single Page Application before re-writing the entire system to the new SPA/Microservice architecture. So what was the plan? For the initial launch project, we only re-wrote the header and footer to use the new architecture and kept all of the legacy body content. This would let us work in sprints and overtime, slowly transition each chunk of logic from the legacy system to the new architecture. Not to get too deep into the magic but we essentially used the new API layer to inject the legacy body content into the SPA via an API request.

I wish I could remember how many sprints it took us to complete this task but all I can remember is working long hours with the team. I believe it only took a month or two but after some extensive UAT, the new architecture was (and is) live at CPAP.com. From then until Fall of 2020, we re-wrote a large majority of the application. However, starting that Fall, we made an architectural shift to use Nuxt.js as our frontend framework. This decision was made so we could utilize the power of server side rendering (ssr) to increase webpage performance and optimize user experience.

My Notable Contributions

Apollo GraphQL Jest Kentico (headless CMS) Laravel Magento (headless PMS) Nuxt PHP Twig Vue Vuetify Vuelidate Vuex Webpack

It was a heck of an experience working on some really big features with some incredibly talented Software Engineers. I learned an insane amount from everyone but most importantly, my lead has made the largest impact on my skillset since joining the team.

Here are a couple of my notable contributions are: increased our SPA unit test coverage to ~70%, implemented Apple Pay to work within all of our systems that interact with cpap.com, wrote a large portion of the window history state logic on our new product listing pages, re-wrote the CSR instant product search logic for the new architecture, re-wrote the mobile header for the inital project launch, implemented bread financing within the new architecture, writing a ridiculously advance component (that I never want to see again lol) that gives the marketing team full control over our homepage banner, and implemented enhanced e-commerce analytics for Google Analytics.

I worked on so much more than just this and there's a lot more I could talk about but I think I'll leave it here for now.

Problems and Lessons Learned

Burn out is real. During and after the inital SPA launched, the entire Software team was cranking out so much work from re-writes to bugs that went well over the mandatory 40 hour work week. Being a self-taught Developer, and I don't know why I thought this, but I really believe 'burn out' was a real thing since my juices were always pumping with passion (not that non self-taught Devs don't feel this way). Boy was I wrong. However, once management noticed this, we scaled approrpiate and create more realistic expectations which was a great lesson learned.

Have an Idea? Let's Build it.

Feel free to reach out if you’re in need of a Developer. Whether that means you need a website, web app, or you’re looking to fill a full-time position. I’m always open to a conversation.