Skip to content
Jared Schraub

Archives

All the articles I've archived.

202614
September3
  • Featured

    The Wrong Thing, Built Perfectly: Why Shared Understanding Comes Before Code

    The expensive failure is not an agent that writes bad code. It is an agent that writes good code for the wrong design, quickly, while you nod along. The fix is an interrogation before implementation, and the questions it asks are not the ones you expect.

  • Featured

    Break Your Own Code First: Property-Based Testing in TypeScript

    Your tests pass because you chose the inputs, and you chose them with the same mental model that wrote the bug. State the law instead and let a generator hunt the counterexample. Doing this to my own published reducer found a rule I had promised in print and never actually enforced.

  • Featured

    Stop Building Spread Pyramids: Composable Focus in TypeScript

    Changing one string five levels down means rebuilding every object on the way back up, by hand, in a pyramid of spreads where the bug is never in the value you meant to change. A lens turns that path into a value you can name, compose, and reuse, and the pyramid collapses to one line.

August2
July3
  • State Is a Fold Over Events: Functional State in React and Beyond

    Your state is the residue of setter calls nobody recorded, which is why the bug won't reproduce. Name what happened as events, let one pure function fold them into state, and every screen your app has ever shown is one replay away.

  • Effects Are Values: Functional Core, Imperative Shell

    Your business rules can't be tested because they're welded to fetches, toasts, and analytics calls. Split the program in two: a pure core that decides what should happen and returns it as plain data, and a thin shell that performs it. The mock count drops to zero.

  • Parse, Don't Validate: Making Bad Input Impossible in TypeScript

    Updated:

    Stop checking the same field in fifteen places. Parse untrusted input once at the boundary into a type that can't be invalid — validation forgets what it learned, parsing keeps the proof in the type — and every downstream check disappears.

June4
January2
  • The Functional Mindset: Why Modern React is Forcing Your Hand

    Embracing functional programming principles like purity, immutability, and declarative composition is no longer optional in modern React development, as these concepts provide the predictability and stability required to manage complex application state and build scalable architectures.

  • Hello World (And Welcome to the Blog)

    I’m kicking things off with a look at my 20-year journey from backend Java to modern frontend leadership, and outlining what you can expect from my posts on engineering, architecture, and career growth.

⌘K to toggleEsc to close