Neciu Dan

Neciu Dan

@neciudan.dev

Staff Software Engineer / Tech Co-Founder👨‍💻 / ReactJS Barcelona Organizer / Host of Señors at Scale podcast

306 followers463 following814 posts

Pinned

💬 "Your data doesn't just stay in one app forever, where the app gets shittier and shittier." That is Dan Abramov @danabra.mov explaining AT Protocol for the Season Premiere of Señors at Scale Listen now 👇 Spotify: open.spotify.com/episode/3Z3S... YouTube: youtu.be/gtrGsimXAVA

open.spotify.comDecentralized Social Media at Scale with Dan Abramov (Vercel) | AT Protocol, Bluesky, Redux, ReactSeñors at Scale - Software Engineering & Tech Leadership · Episode

I asked Mark Allen how to go from IC to manager. His first answer: you never stop being an IC. We also got into underperformers, why he banned stand-ups and brought them back, and why AI makes managers more important. https://youtu.be/UbgVjo-lSL4

JSON APIs might not be truly RESTful? 🤔 To call your distributed system RESTful, you must satisfy specific constraints. You need to use hypermedia. It's fascinating how this foundational document for the web has evolved into a general term for what we consider 'good' in API design.

Neciu Dan reposted

Chesterton’s Fence is a principle of decision-making that states you should not remove or change an existing system, law, rule, or physical structure until you fully understand why it was originally put there. Watch full episode with HTMX creator @htmx.org youtu.be/9xs0oZN2rs4

Chesterton’s Fence is a principle of decision-making that states you should not remove or change an existing system, law, rule, or physical structure until you fully understand why it was originally put there. Watch full episode with HTMX creator @htmx.org youtu.be/9xs0oZN2rs4

Neciu Dan reposted

Let's talk a little more about Margaret Hamilton because she deserves it In 1961, Margaret Hamilton was tackling massive systems, having previously wrangled room-sized computers that blared like a foghorn whenever they crashed.

Neciu Dan reposted

I’ve been talking about #DesignSystems quite a bit lately. Apparently, I’m not done yet 😅 After Code Europe and a chat with @neciudan.dev on Señors @ Scale, next stop: 4Developers in Katowice, Oct 8.

@netlify.com found that 93% of new projects have no Git host, so they rebuilt Git piece by piece to handle it. Now every project gets a real Git repo on S3, and clean agent merges take a second and zero tokens. From Philippe Serhal www.netlify.com/blog/how-we-...

netlify.comHow we built Git storage for millions of Netlify projectsA technical look at how Netlify built Netlify Source: durable Git storage on S3, scalable caching, push consistency, and support for millions of projects.
View full thread

1️⃣ <ViewTransition> Until now, animating a component entering, leaving, or moving meant an experimental build or building on top of the browser's View Transition API yourself. Now you wrap the part of the UI you care about, and any update inside startTransition gets animated.

2️⃣ Fragment refs If a component renders a list of siblings with no parent, or comes from a library that doesn't forward its ref, getting to its DOM nodes meant adding a wrapper div that messed with your layout Now you pass a ref straight to <Fragment> and get a FragmentInstance with addEventListener

View full thread
View full thread

2️⃣ z.instanceof().properties() — If you try to validate a fetch Response with z.object(), you get back a plain object, and the prototype is gone, and so is .json(). Now you can validate properties on a class instance in place and get the same instance back with its methods intact.

3️⃣ z.withParser() — z.compile() builds its fast parser with new Function, which a strict Content Security Policy blocks So the fastest path in Zod was off limits in the apps that care most about security. withParser() lets you generate the parser at build time and plug it in under the same contract.

1️⃣ .validate() — Until now, asking "is this input valid?" meant calling safeParse, which walks the whole input and builds a ZodError with an issue object for every failure .validate() returns a boolean, aborts on the first error it meets, creates no issue objects at all, and narrows the type

3️⃣ They pointed a long-running Claude Tag session at the service's metrics. Whenever the listener fell more than 50,000 jobs behind, it pinged the engineer with the full context of previous fixes, and after the rewrite, it tuned journal size and worker count on its own.

4️⃣ They now design v0 for 10 to 20x the load they can see. Agents open smaller PRs, push overnight and on weekends, and PR approval keeps getting faster, so CI job volume grows exponentially rather than with headcount. Is this the future?

1️⃣ They stopped running every test on every PR years ago. A deterministic test selection service looks at past results and which packages a change touches, then assigns each PR a specific set of tests to run, giving agents a tighter loop to self-verify against.

2️⃣ The service used to keep all test history in the memory of one process, so it could never be sharded. Now every CI result gets appended to a journal in an in-memory store. A consumer rolls that journal into per-test history every few seconds, and the selector reads from there.

"LLMs are made for token maxing. They are not made for efficiency." Vilva Athiban (@vilvaathibanpb.bsky.social), Lead AI Engineer at Omio, on how they rebuilt their agent backend on MCP and cut costs. New Señors at Scale episode 👇 https://youtu.be/WXtrBMlJjQo