If you've got the idea, you build and ship it yourself. It's fast, empowering and it keeps engineers focused on building a reliable, scalable, secure set of APIs. It also forces us to write better, cleaner APIs and the APIs stay stateless and focused. Debugging can be hard and sometimes duct-tape logic quietly piles up.
I think it's better than the usual model where eng is the bottleneck for every new flow. Has anyone else tried this kind of setup? Where does it fall down or is it the new normal?
My initial concerns would be:
- Maintainability: the "duct-tape logic", as you put it, sounds like spaghetti code from hell. Making sense of a feature comprised of tons of chained third party calls will be a nightmare.
- Expressiveness: complex functionality may require complex code. I don't quite understand how you would write even medium complexity algorithms using this system.
- Reliability and performance: you are now entirely at the mercy of third party providers. This is often the case with SaaS products, but this seems like a particularly severe case. Each hop reduces performance as well, which may impact user experience (assuming we're talking about user-facing features).
- Quality: by moving business logic out of code, you're throwing out testability, so no more unit tests. I guess integration tests could still happen, but they're going to be slow, expensive, and involve someone writing the actual code - which, given the premise of product managers creating features, seems very unlikely.
Engineering should be doing the engineering.
Product should be doing product.
DevOps should be providing infra.
If end users want to use a report generator or setup a notification rule that's one thing but duct taping features together never is sustainable.
So if I re-worded the OP's description and replaced 'internal tools' with 'internal AIs' then this would at least seem like a more reasonable process to me...
> At our startup, engineers don't build features anymore. > They build APIs that internal AIs can connect to. > Most "features" like running an SQL query, sending a push notification when product X is ordered gets built by ops or product folks using those tools.
To me this describes a team of engineers that use AI-capable tools and that are building 'features' for themselves. In the way that us dinosaurs used to write build scripts.
I'm not saying that my mental model is right or wrong, just that working this way seems reasonable if you buy into my model.
If anything engineers are doing more with AI and aren't limited to just APIs.
They are building more of the UI/UX, Design, Front/Back + API instead of less and meeting/building product's vision.
Supported by Devops.
Every layer of the process will be enhanced by AI so everyone is doing more that our previous process.
I wouldn't limit any layer, enable everyone and every team to do more and be more productive.
I'm intrigued by this API-first approach, and it's left me with a few questions from my perspective as an engineer who builds product features:
How do you handle features with complex UI/UX? While a push notification is a perfect fit, how would a non-eng person build, say, a new analytics dashboard with interactive charts or a multi-step modal view? Is there a clear line where a feature's complexity means it has to go back to the engineering team?
Who owns the holistic user experience? With different people building features decentrally, how do you ensure the product feels cohesive and not just a collection of disconnected Zapier flows? I imagine maintaining a consistent design system and user journey could be a challenge.
You mentioned the "duct-tape logic" problem. This is the part that resonates—and worries—me most. Do you have a formal process for refactoring or "graduating" a successful duct-tape solution into a core, robust, engineer-built API? How do you manage that accumulating technical debt?
As an engineer, the idea of focusing solely on clean, scalable APIs is incredibly appealing. At the same time, there's a certain joy in crafting and shipping a polished feature directly to users. It's a really interesting trade-off you've presented.
Thanks again for the thought-provoking post.
Prototypes are built to learn. They're not optimized nor efficient. They don't scale. They discover what needs to be built and are then thrown away. They should not be sold into production. Learning also includes getting user feedback, or finding out whether all the systems play together well.
Once the prototype is valid, pass it to an engineer to build it in properly and efficiently.
Another variation might be turning the engineers into ops. I did that early on at a startup. We built the whole delivery management system in 3 days - who ordered what, the state of it being delivered (packed/in delivery), informing buyers of product tracking number, asking them whether it was received in good condition, flagging things that have exceeded delivery time, etc. This was before AI and I built it so damn fast because it's a pain to handle this process on spreadsheet. The downside was that orders in those 3 days were delayed by 3 days.
But the big downside to engineers doing these is that you have to pay them engineer salaries. If it leads to a world where marketers can be given engineer salaries and engineers can be given marketing jobs, maybe we're in a better place?
Yes.
We don’t even have the budget to hire non-technical people for tech products. Everybody gotta code. We also avoid feature bloat.
We focus only on core features. If someone has an idea and can build it, they’re welcome to try. But most ideas won’t make it to production.
- Focus matters. Engineers need deep focus to build and scale. At the same time, finance/accounting and sales require their own level of expertise and dedicated attention. You can’t just “dabble” in those areas and expect excellence — especially when it comes to things like serious fundraising, investor relations, closing multi-million dollars contracts, financial compliance, etc.
- Scaling with only engineers creates organizational fragility. As headcount grows, managing a company full of only one type of thinker becomes a liability. It lacks diversity of thought, skills, and experience. Think of it like trying to build a tower using only one material — it may stand for a while, but it won’t last.
- Burnout and inefficiency. Expecting engineers to wear too many hats leads to mental overload and a lack of accountability. Critical tasks fall through the cracks, and product quality can suffer.
- We’ve made that mistake. Over a decade ago, we had a habit of sharing everything with everyone in the company. But too much information flow killed focus. We eventually realized it’s the founder’s job to shield the team and protect the company from unnecessary distractions — including over-informing investors or team members on things outside their scope.
- Top non-engineers can be game-changing. A brilliant finance or sales person can be just as valuable — sometimes more valuable — than an engineer. Especially in areas like revenue growth, closing deals, or keeping the company alive through smart financial planning.
- Note that excellent engineers don't want to do finance, sales, etc. and vice versa.
Bottom line: engineers are core for tech company, but they’re not everything. Great companies are built by teams.
Don’t try to reinvent the wheel — unless your company exists to build a better wheel.
it’s a neat hack but definitely not the new normal for anything beyond MVPs or tiny startups.