Leading the routing and platform work at Paack
At Paack, I was a Principal Software Engineer working on the software behind package delivery. I led the move from a legacy application to microservices and developed a routing algorithm, while working with product and stakeholders to connect the engineering work with delivery needs.
The role covered planning, technical decisions, implementation and mentoring. I was involved in deciding what we should build and why, as well as how to build it.
Changing a system that was already in use
The challenge was modernising software that was already part of the delivery operation. We needed to decouple and upgrade the legacy system while keeping its integrations working and disruption to a minimum.
That made the migration a problem of sequencing and dependencies as much as code. Service boundaries, the connections to existing components and the order of the work had to be considered together. A technically appealing design still had to fit the needs of the business and the team delivering it.
Connecting product and engineering
I worked with stakeholders and product colleagues to understand priorities, contributed to planning and helped translate business value into technical work. Improvements in delivery efficiency and the ability to handle growth needed to become concrete engineering decisions.
Alongside that, I developed the routing algorithm and contributed across different domains. I also worked with the team on features informed by data. The routing work and the platform changes were connected by the same goal of improving the efficiency and scalability of package delivery.
The engineering work
I led the technology transition primarily towards Go and Python. The wider stack in this role included Kubernetes and GCP, REST and gRPC APIs, PostgreSQL and Redis, and messaging through Kafka and Pub/Sub.
The work combined changes to the application architecture with routing logic and integration. Breaking the legacy application into services meant thinking carefully about responsibilities and how those services would work together.
Leading through the change
I mentored junior and mid level engineers alongside the delivery work. Helping people grow was part of my responsibility as a principal engineer, together with the technical direction and collaboration with product.
We completed the transition to microservices, upgraded and decoupled the legacy application, and improved the efficiency and scalability of the routing work. Those were connected achievements. The architecture had to support the product, and the team had to be able to carry it forward.
More on this role in my résumé.