Posts

From Passenger to Pilot: How I Reclaimed My Engineering Agency in the Age of AI

We’ve all seen the posts: "AI is replacing the need for deep engineering," or "I feel like I’m not solving problems anymore." For a while, I felt the same way. I was stuck in a loop of generating code, debugging hallucinations, and feeling increasingly disconnected from the craft I love. The problem wasn't the tool: it was my seat in the cockpit. I had moved from the pilot’s seat to the passenger’s side. To fix this, I redesigned my workflow to ensure that I remain the architect, while the AI stays the assistant. I’ve broken my process into three distinct phases: Assessment, Planning, and Execution. Here is how it works. Phase 1: Guided Assessment The goal here isn't to have the AI "do the work," but to have it index the world for you. When facing a massive, unfamiliar codebase, I use agents as advanced scouts. The Workflow: I leverage bots to parse large repositories and highlight specific modules or logic paths related to my goal. The Human Ed...

Python Turtle Graphics

A couple weeks ago, I was telling some people about the Logo programming language from Seymour Papert, how much of an impact it had on my formative years as a great educational tool: not just for programming, but also for math, geometry and simply "logic" in general. I kept that conversation in my mind for a while and then I started to wonder how cool it would be to write a simple set of Logo commands to be used from a Python prompt. Nothing fancy, just a small module that would allow one to do something like this: from pylogo import * And then proceed to combining regular Python commands with calls to forward(), right() and other common Logo commands right away. For the sake of simplicity, the module would take care of managing a simple tkinter-powered window with the Logo graphics in it. I eventually saved some time to proceed implementing that idea. And I think it was around the first 5 minutes of writing the very few first blocks of my boilerplate code, I ra...

Simplifying Web Development: Rediscovering Ease with HTMX

Have you ever wondered how developing a new web application became so complex? You're definitely not alone. What used to be a straightforward task now requires multiple React components, written in TypeScript, a language that demands a build system to convert it into something usable by browsers. Gone are the days of simply writing HTML files that could be opened directly in a browser. It makes me wonder: where did the productivity from the days of PHP go? When did web development become so convoluted, and what are we gaining from it? Users certainly aren't benefiting from the increased load times imposed by the many layers of JavaScript they're being forced to download (typical web pages are just around a few KB of size, while the core React lib alone is already over 100KB), just to also make their back buttons behave unpredictably (the most common issue with most SPA flows). Nor are developers, who now must wade through lengthy lists of components just to tr...

Can You Afford A Hipster Tech Culture?

As an entrepreneur, whether you're steering a startup or managing an established business, you’re undoubtedly focused on delivering exceptional products or services while optimizing your limited resources. Technology plays a pivotal role in achieving these goals, serving either as the core of your offering or as a crucial support system. When navigating technology choices, it’s important to balance innovation with practicality. Many businesses face the decision of choosing between off-the-shelf solutions and custom-built systems. While innovative technologies and trendy frameworks can be tempting, it’s crucial to assess their alignment with your business needs and goals. In the fast-evolving world of technology, the allure of the latest trends can sometimes overshadow the value of proven, reliable solutions. Established technologies, while perhaps less glamorous, often offer stability and efficiency that can be critical for your operations. For instance, while JavaScr...

Soft Skills Outweigh Hard Skills, By Far

I've been reflecting on something that’s been on my mind for a while, and I think it's time to share my thoughts. Here's the truth: soft skills are often more important than hard skills. They can make or break a team dynamic and influence success far beyond technical expertise. It’s common to hire people based on their hard skills: years of experience, specific technical proficiency, and certifications. On the surface, this approach makes sense: if someone knows their stuff, they should be a great fit, right? But there’s more to it. Sometimes, things don’t go as smoothly as expected. A few months into a new team, issues can arise: poor communication, difficulty with simple tasks, conflicts, and constant questioning of decisions. A single person with underdeveloped soft skills can significantly impact team morale and effectiveness. A wise friend once shared with me, “Most people have a precious gem inside them, but you never know how long it will take to polish ...

My Current Take on Spaces Versus Tabs

When it comes to code indentation, I've long championed tabs as the superior choice over spaces. In this post, I'll outline why I still believe tabs have inherent advantages, yet also explain why I’ve ultimately adapted to using spaces. Why Tabs Are Superior Tabs offer a straightforward and effective approach to indentation. Here’s why they stand out: Atomic Nature: A tab character represents a single level of indentation. This simplicity ensures that each tab consistently adds one level of indentation, making it easy to manage and visualize code structure. Customization: Tabs allow developers to configure their editors to display them according to their personal preferences. This flexibility means that each developer can adjust tab width to their liking without altering the code itself, enhancing accessibility and readability. Despite these advantages, there are practical challenges associated with tabs. The Practical Drawbacks of Tabs While tabs are conceptually sup...

I Don’t Use Dark Mode and Neither Should You

Let's talk about "dark mode". Once a niche feature, it's now becoming the default setting in many applications. While it may seem trendy or retro, its widespread adoption raises several concerns, including accessibility and usability. A Brief History of Display Technology To understand why dark mode might not be ideal, let’s revisit the evolution of display technology. In the early days, we had monochromatic monitors with amber, green, or white phosphorus. Xerox introduced the light background user interface in the 70s, setting a trend that Apple and Microsoft followed. This shift to light mode mirrored the familiar appearance of printed documents, making computing more intuitive and inclusive. For decades, light mode remained the standard. It closely resembles real-world conditions, where our eyes are accustomed to darker objects on a lighter background. This natural alignment reduces eye strain and enhances readability. Why Dark Mode Can Be Problematic ...