Approaching programming with joy and excitement is essential. Joy amplifies good work and makes you a better collaborator.
A comprehensive guide to my working style, values, and the environmental factors that enable me to be an engaged, high-performing team member.
Debugging lessons: understand user problems before hunting for errors, avoid overgeneralisation, develop working theories before gathering evidence.
A framework for navigating between business context, system architecture, and implementation details. Important to strategic thinking in software engineering.
Why software engineering is difficult: switching perspectives and choosing the right abstractions.
A work philosophy exploring balance between achieving outcomes and developing skills.
Lessons learned about thoughtful error handling in asynchronous JavaScript and how to manage execution flow when things go wrong.
A reflection on using AI coding tools, balancing their benefits against potential impacts on learning and growth.
Why focusing on making progress rather than solving problems outright can lead to better outcomes in software development