Waydev: lifting throughput and unifying notifications at a YC engineering-analytics startup (11 months)
Eleven months at a YC W21 startup. Migrated Laravel + Vue to Octane and shipped a notification microservice covering Slack, Teams, email, and in-app, without breaking the live product.
- Laravel
- Laravel Octane
- VueJS
- PHP
- MySQL
Challenge
Waydev (YC W21) pulls metrics from Git providers, CI systems, and project trackers to give engineering leaders a clearer picture of what their teams are shipping. By late 2021 it had two concrete problems neither could wait.
Throughput ceiling. The main Laravel + Vue application was hitting request-throughput limits under real load. Horizontal scaling was an option but an expensive one. Adding instances without addressing the per-request overhead was just paying more for the same problem.
Notification fragmentation. Notifications were inconsistent across channels. Some surfaced in-app. Some emailed. Some had ad-hoc integrations. Each product area had grown its own notification logic, and they all diverged in timing and behavior. Teams building new features were reinventing the notification wheel on every feature.
Both had to improve without breaking what customers were already using.
How the 11 months unfolded
Oct 2021
Engagement start
Two problems that could not wait: a request-throughput ceiling on the Laravel and Vue app, and notifications fragmented across channels.
Oct 2021 to Aug 2022
Octane migration and notification microservice, in parallel
Both shipped incrementally, behind feature flags, with a visible diff every week in rhythm with the product roadmap.
Aug 2022
Handover
More traffic on the same hardware, and one notification abstraction across five channels, with the live product never breaking.
Solution
Laravel Octane for throughput. Octane keeps application state warm between requests, eliminating the cold-boot overhead on every hit. The migration went in incrementally behind feature flags. We ran cold-boot and Octane side-by-side under real load before cutting over, so there was no untested leap.
One notification microservice, all channels. Rather than patching each feature's notification path separately, we pulled the routing logic into a single service that owned fan-out across in-app, email, Slack, Microsoft Teams, and Google Chat. Every product area called one abstraction. Adding or changing a channel meant touching one service, not hunting down every callsite.
Weekly visible diffs. YC-backed startups run on momentum. Even when the underlying work was infrastructure, every week shipped something a customer could see. The throughput migration and the microservice both stayed in rhythm with the product roadmap, not on a separate track.
Request throughput
Before
Laravel and Vue app hitting request-throughput ceilings under real load. Horizontal scaling just pays more for the same per-request overhead.
After
Laravel Octane keeps application state warm between requests. More traffic on the same hardware, operational cost flat.
Notifications
Before
Each product area grew its own notification logic, diverging in timing and behavior. Teams reinvented the notification wheel on every feature.
After
One microservice owns fan-out across in-app, email, Slack, Microsoft Teams, and Google Chat. Every area calls one abstraction.
No benchmark numbers are published or invented; the throughput gain is qualitative.
Results
The main app moved onto Laravel Octane in production. Throughput lifted on the same hardware; operational cost stayed flat. Waydev did not publish benchmark numbers and we do not invent them. The business outcome is qualitative: the team could serve more traffic without adding infrastructure.
The notification microservice reached production carrying in-app, email, Slack, Teams, and Google Chat behind one abstraction. Teams building new features stopped reinventing notification logic.
Both changes shipped without breaking the product surface customers were using. At a YC startup that is the minimum bar, and sometimes the hardest part.