
frontend tech lead @treasuredata
back in cornwall
Joined May 2010
- Tweets5.1K
- Following879
- Followers472
- Likes13.3K
dan reeves retweeted
I’m actually a child online safety expert and was one of the pioneers in this space with Club Penguin and so I feel uniquely positioned to critique this.
The groomer problem is real but it’s also vastly overstated. The far larger issue we saw at Penguin was suicidality or reports of sexual abuse in the home.
There is no solution for lazy/bad parenting. You can implement all the ID laws you want but if parents are going to just hand kids their phones unlocked, those kids will have access to all the same things the parents have unfettered.
What I found is that these draconian safety laws actually make it harder to be an honest operator of kids apps because on one hand it’s so much legal risk and so much user friction that it simply becomes uninvestible as a business.
Parents will just lie to let their kids use the unfettered internet. For example, I have a friend who works in mobile gaming who has two kids, one above and one below the age limit but separated by just 2 yrs, and the two wanted to play and chat together on Roblox - which is reasonable. To do this, he just verified that his younger kid is old enough for the chat feature when he’s not.
This happens all the time and will happen with these laws to. How far do we want to go with this? Scan the face of the user in real-time to make sure it’s not a kid using the device? We could do that but it feels like a massive unwanted intrusion of privacy.
That’s how you know this law isn’t about kids. COPPA and GDPR-K and so forth already make it illegal to allow chat and other grooming vectors to kids.
What’s really being done here is trying to eliminate online anonymity. And this is a far bigger issue that goes to core speech rights because if you cannot criticize the govt anonymously and if wrong speech is a crime then it becomes easy to identify all the detractors of the govt in power, and ban, fine or jail them for speech crimes.
Starmer has already been doing this and he wants to do it at a much bigger scale. Starmer won’t even acknowledge the problem of actual grooming gangs in Britain’s neighborhoods but he’s worried about online grooming?
No he’s not, and this hypocrisy gives away the game. What he wants is to kill online anonymity so he can enforce censorship of his unpopular policies. No politician should have this power.
My first instinct was to support the UK’s social media ban for under 16s.
Protecting children from grooming, exploitation and harmful content seems like common sense.
But I’m seeing a lot of opposition to it, so I’m genuinely curious as to why?
One thing making me second guess is that platforms like bluesky are exempt, while at the same time there’s a push to let 16 year olds vote. To me that looks less like child protection and more like controlling where young people get their information.
Interested to hear other perspectives.
dan reeves retweeted
Time for a big systems advice thread!
In distributed systems there's no magic "push everything to prod at once" button. Every service gets pushed independently and nodes within a service get updated incrementally. If you mess up forwards/backwards compatibility you can fail irrecoverably.
So how to avoid this?
1/5: Decouple data and code changes. Never push out a release that changes how data is stored at the same time as the code that uses this new data. If there's a bug and you need to roll back to the old version of your code it won't be able to handle the new data in the new format. Instead push out a release that first changes the data in a way that’s compatible with both the old and new code (e.g., optional fields etc), when that’s stable push out the new code that uses it, then when that’s stable you can change the data to remove backwards compatibility. This is known as a “migration” in the database world and yes it’s annoying, but yes you need to do it.
dan reeves retweeted
These challenges are very real. Like, very real!
But the answer isn't to wait for the tools to get better, because the problem isn't the tool, it is how we work.
This is not everything, but one aspect is that you gotta be absolutely ruthless about throwing away stuff.
Sunk cost fallacy was always bad. But now it got 10x worse with brains that trigger "wow, that demo is so far along, we might as well ship it" where they should trigger "This was 30 minutes of work. That investment should play absolutely zero role in the decision whether to proceed"
dan reeves retweeted
Whatever your take on this, writing code has always been tremendously easy compared to designing/maintaining large systems. The best engineers in the world are the best because of this stuff.
Currently LLMs will not save you from bad architectural decisions. You need to constrain them to do the right thing.
dan reeves retweeted
Non-technical types think engineers just “translate” specs into code but that is not how great products are built. PM/design/engineering must work together throughout the process. Throwing stuff over the wall doesn’t work. The best ideas don’t come from the top down, they come after building and experimenting and understanding what’s technically possible. Simply replacing engineers with AIs that do only what you tell them is not a recipe for success.
Linear’s CEO just described the biggest shift in product team structure since Agile.
For decades, product work meant: PM defines requirements → designers create specs → engineers translate to code. The middle step, translation, absorbed 70% of the time and created most of the friction.
Karri is saying that step is collapsing. AI agents don’t need handoff documents or sprint planning rituals. They need structured context about what matters, what constraints apply, and what success looks like.
This inverts the leverage points. The person who captures customer intent clearly now has more impact than the person who translates it into implementation. And the person reviewing agent output becomes the quality bottleneck.
Linear built their entire product around this bet: structured entities with clear ownership, context attached to work items, feedback connected directly to issues. It turns out the same system that helps humans coordinate also helps agents know what to do.
The teams figuring this out first will have a structural advantage. Everyone else will still be writing Jira tickets that read like riddles.
dan reeves retweeted
I've let this sit for a few days but it is surprising how many people attribute this to something specific about React or about dependency arrays. While the ease at which this can happen varies you can easily do this in every framework. 1/
🧵
dan reeves retweeted
so I find that extremely senior engineers are very good at context switching and don’t need to recuperate between calls. they also don’t complain about meetings (unless there’s no agenda), and are happy to jump on calls, pair program, respond to a dm, write some code, whatever.
dan reeves retweeted
.@TreasureData の東京オフィスが、今月から麻布台ヒルズに移動になりました。森ビルさん、ありがとうございます。Mountain View, New York, London, Nice, Vancouverに続いた、オフィスアップグレードになります。日本でも引き続き採用してますので、是非ご連絡ください。出戻りも最近多くて、歓迎ですよ😚
URL: treasuredata.com/company/job…
dan reeves retweeted
‘SPY KIDS’ has been added to the National Film Registry.
Films that are added to the registry are seen to have cultural or historic importance and must be preserved for future generations.
dan reeves retweeted
You only need a little bit of TypeScript knowledge to be dangerous with React
- Type your inputs, infer your outputs
- Use React.ComponentProps everywhere
- Use Omit<> when overriding props
- Don't pass types from the DB into your components
jacobparis.com/content/react…
dan reeves retweeted
TypeScript tip: stop using optional properties so much in your internal app logic.
❌ prop?: string;
✅ prop: string | undefined;
Being explicit about undefined values eliminates the silent bugs that happen when you forget to provide a value.
dan reeves retweeted
Browserslist 4.24.2 was released.
We changed outdated caniuse-lite warning. Now it contains months since update and more clear text:
> Browserslist: browsers data (caniuse-lite) is 20 months old. Please run:
> npx update-browserslist-db@latest
github.com/browserslist/upda…
dan reeves retweeted
require(esm) is enabled by default!
Node.js v23.0.0 is out! 💚
This version will replace Node.js 22 as the ‘Current’ release line when Node.js 22 enters long-term support (LTS) later this month.
Release notes: nodejs.org/en/blog/release/v…




































