For this project, I worked on building a new website for DPA Microphones using C#, .NET with Razor Pages, Umbraco 13 as the CMS, Bootstrap, and Sass. The website had a large number of pages and features, some of which were complex both in functionality and structure. The primary goal of the project was to improve search engine visibility and performance, which heavily influenced how we approached both the frontend and backend.
Because of the SEO requirements, we made sure that most interactive views were rendered server-side on the first load using Razor Pages, and then progressively enhanced with JavaScript for client-side interactivity. This hybrid approach allowed us to strike a good balance between fast initial loads and a rich user experience. I found myself in the middle of the stack, often bridging communication between frontend and backend, designing data structures and APIs that would be easy to consume on the client side.
In hindsight, this was a major learning experience for me. I had the freedom to influence how we structured the frontend, but I defaulted to the "old ways" I'd seen in previous projects — building individual pages or sections one at a time and reusing code manually. This resulted in tightly coupled components and a lot of duplicated logic that was hard to maintain or scale. Refactoring was painful, and I realized too late that I should’ve prioritized modularity and reusability from the start.
This project taught me several key lessons: to challenge existing processes when I know there's a better way, to not blindly accept other people's time estimates, and to collaborate more with the team instead of trying to solve everything on my own. These insights have already shaped how I work today — I now design components with reusability in mind and push for a more maintainable and scalable architecture early in the project lifecycle.