
Shipcode / Branding Brand
Senior Engineering Manager → Director of Engineering
2021 — 2025
99.9% uptime · ~40x faster release cadence
Unfortunately, I am under an NDA so I can't discuss everything in detail but I will try to give a general overview of the work I did there and the impact it had on the company.
At Branding Brand I led the team that built Shipcode from the ground up.
Integrations and Flagship
I started in 2021 in R&D as the senior engineering manager for integrations. Four to six engineers. The job was external integrations for Flagship, the main product at the time.
In the first six months R&D dissolved. The PM left. A few key engineers left. When I looked closer, a lot of what we had been shown was demoware. The architecture was not going to carry a real product. I pushed a rebuild from scratch. Maintainable, flexible, no fake demo path.
The product team and Shipcode
I ended up leading 9 engineers on a real-time collaborative app builder that could sit on any backend. 99.9% uptime, real-time alerting, performance monitoring. CI/CD so you could build locally and get a QA cloud env per pull request, plus staging and production. The company was trying to stop being an agency and sell a product. We had to make the tech match that, and we did get global enterprise customers on it.
From 0 to 1
I assembled a core team of three of the company's top engineers, and together, we embarked on a comprehensive rewrite of the codebase. This effort focused on delivering a scalable, reliable product that aligned with the vision articulated by the CEO and CTO, transforming conceptual goals into a tangible, high-quality solution.
There is a lot to add here, Domain Driven Design, CQRS Architecture, Event Drive Microservices, Angular, Nest, Next, Azure, AWS, GCP, CosmoDB, Postgres, Nest, Next, WebRTC, we were moving quickly and able to rip out anything that didn't serve us and put in its place somethings that did.
Scaling Globally
The first customer onboarded to Shipcode was a fitness fashion brand from Australia that had stores in Australia New Zealand Singapore and the US. We needed to still be able to handle low latency real time collaboration between opposite sides of the world.
We architected the system with regional edge deployments and intelligent request routing. WebRTC connections for real-time collaboration were optimized with TURN server placement across regions. Data consistency across geographies was handled through our event-driven architecture — Kafka topics with carefully designed partition strategies ensured ordering guarantees while maintaining throughput. The result was sub-200ms collaboration latency even between Sydney and New York.
Real Time Collaboration
I led the Shipcode engineering team, collaborating with the Design and Sales teams to define requirements for a microservice managing user cursor position, user selection, and simultaneous multi-user change merging. I worked with engineers to prioritize delivery and deployment, ensuring efficient implementation.
The technical challenge was conflict resolution — multiple users editing the same component tree simultaneously. We implemented operational transformation inspired by collaborative text editors, adapted for a structured component model. Each change was decomposed into atomic operations that could be composed, transformed, and replayed. The cursor and selection system was built as a separate lightweight WebSocket service to avoid loading the main collaboration channel with high-frequency positional updates.
Documentation and AI
We had decent docs, so we trained an assistant on them. It could change data properties and pull out components from a normal sentence. People could talk to it and change the site or the app. It worked better than I expected.
Monitoring, Stability, & Security
I implemented real-time threat detection using Falco to monitor runtime security for containers and hosts in our AWS EKS cluster. Following external penetration testing, I refined Falco rules to reduce false positives and align with our threat model. I performed system hardening, including least privilege principles, network policies, and pod security standards, and documented these steps, mapping them to SOC2 controls (e.g., CC6.1, CC6.6) and PCI DSS requirements (e.g., Requirement 6).
I conducted load testing and configured autoscaling for Knative microservices, enabling scale-to-zero to optimize costs and implementing autoscaling with panic scaling to handle load spikes. Karpenter was used for efficient EKS node scaling. I set up logging, tracing, and monitoring for services and Kafka topics using OpenTelemetry, Prometheus, and SigNoz to provide logs and alerting. Additionally, I migrated microservices from a shared RDS instance to individual Aurora PostgreSQL instances for improved isolation and performance.
Development, Testing, Deployment, and CI/CD
I enjoyed implementing GitHub Actions workflows for pull requests (PRs), enabling developers to add a label to deploy the full stack to a shared development EKS cluster. The workflow built only the components affected by changes in the monorepo, using the latest from the main branch for the rest. This allowed each PR to be tested independently before approval and merging. Another workflow then tested the merged changes against production configuration and sanitized production data. I also automated the release process, enabling the team to perform multiple weekly production releases. This improved release cadence and reduced the time from feature request or bug identification to solution delivery by approximately 40 times.
Developer Tooling Overhaul
We invested heavily in developer experience. Nx was introduced for monorepo management — dependency graph analysis, affected-only builds, and computation caching dramatically reduced CI times. Pulumi replaced our ad-hoc infrastructure scripts with real TypeScript infrastructure-as-code, letting engineers provision and tear down environments programmatically. Local development went from "good luck" to a single command that spun up the full stack with hot reload. The compound effect of these changes was that engineers spent more time building features and less time fighting tooling.