Engineering Culture
Technical Practices
CI/CD, automated testing, and technical debt management
CI/CD — Continuous Integration and Delivery
- Automatically trigger builds and tests after code commits
- Keep the main branch always deployable
- Automate the deployment pipeline to reduce manual operations
- The more frequently you deploy, the smaller the risk per deployment
Automated Testing
- Build a culture of automated testing, not just reliance on manual testing
- Testing is part of development, not extra work done after development is complete
- Write tests for new features, add tests when fixing bugs
- Test coverage is a reference metric, not a goal — having tests for critical logic matters more than chasing numbers
Technical Debt Management
- Technical debt is normal, but it needs to be managed consciously
- Regularly assess the impact and priority of technical debt
- Allocate a percentage of each Sprint to address technical debt
- Document technical debt: What it is, why it was created, what's the impact, what's the fix
- Don't let it accumulate until it becomes unmanageable
Engineering Efficiency
- Focus on Developer Experience (DX) — good tools and processes make people more efficient
- Automate repetitive work: formatting, linting, deployment, monitoring
- Development environments should be easy to set up — new members should be able to get started quickly
- Regularly optimize build times, test times, and other development feedback loops