1 co-founder, 5 years, 12 pivots, still not dead
How we navigated 12 pivots without hating each other

Vaibhav Gupta
LinkedIn1 co-founder, 5 years, 12 pivots, YC, still not dead
At the YC Alumni reunion, a few founders were surprised by the seeming randomness of our pivots. Here's how my cofounder (Aaron), and I navigated 12 hard pivots without hating each other.
Our (current) 12th pivot is making BAML, a programming language for using LLMs 😅. We are still working on finding PMF, but for the first time in 5 years, we have a growing user-base that actually loves us.
1.5 years of half-assing it
The general theme of this entire timeframe can be summarized by us using our $$$ jobs as a safety net and attempting to throw spaghetti at the wall hoping it would stick. We were looking for signal BEFORE we committed. Ideas we pursued:
-
6 months - An online coding bootcamp paid for by income share agreements. Motivated by wanting to make the world a better place. 15 users, but I pivoted cause no one would pay.
-
6 months - Interactive Twitch ads. Motivated by making $$ on ads and Aaron being a YouTuber in some past life. We had 0 users, did a lot of outbound and got 1 larger League of Legends streamer to want to use us, but didn't actually. (As a founder, I now know "want" is the most pointless word). We pivoted after our W22 YC interview ended in 6 minutes... Michael Seibel (a YC partner and co-founder of Twitch) straight up asked
Do you guys even watch twitch?
Spoiler alert, we did not. I swear I'm still haunted by that question.
-
🎮 6 weeks - SDK to build massive multiplayer games. Motivated by games like Among Us + the idea of streamers and their audiences interacting more. We had 1 streamer try us out, but pivoted because neither of us really play games (noticing a pattern?). The last week was when Aaron quit his job @ Amazon.
-
💸 4 weeks - Let fans buy a creators' future earnings. We felt an edge given Aaron's prior youtube background, but pivoted because we couldn't make it happen. The economic incentives were very hard to realize.
-
📝 3 weeks - Employee engagement surveys — Motivated by making teams happier / increasing retention. For this idea we spoke to a few VPs of HR and got 0 users. We pivoted because Aaron asked "Did I really quit my job to make Amazon Connections?" (The internal tool at Amazon that does exactly this and everyone hates)
What went wrong:
- Moved the goalposts constantly. We cut ourselves slack and just said "we'll make it work in 6 months".
- Afraid to charge users. That wasted a lot of time in finding high quality signal.
- Worked on things we didn't care about.
What went right:
- We learned to pivot faster.
- We built trust. Equity was our first hard conversation. Aaron's perspective, he was quitting regardless of me. He just didn't want to do 2 jobs at once. My perspective was that Aaron might feel he owns more of the company, and I wasn't going to feel good without an even equity split. We resolved it by me putting $4k monthly into a co-owned bank account until I went full time. 50-50 on everything.
Entering YC with a bad idea
We spent 11 months building Gloo, a voice-first Slack/Discord competitor. We loved using Gloo so much, we each logged over 1,000 hours of calls (that's 22 hours / week!). In hindsight, (1) we lacked founder-market fit and (2) it wasn't a problem people cared about.
Our journey with Gloo:
-
The Start: April 2022 - We hated how remote teams worked. No one was friends. Everything was transactional. There was one easy solution: just have people talk to each other more — hence Gloo was born. Around this time, I finally quit my job. Aaron had been full-time for 4 months.
-
MRR!: Aug 2022 - our first MRR: $16. This was the happiest moment of my life 📈🚀. "We are finally going to win." Two months later, we got into YC. During the interview, Dalton told us to pivot - he had seen over 10 companies in this exact space and they all fell flat. We politely declined. He suggested we talk to @Tandem (YC19) and we nodded but didn't actually do it - "They're competitors!"
-
YC W23: Jan 2023 - Joining YC was incredible. I remember telling everyone why we were competing against Slack. Yet, I also remember not trying to get anyone to explicitly use us. "Oh all founders are living together, ofc they can't use us."
-
The End: February 10, 2023 - We finally called Rajiv Ayyangar (CEO of Tandem, CEO of ProductHunt). They hadn't found a venture-scale market despite raising $7.5M from a16z and having tens of thousands of users over five years (See Rajiv's twitter thread). Suddenly, our 400 churned users weren't just "product feedback" but clear signals it wasn't working. Only four people loved Gloo: Aaron, me, and the team of 2 paying us $16 MRR. That Friday night was devastating 😭 — our conviction crumbled.
Some reflections on what went right and wrong:
-
Dogfooding blinded us. Using our product daily was exhilarating but created an echo chamber, ignoring negative signals
-
"Why are you guys making UIs?" Dalton (Our YC partner) asked us during office hours. Aaron spent over 7 years building out core parts of EC2 and I spent 7 years writing CV/ML algorithms in assembly… we had the worst possible founder market fit for anything which depended on UX.
I can't stress this enough: caring about a problem is not enough to win.
Pivot Hell before YC Demo Day
We attempted ideas quickly and looked to invalidate them for any reason that didn’t excite us. The only thing that kept us going was truly enjoying working together. We had so much fun working on Gloo. We’d joke around, solve seemingly impossible problems, talk about world domination. Just need that idea again… Ideas we pursued:
-
🗝️ 1 week - Clerk for API Keys: The GTM was demotivating for us. We’d have to get every startup to use us, then hope that they’d continue when they got big enough.
-
🍔 2 weeks - AI Powered Drive-thrus: I remember driving to every TacoBell, Wendy's, Burger King, trying to convince store managers to use us while Aaron built like crazy. But it was the wrong fit for us: This was not a bottoms-up industry. Even if successful, we didn't care about the customers or problem. Money was the only motivator, and we would burn out too fast.
-
🤡 1 day - Gloo: Voice-chat app with an AI Personal Assistant - Aaron shut that shit down. I was just trying to go back to a topic of comfort. Hard pivot meant hard pivot.
-
(We raised off of this idea) 3 months - Custom Embeddings: We knew embeddings had broad applications—RAG, classification, extraction, search. Everything in ML was embeddings. We signed our first few $300 MRR (Thanks Yuma AI) — surpassing our total ARR with Gloo. We grew to over $5K MRR (Shout out Haven and Layup) and thought maybe we were done pivoting… Oh boy…
Walking away from $15k MRR
Despite growing revenue, we felt uneasy. We couldn't see a scalable technical solution for generating custom embeddings. Customers had poor data and couldn't define success (e.g., "What makes a search result good or bad?"). That sentiment was drawn to a hard decision when we ended up deciding to turn down a $15k MRR contract for semantic search because we didn't feel right (can you spot my lack of conviction?)
However, we found a silver lining in classification and extraction. Narrowing the LLM use-case seemed more tractable. A front-page Hacker News post brought in 500+ inbounds, and we signed a few more paying customers.
Yet, every SDK we built felt clunky. Existing libraries (Langchain, LlamaIndex, Marvin, Instructor) had the same problem. They worked for prototypes but lacked essentials like type safety or easy ways to control the entire prompt.
As an engineer, I couldn't help but feel that every snippet just felt ugly. It felt like the old days of writing HTML. Strings everywhere are horribly unmaintainable.
It felt like abstraction for the sake of abstraction. Importing things like "HumanMessage" and "SystemMessage". Code is supposed to be artistic. And for me, this wasn't a medium I enjoyed writing in.
BAML: Let's make a programming language? 🤔
I remember the Thursday night (Aug 10, 2023) very clearly. We were starting to burn out again. I dropped by Aaron's place at like 9 pm, and while sitting on the couch asked:
dude… this library we made fucking blows.
We laughed and joking spent the night sketching a new hypothetical syntax out. Who in their right mind would actually make a new language? By Sunday night, we wrote a compiler in C++ and by Monday we started migrating our customers over from the library.
This was slightly harder than we imagined. A month in, one customer asked us “Can we just stick to python?” That evening Aaron and I went on a three-hour walk arguing if we should pivot. We had theories about why a new language for LLMs made sense (after all, Prisma, Terraform and CUDA exist for a reason), but our customers weren't happy. In fact, I'm pretty sure the only thing they liked about our company was us.
Let's briefly review the minimum set of things you need to make a new language usable:
- A syntax you can understand
- A compiler
- A compiler with error messages that you can understand
- Syntax highlighting
- Jump-to-definition and on-hover effects
- Linter
- Supporting every LLM, today and forever
- Not break version to version
- Copilot and Cursor integration
Our syntax was barely understandable, and we lacked all of these features. I'm not sure why we didn't pivot that evening — signal was nonexistent, but the theory felt so solid. We gave ourselves until the end of the year. Three months of building later, we had built some more of those capabilities. We finally saw a shift in how our customers felt.
It's not not working (2024)
Early 2024, Aaron was very direct with me.
Regardless, we added ~10 more customers by March 2024 (shout out to GovEagle, Coldreach, and MagnaPlay). Then, we redesigned the syntax again — migrating existing customers and somehow maintaining all of them. We also hit 100 stars! (it took 7 months to get to 100... wtf did we not pivot?)
Learning: Basically, don't think too hard. Or you'll lose all motivation. Just keep building, learning, and gathering feedback.
We were starting to see an interesting pattern: once someone used BAML, they never used anything else; Instead they asked "can BAML do ____?" We added evals, support for every LLM, retries, fallbacks. The biggest breakthrough came when we made BAML work with every existing programming language with less than 1 minute of installation (Python, Typescript, Java, Go, Ruby, C++, Haskell, etc.).
One of the funniest quotes was David from VetRec, alluding to us having more users.
Thank god, that means you won't pivot. I don't want to fork and maintain BAML.
We finally started to get randoms in our discord.
One of my favorite moments at the YC Reunion in 2024:
Are you the BAML guy? I was just coding up BAML on my flight last night.
2024 Side Plot: building the team
While we had a bit of conviction in what we were building, we knew at some point we needed a team. Sam joined us in March 2024 and that was a whirlwind.
See his blog post on what changed his mind here.

Then we had Anish join as our intern for the summer. Does a startup really need interns? No. But in our scenario we had 3 reasons why it made sense:
- Anish is a f-ing
goodgreat engineer. - When designing a language, having the perspective of a junior engineer is invaluable. Senior engineers tend to make too many assumptions.
- We had way too much to build.
By the end of the summer, we also had Greg and Antonio join us (story for another day).
2025: No more pivots?
This was probably the first year I finally had more conviction than Gloo (our slack competitor).
I haven't yet had time to fully reflect on this year, but here are some highlights:
- Gave our first keynote talk at a conference Data day texas 2025 (have given many talks since, but this was special)
- Gave a talk at the YC AI Retreat

- Comments from random folks on HN and Reddit about BAML
- BAML is now #1 on Google Search (over Bank of America Merrill Lynch)

- Went from 1k stars -> 7k stars on GitHub
- Got the coolest haircut ever

- Ran ~400 people through 8 hour workshops on Saturdays

- Started a podcast with Dexter Horothy
- 100k+ views on our youtube channel for 1 hour long episodes

- Multiple fortune 500 companies, government agencies, and startups started using BAML
- Saw job posts/recruiter out bounds for BAML engineers

- Discord members: 700 -> 2,400
- Shipped a prompt optimizer
It may seem like I'm only sharing some highlights and everything was smooth sailing. It wasn't. My checkpoints in life are almost always the positive moments. To search for all the lows (and there are plenty), I need to sit and think about it for a long time. The year hasn't ended yet, there's still 2 days left before I can to reflect. Anything can happen.
What's next?
(oops I forgot to pay for posthog...)

We still have a long way to go with BAML. Building a programming language is likely one of the worst startup ideas, but in someways, that might be the reason why it might just work.
| Before | Now |
|---|---|
| HTML as string concatenation | React |
| Custom C code for every Operating System | Java |
| Managing memory manually in C | Python |
| Hole punching code | C |
Programming languages don't come out very often, but when a new computing paradigm emerges, it's a good idea to build the tools to make it easier (and more fun) to use. That's Boundary's goal.
- You shouldn't NEED to use python to use LLMs, that's why BAML was built to plug into every programming language.
- Debugging should be easy. That's why we have tooling like the Playground to see your prompts w/o running code.
- Streaming should be easy (and type-safe). That's why we have semantic streaming.
- You shouldn't need 10 lines of imports. Looking at you "HumanMessage" and "SystemMessage".
At least we're done pivoting (for now🤞). Next, onwards to 10,000 Weekly Active BAML devs!
We have some fun news coming up in January, stay tuned for more details (spoiler: turing completeness with some interesting tooling)
If you're curious about BAML, here's a youtube video what it feels like to code in BAML:
Docs: https://docs.boundaryml.com
Repo (if you wanna make your own language): https://www.github.com/boundaryml/baml














