41554 blogs · [ { "id": "01a0876e-c9b8-7131-b1bd-94c3284b1b36", "title": "Reducing OpenClaw Token Costs with claw-llm-router", "url": "https://donnfelker.com/reducing-openclaw-token-costs-with-claw-llm-router/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a0876e-c9b9-7009-a082-7a1d9039987a", "title": "The Passive AI Learning Stack That Changed the Way I Learn", "url": "https://donnfelker.com/the-passive-ai-learning-stack-that-changed-the-way-i-learn/", "published_at": "2026-02-08T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2498942e", "title": "Learn Agentic Coding in 2 Days (and unlock a decade of productivity)", "url": "https://donnfelker.com/learn-agentic-coding-in-two-days/", "published_at": "2025-11-10T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2509767e", "title": "The Single Most Important Thing You Need as a One-Person Business to Guarantee You Get Paid", "url": "https://donnfelker.com/the-most-important-thing-you-need-get-paid-a-contract/", "published_at": "2025-08-06T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a253be70e", "title": "Vibe Coding with AI and the Future of Software", "url": "https://donnfelker.com/vibe-coding-with-ai-and-the-future-of-software/", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a256353b1", "title": "Productive LLM Coding with an llm-context.md File", "url": "https://donnfelker.com/productive-llm-coding-with-an-llm-context-md-file/", "published_at": "2025-03-24T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a25c34a80", "title": "Invisible Mentors", "url": "https://donnfelker.com/invisible-mentors/", "published_at": "2025-03-07T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a26722905", "title": "The Life Changing Magic of Doing Things For Free", "url": "https://donnfelker.com/the-life-changing-magic-of-doing-things-for-free/", "published_at": "2025-03-01T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2749777b", "title": "Done is Better Than Perfect", "url": "https://donnfelker.com/done-is-better-than-perfect/", "published_at": "2025-02-21T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a277291b2", "title": "Master the Basics", "url": "https://donnfelker.com/master-the-basics/", "published_at": "2025-02-20T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a27b4daa3", "title": "How to Backup A Digital Ocean Managed Database", "url": "https://donnfelker.com/how-to-backup-a-digital-ocean-managed-database-postgresql/", "published_at": "2025-02-19T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a28308277", "title": "Migrating from Sidekiq to Solid Queue", "url": "https://donnfelker.com/migrating-from-sidekiq-to-solid-queue/", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2890d31c", "title": "Rails ImportMap Pin with Version", "url": "https://donnfelker.com/rails-importmap-pin-with-version/", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2940d9a0", "title": "Ruby Script for Telegram Notifications", "url": "https://donnfelker.com/ruby-script-for-telegram-notifications/", "published_at": "2024-10-15T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a29e51473", "title": "The Decline Of Mobile Development", "url": "https://donnfelker.com/the-decline-of-mobile-development/", "published_at": "2024-07-25T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2a25bdd0", "title": "Obtaining More Freedom (and Money) with Freelancing", "url": "https://donnfelker.com/obtaining-more-freedom-and-money-with-freelancing/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2aaf4112", "title": "I Removed JetPack Compose from My App", "url": "https://donnfelker.com/i-removed-jetpack-compose-from-my-app/", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2b45b32d", "title": "Why Grandparents Spoil Grandchildren", "url": "https://donnfelker.com/why-grandparents-spoil-grandchildren/", "published_at": "2024-01-16T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2b633d54", "title": "Make Every Second Count: Strategies to Unleash Creativity and Success at Any Time", "url": "https://donnfelker.com/make-every-second-count/", "published_at": "2023-11-28T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2b92ca4c", "title": "Bootstrapping to 7k MRR with WordPress and No Code", "url": "https://donnfelker.com/bootstrapping-to-7k-mrr-with-wordpress/", "published_at": "2023-11-13T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2bc91c8d", "title": "Why Kotlin Multiplatform Won’t Succeed", "url": "https://donnfelker.com/why-kotlin-multiplatform-wont-succeed/", "published_at": "2023-11-06T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2c2f9636", "title": "Listomo – A New Cheaper and Easier Way To Build Your Email Lists", "url": "https://donnfelker.com/listomo-a-new-cheaper-and-easier-way-to-build-your-email-lists/", "published_at": "2023-11-01T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2ce8f5c5", "title": "Native Where You Need It (Hybrid Mobile Apps)", "url": "https://donnfelker.com/native-where-you-need-it/", "published_at": "2023-10-30T00:00:00+00:00" }, { "id": "01a0876e-c9ba-715c-9e2a-867a2db4942f", "title": "The Power of the Clarity Doc: Your Tool for Clearer Thoughts", "url": "https://donnfelker.com/the-clarity-doc/", "published_at": "2023-10-14T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b44736785f9", "title": "Bootstrapped vs. Self-Funded", "url": "https://donnfelker.com/bootstrapped-vs-self-funded/", "published_at": "2023-08-31T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b447439650a", "title": "Deploying Middleman Sites on Hatchbox", "url": "https://donnfelker.com/deploying-middleman-sites-on-hatchbox/", "published_at": "2023-08-21T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4474d38fed", "title": "Disable Attachments in the Trix Editor", "url": "https://donnfelker.com/disable-attachments-in-the-trix-editor/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4475241ee3", "title": "Opportunity Cost and Letting Go: How to Profit from Your Stalled Projects", "url": "https://donnfelker.com/opportunity-cost-and-letting-go-how-to-profit-from-your-stalled-projects/", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b44758ce28a", "title": "The 15-Minute Meeting: Change Your Workday, Change Your Life", "url": "https://donnfelker.com/the-15-minute-meeting/", "published_at": "2023-05-09T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4475f087c4", "title": "How to Migrate to Rails Encrypted Attributes", "url": "https://donnfelker.com/how-to-migrate-to-rails-encrypted-attributes/", "published_at": "2023-04-26T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4476a21270", "title": "Status Updates Should Be 60-90 Seconds", "url": "https://donnfelker.com/status-updates-should-be-60-90-seconds/", "published_at": "2023-04-10T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b44779e02d6", "title": "Building a Stronger Mind and Body: Reflections on 1000 Days of Working Out", "url": "https://donnfelker.com/i-worked-out-for-1000-days-straight/", "published_at": "2023-03-28T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4477ed6667", "title": "HowTo: Setup Tailwind CSS 3 with Middleman", "url": "https://donnfelker.com/tailwind-css-with-middleman/", "published_at": "2022-08-02T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4477fc890e", "title": "MultiTenant PgSearch: A How To", "url": "https://donnfelker.com/multitenant-pgsearch-how-to/", "published_at": "2022-03-28T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b44788a8333", "title": "PgSearch multisearch with ActionText::RichText", "url": "https://donnfelker.com/pgsearch-multisearch-with-action-text-rich-text/", "published_at": "2022-03-27T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4478c06b7b", "title": "How to Fix – NameError: uninitialized constant Vips on Heroku", "url": "https://donnfelker.com/how-to-fix-nameerror-uninitialized-constant-vips-on-heroku/", "published_at": "2022-02-10T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b44798cbbfa", "title": "Master the Essentials of Git in Under 2 Hours", "url": "https://donnfelker.com/git/", "published_at": "2021-11-20T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4479a97d56", "title": "How Often You Should Visit Your Clients", "url": "https://donnfelker.com/how-often-you-should-visit-your-clients/", "published_at": "2021-08-28T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b4479e0724e", "title": "How to Ship Side Projects 🚀", "url": "https://donnfelker.com/how-to-ship-side-projects/", "published_at": "2021-06-09T00:00:00+00:00" }, { "id": "01a0876e-c9bb-73c9-b7be-2b447aa471c5", "title": "How to increase your productivity with outsourcing and SOPs", "url": "https://donnfelker.com/increase-your-productivity-with-outsourcing-and-sops/", "published_at": "2021-06-02T00:00:00+00:00" }, { "id": "01a0876e-c9bc-71a6-81f9-074a870ca019", "title": "How to Start Freelancing If You Have Existing Responsibilities", "url": "https://donnfelker.com/how-to-start-freelancing-if-you-have-existing-responsibilities/", "published_at": "2021-05-26T00:00:00+00:00" }, { "id": "01a0876e-c9bc-71a6-81f9-074a87d4ac71", "title": "5 Freelance Estimating Tips That Will Land You More Clients", "url": "https://donnfelker.com/freelance-estimating-tips/", "published_at": "2021-05-19T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cac4eb1b", "title": "Freelancing vs Consulting", "url": "https://donnfelker.com/freelancing-vs-consulting/", "published_at": "2021-05-10T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434caf1ae15", "title": "Get Known or Get None", "url": "https://donnfelker.com/get-known-or-get-none/", "published_at": "2021-05-03T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cb6f43da", "title": "Why you need to step out of your comfort zone", "url": "https://donnfelker.com/why-you-need-to-step-out-of-your-comfort-zone/", "published_at": "2021-04-26T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cc167029", "title": "Why you should never quit too early …", "url": "https://donnfelker.com/why-you-should-never-quit-too-early/", "published_at": "2021-04-19T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cc7004b8", "title": "lvh.me Not Working (with Verzion Fios/My ISP/etc)", "url": "https://donnfelker.com/lvh-me-not-working/", "published_at": "2021-04-02T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cc7e3bbc", "title": "What Gets Measured, Gets Managed", "url": "https://donnfelker.com/what-gets-measured-gets-managed/", "published_at": "2020-12-10T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cd28eff7", "title": "You Are Not Your Creations", "url": "https://donnfelker.com/you-are-not-your-creations/", "published_at": "2020-11-10T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cd3f1801", "title": "Why Mobile is Not the Future …", "url": "https://donnfelker.com/why-mobile-is-not-the-future/", "published_at": "2020-11-02T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cd94b974", "title": "Freehold Township Logo", "url": "https://donnfelker.com/freehold-township-vector-logo/", "published_at": "2020-10-06T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cda515af", "title": "Code Comments", "url": "https://donnfelker.com/code-comments/", "published_at": "2019-10-25T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434ce62e48a", "title": "Dagger Open JDK Version Mismatch", "url": "https://donnfelker.com/dagger-open-jdk-version-mismatch/", "published_at": "2019-10-25T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434cf5e5719", "title": "How To Fix: Jest Did Not Exit", "url": "https://donnfelker.com/fixing-jest-did-not-exit-issue/", "published_at": "2019-10-23T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d04268a4", "title": "Fix: Deploying Docker Instances to AWS Elastic Beanstalk without Default VPC", "url": "https://donnfelker.com/fix-deploying-docker-instances-to-aws-elastic-beanstalk-without-default-vpc/", "published_at": "2019-08-21T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d0bee27a", "title": "Flutter Just Might Work", "url": "https://donnfelker.com/flutter-just-might-work/", "published_at": "2019-05-23T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d11a21ee", "title": "What Blog Platform Should I Use?", "url": "https://donnfelker.com/what-blog-platform-should-i-use/", "published_at": "2019-05-09T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d1d98733", "title": "Podcast Equipment and Software", "url": "https://donnfelker.com/podcasting/", "published_at": "2019-04-28T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d2a3f5eb", "title": "You Need a Blog", "url": "https://donnfelker.com/you-need-a-blog/", "published_at": "2019-03-18T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d2dc6381", "title": "That One Person", "url": "https://donnfelker.com/that-one-person/", "published_at": "2019-02-27T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d35e2902", "title": "Achieving Your Goals Feels Good", "url": "https://donnfelker.com/achieving-your-goals-feels-good/", "published_at": "2019-02-19T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d45c09f2", "title": "Being Absent While Being Present (don’t do this)", "url": "https://donnfelker.com/being-absent-while-being-present/", "published_at": "2019-02-10T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d4f3401a", "title": "Light Therapy", "url": "https://donnfelker.com/light-therapy/", "published_at": "2019-01-07T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d54bb864", "title": "VSCode New File Shortcut Stops Working", "url": "https://donnfelker.com/vscode-new-file-shortcut-stops-working/", "published_at": "2018-11-29T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d6125d57", "title": "Looking for an Android Job?", "url": "https://donnfelker.com/looking-for-an-android-job/", "published_at": "2018-09-24T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d6fcaba5", "title": "Pixel 2 and ADB Not Connecting", "url": "https://donnfelker.com/pixel-2-and-adb-not-connecting/", "published_at": "2018-06-28T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d6fda059", "title": "WP Markdown Themes for Google Code Prettify", "url": "https://donnfelker.com/wp-markdown-themes-for-google-code-prettify/", "published_at": "2018-06-05T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d7b446f5", "title": "Your First Test: The Launch Test", "url": "https://donnfelker.com/your-first-test-the-launch-test/", "published_at": "2018-03-06T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d83d1fd2", "title": "I Don’t Have Time is a Myth", "url": "https://donnfelker.com/i-dont-have-time-is-a-myth/", "published_at": "2017-11-06T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d8644d60", "title": "Android MVVM with DataBinding – Removing Logic from Your Views with BindingAdapters", "url": "https://donnfelker.com/android-mvvm-with-databinding-removing-logic-from-your-views-with-bindingadapters/", "published_at": "2017-10-20T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d87817ee", "title": "Make the Most of Your Time", "url": "https://donnfelker.com/make-the-most-of-your-time/", "published_at": "2017-09-14T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d8b92245", "title": "TDD Your UI Layer – #uitestsmatter", "url": "https://donnfelker.com/tdd-your-ui-layer/", "published_at": "2017-01-24T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d9950f89", "title": "Automating Screenshots: Simplifying Internationalization on Android", "url": "https://donnfelker.com/simplifying-internationalization-on-android/", "published_at": "2016-02-11T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d9d184a8", "title": "The Three Buckets (The Rule of Thirds)", "url": "https://donnfelker.com/the-rule-of-thirds/", "published_at": "2016-02-05T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434d9df8df6", "title": "Why Podcasts Have Become Popular", "url": "https://donnfelker.com/why-podcasts-have-become-popular/", "published_at": "2016-01-03T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434da8dfe6e", "title": "Staying Sane and Productive While Working Remotely", "url": "https://donnfelker.com/working-remotely-tips/", "published_at": "2015-12-30T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434daebdba9", "title": "Genymotion Will Not Start Virtual Device", "url": "https://donnfelker.com/genymotion-will-not-start-virtual-device/", "published_at": "2015-12-18T00:00:00+00:00" }, { "id": "01a0876e-c9bd-70a8-8e65-5434db2fef19", "title": "Killing Your Project Quietly – The NIH Assassin", "url": "https://donnfelker.com/killing-your-project-quietly-the-nih-assassin/", "published_at": "2015-12-09T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6b90ae1f", "title": "Standing Desk – Three Years Later", "url": "https://donnfelker.com/standing-desk-three-years-later/", "published_at": "2015-11-23T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6c4e6b80", "title": "You Need a Status Page", "url": "https://donnfelker.com/you-need-a-status-page/", "published_at": "2015-11-10T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6c9febd5", "title": "Free Android Development Videos", "url": "https://donnfelker.com/free-android-development-videos/", "published_at": "2015-10-27T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6d0d4fd7", "title": "RxJava with AIDL Services", "url": "https://donnfelker.com/rxjava-with-aidl-services/", "published_at": "2015-09-08T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6d78ccb6", "title": "Quick and Easy StateListDrawables in Android with ONE PNG", "url": "https://donnfelker.com/quick-and-easy-statelistdrawables-in-android-with-one-png/", "published_at": "2015-06-29T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6d9c9255", "title": "Why You Should Use a GIT SHA in Your Crash Reporting", "url": "https://donnfelker.com/why-you-should-use-a-git-sha-in-your-crash-reporting/", "published_at": "2015-06-24T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6e597066", "title": "A Stereotypical Day", "url": "https://donnfelker.com/a-stereotypical-day/", "published_at": "2015-05-19T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6e8667e2", "title": "The Single Best Thing You Can Do For Your Career", "url": "https://donnfelker.com/the-single-best-thing-you-can-do-for-your-career/", "published_at": "2015-04-02T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead6f739103", "title": "RxJava with Dan Lew", "url": "https://donnfelker.com/rxjava-with-dan-lew/", "published_at": "2015-04-01T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead704e73b1", "title": "Fragmented Podcast Episode 2", "url": "https://donnfelker.com/fragmented-podcast-episode-2/", "published_at": "2015-03-03T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead712ff68f", "title": "Learning To Program Sucks", "url": "https://donnfelker.com/learning-program-sucks/", "published_at": "2015-02-25T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead71a466c7", "title": "Announcing Fragmented – A Podcast for Android Developers", "url": "https://donnfelker.com/announcing-fragmented-podcast-android-developers/", "published_at": "2015-02-20T00:00:00+00:00" }, { "id": "01a0876e-c9be-7232-9731-dead720c21a8", "title": "Is Google IO Worth It?", "url": "https://donnfelker.com/is-google-io-worth-it/", "published_at": "2015-02-16T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2b4d951a", "title": "3 Things You Can Do To Improve Your Quality of Life On Social Media", "url": "https://donnfelker.com/3-things-you-can-do-to-improve-your-quality-of-life-on-social-media/", "published_at": "2015-02-06T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2b825152", "title": "It Ships. It’s Profitable. It’s Important.", "url": "https://donnfelker.com/it-ships-its-profitable-its-important/", "published_at": "2015-01-21T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2c812443", "title": "Android Studio Espresso 2.0 ClassNotFoundException", "url": "https://donnfelker.com/android-studio-espresso-2-0-classnotfoundexception/", "published_at": "2015-01-13T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2cf41cec", "title": "Diff Before Commit", "url": "https://donnfelker.com/diff-commit/", "published_at": "2014-12-08T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2dc641ee", "title": "Three of the Best Audio Purchases I’ve Ever Made", "url": "https://donnfelker.com/three-best-audio-purchases-ive-ever-made/", "published_at": "2014-08-27T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2e3e0f95", "title": "Why I Use Crashlytics – Part 2", "url": "https://donnfelker.com/why-i-use-crashlytics-part-2/", "published_at": "2014-08-14T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2ec9f113", "title": "Why I Use Crashlytics", "url": "https://donnfelker.com/why-i-use-crashlytics/", "published_at": "2014-07-23T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a2f892df7", "title": "Your Desk Job is Killing You and Your Posture Sucks", "url": "https://donnfelker.com/your-desk-job-is-killing-you-and-your-posture-sucks/", "published_at": "2014-06-13T00:00:00+00:00" }, { "id": "01a0876e-c9bf-73bf-a475-a10a3018ebcc", "title": "Inspiration is Perishable", "url": "https://donnfelker.com/inspiration-perishable/", "published_at": "2014-05-30T00:00:00+00:00" } ] posts Claim your blog
Back to donnfelker.com
Blog · corpus.blog/blogs/donnfelker.com/posts

donnfelker.com

donnfelker.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014