Back when I was in high school and college, writing code was my favorite activity ever. I could spend hours on the laptop writing one program after another, exploring the limit of what can be expressed with glyphs and symbols. Every new algorithm, new library I learned about and use felt fresh. I kept getting newer ideas on what to build next.

Then I hit the wall after programming professionally for about 2 years. The task I had to work on felt rote, boring. The monotonicity of what I encounter are multi-faceted:

  • I kept building the same feature sets: it is either an ERP subsystem (which is in fact just bunch of CRUD forms & tables), a blog (can’t you just use Wordpress and be happy with it), an Ecommerce website.
  • I kept having to use the same boring tech: it’s either React or…, oh yeah I really have to write React for 4 years straight. The backend has more variety, but will unfailingly be either Node.js, Python or Java
  • The challenging stuffs are just annoying: for the last time, I frankly don’t see why we have to spend man-weeks to ensure the custom selectbox element works on iOS, while we can just really use (or fallback) to the default <select> element which is miles better in terms of accessibility. Consistent corporate branding I guess

At this rate, I would turn to hate programming after 3–4 more years on the job. People do get burnt out working in tech quite a lot. I don’t want that. I love working with computers 💭 💭 I always consider myself to be very lucky to find my calling in software engineering quite early . So I have to find something to spark back my joy of programming.

Podcast 🔗

I had never listened to podcast up until 2 months ago, even though I always have a headphone on when I commute around. Music is usually the only thing that I listen to, though it never came across my mind that podcast is a way for me to find new inspiration. Listening to interviews of senior software engineers gives me perspective and inspiration for the next pet project that I can do to further my skills, or just new general area of technology that I can be investigating.

Some podcasts that I have been listening to are:

  • StaffEng (concluded): This is a trove of 20+ hours of insight in cool big corp projects & ideas on how to prepare myself for the role of staff engineer. It’s not just about the technical skills alone; rather, the focus of the podcast is about how I can create value with my skill
  • SE Radio is also packed with stuffs about the newest tech in the space. The interviews are highly technical, but if you aren’t familiar yet with the subject of each episode, don’t worry, the host will try to make connections to other existing techs to ensure you understand.

Books and code-along 🔗

I love technical books that is intended for the reader to practice alongside it. This way, I can dive into topics that are novel for me and learn at my own pace. Usually, I will pick a book about a subject that I know very little about, and then try to build the project in the book — but with a little bit of twist and modification of my own. For example, if the book is teaching me to build something in Java, I’ll try to follow with the general idea, but using C# or Python instead. Some of the notable things I have done with this approach would be:

  • Following with the Raytracing Books but instead of writing in C++, I try to do it in Rust
  • Develop a new scripting language with the Writing an Interpreter/ Compiler in Go 1 1 Those books also help me understand Test Driven Development much much better.  series, but add in some more features that I would like to see: pattern matching, other syntactic sugar, etc.