41554 blogs · [ { "id": "01a0d8cd-36e7-73ca-bd85-741d1d6b2fa6", "title": null, "url": "https://mdswanson.com/talks/puppygram.html", "published_at": "2025-12-13T04:35:35+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728948cd8f", "title": "My Year in Review: 2025", "url": "https://mdswanson.com/blog/2025/12/12/year-in-review-2025.html", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728a283a80", "title": "All software advice is wrong", "url": "https://mdswanson.com/blog/2020/10/31/every-article-about-software-is-wrong.html", "published_at": "2020-10-31T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728a61cb6b", "title": "Twenty-five days of design", "url": "https://mdswanson.com/blog/2019/01/07/twenty-five-days-of-design.html", "published_at": "2019-01-07T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728b14a606", "title": "Creative Selection: How Apple builds products with demos, taste, and leverage", "url": "https://mdswanson.com/blog/2018/11/26/creative-selection.html", "published_at": "2018-11-26T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728b69a9ac", "title": "The trouble with timestamps", "url": "https://mdswanson.com/blog/2018/10/22/trouble-with-timestamps.html", "published_at": "2018-10-22T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728b845762", "title": "This committee is a pointless time suck", "url": "https://mdswanson.com/blog/2018/09/19/committee-pointless-time-suck.html", "published_at": "2018-09-19T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728bab6ad5", "title": ":hammer: Building a :bug: Fuzzy :smile: Emoji :mag: Finder :100:", "url": "https://mdswanson.com/blog/2018/07/06/fuzzy-emoji-finding.html", "published_at": "2018-07-06T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728c439e43", "title": "Evaluating project opportunities", "url": "https://mdswanson.com/blog/2018/05/16/evaluating-project-opportunities.html", "published_at": "2018-05-16T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728c82a6d0", "title": "How to start a peer group", "url": "https://mdswanson.com/blog/2017/03/29/how-to-start-a-peer-group.html", "published_at": "2017-03-29T00:00:00+00:00" }, { "id": "01a087a3-504f-73a9-8e83-89728d40ef25", "title": "Software ate the world", "url": "https://mdswanson.com/blog/2017/02/14/why-machine-learning-is-interesting.html", "published_at": "2017-02-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ae3efc86", "title": null, "url": "https://mdswanson.com/writeup/2017/02/14/algorithms-to-live-by.html", "published_at": "2017-02-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ac486189", "title": null, "url": "https://mdswanson.com/blog/2017/02/13/a-data-driven-approach-to-finding-toxic-meetings.html", "published_at": "2017-02-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ac7fe01f", "title": null, "url": "https://mdswanson.com/blog/2017/02/13/how-much-does-crunch-time-hurt-team-morale.html", "published_at": "2017-02-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ac9312f5", "title": null, "url": "https://mdswanson.com/writeup/2017/02/13/sam-walton-made-in-america.html", "published_at": "2017-02-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ad57b279", "title": null, "url": "https://mdswanson.com/writeup/2017/02/13/the-undoing-project.html", "published_at": "2017-02-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ac17d8a0", "title": null, "url": "https://mdswanson.com/blog/2016/11/03/closing-down-a-product.html", "published_at": "2016-11-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743ab992e67", "title": null, "url": "https://mdswanson.com/blog/2016/09/26/adventures-in-content-marketing.html", "published_at": "2016-09-26T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743aae96c90", "title": null, "url": "https://mdswanson.com/blog/2016/09/12/podcast-roundup-iv.html", "published_at": "2016-09-12T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743aaaaf9c0", "title": null, "url": "https://mdswanson.com/blog/2016/08/05/a-live-chat-experiment.html", "published_at": "2016-08-05T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743aaa211b2", "title": null, "url": "https://mdswanson.com/blog/2016/08/03/dunning-krugerd-marketing.html", "published_at": "2016-08-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a9aa01b4", "title": null, "url": "https://mdswanson.com/writeup/2016/06/06/the-only-rule-is-it-has-to-work.html", "published_at": "2016-06-06T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a8f1b4f5", "title": null, "url": "https://mdswanson.com/blog/2016/06/02/small-wins.html", "published_at": "2016-06-02T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a8953168", "title": null, "url": "https://mdswanson.com/blog/2016/05/31/hacking-indy-500-pool.html", "published_at": "2016-05-31T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a7f5d520", "title": null, "url": "https://mdswanson.com/blog/2016/05/03/writing-a-postmortem.html", "published_at": "2016-05-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a7633332", "title": null, "url": "https://mdswanson.com/blog/2016/04/22/compounding-technical-debt.html", "published_at": "2016-04-22T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a74657ba", "title": null, "url": "https://mdswanson.com/blog/2016/04/21/tracking-down-bugs-without-qa.html", "published_at": "2016-04-21T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a7105fd7", "title": null, "url": "https://mdswanson.com/blog/2016/04/19/getting-reacquainted-with-customers.html", "published_at": "2016-04-19T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a67a07cf", "title": null, "url": "https://mdswanson.com/writeup/2016/03/21/sprint.html", "published_at": "2016-03-21T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a5852f32", "title": null, "url": "https://mdswanson.com/blog/2016/03/14/the-first-winter.html", "published_at": "2016-03-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a4e885a0", "title": null, "url": "https://mdswanson.com/blog/2016/01/25/sell-or-kill.html", "published_at": "2016-01-25T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a3f94489", "title": null, "url": "https://mdswanson.com/blog/2015/10/26/code-neutral.html", "published_at": "2015-10-26T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a3f49809", "title": null, "url": "https://mdswanson.com/blog/2015/10/05/testing-behavior-vs-implementation.html", "published_at": "2015-10-05T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a304d828", "title": null, "url": "https://mdswanson.com/blog/2015/09/30/juking-the-stats.html", "published_at": "2015-09-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a2720851", "title": null, "url": "https://mdswanson.com/writeup/2015/09/26/the-soul-of-a-new-machine.html", "published_at": "2015-09-26T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a2442349", "title": null, "url": "https://mdswanson.com/writeup/2015/04/13/the-soul-of-a-chef.html", "published_at": "2015-04-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a1896d48", "title": null, "url": "https://mdswanson.com/writeup/2015/03/30/the-leprechauns-of-software-engineering.html", "published_at": "2015-03-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a172ceda", "title": null, "url": "https://mdswanson.com/blog/2015/03/17/what-is-the-point-of-optionals.html", "published_at": "2015-03-17T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a15b8473", "title": null, "url": "https://mdswanson.com/blog/2014/10/03/how-i-curate-the-indyhackers-newsletter.html", "published_at": "2014-10-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a0b42bc6", "title": null, "url": "https://mdswanson.com/writeup/2014/08/11/think-like-a-chef.html", "published_at": "2014-08-11T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743a0083bb6", "title": null, "url": "https://mdswanson.com/writeup/2014/08/01/flash-boys.html", "published_at": "2014-08-01T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439f1b36d8", "title": null, "url": "https://mdswanson.com/writeup/2014/07/31/the-senior-software-engineer.html", "published_at": "2014-07-31T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439eca3152", "title": null, "url": "https://mdswanson.com/writeup/2014/07/29/creativity-inc.html", "published_at": "2014-07-29T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439ddb582b", "title": null, "url": "https://mdswanson.com/writeup/2014/07/23/everything-is-bullshit.html", "published_at": "2014-07-23T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439d2a3546", "title": null, "url": "https://mdswanson.com/writeup/2014/07/22/the-game.html", "published_at": "2014-07-22T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439cca57b1", "title": null, "url": "https://mdswanson.com/writeup/2014/07/14/think-like-a-freak.html", "published_at": "2014-07-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439c23bcc3", "title": null, "url": "https://mdswanson.com/blog/2014/06/29/meditations-on-software.html", "published_at": "2014-06-29T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439b9391b5", "title": null, "url": "https://mdswanson.com/writeup/2014/06/03/emyth.html", "published_at": "2014-06-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439ac3d2d9", "title": null, "url": "https://mdswanson.com/blog/2014/06/02/android-form-models.html", "published_at": "2014-06-02T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439990d451", "title": null, "url": "https://mdswanson.com/writeup/2014/05/30/four-rules-of-simple-design.html", "published_at": "2014-05-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439a3d4bf4", "title": null, "url": "https://mdswanson.com/blog/2014/05/30/more-than-code.html", "published_at": "2014-05-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743995984a5", "title": null, "url": "https://mdswanson.com/blog/2014/05/14/open-source-tale.html", "published_at": "2014-05-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439874e3f9", "title": null, "url": "https://mdswanson.com/blog/2014/04/07/durable-android-rest-clients.html", "published_at": "2014-04-07T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274397c289f2", "title": null, "url": "https://mdswanson.com/blog/2014/03/31/one-day-further.html", "published_at": "2014-03-31T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274397c159f1", "title": null, "url": "https://mdswanson.com/blog/2014/03/15/tech-lead.html", "published_at": "2014-03-15T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743974f1dc9", "title": null, "url": "https://mdswanson.com/blog/2014/02/24/integration-testing-rest-apis-for-android.html", "published_at": "2014-02-24T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274396994db9", "title": null, "url": "https://mdswanson.com/blog/2014/02/10/my-year-in-review-2013.html", "published_at": "2014-02-10T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274395cf0fe1", "title": null, "url": "https://mdswanson.com/blog/2013/12/16/reliable-android-http-testing-with-retrofit-and-mockito.html", "published_at": "2013-12-16T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439539badd", "title": null, "url": "https://mdswanson.com/blog/2013/12/11/responsive-layouts-in-android.html", "published_at": "2013-12-11T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27439448029b", "title": null, "url": "https://mdswanson.com/writeup/2013/11/13/how-to-fail-at-almost-everything-and-still-win-big.html", "published_at": "2013-11-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743950f6c2b", "title": null, "url": "https://mdswanson.com/blog/2013/11/13/some-tools-i-like.html", "published_at": "2013-11-13T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274393ced45c", "title": null, "url": "https://mdswanson.com/blog/2013/11/11/how-buildings-learn-and-why-software-is-no-different.html", "published_at": "2013-11-11T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743935dee60", "title": null, "url": "https://mdswanson.com/blog/2013/11/03/when-in-doubt-do-a-spike.html", "published_at": "2013-11-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274392f5d209", "title": null, "url": "https://mdswanson.com/blog/2013/10/14/how-not-to-validate-email-addresses.html", "published_at": "2013-10-14T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743929ae6d7", "title": null, "url": "https://mdswanson.com/blog/2013/09/30/crappy-emails-make-me-sad.html", "published_at": "2013-09-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274391dc5721", "title": null, "url": "https://mdswanson.com/writeup/2013/09/24/the-making-of-a-chef.html", "published_at": "2013-09-24T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274391cfbb7b", "title": null, "url": "https://mdswanson.com/blog/2013/08/27/have-it-your-way-software.html", "published_at": "2013-08-27T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743913e2f84", "title": null, "url": "https://mdswanson.com/blog/2013/08/19/how-to-practice-code-reviews.html", "published_at": "2013-08-19T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274390b4a7d2", "title": null, "url": "https://mdswanson.com/blog/2013/08/11/write-things-tell-people.html", "published_at": "2013-08-11T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743908d82e4", "title": null, "url": "https://mdswanson.com/blog/2013/08/10/engineering-a-first-run-experience.html", "published_at": "2013-08-10T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438fa43aa6", "title": null, "url": "https://mdswanson.com/blog/2013/08/07/interview-to-implementation-horizon-report.html", "published_at": "2013-08-07T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438f749fef", "title": null, "url": "https://mdswanson.com/blog/2013/08/03/how-to-make-testing-less-painful.html", "published_at": "2013-08-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438e878f04", "title": null, "url": "https://mdswanson.com/blog/2013/08/02/dont-email-me-at-2am.html", "published_at": "2013-08-02T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438dec79f6", "title": null, "url": "https://mdswanson.com/blog/2013/07/30/on-t-shaped-people.html", "published_at": "2013-07-30T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438db9b13d", "title": null, "url": "https://mdswanson.com/blog/2013/07/24/step-by-step-ux-improvement-screenshot-upload.html", "published_at": "2013-07-24T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438cbc98bf", "title": null, "url": "https://mdswanson.com/blog/2013/07/22/more-tales-in-bad-restaurant-ux.html", "published_at": "2013-07-22T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438bf1fb87", "title": null, "url": "https://mdswanson.com/blog/2013/07/21/email-as-the-interface.html", "published_at": "2013-07-21T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438c9b22f1", "title": null, "url": "https://mdswanson.com/blog/2013/07/21/half-baked-thoughts-on-ruby-web-architecture.html", "published_at": "2013-07-21T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438b0924b6", "title": null, "url": "https://mdswanson.com/blog/2013/07/19/getting-traction-for-your-open-source-project.html", "published_at": "2013-07-19T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438a9e4da2", "title": null, "url": "https://mdswanson.com/blog/2013/07/18/step-by-step-ux-improvement.html", "published_at": "2013-07-18T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438a5f922d", "title": null, "url": "https://mdswanson.com/blog/2013/07/17/myers-briggs-for-programming-styles.html", "published_at": "2013-07-17T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274389811905", "title": null, "url": "https://mdswanson.com/writeup/2013/07/12/confident-ruby.html", "published_at": "2013-07-12T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274389884eed", "title": null, "url": "https://mdswanson.com/writeup/2013/07/12/the-motivation-hacker.html", "published_at": "2013-07-12T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743884df25c", "title": null, "url": "https://mdswanson.com/writeup/2013/07/08/microinteractions.html", "published_at": "2013-07-08T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743891f25f8", "title": null, "url": "https://mdswanson.com/writeup/2013/07/08/so-good-they-cant-ignore-you.html", "published_at": "2013-07-08T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274388496b0d", "title": null, "url": "https://mdswanson.com/writeup/2013/07/07/crush-it.html", "published_at": "2013-07-07T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438807593d", "title": null, "url": "https://mdswanson.com/writeup/2013/07/05/the-first-20-hours.html", "published_at": "2013-07-05T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274387a21069", "title": null, "url": "https://mdswanson.com/blog/2013/07/04/delightful-ux-mediums-time-to-read.html", "published_at": "2013-07-04T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274386f8d9e7", "title": null, "url": "https://mdswanson.com/blog/2013/06/03/jekyll-201.html", "published_at": "2013-06-03T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438601c9a8", "title": null, "url": "https://mdswanson.com/blog/2013/05/31/summer-reading-list.html", "published_at": "2013-05-31T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743852ce471", "title": null, "url": "https://mdswanson.com/blog/2013/05/29/the-30-second-standup.html", "published_at": "2013-05-29T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274384301191", "title": null, "url": "https://mdswanson.com/blog/2013/05/08/delightful-software.html", "published_at": "2013-05-08T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274383479dda", "title": null, "url": "https://mdswanson.com/blog/2013/05/02/expanding-contracting.html", "published_at": "2013-05-02T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274383128aaa", "title": null, "url": "https://mdswanson.com/blog/2013/04/17/how-to-not-quit.html", "published_at": "2013-04-17T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274382ce21f4", "title": null, "url": "https://mdswanson.com/blog/2013/04/10/changing-plans.html", "published_at": "2013-04-10T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743825a0ae7", "title": null, "url": "https://mdswanson.com/writeup/2013/04/05/are-your-lights-on.html", "published_at": "2013-04-05T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-27438206292c", "title": null, "url": "https://mdswanson.com/blog/2013/04/02/more-complicated-than-it-needs-to-be.html", "published_at": "2013-04-02T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274381b89ba9", "title": null, "url": "https://mdswanson.com/blog/2013/03/26/too-much-information.html", "published_at": "2013-03-26T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-274381489a75", "title": null, "url": "https://mdswanson.com/blog/2013/03/19/cross-pollination.html", "published_at": "2013-03-19T00:00:00+00:00" }, { "id": "01a0d8cd-36e6-720d-8f56-2743814121b4", "title": null, "url": "https://mdswanson.com/blog/2013/01/28/evaluating-technical-arguments.html", "published_at": "2013-01-28T00:00:00+00:00" } ] posts Claim your blog
Back to mdswanson.com
Blog · corpus.blog/blogs/mdswanson.com/posts

mdswanson.com

mdswanson.com

2025

2020

2019

2018

2017

2016

2015

2014

2013