[High-Performance Team] Culture, Technical Practices, and Reflections (Part 3/3)
[High-Performance Team] Culture, Technical Practices, and Reflections (Part 3/3)
In Part 1/3 I covered the diagnosis and the 5-pillar framework. In Part 2/3, team design and stack consolidation. Now comes the section that makes everything else work in practice: the culture and technical practices.
You can have the perfect framework and the ideal team, but without a defined and practical culture, it falls apart within weeks. Culture isnât declared â itâs designed.
Culture Principles
Async First
Async work by default, meetings only when strictly necessary. Written documentation replaces most syncs.
This isnât just a preference â itâs a design decision. With a distributed team and a 6+ hour sync window, meetings become the most expensive bottleneck that exists. Every hour of meeting with 5 people is 5 engineer-hours. A well-written document costs 1 hour and scales infinitely.
Radical Candor
Transparency and direct communication. Honest feedback, no politics or hidden agendas.
In practice: if something doesnât work, itâs said. If someone isnât performing, itâs addressed directly. If a technical decision was wrong, itâs acknowledged and corrected. No beating around the bush, no CYA emails, no âletâs discuss offlineâ that never gets discussed.
Real Autonomy
Every developer is a complete engineer: development, infrastructure, databases. With the permissions and access needed to execute without depending on other teams for every operation.
This point is critical and where most organizations fail. They ask for ownership but donât grant access. They demand speed but require 3 approvals for a deploy. If you want autonomy, you have to give the permissions that enable it.
Clear OKRs and KPIs
Objectives defined at the engineering level and per team. Every person knows exactly whatâs expected and how itâs measured. No ambiguity.
Attitude
Collaboration, business focus, entrepreneurial mindset, doers, self-management. This isnât an aspirational list â itâs the standard that defines how the team operates.
Continuous Growth
Keep learning and improving incrementally. Avoid âweâve always done it this wayâ as justification for not changing.
Technical Practices
| Practice | Standard |
|---|---|
| Git | Trunk-Based Development |
| Code Review | Standardized evaluation process |
| Coverage | >80% per project |
| Documentation | Mandatory for every new feature and architecture |
| Permissions | Full access to workflow tools for all devs |
| Languages | Golang / Python primarily |
| Architecture | Monolith First, simple and scalable designs |
| Monitoring | Dashboards and alerts per team, direct ownership |
| Environments | Staging â Production, both functional |
| Quality | Each dev/team owns quality of their deliverables |
| CD | GitHub Actions |
| CI | Code quality tools + integration and unit tests |
| On-call | 24/7, documented |
| External services | Require validation document and formal presentation |
| Methodology | Scrum (15-day sprints), standardized estimation |
| Meetings | Monthly business review + All-hands monthly |
Every practice is there for a reason. Itâs not an aspirational checklist â itâs the minimum standard. If a project doesnât have >80% coverage, itâs not ready. If a feature doesnât have documentation, itâs not done.
The Monolith First Principle
I want to pause on this point because itâs counter-intuitive for many.
In a company with 160 microservices where only 66 were actively used, the answer wasnât more microservices â it was consolidation. Simple, scalable designs, validated jointly by the team before implementation.
Itâs not that microservices are bad. Theyâre a tool, not a religion. And when you have a compact team, you canât maintain 160 independent services. The math doesnât work.
Monolith First means: start simple, separate when you have evidence that you need to separate. Not the other way around. Distributed complexity has a cost that most teams underestimate until itâs too late.
Problems the Framework Needed to Solve
Part of the analysis included documenting existing problems:
- Lack of documentation â Entire projects without technical documentation, architecture decisions unrecorded, tribal processes living in one personâs head.
- Lack of alignment â Every team worked differently: different tools, different processes, different definitions of âdone.â
These two problems were the root of many others. Without documentation, knowledge is lost with every person who leaves. Without alignment, scaling processes is impossible.
Final Reflections
This framework isnât perfect or universal. It was born from a specific context â a LatAm FinTech where the engineering team was working in isolation from the business, with no product focus or impact metrics. There was no cohesive team as such â just groups of people working in parallel without alignment. The challenge wasnât just optimizing, but building a real team for the first time.
The underlying principles are adaptable:
- Measure before you cut â Map your entire scope before making team decisions.
- Less is more â A small, senior team outperforms a large, junior one.
- Autonomy requires real permissions â You canât ask for ownership without granting access.
- Consolidate before you build â If you have 160 services and use 66, your first project is consolidation, not creating service 161.
- Design culture, donât declare it â A values document on the wall doesnât change behaviors. Concrete, measurable practices do.
Iâm sharing this because I believe this kind of knowledge shouldnât stay locked in a spreadsheet that nobody will ever open again. If youâre in a similar position â leading engineering at a startup that needs to do more with less â I hope some of this is useful.
Comments