Radix
Growing Across Frontend, Backend, and Data at Radix
I worked at Radix, a data-driven platform where analytics and scalability were central to the product. I joined as a frontend engineer, but over time my role expanded as the system’s complexity grew and the organization needed engineers who could work across the stack and into data-intensive problems.
My experience at Radix shaped how I approach performance, data modeling, and ownership at scale.
Starting as a Frontend Engineer
I started at Radix as a frontend engineer, working primarily with Angular on complex, analytics-heavy user interfaces. The product relied heavily on dashboards and reports, which made performance and clarity critical from day one.
This role gave me early exposure to how frontend architecture, API design, and data volume directly affected usability. It also pushed me to think beyond visuals and into how data was fetched, processed, and rendered.
Expanding into Backend Work
As the product evolved, I naturally began contributing to backend-related work, helping diagnose issues and implement features end to end. This was not a formal role change at first, but a response to real problems that needed ownership.
I worked increasingly with Node.js, MongoDB, and PostgreSQL, gaining experience in API development, data modeling, and performance tuning. Over time, my day-to-day work shifted toward backend concerns, especially around data access and analytics.
Scaling Analytics: From MongoDB to Relational Databases
A major inflection point came when the organization realized that MongoDB was not scaling well for analytical workloads. As data volume and query complexity increased, dashboards became slower and harder to maintain.
I joined a backend-focused effort to migrate analytical data from MongoDB to a relational database, building ETL pipelines using Azure Synapse and broader Azure ETL tooling. This work involved redesigning data models for analytics use cases and ensuring data accuracy and performance at scale.
Alongside this, I worked with Databricks and Apache Spark, gaining hands-on experience with distributed data processing and large-scale transformations. This period significantly deepened my understanding of analytics systems and data-driven architecture.
Improving Performance and Developer Experience
In parallel with data platform work, I contributed to several high-impact product initiatives. One project focused on refactoring and optimizing complex analytical reports. A report that previously took close to two minutes to download was reduced to around eight seconds through better caching strategies and improvements in how the report was generated and delivered, including moving to Playwright for more reliable automation.
Another major initiative involved revamping the main data collection wizard. I helped rebuild it using Angular Web Components, improving modularity, maintainability, and overall user experience for a critical part of the product.
Taking on a Team Leadership Role
As the team and projects grew, I took on additional responsibility supporting planning, coordination, and technical direction. I was eventually promoted to a team lead role, where I helped guide delivery and support other engineers while remaining close to hands-on technical work.
The focus remained on pragmatic execution, clear communication, and delivering meaningful improvements rather than process for its own sake.
Moving On
After careful consideration, I accepted an opportunity at Fresha, where I saw a chance to grow further by working at a larger scale, across more domains, and with new technical and organizational challenges.
My time at Radix played a key role in shaping how I approach engineering today—grounded in ownership, performance, and building systems that scale with the needs of the business.