[{"permalink":"https://kevinquinn.fun/blog/iceland-trip-2026/","title":"Iceland Trip 2026"},{"permalink":"https://kevinquinn.fun/blog/my-flight-tracker/","title":"Turns Out I Didn't Need AI to Build My Flight Tracker"},{"permalink":"https://kevinquinn.fun/blog/my-approach-to-agent-skills/","title":"My approach to Agent Skills: Occam's Razor"},{"permalink":"https://kevinquinn.fun/blog/todo-system-mar-2026/","title":"My most recent iteration of todo-list system with TickTick"},{"permalink":"https://kevinquinn.fun/blog/is-it-really-my-project-if-ai/","title":"Is it really my project if AI wrote it?"},{"permalink":"https://kevinquinn.fun/blog/live-near-your-friends/","title":"Adults Should Live Next To Their Friends"},{"permalink":"https://kevinquinn.fun/blog/docs-nerds-strength/","title":"Being a docs nerd is a strength in the age of LLMs"},{"permalink":"https://kevinquinn.fun/blog/consuming-vs-internalizing/","title":"Consuming Ideas Won't Internalize Them"},{"permalink":"https://kevinquinn.fun/blog/windsurf-skeptics/","title":"A Skeptics Review of Windsurf for Other Skeptics"},{"permalink":"https://kevinquinn.fun/blog/0x-developer/","title":"Don't be a 0x Developer"},{"permalink":"https://kevinquinn.fun/blog/flossing/","title":"Is Flossing Conventional Ignorance?"},{"permalink":"https://kevinquinn.fun/blog/humbled-junior-engineer/","title":"Dumpster Fires and Humble Pies: A Junior Engineer’s Tale"},{"permalink":"https://kevinquinn.fun/blog/charisma/","title":"How NOT to be Charismatic"},{"permalink":"https://kevinquinn.fun/blog/company-values/","title":"My Ideal Company Values"},{"permalink":"https://kevinquinn.fun/blog/good-software-isnt-afraid-of-pumpkins/","title":"Good software isn't afraid of pumpkins"},{"permalink":"https://kevinquinn.fun/blog/niche-programming-languages/","title":"Niche Single-Purpose Programming Languages"},{"permalink":"https://kevinquinn.fun/blog/going-alcohol-free/","title":"2 sinks, 1 toilet, 0 alcohol"},{"permalink":"https://kevinquinn.fun/blog/data-removal-tools-misaligned-incentives/","title":"Data Removal Services Are TurboTax"},{"permalink":"https://kevinquinn.fun/blog/steelmanning-sidewalk-poopers/","title":"Steelmanning Sidewalk Poopers"},{"permalink":"https://kevinquinn.fun/blog/removing-blog-analytics/","title":"Removing Analytics to Rediscover Writing"},{"permalink":"https://kevinquinn.fun/blog/lack-of-system/","title":"The Lack of a System is Still a System"},{"permalink":"https://kevinquinn.fun/blog/institutional-knowledge/","title":"Potential Treatments for Institutional Knowledge"},{"permalink":"https://kevinquinn.fun/blog/pieter-levels/","title":"How Pieter Levels Optimizes for Freedom"},{"permalink":"https://kevinquinn.fun/blog/the-man-in-the-arena-has-glowing-fingers/","title":"The Man in the Arena has Glowing Fingers"},{"permalink":"https://kevinquinn.fun/blog/learning-platform-risk-the-hard-way/","title":"Learning Platform Risk the Hard Way - Lessons from Workflow Buddy's Demise"},{"permalink":"https://kevinquinn.fun/blog/relative-money-and-starbucks/","title":"Relative Money and Starbucks"},{"permalink":"https://kevinquinn.fun/blog/enterprise-patterns-in-side-projects-mistake/","title":"I Built my Side Projects Like Enterprise Software and Regretted It"},{"permalink":"https://kevinquinn.fun/blog/exploring-data-structures-in-the-real-world-dns-denylists/","title":"Exploring Data Structures in the Real World: DNS Denylists"},{"permalink":"https://kevinquinn.fun/blog/confessions-of-everyday-software-engineers/","title":"Confessions of Everyday Software Engineers"},{"permalink":"https://kevinquinn.fun/blog/venmo-wrapped/","title":"Make Your Own Venmo Wrapped"},{"permalink":"https://kevinquinn.fun/blog/quick-icebreakers-that-don-t-suck/","title":"Quick Icebreakers That Don't Suck"},{"permalink":"https://kevinquinn.fun/blog/a-real-world-solution-to-escape-embedded-double-quotes-in-json/","title":"A Real-World Solution to Escape Embedded Double Quotes in JSON"},{"permalink":"https://kevinquinn.fun/blog/how-to-self-host-n8n-on-fly/","title":"How to Self-Host n8n on Fly.io"},{"permalink":"https://kevinquinn.fun/blog/how-your-take-home-pay-varies-by-state/","title":"How Your Take-home Pay Varies By State"},{"permalink":"https://kevinquinn.fun/blog/javascript-calculator-stripes-graduated-pricing/","title":"Write a Javascript Cost Calculator for Stripe's Graduated Pricing"},{"permalink":"https://kevinquinn.fun/blog/how-to-self-host-actual-budget-on-fly/","title":"How to Self-Host Actual Budget on Fly.io"},{"permalink":"https://kevinquinn.fun/blog/how-to-self-host-nocodb-on-fly/","title":"How to Self-Host NocoDB on Fly.io"},{"permalink":"https://kevinquinn.fun/blog/automate-recurring-venmo-payments-with-github-actions-and-ifttt/","title":"Automate Recurring Venmo Payments with Github Actions and IFTTT"},{"permalink":"https://kevinquinn.fun/blog/missing-from-cs-program/","title":"What My CS Program Didn't Teach"},{"permalink":"https://kevinquinn.fun/blog/advice-for-college-cs-students/","title":"Remove Friction from Your Career: Advice for Students Starting College CS Programs"},{"permalink":"https://kevinquinn.fun/blog/tech-company-careers-without-coding/","title":"Tech Company Careers Without Coding in 2022"},{"permalink":"https://kevinquinn.fun/blog/sales-all-the-way-down/","title":"Software Engineering: It's Sales All the Way Down"},{"permalink":"https://kevinquinn.fun/blog/beating-half-baked-project-syndrome/","title":"Beating Half-Baked Project Syndrome"},{"permalink":"https://kevinquinn.fun/blog/clock-is-tickin/","title":"Clock is Tickin’"},{"permalink":"https://kevinquinn.fun/blog/creating-pages-from-data-programmatically-for-hugo/","title":"Creating Pages from Data Programmatically for Hugo"},{"permalink":"https://kevinquinn.fun/blog/creator-trapped-in-a-consumer-body/","title":"Creator Trapped in a Consumer Body"},{"permalink":"https://kevinquinn.fun/blog/de-google-yourself-without-cutting-cold-turkey/","title":"De-Google Yourself Without Cutting Cold Turkey"},{"permalink":"https://kevinquinn.fun/blog/don-t-hoard-your-best-writing-ideas-for-the-future/","title":"Don’t Hoard Your Best Writing Ideas for The Future"},{"permalink":"https://kevinquinn.fun/blog/exploring-my-talent-stack/","title":"Exploring My Talent Stack"},{"permalink":"https://kevinquinn.fun/blog/make-your-non-techy-friends-safer-online-in-under-an-hour/","title":"Make Your Non-Techy Friends Safer Online in Under an Hour"},{"permalink":"https://kevinquinn.fun/blog/not-to-do-list/","title":"Not-To-Do List"},{"permalink":"https://kevinquinn.fun/blog/on-the-importance-of-maintaining-a-toolkit/","title":"On the Importance of Maintaining a Toolkit"},{"permalink":"https://kevinquinn.fun/blog/rethinking-the-default-resume-sections/","title":"Rethinking the Default Resume Sections"},{"permalink":"https://kevinquinn.fun/blog/stop-asking-for-advice/","title":"Stop Asking for Advice"},{"permalink":"https://kevinquinn.fun/blog/stop-looking-for-shortcuts-just-do-the-work/","title":"Stop Looking for Shortcuts \u0026 Just Do the Work"},{"permalink":"https://kevinquinn.fun/blog/tracking-habits-building-habits/","title":"Tracking Habits ≠ Building Habits"},{"permalink":"https://kevinquinn.fun/blog/what-would-you-do-with-an-extra-500-hours/","title":"What Would You do With an Extra 500 Hours?"},{"permalink":"https://kevinquinn.fun/blog/why-do-we-hide-failures-but-celebrate-degrees/","title":"Why Do We Hide Failures But Celebrate Degrees"},{"permalink":"https://kevinquinn.fun/blog/obsidian-plugins-for-the-casual-user/","title":"Obsidian Plugins for the Casual User"},{"permalink":"https://kevinquinn.fun/blog/sourcegraph/","title":"A Bull Case for Sourcegraph's Potential"},{"permalink":"https://kevinquinn.fun/blog/how-to-build-tools-developers-love/","title":"How to Build Tools Developers Love"},{"permalink":"https://kevinquinn.fun/blog/product-ideas-blink/","title":"Product Ideas: Find Anything at Work as Quick as Googling"},{"permalink":"https://kevinquinn.fun/blog/reflecting-on-my-failure-to-build-a-one-dollar-company/","title":"Reflecting on my Failure to Build a One-Dollar Company"},{"permalink":"https://kevinquinn.fun/blog/debugging-without-a-razor/","title":"Debugging Without a Razor"},{"permalink":"https://kevinquinn.fun/blog/creator-tunnel-vision/","title":"Creator Tunnel Vision"},{"permalink":"https://kevinquinn.fun/blog/just-for-the-hell-of-it/","title":"Just for the Hell of it: Fun, not Profit"},{"permalink":"https://kevinquinn.fun/blog/avoiding-work-to-retain-the-possibility-of-perfection/","title":"Avoiding work to retain the possibility of perfection"},{"permalink":"https://kevinquinn.fun/blog/life-has-no-speed-limits/","title":"Life Has No Speed Limits"},{"permalink":"https://kevinquinn.fun/blog/personalize-your-development-environment-with-dotfiles/","title":"Personalize your Development Environment with Dotfiles"},{"permalink":"https://kevinquinn.fun/blog/set-up-pi-hole-ad-blocker-on-raspberry-pi-zero-with-a-netgear-router/","title":"Set Up Pi-hole Ad Blocker on Raspberry Pi Zero with a Netgear Router"},{"permalink":"https://kevinquinn.fun/blog/get-started-with-obsidian-periodic-notes-and-templater/","title":"Get Started With Obsidian Periodic Notes and Templater"},{"permalink":"https://kevinquinn.fun/blog/manage-multiple-python-versions-with-docker-an-alternative-to-pyenv/","title":"Manage Multiple Python Versions With Docker: an Alternative to Pyenv"},{"permalink":"https://kevinquinn.fun/blog/personal-theme-completion-26/","title":"Personal Theme: Completion 26"},{"permalink":"https://kevinquinn.fun/blog/year-in-review-reflecting-on-25/","title":"Year in Review: Reflecting On 25"},{"permalink":"https://kevinquinn.fun/blog/cameo/","title":"What Could Cameo Do Next?"},{"permalink":"https://kevinquinn.fun/blog/the-best-advice-i-ve-ever-received/","title":"The Best Advice I've Ever Received"},{"permalink":"https://kevinquinn.fun/blog/7-things-great-developers-say-no-to/","title":"7 Blunders Great Developers Say 'No' To"},{"permalink":"https://kevinquinn.fun/blog/fighting-procrastination-with-accountability/","title":"Fighting Procrastination with Accountability"},{"permalink":"https://kevinquinn.fun/blog/path-to-a-better-writer/","title":"Path to a Better Writer"},{"permalink":"https://kevinquinn.fun/blog/giving-ballerina-lang-a-twirl/","title":"Giving Ballerina Lang a Twirl"},{"permalink":"https://kevinquinn.fun/blog/how-ballerina-lang-can-improve-their-developer-experience-adoption/","title":"How Ballerina Lang can Improve their Developer Experience \u0026 Adoption"},{"permalink":"https://kevinquinn.fun/blog/my-productivity-system-snapshot-dec-2020/","title":"My Productivity System Snapshot: Dec 2020"},{"permalink":"https://kevinquinn.fun/blog/why-no-code-is-a-godsend-for-developers/","title":"Why No-code is a Godsend for Developers"},{"permalink":"https://kevinquinn.fun/blog/stop-wasting-time-on-the-small-potatoes-decisions/","title":"Stop Wasting Time on The Small Potatoes Decisions"},{"permalink":"https://kevinquinn.fun/blog/how-many-customers-does-a-successful-side-hustle-need-just-99/","title":"How Many Customers Does a Successful Side Hustle Need? Just 99."},{"permalink":"https://kevinquinn.fun/blog/starting-from-zero/","title":"Starting from Zero"},{"permalink":"https://kevinquinn.fun/blog/you-have-permission-to-write/","title":"You Have Permission to Write"},{"permalink":"https://kevinquinn.fun/blog/fixing-the-major-flaw-of-apple-screen-time/","title":"Fixing the major flaw of Apple Screen Time"},{"permalink":"https://kevinquinn.fun/blog/365-ways-to-make-progress-towards-your-life-goals/","title":"365 Ways to Make Progress Towards Your Life Goals"},{"permalink":"https://kevinquinn.fun/blog/coding-is-dangerous-for-developers/","title":"Coding is Dangerous for Developers"},{"permalink":"https://kevinquinn.fun/blog/the-ideal-life-gap/","title":"The Ideal Life Gap"},{"permalink":"https://kevinquinn.fun/blog/a-user-friendly-way-to-get-data-over-sms/","title":"A User-Friendly Way to get Data over SMS"},{"permalink":"https://kevinquinn.fun/blog/the-frustrating-users-guide-to-slack/","title":"The Frustrating User's Guide to Slack"},{"permalink":"https://kevinquinn.fun/blog/madtown-deals/","title":"Madtown Deals"},{"permalink":"https://kevinquinn.fun/blog/gymnastics-text-is-functional/","title":"Gymnastics Text is Functional!"},{"permalink":"https://kevinquinn.fun/blog/shut-your-pihole/","title":"Shut your PiHole!"},{"permalink":"https://kevinquinn.fun/blog/hackathon-schmackathon/","title":"Hackathon Schmackathon"},{"permalink":"https://kevinquinn.fun/blog/out-of-context/","title":"Out of Context"},{"permalink":"https://kevinquinn.fun/blog/windows-why-you-do-this/","title":"Windows, Why You Do This??"},{"permalink":"https://kevinquinn.fun/blog/text-me-maybe/","title":"Text Me Maybe"},{"permalink":"https://kevinquinn.fun/blog/docker-i-hardly-know-her/","title":"Docker? I Hardly Know Her!"},{"permalink":"https://kevinquinn.fun/blog/killing-the-daemon/","title":"Killing the Daemon"},{"permalink":"https://kevinquinn.fun/blog/so-you-think-you-can-pxe/","title":"So you think you can PXE?"},{"permalink":"https://kevinquinn.fun/blog/the-beginning/","title":"The Beginning"}]