| I just finished writing a Kafka consumer to migrate data with heavy AI help. This was basically best case a scenario for AI. It’s throw away greenfield code in a language I know pretty well (go) but haven’t used daily in a decade. For complicated reasons the whole database is coming through on 1 topic, so I’m doing some fairly complicated parallelization to squeeze out enough performance. I’d say overall the AI was close to a 2x speed up. It mostly saved me time when I forgot the go syntax for something vs looking it up. However, there were at least 4 subtle bugs (and many more unsubtle ones) that I think anyone who wasn’t very familiar with Kafka or multithreaded programming would have pushed to prod. As it is, they took me a while to uncover. On larger longer lived codebases, I’ve seen something closer to a 10-20% improvement. All of this is using the latest models. Overall this is at best the kind of productivity boost we got from moving to memory managed languages. Definitely not something that is going to replace engineers with PMs vibe coding anytime soon (based on rate of change I’ve seen over the last 3 years). My real worry is that this is going to make mid level technical tornadoes, who in my experience are the most damaging kind of programmer, 10x as productive because they won’t know how to spot or care about stopping subtle bugs. I don’t see how senior and staff engineers are going to be able to keep up with the inevitable flood of reviews. I also worry about the junior to senior pipeline in a world where it’s even easier to get something
up that mostly works—we already have this problem today with copy paste programmers, but we’ve just make copy paste programming even easier. I think the market will eventually sort this all out, but I worry that it could take decades. |