41554 blogs · [ { "id": "01a08791-d8c2-7296-8f7e-b9562a462f46", "title": "Rendering mazes on the web", "url": "https://jrsinclair.com/articles/2025/rendering-mazes-on-the-web/", "published_at": "2025-08-25T08:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562ac94d36", "title": "The joy of recursion, immutable data, and pure functions: Generating mazes with JavaScript", "url": "https://jrsinclair.com/articles/2025/joy-of-immutable-data-recursion-pure-functions-javascript-mazes/", "published_at": "2025-08-18T09:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562b105e3b", "title": "What’s the difference between ordinary functions and arrow functions in JavaScript?", "url": "https://jrsinclair.com/articles/2025/whats-the-difference-between-named-functions-and-arrow-functions/", "published_at": "2025-06-29T09:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562ba9cae7", "title": "Is it better to be a good person, or religious?", "url": "https://jrsinclair.com/articles/2024/is-it-better-to-be-good-or-religious/", "published_at": "2024-06-27T11:40:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562c652506", "title": "How to compose JavaScript functions that take multiple parameters (the epic guide)", "url": "https://jrsinclair.com/articles/2024/how-to-compose-functions-that-take-multiple-parameters-epic-guide/", "published_at": "2024-06-10T09:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562d1dfa5a", "title": "How to consume a paginated API using JavaScript async generators", "url": "https://jrsinclair.com/articles/2023/how-to-consume-a-paginated-api-using-javascript-async-generators/", "published_at": "2023-06-26T09:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562dd32ecb", "title": "What’s so great about functional programming anyway?", "url": "https://jrsinclair.com/articles/2022/whats-so-great-about-functional-programming-anyway/", "published_at": "2022-11-14T09:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562e4dc19a", "title": "Why would anyone need JavaScript generator functions?", "url": "https://jrsinclair.com/articles/2022/why-would-anyone-need-javascript-generator-functions/", "published_at": "2022-11-07T11:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562efa0f54", "title": "What if the team assumes my functional JavaScript is slow?", "url": "https://jrsinclair.com/articles/2022/what-if-the-team-assumes-my-functional-javascript-is-slow/", "published_at": "2022-10-26T08:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562f0060b1", "title": "What if the team hates my functional code?", "url": "https://jrsinclair.com/articles/2022/what-if-the-team-hates-my-functional-code/", "published_at": "2022-10-18T08:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562f339353", "title": "JavaScript function composition: What’s the big deal?", "url": "https://jrsinclair.com/articles/2022/javascript-function-composition-whats-the-big-deal/", "published_at": "2022-04-10T08:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9562f8e93e3", "title": "How not to write property tests in JavaScript", "url": "https://jrsinclair.com/articles/2021/how-not-to-write-property-tests-in-javascript/", "published_at": "2021-11-21T22:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b9563076d594", "title": "How to get started with property-based testing in JavaScript using fast-check", "url": "https://jrsinclair.com/articles/2021/how-to-get-started-with-property-based-testing-in-javascript-with-fast-check/", "published_at": "2021-11-15T07:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b95631764e0a", "title": "Rethinking the JavaScript ternary operator", "url": "https://jrsinclair.com/articles/2021/rethinking-the-javascript-ternary-operator/", "published_at": "2021-03-15T05:30:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b95632745107", "title": "Sick of the stupid jokes? Write your own arbitrary-precision JavaScript math library", "url": "https://jrsinclair.com/articles/2020/sick-of-the-jokes-write-your-own-arbitrary-precision-javascript-math-library/", "published_at": "2020-11-30T12:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b95632b4cd43", "title": "Remote teams and the half-life of social capital", "url": "https://jrsinclair.com/articles/2020/remote-work-and-the-half-life-of-social-capital/", "published_at": "2020-08-11T04:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b956336c0c3f", "title": "The Algebraic Structure of Functions, illustrated using React components", "url": "https://jrsinclair.com/articles/2020/algebraic-structure-of-functions-illustrated-with-react-components/", "published_at": "2020-04-13T10:00:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b95633fc9e0e", "title": "How to write things people actually want to read", "url": "https://jrsinclair.com/articles/2020/how-to-write-things-people-want-to-read/", "published_at": "2020-02-17T02:31:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b956347deb4c", "title": "What’s more fantastic than fantasy land? An Introduction to Static land", "url": "https://jrsinclair.com/articles/2020/whats-more-fantastic-than-fantasy-land-static-land/", "published_at": "2020-01-29T09:31:00+00:00" }, { "id": "01a08791-d8c2-7296-8f7e-b95634cdc39d", "title": "Algebraic Data Types: Things I wish someone had explained about functional programming", "url": "https://jrsinclair.com/articles/2019/algebraic-data-types-what-i-wish-someone-had-explained-about-functional-programming/", "published_at": "2019-11-19T10:20:00+00:00" } ] posts Claim your blog
Back to jrsinclair.com
Blog · corpus.blog/blogs/jrsinclair.com/posts

jrsinclair.com

jrsinclair.com

2025

2024

2023

2022

2021

2020

2019