Reading Log

by Kurt Pan

AI gives us the illusion of mastery without the work. The AI had moved me forward, but it hadn't saved me the real work. I had thought I was mastering front end development, quickly. But mastery still required: building the model, holding it in my head, doing the thinking. False mastery is mistaking convincing syntax for real understanding.

This is hard work we've been doing for years: reading code carefully, building models in our heads, debugging when things don't make sense. That's our craft. Mastery has always been the ability to carry the burden. Put that down for too long, you won't want to pick it back up.

Search engines cover broad areas of computer science, linguistics, ontology, NLP, ML, distributed systems, performance engineering, and so on.

Quantity is quality. If a search engine can't find something, it's not useful.

Crawling and filtering is the most difficult and most important aspect.

I’ve been paying for Claude Pro for about 6 months. But slowly, I’ve felt like it’s just a huge waste of time. Even if I have to do a few independent internet searches and read through a few dozen stack overflow and doc pages, my own conclusion is so much more reliable and accurate than anything an LLM could ever spit out.

Not even OpenAI is making money right now. I believe this is because the technology is inherently flawed and cannot scale to meet the demand. It simply consumes too much electricity to ever be economically viable, not to mention the serious environmental concerns.

One major reason is that generative AI tools often fail to match real work processes. The report described “brittle workflows, lack of contextual learning, and poor alignment with day-to-day operations.” Unlike humans, most generative AI models cannot retain past feedback or build new reasoning ability over time. They also struggle to adapt to context or transfer lessons across different tasks.

They're a refuge from the GDPR cookie banners, the trashy ads, the email opt-ins, and the god-forsaken auto-play video.

A text-only webpage is clean. It's readable. It's fast and it's simple.

You've probably lost some engagement by keeping things so clean, but you're contributing to a simple, calm, and happier internet.

The fear that being the one who always initiates makes you weak. Think about it, when was the last time you were annoyed that someone reached out to check in? When did you ever think less of someone for being the one to text you? Never. Because connection isn't about scorekeeping. It's about courage.

The fence isn't there. It never was. It's just the memory of some childhood rejection, some social rule someone made up, some fear that caring more makes you matter less. Here's the truth: The person who reaches out first isn't the weak one.

Your breakthrough isn't on the other side of productivity or success or self-improvement. It's on the other side of that text you're not sending. That call you're not making. That “I miss you” stuck in your throat.

If software design is how you assemble lines of code, system design is how you assemble services. The primitives of software design are variables, functions, classes, and so on. The primitives of system design are app servers, databases, caches, queues, event buses, proxies, and so on.

Good system design is not about clever tricks, it’s about knowing how to use boring, well-tested components in the right place. I’m not a plumber, but I imagine good plumbing is similar: if you’re doing something too exciting, you’re probably going to end up with crap all over yourself.

The most elegant solution here is Haskell’s map words $ lines text

Here, your program is constructed left to right.

There’s a principle in design called progressive disclosure. The user should only be exposed to as much complexity as is neccessary to complete a task. Additionally, complexity should naturally surface itself as it is relevant to the user. You shouldn’t have to choose a font family and size before you start typing into Word, and options to change text wrapping around images should appear when you add an image.

Remember that LinkedIn is a website owned by Microsoft, trying to make money for Microsoft, based on time spent on the site. Nothing you post there is going to change your career. Doing work that matters might. Drawing attention to that might. Go for depth over frequency.

If writing online matters to you, you’re probably better off starting a blog and building things there. You’ll get less views and less engagement but there’s less temptation to post nonsense just for likes.

The average European household now spends close to €700 (£600) a year on three or more VOD subscriptions. People pay more and get less.

Piracy is back, just sailing under a different flag. Studios carve out fiefdoms, build walls and levy tolls for those who wish to visit. The result is artificial scarcity in a digital world that promised abundance. As the streaming landscape fractures into feudal territories, more viewers are turning to the high seas.

There are two reasons founders resist going out and recruiting users individually. One is a combination of shyness and laziness. They'd rather sit at home writing code than go out and talk to a bunch of strangers and probably be rejected by most of them. But for a startup to succeed, at least one founder (usually the CEO) will have to spend a lot of time on sales and marketing. The other reason founders ignore this path is that the absolute numbers seem so small at first. This can't be how the big, famous startups got started, they think. The mistake they make is to underestimate the power of compound growth.

Almost all startups are fragile initially. And that's one of the biggest things inexperienced founders and investors (and reporters and know-it-alls on forums) get wrong about them. They unconsciously judge larval startups by the standards of established ones. They're like someone looking at a newborn baby and concluding “there's no way this tiny creature could ever accomplish anything.”

The big danger is that you'll dismiss your startup yourself. I've seen it happen. I often have to encourage founders who don't see the full potential of what they're building.

I have never once seen a startup lured down a blind alley by trying too hard to make their initial users happy.

Sometimes the right unscalable trick is to focus on a deliberately narrow market. It's like keeping a fire contained at first to get it really hot before adding more logs.

Any startup that could be described as a marketplace usually has to start in a subset of the market, but this can work for other startups as well. It's always worth asking if there's a subset of the market in which you can get a critical mass of users quickly.

Some startups could be entirely manual at first. If you can find someone with a problem that needs solving and you can solve it manually, go ahead and do that for as long as you can, and then gradually automate the bottlenecks. It would be a little frightening to be solving users' problems in a way that wasn't yet automatic, but less frightening than the far more common case of having something automatic that doesn't yet solve anyone's problems.

But with GPT-assisted coding, I think we’re in an era where you can just stop after the first part. You can do something that doesn’t scale — and leave it that way. That might actually be the best version of it. I don’t feel the pressure anymore for every project to be “a business.” If it works for me — or a tiny circle of people I care about — that’s enough.

Some things work precisely because they’re small. See a need that matters to you. Build the smallest, simplest thing that solves it. Resist the urge to make it bigger. Enjoy it. Scaling used to be the point. Now, small can be the point. AI tools make it cheap to create software for an audience of one — and sometimes, that’s the best possible audience.

It’s the freedom to stop. To make something small, useful, and perfectly yours, and not feel obligated to grow it until it collapses under its own weight. In a world obsessed with scale, there’s a quiet satisfaction in leaving good enough alone.