How to be an
Effective Engineer
Aditya Satrya
Data Engineering Tech Lead at Mekari
linkedin.com/in/asatrya
#isiTalk #EngineeringCultureSeries | Oct 2020
Slide 2
Slide 2 text
2
Why?
Slide 3
Slide 3 text
Increase your impact?
Staff engineer → making a whole team better
Principal engineer → making the whole company better
Distinguished engineer → improving the industry
3
Slide 4
Slide 4 text
Get promoted quickly?
More quality time?
4
Slide 5
Slide 5 text
Outline
#1 Mindset
Prioritize regularly & focus on high-leverage activities
Optimize for learning
#2 Execution
Measure what you want to improve
Solve problem in structured manner
Approach problems iteratively
Invest in Iteration Speed
#3 Long-Term Value
Balance quality with pragmatism
Invest in your team’s growth
5
Slide 6
Slide 6 text
My Favourite Books (top 3, in this topic)
6
Slide 7
Slide 7 text
7
#1
Mindset
Slide 8
Slide 8 text
#1.1
Prioritize Regularly &
Focus on High-Leverage Activities
8
Slide 9
Slide 9 text
Opportunity cost of working on wrong
ideas can set back growth by years.
9
Slide 10
Slide 10 text
Focus your effort on leverage points
10
Slide 11
Slide 11 text
Ask yourself regularly:
“Is this the most important thing I
should be working on?”
11
Debugging is hard. It's time-consuming.
Upfront investments to shorten debugging
loops are worth it.
44
Slide 45
Slide 45 text
Examples:
● High test coverage
● Fast and incremental compiles and reloads
● Logging
● Clean code, refactoring
● Coding standard & naming convention
● Dockerization
45
Anticipate the misalignment of
priorities
● Shared OKR
● Regularly asking for updates
47
Slide 48
Slide 48 text
Projects fail because of
under-communicating
Not over-communicating
48
Slide 49
Slide 49 text
Non-engineering bottlenecks:
Approval/feedback from
decision-maker
49
Slide 50
Slide 50 text
Don't defer approvals until the end.
Don't delay feedback.
50
Slide 51
Slide 51 text
51
#3
Long-Term Value
Slide 52
Slide 52 text
#3.1
Balance Quality with Pragmatism
52
Slide 53
Slide 53 text
Balancing benefits vs trade-offs
Instead of right and wrong, look at things in terms of
works and doesn’t work to achieve our goals.
53
Slide 54
Slide 54 text
Establish a culture of reviewing code
Catch bugs and design problems early, sharing working
knowledge of the codebase.
54
Slide 55
Slide 55 text
Manage your technical debt
Accumulating technical debt is fine as far as it is repaid
within time. Focus on the debt that incurs the most
interest.
55
Slide 56
Slide 56 text
#3.2
Invest in your team’s growth
56
Slide 57
Slide 57 text
Help everyone around you succeed.
The higher you climb up the engineering ladder, the
more your effectiveness will be measured not by your
individual contributions but by your impact on the
people around you.
57
Slide 58
Slide 58 text
Avoid heroism.
Shared ownership of code. Share knowledge.
58
Slide 59
Slide 59 text
Invest in mentoring
59
Slide 60
Slide 60 text
Create a great engineering culture
Optimize for iteration speed.
Push relentlessly towards automation.
Build the right software abstractions.
Focus on high code quality by using code reviews.
Maintain a respectful work environment.
Build shared ownership of code.
Invest in automated testing.
Allot experimentation time, either through 20% time or hackathons.
Foster a culture of learning and continuous improvement.
Hire the best.
60