how would you suggest someone who just started their career moves ahead to build that “taste” for lean and elegant solutions? I am onboarding fresh grads onto my team and I see a tendency towards blindly implementing LLM generated code. I always tell people they are responsible for the code they push, so they should always research every line of code, their imported frameworks and generated solutions. They should be able to explain their choices (or the LLM’s). But I still fail to see how I can help people become this “new” brand of developer. Would be very happy to hear your thoughts or how other people are planning to tackle this. Thanks!
My "taste" (like perhaps all other "tastes") comes from experience. Cliche, I know.
When you have had to tackle dozens of frameworks/libraries/API over the years, you get to where you find you like this one, dislike that one.
Get/Set, Get/Set… The symmetry is good…
Calling convention is to pass a dictionary: all the params are keys. Extensible, sure, but not very self-documenting, kind of baroque?
An API that is almost entirely call-backs. Hard to wrap your head around, but seems to be pretty flexible… How better to write a parser API anyway?
(You get the idea.)
And as you design apps/frameworks yourself, then have to go through several cycles of adding features, refactoring, you start to think differently about structuring apps/frameworks that make the inevitable future work easier. Perhaps you break the features of a monolithic app into libraries/services…
None of this is novel, it's just that doing enough of it, putting in the sweat and hours, screwing up a number of times) is where "taste" (insight?) comes from.
It's no different from anything else.
Perhaps the best way to accelerate the above though is to give a junior dev ownership of an app (or if that is too big of a bite, then a piece of a thing).
"We need an image cache," you say to them. And then it's theirs.
They whiteboard it, they prototype it, they write it, they fix the bugs, they maintain it, they extend it. If they have to rewrite it a few times over the course of its lifetime (until it moves into maintenance mode), that's fine. It's exactly how they'll learn.
This answer probably feels unsatisfying and I agree. But some things actually need repetition and ongoing effort. One of my favorite quotes is from Ira Glass about this very topic.
> Nobody tells this to people who are beginners, and I really wish somebody had told this to me.
> All of us who do creative work, we get into it because we have good taste. But it's like there is this gap. For the first couple years that you're making stuff, what you're making isn't so good. It’s not that great. It’s trying to be good, it has ambition to be good, but it’s not that good.
> But your taste, the thing that got you into the game, is still killer. And your taste is good enough that you can tell that what you're making is kind of a disappointment to you. A lot of people never get past that phase. They quit.
> Everybody I know who does interesting, creative work they went through years where they had really good taste and they could tell that what they were making wasn't as good as they wanted it to be. They knew it fell short. Everybody goes through that.
> And if you are just starting out or if you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Do a huge volume of work. Put yourself on a deadline so that every week or every month you know you're going to finish one story. It is only by going through a volume of work that you're going to catch up and close that gap. And the work you're making will be as good as your ambitions.
> I took longer to figure out how to do this than anyone I’ve ever met. It takes awhile. It’s gonna take you a while. It’s normal to take a while. You just have to fight your way through that.
maybe the fact that Persians != Arabs will improve their odds. Recent uprisings had more luck (i.e. Bangladesh), even if it’s too early to fully assess their success
Bangladesh hasn't become a "democracy" in any manner. Remember that a whole host of leaders were arrested, and the most popular political party banned from participating in the recent elections! You can claim that if they were popular there wouldn't have been any "revolutions" when they were ruling. But note that this is a country that has struggled with violence throughout its history, has seen many military coups, and struggled to be a democracy. If they weren't popular, why were these so-called revolutionaries so hell-bent in not allowing them to participate in the "first free and fair" elections organised by them? You don't become a democracy by deliberately excluding a political party that was instrumental in the founding of Bangladesh, and is supported by half the country - that's how you weaken your country's unity and lay the grounds for a civil war.
I am reading a book called Accelerando (highly recommended), and there is a play on a lobsters collective uploaded to the cloud. Claws reminded me of that - not sure it was an intentional reference tho!
I think that these companies are understanding that as the barrier to entry to build a frontend gets lower and lower, APIs will become the real moat. If you move away from their UI they will lose ad revenue, viewer stats, in short the ability to optimize how to harness your full attention. It would be great to have some stats on hand and see if and how much active API user has increased decreased in the last
two years, as I would not be surprised if it had increased at a much faster pace than in the past.
> the barrier to entry to build a frontend gets lower
My impression is the opposite: frontend/UI/UX is where the moat is growing because that's where users will (1) consume ads (2) orchestrate their agents.
I agree with you - we are saying the same thing, by restricting their API or making less developer friendly, they want you to be captive in their UI. This might not be true for Anthropic or OpenAI - another child commenter made a comment about ads in CLI, I would not be surprised if in a while we will have product placements in LLM responses exactly as we have it in movies - not a plain ad but just a slightly less subliminal suggestion.
It’s objectively easier to build a frontend now and therefore that moat is disappearing.
What you can argue is the moat is in incumbent advantage at the UI layer, not the UI itself.
I will give you an example I heard from an acquaintance yesterday - this person is very smart but not strictly “technical”.
He is building a trading automation for personal use. In his design he gets a message on whatsapp/signal/telegram and approves/rejects the trade suggestion.
To define specifications for this, he defined multiple agents (a quant, a data scientist, a principal engineer, and trading experts - “warren buffett”, “ray dalio”) and let the agents run until they reached a consensus on what the design should be. He said this ran for a couple of hours (so not strictly overnight) after he went to sleep; in the morning he read and amended the output (10s of pages equivalent) and let it build.
This is not a strictly-defined coding task, but there are now many examples of emerging patterns where you have multiple agents supporting each other, running tasks in parallel, correcting/criticising/challenging each other, until some definition of “done” has been satisfied.
That said, personally my usage is much like yours - I run agents one at a time and closely monitor output before proceeding, to avoid finding a clusterfuck of bad choices built on top of each other. So you are not alone my friend :-)
The higher the risk of e.g. a loan, the more interest it has to pay out to be worthwhile. The exact amount* is, as I understand it, governed by the Black–Scholes model.
* probably with some spherical-cows-in-a-vacuum assumptions given how the misuse of this model was a factor in the global financial crisis.
isn’t this easy for a potential attacker to mitigate, i.e. dropping from the address everything after the plus? it’s a known trick for gmail so i would not be surprised if an attacker knew how to get to the “real” address by cleaning it up.
Yes, even some attackers I noticed they excluded all custom domains from their dumps to avoid alerting individuals before they sell it. It’s why it’s better to have a fully unique email, preferably masked one (not custom domains) as some email services provider do, so you get the isolation feature but also blending in without going noticed by attackers.
I disagree with this - there have been overthrowings that did not require weapons in the field (i.e. Egypt, Tunisia), while widespread weapons were likely to cause civil wars (Lybia, Syria). In these cases however the role of the army was key in forcing the rulers out (and in Egypt to replace them), which might be unlikely in the case of Iran.
I use the house analogy a lot these days. A colleague vibe-coded an app and it does what it is supposed to, but the code really is an unmaintainable hodgepodge of files. I compare this to a house that looks functional on the surface, but has the toilet in the middle of the living room, an unsafe electrical system, water leaks, etc. I am afraid only the facade of the house will need to be beautiful, only to realize that they traded off glittery paint for shaky foundations.
To extend your analogy: AI is effectively mass-producing 'Subprime Housing'.
It has amazing curb appeal (glittering paint), but as a banker, I'd rate this as a 'Toxic Asset' with zero collateral value.
The scary part is that the 'interest rate' on this technical debt is variable. Eventually, it becomes cheaper to declare bankruptcy (rewrite from scratch) than to pay off the renovation costs.
My experience with it is the code just wouldn't have existed in the first place otherwise. Nobody was going to pay thousands of dollars for it and it just needs to work and be accurate. It's not the backend code you give root access to on the company server, it's automating the boring aspects of the job with a basic frontend.
I've been able to save people money and time. If someone comes in later and has a more elegant solution for the same $60 effort I spent great! Otherwise I'll continue saving people money and time with my non-perfect code.
In banking terms, you are treating AI code as "OPEX" (Operating Expense) rather than "CAPEX" (Capital Expenditure).
As long as we treat these $60 quick-fixes as "depreciating assets" (use it and throw it away), it’s great ROI.
My warning was specifically about the danger of mistaking these quick-fixes for "Long-term Capital Assets."
As long as you know it's a disposable tool, not a foundation, we are on the same page.
reply