Souk
2025–26Product Engineer · Antler 2025
Overview
Souk is an AI Partner Development Manager. It's the missing layer for partner-led growth. I joined as a product engineer, working with the CTO to ship full-stack features from design through to production. Across two repos and 83 merged PRs I owned six product surfaces end to end: campaigns, CSV import, nurture email, LinkedIn integration, account-based lists, and the auth/admin layer. The product is used by GTM and partnerships teams at Deel, Vanta, and Google.

The challenge
Partner-led growth is one workflow disguised as five tools. Most teams stitch it together from a CRM, an outbound email tool, a LinkedIn automation script, a contract platform, and a spreadsheet. The handoffs leak data, the scripts break, and the founder ends up running SQL queries to find out who got paid.
Souk needed to be the single workflow tool for partner programs, and it needed to be built the way a small Antler-stage startup actually ships: design and engineering as one job, not two.
The reframe
At a startup, the loop between design and engineering is the bottleneck. The reframe wasn't a product insight. It was a process one. I worked as both designer and engineer on the same feature, which collapsed the handoff to zero. A flow could go from Figma to merged code in a single afternoon, and tradeoffs that would normally take three meetings happened in my head.
That changed what we could ship. Six product surfaces in the time most teams ship one.
Key decisions
Campaigns V2: rebuild the spine before adding features
The v1 campaign system couldn't scale past a few hundred contacts and the team kept patching it. I argued for a full rewrite (new data model, multi-step creation flow, scheduling, analytics) and shipped it end-to-end across the React frontend and the Node backend. The tradeoff was a multi-week pause on net-new feature work. The payoff: every campaign feature after V2 landed in days instead of weeks.
LinkedIn integration: scraping to Unipile
The LinkedIn flow was built on scraping. Every new auth flow LinkedIn rolled out broke it, and users got constant “reconnect your account” errors. I migrated the whole thing to the Unipile API: OAuth, rate-limit queuing, webhook ingestion, real-time inbox sync. The tradeoff was real: we now depend on a third-party API and pay for it. The win: users went from a brittle channel they couldn't trust to an always-on inbox.
CSV import: make 10,000 contacts feel safe
The first thing every new user does is upload a list. If that flow is scary, they leave. I built a bulk import pipeline for CSVs of 10,000+ rows with a column-mapping UI, inline validation, deduplication, and a background job queue so the upload never blocks the page. I could have shipped a basic upload in a day. This version cut manual data-entry time to near zero and removed the most common reason new users churned.
Impact
Six product surfaces shipped end-to-end across Souk's two repos.
83 PRs merged across core-backend and frontend-core.
Used by GTM and partnerships teams at Deel, Vanta, and Google.
Campaigns V2 unblocked the entire campaign roadmap. Every subsequent feature shipped in days instead of weeks.
LinkedIn migration removed the platform's most common support ticket.
Internal admin panel cut founder dependency on direct DB queries for support and ops work.
Reflection
The thing nobody tells you about being a design-engineer hybrid at a startup is that the role only works if you trust your own taste. There's no design review to catch the wrong call, and no engineering review to catch the wrong abstraction. You become both reviewers, and the speed only matters if both are honest.
The lesson I'd take to any early-stage product role: hire for hybrids, but only when you can trust them to disagree with themselves.