Author: Edvaldo Freitas
-

How to manage technical debt in a fast growing environment
When you are scaling fast, the pressure to ship new features is constant. At first, it feels like everything is moving at an incredible pace. Then, almost without you noticing, things start to slow down. A change that should take a day now takes a week, hard to reproduce bugs start to become routine. This…
-

Balancing delivery speed and code quality in scaling startups
In a fast-growing startup, the default mode is to ship as fast as possible. A new feature needs to go out for a critical demo, a bug fix is blocking a major customer, or you’re just trying to find product-market fit before the runway gets short. This constant pressure creates a natural tension with maintaining…
-

Monorepo vs. multiple repositories: what’s the best strategy for a growing codebase?
The repository structure that works for a two-person startup almost never works for a fifty-person engineering team. What starts as a simple, clean codebase eventually develops friction points as more people and services are added. The conversation about whether to use a single Monorepo or split work across multiple repositories usually starts here, when dependency…
-

Technical debt vs. new features: how to set priorities
Every planning meeting seems to end up in the same place. Engineering brings up a legacy service that’s getting slower and harder to deploy, while product has a new feature backed by customer requests and a clear business case. This is the constant tension of software development, where the roadmap is a battleground between fixing…
-

How to scale code review in a growing team
A pull request opens, and the review requests go out to the same two or three senior engineers. A day passes. Then another. Eventually, feedback trickles in, but in the meantime, other PRs have stacked up behind it, all waiting on the same people. This is the first sign that your team’s **code review** process…
-

Avoiding knowledge silos in growing engineering teams
When an engineering team grows from five to fifteen, the informal communication channels that once worked perfectly start to break down. A pull request that used to get three insightful comments now gets a quick approval from someone who lacks deep context. Questions that were once answered by anyone on the team now get routed…
-

When to break up a monolith: a guide to adopting microservices
The conversation about moving from a monolith to microservices usually starts when things get painful. Builds take forever, a small change requires a full redeployment, and multiple teams are constantly blocked by each other in a single codebase. You can’t scale the user profiles service without also scaling the rarely-used reporting module it’s tied to.…
-
1.0.88 – Context of MCPs in Rules and Prompts plus OAuth Connection, PR preview, and improvements to license control.
News & Improvements Enable the use of MCP in custom rules and prompts You can now use MCPs directly inside Rules and Custom Prompts. This means that when writing rules or adjusting analysis prompts, you can call any connected MCP to bring more context or execute actions during the review. Just use the @MCP command…
-

Cursor vs Windsurf: which AI IDE actually improves your team’s productivity?
The adoption of AI-powered IDEs has accelerated fast. The problem now is not a lack of options, but understanding what actually improves the workflow and what only adds noise. Cursor and Windsurf are currently two of the most complete tools, each with a very different approach to how AI should operate inside the IDE. In…