AI, Reading & Precise Language

~ Mar 17, 2023

AI is the new hotness. In an age of working with machines, using precise language will be more valuable than ever.

As advanced as our civilization gets, reading books and writing often remain the highest leverage activities available.


The Different Days of Software Engineers

~ Mar 07, 2023

Some days are obscenely productive. Quality code and ideas are oozing out of our fingertips, and there’s a never-ending stream of inspiration, creativity, and problem solving energy.

And then there are days when everything feels stuck. It’s hard to push work out. It feels like there are black boxes everywhere. Even the cursor on the screen seems slow.

It’s hard for me to accept “stuck days.” But somewhere in the mess and brain fog, I know there is learning. Just beyond the stuck-ness is flow.


Stepping Down the Stack

~ Feb 24, 2023

In college, my degree was technical – Computer Info Systems. But what I learned was far more pragmatic, swaying more towards business applications of technology rather than strict computer science. Yes, there was a course on Assembly, and I learned to wield SQL, Python, and Java with basic proficiency, but I never touched a low level language for any length of time.

As my technical curiosity grows and I continue to lift the hood, I have a conflicting desire to deepen my skills where they are (dynamically typed, interpreted, practical languages) and the simultaneous desire to step further down the stack. I’m comfortable in Ruby and JavaScript, but I have lots of nuance to learn in both.

Still, shiny new languages beckon. Can I learn something from another language that would help me think more creatively with my daily drivers?

Maybe I’ll learn a new paradigm of thinking via a dynamically typed but functional language like Elixir. Perhaps I’ll mess around with microservices with Go. Or will I take the deep dive and jump right into Rust?

As usual, I’ll let my curiosity guide me there.


Unplugged?

~ Feb 16, 2023

I write these words from Taiwan, on a vacation filled with family, food, and relaxation. As much as I’m enjoying this break, I still feel compelled to think, brainstorm, and build.

While I’ve temporarily abandoned my routine, my mind hasn’t stopped churning. A “break” like this has created a powerful realization:

I want to carry my craft with me, and I absolutely love what I do.


Boring as a Feature

~ Feb 05, 2023

When I decide on a tool to accomplish a task, I typically have a list of features in mind. There are certain attributes that can solve my problem effectively, and if necessary, make it easy for me to scale with its growth.

I’ve added a universal feature to the list: Boringness.

I often find myself entranced with shiny new solutions that solve legitimate problems. But as I’ve explored products, tools, frameworks, and libraries, I’ve (sometimes) been able to recognize when I experience recency bias. There’s a whole lot of hoo-hah around things that are new.

Now, the more boring a given tool is, the more confident I am that it solves a problem in a way that I probably won’t even realize its there.

A boring solution is stable enough to be invisible.

My bias towards boringness has led to some pretty big shifts in my opinions.

  • Switching from innovative hardware on Android to boring, basic, “just works” iPhone.
  • Favoring an old-school OOP language like Ruby as my daily driver, and sticking with good ol’ Rails as a web framework.
  • Investing money in the market through ETFs, rather than hop on the latest stock/crypto trend.

As always, there is a trade-off. It doesn’t pay to be boring all the time, in every situation. But when I’m looking at a new tool or concept to adopt, I’ll pause and ask myself: Is this boring enough to make me wildly productive?