41554 blogs · [ { "id": "01a08791-01db-71b7-9710-48ba2b8a3f61", "title": "Building a Pokemon API in Rust", "url": "https://www.joshfinnie.com/blog/pokemon-api/", "published_at": "2026-08-31T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2b908881", "title": "Fixing My JSON-LD, Two Years Later", "url": "https://www.joshfinnie.com/blog/fixing-my-json-ld-two-years-later/", "published_at": "2026-08-28T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2bcd4a4b", "title": "I Gave Up tmux and Zellij for Herdr", "url": "https://www.joshfinnie.com/blog/switching-to-herdr/", "published_at": "2026-08-06T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2c7bc674", "title": "What Impeccable Found When I Pointed It at My Own Blog", "url": "https://www.joshfinnie.com/blog/what-impeccable-found-on-my-blog/", "published_at": "2026-07-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2d70a9a1", "title": "Deleting My Copy-Code Component for Expressive Code", "url": "https://www.joshfinnie.com/blog/from-copy-code-to-expressive-code/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2dc05ca4", "title": "Trading ESLint and Prettier for Biome", "url": "https://www.joshfinnie.com/blog/from-eslint-and-prettier-to-biome/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2ea43a0f", "title": "Setting Up the standard.site Protocol on This Blog", "url": "https://www.joshfinnie.com/blog/setting-up-standard-site/", "published_at": "2026-06-15T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2eb0bbdd", "title": "The XTEINK X4 Gets Good the Moment You Wipe It", "url": "https://www.joshfinnie.com/blog/xteink-x4-gets-good/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2f9f1c72", "title": "I Built a Terminal Diff Viewer for Working with Claude Code", "url": "https://www.joshfinnie.com/blog/introducing-diffai/", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba2fb0ad35", "title": "What I Put in Every Go SaaS Before Writing a Single Feature", "url": "https://www.joshfinnie.com/blog/building-a-go-saas-skeleton/", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3086e7f6", "title": "Product Ready Full Stack Rust", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-6/", "published_at": "2026-04-24T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba309606de", "title": "Front End Development with Yew.rs", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-5/", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba312a2adf", "title": "Django Authentication & Deployment", "url": "https://www.joshfinnie.com/blog/django-authentication-and-deployment/", "published_at": "2026-04-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba31a7daac", "title": "Building a Cozy Terminal Fire in Rust", "url": "https://www.joshfinnie.com/blog/building-a-cozy-terminal-fire-in-rust/", "published_at": "2026-04-10T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3277e460", "title": "Authentication in a Full-Stack Rust", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-4/", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3295e9c8", "title": "Django Views & Templates", "url": "https://www.joshfinnie.com/blog/django-views-and-templates/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba32f8bbc1", "title": "Error Handling & Validation in Rust", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-3/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba33c66574", "title": "Models & the Django Admin", "url": "https://www.joshfinnie.com/blog/models-and-the-django-admin/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba348d3687", "title": "You Can't Afford a House, But Sure, Blame the Avocado Toast", "url": "https://www.joshfinnie.com/blog/you-cant-afford-a-house/", "published_at": "2026-03-23T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba357376d3", "title": "Why Is It So Hard to Find a Software Engineering Job Right Now?", "url": "https://www.joshfinnie.com/blog/why-is-it-so-hard-to-find-a-job/", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3575fe22", "title": "Persisting Data with sqlx and SQLite", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-2/", "published_at": "2026-03-14T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba36144913", "title": "Creating Your First Django Project", "url": "https://www.joshfinnie.com/blog/creating-your-first-django-project/", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba37021f4f", "title": "Writing Python Docstrings Effectively", "url": "https://www.joshfinnie.com/blog/writing-python-docstrings-effectively/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba371d5183", "title": "Setting Up AWS SES with a Custom Domain", "url": "https://www.joshfinnie.com/blog/setting-up-aws-ses-with-custom-domain/", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba380eae62", "title": "Adding a Copy Code Button to My Astro Blog", "url": "https://www.joshfinnie.com/blog/adding-copy-code-to-astro/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba383e8b57", "title": "Building a Full-Stack Rust Application", "url": "https://www.joshfinnie.com/blog/full-stack-rust-part-1/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba38f01dfe", "title": "Getting Started with Python for Web Development", "url": "https://www.joshfinnie.com/blog/getting-started-with-python-for-web-development/", "published_at": "2026-01-09T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba39219138", "title": "My Top 20 Albums of 2025", "url": "https://www.joshfinnie.com/blog/top-20-albums-2025/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba39eaf73d", "title": "MIT's $1.2 Trillion Iceberg", "url": "https://www.joshfinnie.com/blog/mit-iceberg-index-11-percent-workforce/", "published_at": "2025-11-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3a7d79fc", "title": "Why I Switched From Tex Live to Tectonic", "url": "https://www.joshfinnie.com/blog/why-i-switched-to-tectonic/", "published_at": "2025-11-17T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3b121acb", "title": "The Fatal Flaw in Silicon Valley's AI Gold Rush", "url": "https://www.joshfinnie.com/blog/the-fatal-flaw-in-silicon-valleys-ai-gold-rush/", "published_at": "2025-11-15T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3b4826fe", "title": "Amazon's AI Layoffs: A Marxist Analysis of Automation and Class Power", "url": "https://www.joshfinnie.com/blog/amazons-ai-layoff/", "published_at": "2025-11-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3c15a6e9", "title": "ASTs Explained: How Abstract Syntax Trees Fix the Chaos of Resume Parsing", "url": "https://www.joshfinnie.com/blog/asts-for-resume-parsing-and-generation/", "published_at": "2025-10-14T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3c7f8b39", "title": "Rubber Duck Debugging: The Simplest Developer Tool You Are Not Using Enough", "url": "https://www.joshfinnie.com/blog/rubber-duck-debugging/", "published_at": "2025-09-05T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3d20a4b5", "title": "Building a Word Count Tool in Rust: Step-By-Step", "url": "https://www.joshfinnie.com/blog/building-wc-in-rust/", "published_at": "2025-06-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3da033ef", "title": "FastAPI and React in 2025", "url": "https://www.joshfinnie.com/blog/fastapi-and-react-in-2025/", "published_at": "2025-06-18T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3e40a5d4", "title": "Revealing Gender Bias in AI Models", "url": "https://www.joshfinnie.com/blog/revealing-gender-bias-in-ai-models/", "published_at": "2025-01-29T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3edab959", "title": "15 Years of Blogging", "url": "https://www.joshfinnie.com/blog/15-years-of-blogging/", "published_at": "2025-01-12T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3f20ea24", "title": "Music of 2024", "url": "https://www.joshfinnie.com/blog/music-of-2024/", "published_at": "2024-12-31T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3f317e05", "title": "Adding ESLint & Prettier to My Blog", "url": "https://www.joshfinnie.com/blog/adding-eslint-and-prettier-to-my-blog/", "published_at": "2024-12-02T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba3ff245f6", "title": "Review of Buildspace Nights & Weekends", "url": "https://www.joshfinnie.com/blog/review-of-buildspace-nights-weekends/", "published_at": "2024-08-29T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba40b77e44", "title": "Adding json-ld To My Blog", "url": "https://www.joshfinnie.com/blog/adding-json-ld-to-my-blog/", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba412f1ac6", "title": "Trying out HTMX with Rust", "url": "https://www.joshfinnie.com/blog/trying-out-htmx-with-rust/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba41985ad9", "title": "Switching to PNPM for Everything Node.js?", "url": "https://www.joshfinnie.com/blog/switching-to-pnpm-for-everything-nodejs/", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba425d48b5", "title": "Unleashing the Power of Python Collections", "url": "https://www.joshfinnie.com/blog/unleashing-the-power-of-python-collections/", "published_at": "2023-11-17T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba42f56cfb", "title": "Creating a vCard QR Code in Python", "url": "https://www.joshfinnie.com/blog/creating-a-vcard-qr-code-in-python/", "published_at": "2023-11-08T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba43bc2da8", "title": "24 Hours with Threads by Instagram", "url": "https://www.joshfinnie.com/blog/24-hours-with-threads/", "published_at": "2023-07-06T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4468fa18", "title": "Follow Up: Building a Command-Line Application in Rust", "url": "https://www.joshfinnie.com/blog/follow-up-a-command-line-application-in-rust/", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba44b073e0", "title": "A Quick Review of Spotify's AI DJ", "url": "https://www.joshfinnie.com/blog/a-quick-review-of-spotify-ai-dj/", "published_at": "2023-06-29T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4591accc", "title": "Astro Experimental Image and MDX Update", "url": "https://www.joshfinnie.com/blog/astro-experimental-image-and-mdx-update/", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4684f2ea", "title": "My 2023 Job Search Journey", "url": "https://www.joshfinnie.com/blog/my-2023-job-search-journey/", "published_at": "2023-06-07T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba47838cb1", "title": "Creating a \"Similar Posts\" Component in Astro.js", "url": "https://www.joshfinnie.com/blog/creating-a-similar-posts-component-in-astrojs/", "published_at": "2023-02-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba478d7bf0", "title": "Taking a Look at Astro 2.0", "url": "https://www.joshfinnie.com/blog/taking-a-look-at-astro-2/", "published_at": "2023-01-31T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba47fb6c67", "title": "Building a Command-Line Application in Rust", "url": "https://www.joshfinnie.com/blog/a-command-line-application-in-rust/", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4809a5c9", "title": "Why participate in Advent of Code (2022)?", "url": "https://www.joshfinnie.com/blog/why-participate-in-advent-of-code-2022/", "published_at": "2022-11-30T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba48e9fbfb", "title": "Leaving Twitter for Mastodon", "url": "https://www.joshfinnie.com/blog/leaving-twitter-for-mastodon/", "published_at": "2022-11-15T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba49144e88", "title": "An Obit for Heroku", "url": "https://www.joshfinnie.com/blog/obit-for-heroku/", "published_at": "2022-09-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba49c79383", "title": "Chrome Extensions I Use in 2022", "url": "https://www.joshfinnie.com/blog/chrome-extensions-i-use-in-2022/", "published_at": "2022-07-21T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4a670b02", "title": "Set Up Flask and Restx with Docker", "url": "https://www.joshfinnie.com/blog/setup_flask_and_restx_with_docker/", "published_at": "2022-06-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4b4135c5", "title": "Moving from Oh-My-Zsh to Starship & Fish Shell", "url": "https://www.joshfinnie.com/blog/moving-from-oh-my-zsh-to-starship-and-fish-shell/", "published_at": "2022-04-05T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4b7ba493", "title": "Getting Truffle and Ganache Working with Docker", "url": "https://www.joshfinnie.com/blog/getting-truffle-and-ganache-working-with-docker/", "published_at": "2022-03-09T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4c2e6893", "title": "My 2021 Books in Review", "url": "https://www.joshfinnie.com/blog/my-2021-books-in-review/", "published_at": "2022-01-03T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4d198a32", "title": "Current Thoughts on Mobile Website Support", "url": "https://www.joshfinnie.com/blog/current-thoughts-on-mobile-website-support/", "published_at": "2021-12-28T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4e0f782c", "title": "ASDF: How To Set Up Runtimes on Windows Subsystem for Linux", "url": "https://www.joshfinnie.com/blog/setting-up-wsl-with-asdf/", "published_at": "2021-12-17T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4edaab4c", "title": "Using WebAssembly (created in Rust) for Fast React Components", "url": "https://www.joshfinnie.com/blog/using-webassembly-created-in-rust-for-fast-react-components/", "published_at": "2021-11-23T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba4fd6ea70", "title": "My Switch from Gatsby to Astro", "url": "https://www.joshfinnie.com/blog/my-switch-from-gatsby-to-astro/", "published_at": "2021-10-28T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba503f6619", "title": "Book Review: The 12 Week Year", "url": "https://www.joshfinnie.com/blog/book-review-the-12-week-year/", "published_at": "2021-09-30T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba50cd1f4a", "title": "One Year Later", "url": "https://www.joshfinnie.com/blog/one-year-later/", "published_at": "2021-03-11T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba51c3b37b", "title": "My 2020 React.js Start-up Process", "url": "https://www.joshfinnie.com/blog/my-2020-react-startup-process/", "published_at": "2020-07-08T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba51da5954", "title": "Upgrading Gatsby to Use Mdx", "url": "https://www.joshfinnie.com/blog/upgrading-gatsby-to-mdx/", "published_at": "2020-06-12T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba52c97746", "title": "Upgrading Gatsby to Use Mdx", "url": "https://www.joshfinnie.com/blog/upgrading-gatsby-to-use-mdx/", "published_at": "2020-06-12T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba535efed0", "title": "Hacktoberfest is AWESOME!", "url": "https://www.joshfinnie.com/blog/hacktoberfest-is-awesome-2/", "published_at": "2019-10-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5442a368", "title": "Using Latex Through Docker", "url": "https://www.joshfinnie.com/blog/latex-through-docker/", "published_at": "2019-09-17T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba54d26d98", "title": "My Basic isort Configuration", "url": "https://www.joshfinnie.com/blog/my-basic-isort-configuration/", "published_at": "2019-08-20T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba55303ed5", "title": "My Basic Python Dockerfile", "url": "https://www.joshfinnie.com/blog/my-basic-python-dockerfile/", "published_at": "2019-06-06T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba55e0f9c8", "title": "Setting up SSL for www.joshfinnie.com", "url": "https://www.joshfinnie.com/blog/setting-up-ssl-for-wwwjoshfinniecom/", "published_at": "2018-05-21T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba56780fc1", "title": "My Coffee Setup (2018)", "url": "https://www.joshfinnie.com/blog/my-coffee-setup/", "published_at": "2018-03-08T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba567c8c63", "title": "New Years Resolutions for 2018 and 2017 Review", "url": "https://www.joshfinnie.com/blog/new-years-resolutions-for-2018-and-2017-review/", "published_at": "2018-01-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba57159003", "title": "New Years Resolutions for 2017 and 2016 Review", "url": "https://www.joshfinnie.com/blog/new-years-resolutions-for-2017-and-2016-review/", "published_at": "2017-01-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba58138679", "title": "I Am Still Here", "url": "https://www.joshfinnie.com/blog/still-here/", "published_at": "2016-03-31T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba58731a30", "title": "New Years Resolutions for 2016 and 2015 Review", "url": "https://www.joshfinnie.com/blog/new-years-resolutions-for-2016-and-2015-review/", "published_at": "2016-01-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba587a80f7", "title": "React.js Tutorial Part 4", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-4/", "published_at": "2015-09-16T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba58c41016", "title": "React.js Tutorial Part (Interlude 2)", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-interlude-2/", "published_at": "2015-08-10T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba59597f88", "title": "React.js Tutorial Part 3", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-3/", "published_at": "2015-04-05T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5991a114", "title": "React.js Tutorial Part (Interlude)", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-interlude/", "published_at": "2015-03-08T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba59ed0455", "title": "React.js Tutorial Part 2", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-2/", "published_at": "2015-02-04T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5a350d81", "title": "2014 In Review", "url": "https://www.joshfinnie.com/blog/2014-in-review/", "published_at": "2015-02-01T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5ae8e357", "title": "React.js Tutorial Part 1", "url": "https://www.joshfinnie.com/blog/reactjs-tutorial-part-1/", "published_at": "2015-01-10T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5ba70e05", "title": "New Years Resolutions for 2015 and 2014 Review", "url": "https://www.joshfinnie.com/blog/new-years-resolutions-for-2015-and-2014-review/", "published_at": "2015-01-04T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5c245428", "title": "WTF Recruiters - Take 2", "url": "https://www.joshfinnie.com/blog/wtf-recruiters-take-2/", "published_at": "2014-12-19T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5d02103b", "title": "NodeSchool @ NationJS Postmortem", "url": "https://www.joshfinnie.com/blog/nodeschool-at-nationjs-postmortem/", "published_at": "2014-11-21T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5d32eec6", "title": "Using Bower", "url": "https://www.joshfinnie.com/blog/using-bower/", "published_at": "2014-11-03T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5dd345d5", "title": "WTF Recruiters?", "url": "https://www.joshfinnie.com/blog/wtf-recruiters/", "published_at": "2014-09-30T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5ec7ab0c", "title": "Adding Markdown to Jade Using Node.js", "url": "https://www.joshfinnie.com/blog/adding-markdown-to-jade-using-node-js/", "published_at": "2014-09-22T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba5f5afedd", "title": "Setting Up HTTPS Security", "url": "https://www.joshfinnie.com/blog/setting-up-https-security/", "published_at": "2014-09-20T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba601b2d28", "title": "Using Pygments with Static Blogs", "url": "https://www.joshfinnie.com/blog/using-pygments-with-static-blogs/", "published_at": "2014-05-20T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba60dbcf9f", "title": "Auto-Starting Tmux in iTerm2", "url": "https://www.joshfinnie.com/blog/auto-starting-tmux-in-iterm2/", "published_at": "2014-05-16T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba619842d0", "title": "Changing the Default Screenshot Location", "url": "https://www.joshfinnie.com/blog/changing-the-default-screenshot-location/", "published_at": "2014-02-04T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba619eff33", "title": "Updating Mavericks and Postgres.app", "url": "https://www.joshfinnie.com/blog/updating-mavericks-and-postgresapp/", "published_at": "2014-01-27T00:00:00+00:00" }, { "id": "01a08791-01db-71b7-9710-48ba628dfc1e", "title": "New Years Resolutions for 2014", "url": "https://www.joshfinnie.com/blog/new-years-resolutions-for-2014/", "published_at": "2014-01-01T00:00:00+00:00" } ] posts Claim your blog
Back to joshfinnie.com
Blog · corpus.blog/blogs/joshfinnie.com/posts

joshfinnie.com

joshfinnie.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014