DEV Community

Cover image for Architecture Over Algorithms: Scaling an Engineering Team from 0 to 21
Amit chakraborty
Amit chakraborty

Posted on Originally published at amitchakraborty.dev

Architecture Over Algorithms: Scaling an Engineering Team from 0 to 21

When I joined Synapsis Medical Technologies as the founding engineer, the roadmap was daunting: we needed to build a HealthTech AI platform that integrated wearable data, handled FHIR/HL7 standards, and maintained a HIPAA-aligned RAG pipeline with 99.9% uptime. To execute this, I had to scale the engineering team from 0 to 21 engineers in just 13 months.

The standard industry approach to hiring—grinding candidates through LeetCode puzzles and red-black tree inversions—was never an option. We weren't building a search engine; we were building a complex, regulated ecosystem across React Native, Next.js, and NestJS. I needed architects who understood state synchronization and data integrity, not just competitive programmers. Over 8 years of professional engineering and 18 production applications, I have found that the ability to solve an algorithm puzzle rarely correlates with the ability to ship a resilient production system.

The Problem: The High Cost of the Wrong Signal

In the early days of a startup, a single hiring mistake is a catastrophic drag. If you hire an engineer based on their ability to optimize a sorting algorithm, you might end up with someone who builds a "perfect" technical solution that fails to account for the constraints of a HIPAA-compliant environment or the latency requirements of a clinical AI.

At Synapsis, our stack was multifaceted. We were managing five production systems simultaneously. Our CI/CD overhaul, which eventually cut release cycles from 2 days down to 4 hours, required engineers who understood the "plumbing" of a system—how code moves from a local environment to a regulated cloud. An algorithm-heavy interview loop ignores these competencies. It fails to test for:

  1. Systemic Thinking: How does a change in the NestJS backend affect the React Native mobile client’s offline storage?
  2. Regulatory Awareness: How do we handle PII (Personally Identifiable Information) within a RAG pipeline without sacrificing performance?
  3. Maintainability: Can this engineer write code that the next 20 hires can understand and extend?

Context: The Shift Toward Practical Assessment

The broader industry is currently navigating a shift in how technical talent is evaluated. With the release of React Native 0.76 and its move toward the New Architecture (New Arch) by default, the barrier for entry has moved from "can you write a UI?" to "do you understand the bridge and the JSI?" Similarly, the rise of LLM-integrated applications has changed the definition of a "Full-Stack" engineer.

In the current climate, where AI can solve most algorithmic puzzles in seconds, the value of an engineer lies in their architectural judgment. The community is increasingly debating the utility of "whiteboard coding" when tools like GitHub Copilot have made syntax trivial. My goal was to design a loop that bypassed what a machine can do and focused on what only a senior architect can do: manage complexity and trade-offs.

The Technical Explanation: Designing for "System Fluency"

To scale to 21 engineers, I designed a hiring loop centered on what I call "System Fluency." This replaced the traditional 45-minute coding challenge with a three-stage architectural evaluation.

Stage 1: The Practical Debugging Exercise

Instead of a blank canvas, we gave candidates a broken version of a simplified NestJS/Next.js environment. The bugs were not syntax errors; they were architectural flaws—a race condition in a database transaction or a memory leak in a React hook. This tested their ability to navigate an existing codebase, which is 90% of the job.

Stage 2: The Distributed Systems Deep-Dive

For senior roles, we focused on the RAG and LLM pipelines. I looked for engineers who could explain how to maintain 99.9% uptime for a clinical AI. We would discuss the trade-offs between vector database providers, the nuances of chunking strategies for medical documents, and how to implement FHIR/HL7 integrations without creating a bottleneck.

Stage 3: The "Day Two" Discussion

We asked candidates to evolve a system. "We've built the MVP; now we need to integrate wearable data from 10,000 concurrent users. Where does the architecture break?" This revealed whether they understood the lifecycle of a production application or if they were only focused on the "0 to 1" phase.

Architecture and Trade-offs

When I owned the React Native, Next.js, and NestJS architecture at Synapsis, every decision was a trade-off. Choosing NestJS for the backend provided a structured, Angular-inspired framework that made it easier to onboard new engineers as we scaled. However, it added a layer of abstraction that required a specific mental model.

Our hiring loop had to reflect these specific architectural choices. If a candidate was a "purist" who hated opinionated frameworks, they would struggle in our NestJS environment. If they didn't understand why we used Next.js for our web presence while maintaining a separate React Native codebase for mobile, they wouldn't be able to contribute to our cross-platform strategy.

The trade-off in our hiring process was speed. It takes longer to evaluate a candidate's architectural thinking than it does to grade a coding test. However, the "cost per hire" was significantly lower in the long run because our retention was high and our technical debt remained manageable even as we tripled the team size.

A Worked Example: The Wearables Integration

To illustrate how this hiring philosophy translated to production, consider our wearables integration. We needed to ingest high-frequency data from devices and feed it into our AI pipelines while remaining HIPAA-compliant.

In an interview, I wouldn't ask a candidate to write a function that filters an array of heart rate data. Instead, I would ask: "How do you design a system that ingests heart rate data from an Apple Watch, stores it in a HIPAA-compliant manner, and triggers an LLM-based clinical alert if a threshold is met?"

A successful candidate would discuss:

  • Ingestion: Using a message queue (like RabbitMQ or BullMQ) to decouple the ingestion from the processing.
  • Security: Encrypting data at rest and in transit, ensuring the LLM provider is covered by a Business Associate Agreement (BAA).
  • Concurrency: Handling the surge of data when thousands of devices sync simultaneously.

This is the exact work we did to maintain our 99.9% uptime. By hiring for these specific scenarios, we ensured that every new engineer was ready to contribute to our five production systems on day one.

What it Cost to Learn

Scaling a team this quickly taught me that the "Founding Engineer" role is as much about culture as it is about code. I learned that you cannot outsource the "vibe check" of technical excellence. In the first few months, I personally interviewed every candidate.

I also learned that transparency in the CI/CD process is a massive recruiting tool. When I told candidates we had cut our release cycles from 2 days to 4 hours, the best engineers wanted to know how. They were attracted to a culture that valued developer velocity and automated testing. The "cost" of building this culture was an immense upfront investment in infrastructure—specifically, building out the automated pipelines for our React Native and NestJS services—but it was the only way to support a 21-person team without descending into "merge-conflict hell."

Practical Recommendations

For engineering leaders looking to scale a team without relying on algorithm puzzles, I recommend the following:

  • Audit Your Stack for "Friction Points": Identify the most complex parts of your architecture (for us, it was the FHIR integrations and RAG pipelines). Build your interview questions specifically around these points.
  • Prioritize System Design Over Syntax: If an engineer can explain the difference between a relational database and a vector store in the context of your product, they can learn your specific ORM in a week.
  • Test for "Production Empathy": Ask candidates about the worst bug they ever shipped to production. Their answer will tell you more about their sense of responsibility and debugging methodology than any whiteboard exercise.
  • Invest in CI/CD Early: You cannot scale a team to 20+ people if your release cycle is measured in days. Automation is the prerequisite for team growth.

Conclusion

Building the engineering foundation at Synapsis Medical Technologies required more than just technical skill; it required a hiring strategy that prioritized architectural vision over rote memorization. By focusing on how engineers interact with complex systems—from HIPAA-aligned AI pipelines to cross-platform mobile architectures—we were able to grow from a solo founder's vision to a robust team of 21 in just over a year. The 18 production applications I have shipped over the last 8 years have taught me one thing: the architecture you build is only as good as the team you hire to maintain it. Focus on the system, and the code will follow.


Amit Chakraborty is a founding engineer and senior architect — React Native, AI/RAG systems and production architecture. Portfolio: www.amitchakraborty.dev · LinkedIn · GitHub. Open to senior and founding engineering roles, remote worldwide.

Top comments (0)