<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Jared Schraub</title><description>A frontend engineering leader bringing two decades of rigor to modern tooling — functional TypeScript, AI-assisted teams, and the standards that survive both.</description><link>https://jaredschraub.com/</link><item><title>Parse, Don&apos;t Validate: Making Bad Input Impossible in TypeScript</title><link>https://jaredschraub.com/posts/parse-dont-validate/</link><guid isPermaLink="true">https://jaredschraub.com/posts/parse-dont-validate/</guid><description>Stop checking the same field in fifteen places. Parse untrusted input once at the boundary into a type that can&apos;t be invalid — validation forgets what it learned, parsing keeps the proof in the type — and every downstream check disappears.</description><pubDate>Sat, 04 Jul 2026 13:00:00 GMT</pubDate></item><item><title>Errors Are Values: Functional Error Handling in TypeScript</title><link>https://jaredschraub.com/posts/errors-are-values/</link><guid isPermaLink="true">https://jaredschraub.com/posts/errors-are-values/</guid><description>Stop throwing, start returning. Model failure as a value with Result, compose fallible steps on a railway, make illegal states unrepresentable, and let TypeScript force you to handle every error — no try/catch required.</description><pubDate>Fri, 26 Jun 2026 13:00:00 GMT</pubDate></item><item><title>Booleans Lie: Modeling State with Discriminated Unions in TypeScript</title><link>https://jaredschraub.com/posts/discriminated-unions/</link><guid isPermaLink="true">https://jaredschraub.com/posts/discriminated-unions/</guid><description>Three booleans give you eight states when you only meant four. Discriminated unions make the illegal ones unrepresentable — model a value as exactly one of a fixed set of shapes and let TypeScript hold you to it.</description><pubDate>Fri, 26 Jun 2026 12:00:00 GMT</pubDate></item><item><title>Six Functional Patterns to Stop Writing Java in JavaScript</title><link>https://jaredschraub.com/posts/six-functional-patterns/</link><guid isPermaLink="true">https://jaredschraub.com/posts/six-functional-patterns/</guid><description>Six concrete moves that turn functional thinking into TypeScript you can ship on Monday — pipelines over loops, expressions over statements, immutable updates, higher-order functions, composition, and closures over classes — refactored on a real orders view.</description><pubDate>Thu, 25 Jun 2026 07:00:00 GMT</pubDate></item><item><title>Your Functions Aren&apos;t Functions: Why JavaScript Punishes Your Java Habits</title><link>https://jaredschraub.com/posts/your-functions-arent-functions/</link><guid isPermaLink="true">https://jaredschraub.com/posts/your-functions-arent-functions/</guid><description>The word &apos;function&apos; means two different things, and the one you learned in Java is the one TypeScript keeps punishing. A pragmatic case for thinking in equations, not recipes.</description><pubDate>Sat, 20 Jun 2026 12:00:00 GMT</pubDate></item><item><title>The Functional Mindset: Why Modern React is Forcing Your Hand</title><link>https://jaredschraub.com/posts/functional-mindset/</link><guid isPermaLink="true">https://jaredschraub.com/posts/functional-mindset/</guid><description>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.</description><pubDate>Sat, 17 Jan 2026 20:10:00 GMT</pubDate></item><item><title>Hello World (And Welcome to the Blog)</title><link>https://jaredschraub.com/posts/intro/</link><guid isPermaLink="true">https://jaredschraub.com/posts/intro/</guid><description>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.</description><pubDate>Mon, 12 Jan 2026 03:43:07 GMT</pubDate></item></channel></rss>