Today i had breakfast with quite prominent CTO, yet he super humble. here are the list of top lesson learned from him.
1. Critical Thinking is key difference between good and best developer
Become software engineer meaning problem-solver at heart. Always asking questions and find root of cause / culprit. Thinking about edge case could happen during development. Critical thinking meaning finding the solution on given problem.
2. Pick right database and framework
When the business growth, database migration will eventually hit our legacy system in-order to scale-up the business. No silver bullet and each database stack have different pros and cons. Choose wisely at begining
3. Analytics on separate system
Monitoring business metrics is important. Make sure to separate between operational and analytics purpose.
4. Manage vs Delegate
If talent in startups mostly juniors with lack of senior, CTO must get involve to help junior gain experience and drive the details. Delegate will only works if team have good senior teams which probably quite rare in South East Asia early stage startups
5. Weekly One on One
The main purpose here to understand the problems faced by engineering team and help them to find the solution. Again, the main purpose here is to help them to find solution and not to give solution. This is why super important to have coach skillset among CTO down to managerial level
6. Indicator to let go developer
Not only for the under performer, this may also applied to someone who have over achieve performance and probably stuck with company growth. Make sure to always spend more time with engineer to find the indicator