2024 Link to heading
As I approach my 20th year as a professional software engineer—and my 35th year of programming—I’ve been looking back on everything I’ve learned along the way. It’s a natural moment to pause, reflect on my journey, and think about where I’m headed in the coming year.
I started programming with GWBasic on a Tandy 1000. Throughout the years I have learned many programming languages many of which I don’t even remember anymore. Basic, PHP, Python, Perl, Assembly, Java, C++, Visual Basic, JavaScript, Lua C#, and Go.
This year I picked up Go, and have been using it for all of my personal projects. I really like Go and I plan to continue having it be the main language I use. I love Go because it’s both straightforward and powerful. I rewrote an old API and improved its performance over the previous Typescript implementation by over 80%. Moving into 2025 I plan to start learning Rust.
The chart above is interactive, and as of my writing this my number 1 language is currently Go making up 51.36% of my GitHub. Rust currently comes in at number 9 with 0.25%.
I finally read the Pragmatic Programmer this last year and really love their knowledge portfolio concept. I realize that I have been doing many of the things they suggest already. I try to learn a new language every year or two even if I never plan to use them. I also have been trying to read one technical book a month starting last year.
2024 Reading List Link to heading
- The Pragmatic Programmer: From Journeyman to Master
 - Clean Code: A Handbook of Agile Software Craftsmanship
 - The Clean Coder: A Code of Conduct for Professional Programmers
 - Clean Architecture: A Craftsman’s Guide to Software Structure and Design
 - Working Effectively with Legacy Code
 - Refactoring: Improving the Design of Existing Code
 - Code Complete: A Practical Handbook of Software Construction
 - Design Patterns: Elements of Reusable Object-Oriented Software
 - Software Architecture: The Hard Parts
 - Learning Domain-Driven Design
 - Domain-Driven Design: Tackling Complexity in the Heart of Software
 
2025 Link to heading
Goals Link to heading
Coming into the new year I have a new list of goals.
- Learn Rust
 - Read 1 book on system architecture per month
 - Get my AWS Solutions Architect Associate Certification
 - Looking into getting my CSSLP
 - Switching from VSCode to NeoVim. You can check out my config here
 
Learning Schedule Link to heading
I try to dedicate 90 minutes every single day to continuing education. I used to be a huge fan of the Pomodoro technique. However, as time has moved on I often find 25 minute increments to short to get anything meaningful done in. I adjusted my Pomodoro time to run in 90 minute blocks with 30 minute breaks. During those 90 minutes I will work in 30 minute segments. Usually I will dedicate 1 hour to coding, and 30 minutes to courses such as the AWS Course material. Reading I do in the evening depending on the book. I try to divide each book up into 30 section and then read one section each evening while I am relaxing before bed.
2025 Book List Link to heading
- January: Fundamentals of Software Architect by Mark Richards and Neal Ford
 - February: Clean Architecture by Robert C. Martin
 - March: Software Architecture Patterns by Mark Richards
 - April: Learning Domain-Driven Design by Vlad Khononov
 - May: The Software Architecture Elevator by Gregor Hohpe
 - June: Learning Systems Thinking by Diana Montalion
 - July: Software Architecture: The Hard Parts by Neal Ford, March Richards, Pramod Sadalge, Zhamak Dehghani
 - August: Foundations of Scalable Systems: Designing Distributed Architectures by Ian Gorton
 - September: Flow Architecture: The Future of Streaming and Event-Driven Integration by James Urquhart
 - October: Communication Patterns: A Guide for Developers and Architects by Jacqui Read
 - November: Technology Strategy Patterns: Architecture as Strategy by Eben Hewitt
 - December: Designing Data-Intensive Applications: The Big Ideas Behind Reliable Scalable, and Maintainable Systems by Martin Kleppmann
 
Looking to the future I am excited about the new things I will learn, and excited to use these new things in projects. I encourage anyone who reads this to follow the suggestions in the Pragmatic Programmer and create your own knowledge portfolio. If you are new to software engineering, or even in a different profession completely I highly recommend the Pragmatic Programmer as THE book to read if you only read one. It will introduce you to a variety of concepts and new way to think about software.