41554 blogs · [ { "id": "01a08790-7aa4-7308-a084-6d2dce892d27", "title": "Talk: React Server Components Vs. GraphQL", "url": "https://jordaneldredge.com/notes/rsc-vs-graphql", "published_at": "2026-07-14T01:14:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dcee27f97", "title": "Building a metadata database with AI agents", "url": "https://jordaneldredge.com/notes/findopera", "published_at": "2026-05-31T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dcfa015a3", "title": "Talk: Grats - Bringing Implementation-First GraphQL to TypeScript", "url": "https://jordaneldredge.com/notes/graphql-conf-grats", "published_at": "2026-02-11T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd04adbc4", "title": "This blog has secrets", "url": "https://jordaneldredge.com/notes/secrets", "published_at": "2026-01-12T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd08c8cdd", "title": "Prevent MacOS from inserting a period after two spaces", "url": "https://jordaneldredge.com/notes/macos-period-after-two-spaces-config", "published_at": "2026-01-12T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd10fa920", "title": "Markdown is great for encoding test snapshots", "url": "https://jordaneldredge.com/notes/markdown-snapshots", "published_at": "2026-01-11T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd1abd7aa", "title": "Aliasing alias", "url": "https://jordaneldredge.com/notes/aliasing-alias", "published_at": "2026-01-11T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd1b02218", "title": "Keynote: GraphQL at Meta", "url": "https://jordaneldredge.com/notes/graphql-at-meta", "published_at": "2026-01-06T05:54:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd1fe2821", "title": "Talk: The Big Ideas in Relay", "url": "https://jordaneldredge.com/notes/big-ideas-in-relay", "published_at": "2025-11-25T08:37:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd1ff5581", "title": "“’S Wonderful” by George Gershwin", "url": "https://jordaneldredge.com/notes/s-wunderful", "published_at": "2025-11-13T12:12:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd2e4b976", "title": "Winamp in Your Pocket: 63 artist depictions of physical Winamp players", "url": "https://jordaneldredge.com/notes/physical-winamp", "published_at": "2025-10-10T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd3b74fd6", "title": "A Mental Model for Data in UI Applications", "url": "https://jordaneldredge.com/notes/ui-data", "published_at": "2025-09-26T06:04:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd493510f", "title": "React’s useTransition and state update reordering", "url": "https://jordaneldredge.com/notes/react-rebasing", "published_at": "2025-08-16T04:18:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd4dba881", "title": "2018 Talk by Tracey Jaquith: Webamp at archive.org", "url": "https://jordaneldredge.com/notes/webamp-at-archive-talk", "published_at": "2025-06-20T11:22:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd5bcc56a", "title": "SQLite Railroad Diagrams", "url": "https://jordaneldredge.com/notes/sqlite-railroad", "published_at": "2025-05-27T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd5f2d20c", "title": "[2012] FachMe mentioned on Voicebox", "url": "https://jordaneldredge.com/notes/voicebox-fachme", "published_at": "2025-05-19T03:17:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd68012ea", "title": "Podcast episode on the history of the Real Book", "url": "https://jordaneldredge.com/notes/real-book", "published_at": "2025-04-23T02:40:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd725e278", "title": "SQLite can emit ASCII art diagrams of its parse AST", "url": "https://jordaneldredge.com/notes/sqlite-ascii-ast", "published_at": "2025-04-17T12:11:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd72dd671", "title": "List Out of Lambda", "url": "https://jordaneldredge.com/notes/list-out-of-lambda", "published_at": "2025-04-15T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd7f19564", "title": "Preserving Winamp skins for posterity at the Internet Archive", "url": "https://jordaneldredge.com/notes/ia-skins", "published_at": "2025-04-05T14:04:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd8074679", "title": "My one, awkward, Winamp Skin", "url": "https://jordaneldredge.com/notes/teal-amp", "published_at": "2025-04-05T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd82c7e02", "title": "My old websites", "url": "https://jordaneldredge.com/notes/old-websites", "published_at": "2025-03-27T02:12:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd8d80bd7", "title": "An archive of 31k GeoCities badge images", "url": "https://jordaneldredge.com/notes/badges", "published_at": "2025-03-27T01:46:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd993dde4", "title": "Teenagers making Winamp skins in 2025", "url": "https://jordaneldredge.com/notes/hack-club-skinamp", "published_at": "2025-03-27T01:04:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dd9c7c545", "title": "Grats’ very nice testing strategy", "url": "https://jordaneldredge.com/notes/grats-testing", "published_at": "2025-03-23T01:56:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddac6cb3e", "title": "My blog’s audio player", "url": "https://jordaneldredge.com/notes/blog-audio-player", "published_at": "2025-03-22T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddb92b077", "title": "An SQL murder mystery", "url": "https://jordaneldredge.com/notes/sql-mystery", "published_at": "2025-03-10T13:23:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddc2e61b5", "title": "A C program who’s source code is a Magic Eye", "url": "https://jordaneldredge.com/notes/magic-eye", "published_at": "2025-03-08T10:20:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddd2290e1", "title": "{transitions} = f(state)", "url": "https://jordaneldredge.com/blog/transitions-f-of-state", "published_at": "2025-02-27T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dde07addf", "title": "“A Dream is a Wish Your Heart Makes” (piano/whistling)", "url": "https://jordaneldredge.com/notes/a-dream-is-a-wish-your-heart-makes", "published_at": "2025-02-11T23:45:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddeb32275", "title": "Fumbling through “Aria” from Bach’s Goldberg Variations", "url": "https://jordaneldredge.com/notes/goldberg-aria", "published_at": "2025-01-26T09:59:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dded2b7b4", "title": "“A Glorious Dawn”, a brilliant remix of Carl Sagan and Stephen Hawking", "url": "https://jordaneldredge.com/notes/a-glorious-dawn", "published_at": "2025-01-25T07:52:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ddf82e972", "title": "Dr. Richard Hipp Lectures on SQLite", "url": "https://jordaneldredge.com/notes/sqlite-lecture", "published_at": "2025-01-23T07:16:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de000d86e", "title": "Kids on Youtube playing my ukulele arrangement", "url": "https://jordaneldredge.com/notes/kids-play-never-on-sunday", "published_at": "2025-01-13T13:48:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de035eaba", "title": "Philip Glass Piano Works by Víkingur Ólafsson", "url": "https://jordaneldredge.com/notes/glass-piano-works", "published_at": "2025-01-12T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de060c187", "title": "“The Old Dope Peddler” by Tom Lehrer", "url": "https://jordaneldredge.com/notes/old-dope-peddler", "published_at": "2024-12-11T13:54:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de0f13394", "title": "Open Goldberg Variations", "url": "https://jordaneldredge.com/notes/open-goldberg", "published_at": "2024-12-09T04:21:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de11f9b1a", "title": "You can now “read” this blog as a podcast", "url": "https://jordaneldredge.com/notes/tts-podcast", "published_at": "2024-12-08T10:53:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de1e297d4", "title": "“A Christmas Carol” by Tom Lehrer", "url": "https://jordaneldredge.com/notes/a-christmas-carol", "published_at": "2024-12-08T06:10:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de28c5edd", "title": "Partitioning complexity", "url": "https://jordaneldredge.com/notes/partitioning-complexity", "published_at": "2024-11-22T23:15:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de2e00e5b", "title": "Client data should not need to exceed O(screen size)", "url": "https://jordaneldredge.com/notes/o-of-screen-size", "published_at": "2024-11-21T12:30:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de3a7ebef", "title": "Rendering “modern” Winamp skins in the browser", "url": "https://jordaneldredge.com/notes/webamp-modern", "published_at": "2024-11-20T08:34:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de4715bc1", "title": "Hyper-Reality", "url": "https://jordaneldredge.com/notes/hyper-reality", "published_at": "2024-10-31T23:38:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de52f395e", "title": "Webamp can pose for the camera", "url": "https://jordaneldredge.com/notes/webamp-pose", "published_at": "2024-10-30T12:32:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de586aef4", "title": "Code golfing interview questions", "url": "https://jordaneldredge.com/notes/code-golf", "published_at": "2024-10-27T04:21:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de635167a", "title": "The Birth & Death of JavaScript", "url": "https://jordaneldredge.com/notes/birth-death-of-javascript", "published_at": "2024-10-23T11:30:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de6e316de", "title": "100k skins: Reflections on the Winamp Skin Museum’s upload flow", "url": "https://jordaneldredge.com/notes/skin-upload", "published_at": "2024-10-21T14:29:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de74dee9e", "title": "Reactive GraphQL Architecture", "url": "https://jordaneldredge.com/notes/reactive-graphql", "published_at": "2024-10-17T05:31:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de84730ab", "title": "Why use the Relay Connection Spec?", "url": "https://jordaneldredge.com/notes/connection-spec", "published_at": "2024-10-10T10:30:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de85d06dc", "title": "“KillsParentOnException” a lesson in API naming", "url": "https://jordaneldredge.com/notes/kills-parent-on-exception", "published_at": "2024-10-08T12:59:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de863e490", "title": "no-unused-binary-expressions: From code review nit to ecosystem improvements", "url": "https://jordaneldredge.com/blog/ecosystem-improvements", "published_at": "2024-10-07T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de8b08e05", "title": "From opera to tech", "url": "https://jordaneldredge.com/notes/opera-to-tech", "published_at": "2024-09-30T01:14:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2de96007f7", "title": "Videos: I used to sing with a men’s chorus", "url": "https://jordaneldredge.com/notes/fog-city", "published_at": "2024-09-28T08:23:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dea5b88fd", "title": "My GraphQL Conf 2024 talk: Semantic Nullability", "url": "https://jordaneldredge.com/notes/graphql-conf-2024-semantic-nullability", "published_at": "2024-09-17T01:23:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dea8d341c", "title": "A video of my wife and I singing Mozart’s Requiem", "url": "https://jordaneldredge.com/notes/mozart-requiem", "published_at": "2024-09-17T01:18:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2deadddd94", "title": "I was on the Changelog podcast again", "url": "https://jordaneldredge.com/notes/changelog-corrupt-skins", "published_at": "2024-08-24T08:25:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2deb43c765", "title": "How the React model tames N by N code complexity", "url": "https://jordaneldredge.com/notes/react-n-by-n", "published_at": "2024-08-07T01:15:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2deb7b7bed", "title": "Hal fixing a light bulb (what software development always feels like to me)", "url": "https://jordaneldredge.com/notes/hal-fixing-a-light-bulb", "published_at": "2024-08-02T11:48:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dec2318e5", "title": "Itsy Bitsy Data Structures", "url": "https://jordaneldredge.com/notes/itsy-bitsy-data-structures", "published_at": "2024-08-02T11:34:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dec35c0cd", "title": "Bob Nystrom explains the Pratt Parser algorithm", "url": "https://jordaneldredge.com/notes/pratt-parser", "published_at": "2024-08-02T11:21:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dec6ba084", "title": "Windows93.net", "url": "https://jordaneldredge.com/notes/windows93", "published_at": "2024-07-25T08:47:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2deccbbe58", "title": "Using Notion as my CMS with Next.js", "url": "https://jordaneldredge.com/notes/notion-cms", "published_at": "2024-07-25T02:29:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2ded60a561", "title": "The Winamp Skin Museum has a secret debug mode", "url": "https://jordaneldredge.com/notes/skin-debug", "published_at": "2024-07-25T02:16:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2dee59d1f7", "title": "The Winamp Skin Museum is powered by an sqlite3 database", "url": "https://jordaneldredge.com/notes/winamp-sqlite", "published_at": "2024-07-24T23:32:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2deeb65b67", "title": "Winamp Skin Mosaics", "url": "https://jordaneldredge.com/notes/winamp-mosaics", "published_at": "2024-07-24T15:08:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2def6711c6", "title": "The bizarre secrets I found investigating corrupt Winamp skins", "url": "https://jordaneldredge.com/notes/corrupted-skins", "published_at": "2024-07-24T14:36:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2def8419f5", "title": "How I indirectly helped remove stray characters from across the web", "url": "https://jordaneldredge.com/notes/jsx", "published_at": "2024-07-24T14:06:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2def92e567", "title": "Next.js’s unstable_cache() demystified", "url": "https://jordaneldredge.com/notes/unstable_cache", "published_at": "2024-07-24T11:20:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df06b9ab9", "title": "“Alexa, add half & half”", "url": "https://jordaneldredge.com/notes/half-and-half", "published_at": "2024-07-22T01:16:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df149981f", "title": "Grats: A More Pleasant Way to Build TypeScript GraphQL Servers", "url": "https://jordaneldredge.com/blog/grats", "published_at": "2024-03-05T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df157e9cc", "title": "Implementation-First GraphQL", "url": "https://jordaneldredge.com/blog/implementation-first", "published_at": "2023-04-17T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df1dcdd6c", "title": "Interesting Bugs Caught by ESLint’s no-constant-binary-expression", "url": "https://jordaneldredge.com/blog/interesting-bugs-caught-by-eslints-no-constant-binary-expression", "published_at": "2022-06-20T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df22d995a", "title": "?? \"\" is a Code Smell", "url": "https://jordaneldredge.com/blog/defaulting-to-empty-string-is-a-code-smell", "published_at": "2022-04-12T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df2ba1da3", "title": "A VSCode Extension to Clarify Operator Precedence in JS", "url": "https://jordaneldredge.com/blog/a-vs-code-extension-to-combat-js-precedence-confusion", "published_at": "2021-11-23T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df32f0009", "title": "Implementing Python's Context Manager Pattern in JavaScript", "url": "https://jordaneldredge.com/blog/implementing-pythons-context-manager-pattern-in-javascript", "published_at": "2021-11-23T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df3e439e1", "title": "Open .ani Animated Cursors Online", "url": "https://jordaneldredge.com/blog/open-ani-animated-cursors-online", "published_at": "2021-11-19T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df4ad1074", "title": "I gave a talk about compiling to WebAssembly in the browser", "url": "https://jordaneldredge.com/blog/faster-safer-compiling-untrusted-code-to-web-assembly-in-the-browser", "published_at": "2021-11-18T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df5859edc", "title": "This Software is Punk Rock", "url": "https://jordaneldredge.com/blog/this-software-is-punk-rock", "published_at": "2021-09-28T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df5fd54a8", "title": "Generating a 12 hour YouTube video with Python", "url": "https://jordaneldredge.com/blog/generating-a-12-hour-youtube-video-with-python", "published_at": "2021-09-12T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df6721bda", "title": "Building the @WinampSkins Twitter Bot", "url": "https://jordaneldredge.com/blog/building-the-winampskins-twitter-bot", "published_at": "2021-07-28T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df6c829ce", "title": "Using Machine Learning to Generate Winamp Skins", "url": "https://jordaneldredge.com/blog/using-machine-learning-to-generate-winamp-skins", "published_at": "2021-07-07T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df702a134", "title": "Speeding Up Webamp's Music Visualizer with WebAssembly", "url": "https://jordaneldredge.com/blog/speeding-up-winamps-music-visualizer-with-webassembly", "published_at": "2021-04-01T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df73c9261", "title": "Talk: Design as an Optimization Problem", "url": "https://jordaneldredge.com/blog/talk-design-as-an-optimization-problem", "published_at": "2021-01-08T08:00:00+00:00" }, { "id": "01a08790-7aa4-7308-a084-6d2df7555155", "title": "Rendering Animated .ani Cursors in the Browser", "url": "https://jordaneldredge.com/blog/rendering-animated-ani-cursors-in-the-browser", "published_at": "2020-12-09T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42bd682d0", "title": "Mainlining Nostalgia: Making the Winamp Skin Museum", "url": "https://jordaneldredge.com/blog/winamp-skin-musuem", "published_at": "2020-09-23T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42c824ba1", "title": "Implementing a Robust Web Audio API Balance Node", "url": "https://jordaneldredge.com/blog/implementing-a-robust-web-audio-api-balance-node", "published_at": "2019-04-16T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42d0d6d00", "title": "I did a Q/A with the Reactiflux community", "url": "https://jordaneldredge.com/blog/i-did-a-q-a-with-the-reactiflux-community", "published_at": "2018-05-18T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42d2f9d3f", "title": "I did an interview for the Changelog podcast", "url": "https://jordaneldredge.com/blog/i_did_an_interview_for_the_changelog_podcast", "published_at": "2018-04-06T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42da71104", "title": "Making the case for building something useless", "url": "https://jordaneldredge.com/blog/making-the-case-for-building-something-useless", "published_at": "2018-03-10T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42e22c93f", "title": "I talked about Winamp2-js on the Zeal Interestings Podcast", "url": "https://jordaneldredge.com/blog/i_talked_about_winamp2-js_on_the_zeal_interestings_podcast", "published_at": "2018-03-09T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42e4ea966", "title": "A Tour of Winamp2-js Features", "url": "https://jordaneldredge.com/blog/a-tour-of-winamp2-js-features", "published_at": "2018-03-08T08:00:00+00:00" }, { "id": "01a0d4ed-1f0e-733b-bfc9-d7adbadbddeb", "title": "Winamp2-js now supports all three windows", "url": "https://jordaneldredge.com/projects/winamp2-js/", "published_at": "2018-02-07T19:17:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42f06299e", "title": "Crash Safari with the Web Audio API", "url": "https://jordaneldredge.com/blog/crash-safari-with-the-web-audio-api", "published_at": "2017-08-15T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42f3e2fe5", "title": "Markdown Today: Journal from any browser", "url": "https://jordaneldredge.com/blog/makrdown-today-journal-from-any-browser", "published_at": "2017-04-07T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42f8cc50c", "title": "Gzip hates your DRY code", "url": "https://jordaneldredge.com/blog/gzip-hates-your-dry-code", "published_at": "2017-03-13T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a42fed93fe", "title": "Functional JavaScript: Learn by refactoring", "url": "https://jordaneldredge.com/blog/functional-javascript-learn-by-refactoring", "published_at": "2016-11-11T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a4303ac109", "title": "I was interviewed for a podcast", "url": "https://jordaneldredge.com/blog/i-was-interviewed-for-a-podcast", "published_at": "2016-10-29T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a430884bfd", "title": "\"Ah leave me not to pine\" ukulele solo", "url": "https://jordaneldredge.com/blog/ah-leave-me-not-to-pine-ukulele-solo", "published_at": "2016-09-20T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a430eaee6a", "title": "Why linting errors should cause tests to fail", "url": "https://jordaneldredge.com/blog/why-linting-errors-should-cause-tests-to-fail", "published_at": "2016-09-16T08:00:00+00:00" }, { "id": "01a08790-7aa5-73d8-93d7-a1a4310a89d1", "title": "Podcasts I like", "url": "https://jordaneldredge.com/blog/podcasts-i-listen-to", "published_at": "2016-07-14T08:00:00+00:00" } ] posts Claim your blog
Back to About / Jordan Eldredge
Blog · corpus.blog/blogs/jordaneldredge.com/posts

About / Jordan Eldredge

jordaneldredge.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016