Redux maintainer's thoughts on AI

newbie5781 pts0 comments

My Thoughts on AI, Part 1: Fears, Opinions, and Mental Journey · Mark's Dev Blog

My own personal thoughts and opinions on AI effects and usage, and how those have evolved over time

Introduction ๐Ÿ”—๏ธŽ

This post will be tough to write. There's a lot of discourse and arguing about AI everywhere you look. I've read it all. I don't want to get caught up in arguments, get misinterpreted, or be labeled with beliefs that don't apply.

I am not e/acc or P(doom). I am a software engineer, I am a person, trying to figure this out same as everyone else.

I am not trying to sell anything, change anyone's mind, or say I am an expert. I don't have the answers.

I do have thoughts, opinions, fears, excitement, and concerns. I've shared a lot of them in private. Enough people have heard those thoughts and said they want to hear or read more about my opinions that it seems worth my time to write them up publicly. A lot of these aren't original to me. I don't claim to be a deep thinker. I have read a lot, thought a lot, synthesized a lot.

So, here's my story and opinions, from the heart, best as I can write them. So many points I could make and articles I could cite as references here, but this one's just me. My story, told my way. A lot of you are probably going to see the length and yell "TLDR" and nope right out of here, or throw it in an agent to summarize. That's fine. Take it for what it's worth. Maybe this helps someone else. (and if you want to skip to the tech workflow post there you go.)

Introduction

Part 1: The Before Times

Programming Is Life

Clouds on the Horizon

Ominous Signs

Part 2: Fear, Doom, and Depression

The Pivot

The Wilderness

The Tidal Wave

P(doom)

Depression

Part 3: Reverse Engineering

Miami Sunshine

Flipping The Bit

Part 4: Taming the Beast

Architectural Research

Mind. Blown.

Part 5: Diving In

Ramping Up

Immer

Nerd-Sniped

Self-Reflection

Part 6: Liftoff

Trust Factor

Gearing Up

The Re-Pivot

Part 7: Warp Speed

Pulling It All Together

Pattern Matching

Shipping for Agents

Part 8: So What Do I Think Today, Anyway?

Most Of My Fears Are Still Valid, And So Are You

The Tiger Is Out

Gotta Go Fast

Oops It's Capitalism

Maintainability is the Mindset

But Non-Determinism?

Is This Actually Better?

What About the Craft?

Final Thoughts

Part 1: The Before Times ๐Ÿ”—๏ธŽ

Programming Is Life ๐Ÿ”—๏ธŽ

I love programming. I love the problem solving, the thinking. Getting in a flow state, trance music cranked up, deep in the code, surfacing hours later and seeing that this feature didn't exist at the start of the day and now it does and it's all because I figured out how to do it. Debugging deeply. Trying to understand the guts of an unfamiliar system, figuring out where things were going wrong, finally nailing the tweak or architectural change that fixes the problem. Learning new tools, unlocking new capabilities.

I've been programming for 25+ years, over half my life. I cut my teeth in the early days of the Agile Manifesto. I read Joel Spolsky and that rewriting a system from scratch was a bad idea. I read the HN debates about how to interview programmers. I read the 8th Light and Uncle Bob discussions about "Software Craftsmanship" and honing our skills. I never spent time doing code katas, but clearly craft mattered. Writing code the right way mattered. It wasn't just about whether the code ran. It was whether the code was elegant, clean, readable, maintainable. "Make It Work, Make It Right, Make It Fast" became my mantra. "Tradeoffs" was my favorite keyword.

I built my career on deep understanding. I firmly believe that "programming is building a mental model of the system". That every programmer's job is really to understand the problem domain and the system they're working on, that you break down a new feature or bugfix by comparing it to your existing understanding of the system, and that at the end of a 6-hour coding session you've not only written working code but you've shaped a new and improved understanding of the existing system plus the changes. That you learn the fundamentals of your tools, go into the next layer of abstraction, dig into unfamiliar code, learn on the fly.

I believe in determinism. That pure functions aren't just an esoteric concept, but make code predictable and testable. That you can understand a system, even if there's distributed pieces and timing problems and race conditions. That you can solve a problem by taking the time to understand it, break it down, build the mental model, scientific method debug the solution, document it, maintain it. Redux wasn't just a way to manage data outside React, but a way to make the data flow predictable. That the Redux DevTools should show a meaningful human readable history of what happened in the application.

And then came AI.

Clouds on the Horizon ๐Ÿ”—๏ธŽ

Dunno when I first started hearing about using AI to write code. Probably somewhere in the GPT-2ish era. Surely read it somewhere on HN or Reddit.

I...

part code read system thoughts make

Related Articles