41554 blogs · [ { "id": "01a08794-4830-707a-b740-906a89de9384", "title": "How to sync Stripe transactions to Quickbooks", "url": "https://kchodorow.com/2025/02/03/how-to-sync-stripe-transactions-to-quickbooks/", "published_at": "2025-02-03T14:47:23+00:00" }, { "id": "01a08794-4830-707a-b740-906a89f042e6", "title": "Pixelating images in Python", "url": "https://kchodorow.com/2024/04/10/pixelating-images-in-python/", "published_at": "2024-04-10T17:30:11+00:00" }, { "id": "01a08794-4830-707a-b740-906a8a46f1f9", "title": "Login via command line", "url": "https://kchodorow.com/2023/01/09/login-via-command-line/", "published_at": "2023-01-10T04:12:48+00:00" }, { "id": "01a08794-4830-707a-b740-906a8b455620", "title": "Generating Voronoi cells in Python", "url": "https://kchodorow.com/2022/10/13/generating-voronoi-cells-in-python/", "published_at": "2022-10-13T14:32:11+00:00" }, { "id": "01a08794-4830-707a-b740-906a8c320ae0", "title": "How to set up Python on Compute Engine", "url": "https://kchodorow.com/2022/09/21/how-to-set-up-python-on-compute-engine/", "published_at": "2022-09-21T12:50:00+00:00" }, { "id": "01a08794-4830-707a-b740-906a8cda59f3", "title": "How to get big files into Compute Engine", "url": "https://kchodorow.com/2022/09/19/how-to-get-big-files-into-compute-engine/", "published_at": "2022-09-19T11:55:00+00:00" }, { "id": "01a08794-4830-707a-b740-906a8d0ba8da", "title": "Using Warp workflows to make the shell easier", "url": "https://kchodorow.com/2022/05/15/using-warp-workflows-to-make-the-shell-easier/", "published_at": "2022-05-15T16:10:13+00:00" }, { "id": "01a08794-4830-707a-b740-906a8da851a4", "title": "Why market cap is dumb", "url": "https://kchodorow.com/2022/04/27/why-market-cap-is-dumb/", "published_at": "2022-04-27T19:58:06+00:00" }, { "id": "01a08794-4830-707a-b740-906a8dd81e2a", "title": "Shoulders of Giants", "url": "https://kchodorow.com/2022/02/01/shoulders-of-giants/", "published_at": "2022-02-01T14:08:34+00:00" }, { "id": "01a08794-4830-707a-b740-906a8df44bc8", "title": "5-minute design: meme generator", "url": "https://kchodorow.com/2022/01/31/5-minute-design-meme-generator/", "published_at": "2022-01-31T19:23:22+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d1724e00bc9", "title": "A review of GitHub Copilot", "url": "https://kchodorow.com/2022/01/21/a-review-of-github-copilot/", "published_at": "2022-01-21T14:51:23+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d17252cedf1", "title": "Using TextMeshPro in a 2D Unity game", "url": "https://kchodorow.com/2022/01/19/using-textmeshpro-in-a-2d-unity-game/", "published_at": "2022-01-19T23:28:39+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d17257db3a3", "title": "A YIMBY’s Modest Proposal", "url": "https://kchodorow.com/2022/01/18/a-yimbys-modest-proposal/", "published_at": "2022-01-18T19:48:35+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d17260275ff", "title": "A personal anecdote: hot wheels", "url": "https://kchodorow.com/2022/01/14/a-personal-anecdote-hot-wheels/", "published_at": "2022-01-14T17:52:21+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d1726ca0b71", "title": "Unity Android App deployment", "url": "https://kchodorow.com/2022/01/13/unity-android-app-deployment/", "published_at": "2022-01-13T16:43:13+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d172747830a", "title": "Combining columns in Pandas", "url": "https://kchodorow.com/2022/01/12/combining-columns-in-pandas/", "published_at": "2022-01-12T14:29:03+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d1727bedc24", "title": "Centering a stupid box in Unity", "url": "https://kchodorow.com/2022/01/11/centering-a-stupid-box-in-unity/", "published_at": "2022-01-11T13:43:36+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d17287b9227", "title": "Setting a random seed for Unity", "url": "https://kchodorow.com/2022/01/10/setting-a-random-seed-for-unity/", "published_at": "2022-01-10T15:49:16+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d1728c3852f", "title": "Co-founder analysis", "url": "https://kchodorow.com/2021/11/19/co-founder-analysis/", "published_at": "2021-11-19T20:44:30+00:00" }, { "id": "01a0bb47-8a8f-72c0-b353-8d1728ddf0af", "title": "Scraping politely", "url": "https://kchodorow.com/2021/07/31/scraping-politely/", "published_at": "2021-07-31T18:53:14+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af92fc83aa", "title": "Road to Thornmire", "url": "https://kchodorow.com/2021/07/24/road-to-thornmire/", "published_at": "2021-07-24T18:24:30+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af939274fb", "title": "Optimizing resource allocation", "url": "https://kchodorow.com/2021/06/14/optimizing-resource-allocation/", "published_at": "2021-06-14T16:29:47+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af939b48a4", "title": "Intro to Altair", "url": "https://kchodorow.com/2021/05/21/intro-to-altair/", "published_at": "2021-05-21T19:07:22+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af940cc522", "title": "Adventures in modern web programming", "url": "https://kchodorow.com/2021/05/12/adventures-in-modern-web-programming/", "published_at": "2021-05-13T00:59:09+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af94b1298a", "title": "Hassle-free LaTeX with Overleaf", "url": "https://kchodorow.com/2021/04/15/hassle-free-latex-with-overleaf/", "published_at": "2021-04-16T00:02:13+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af9503c2c7", "title": "Risking it all", "url": "https://kchodorow.com/2020/12/16/risking-it-all/", "published_at": "2020-12-16T19:07:20+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af95be92d9", "title": "Part 4: compounding returns", "url": "https://kchodorow.com/2020/09/02/part-4-compounding-returns/", "published_at": "2020-09-02T12:00:00+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af961bc2ee", "title": "A multi-stock portfolio: comparing returns", "url": "https://kchodorow.com/2020/08/10/a-multi-stock-portfolio-comparing-returns/", "published_at": "2020-08-10T12:52:00+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af969fc739", "title": "Show me the money: tracking returns", "url": "https://kchodorow.com/2020/08/06/show-me-the-money-tracking-returns/", "published_at": "2020-08-06T12:26:00+00:00" }, { "id": "01a0bb56-0a56-7360-8bc6-d9af96ccd303", "title": "Building a (very simple) portfolio tracker with pandas", "url": "https://kchodorow.com/2020/08/02/building-a-very-simple-portfolio-tracker-with-pandas/", "published_at": "2020-08-02T20:46:34+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060708a41c", "title": "The stock market is going down", "url": "https://kchodorow.com/2019/11/18/the-stock-market-is-going-down/", "published_at": "2019-11-18T02:10:05+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-4006078e818d", "title": "Losing money sucks – the mathematics of loss aversion", "url": "https://kchodorow.com/2019/09/17/losing-money-sucks-the-mathematics-of-loss-aversion/", "published_at": "2019-09-17T22:14:21+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-400608413baf", "title": "The surprisingly complex math behind startup equity and taxes", "url": "https://kchodorow.com/2019/07/02/the-surprisingly-complex-math-behind-startup-equity-and-taxes/", "published_at": "2019-07-02T15:20:03+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060906992c", "title": "Goals for 2019", "url": "https://kchodorow.com/2018/12/28/goals-for-2019/", "published_at": "2018-12-29T03:18:27+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-400609296bd0", "title": "AST Financial: the dumpster fire of a company", "url": "https://kchodorow.com/2018/08/09/ast-financial-the-dumpster-fire-of-a-company/", "published_at": "2018-08-09T14:31:26+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-400609de94c2", "title": "Thinking with Pandas", "url": "https://kchodorow.com/2018/08/08/thinking-with-pandas/", "published_at": "2018-08-08T18:59:46+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060a9b827e", "title": "GV", "url": "https://kchodorow.com/2018/06/09/gv/", "published_at": "2018-06-09T15:50:52+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060b5117d1", "title": "Staying out of trouble on Elastic Beanstalk", "url": "https://kchodorow.com/2018/02/10/staying-out-of-trouble-on-elastic-beanstalk/", "published_at": "2018-02-10T15:12:30+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060b5a751e", "title": "The thing about renting an apartment in NYC", "url": "https://kchodorow.com/2018/01/28/the-thing-about-renting-an-apartment-in-nyc/", "published_at": "2018-01-28T16:28:06+00:00" }, { "id": "01a0bb5b-831b-721b-93ac-40060b9fa53c", "title": "A self-indulgent post for a self-indulgent day", "url": "https://kchodorow.com/2018/01/23/a-self-indulgent-post-for-a-self-indulgent-day/", "published_at": "2018-01-23T23:28:28+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a15717fd7", "title": "Goals for 2018", "url": "https://kchodorow.com/2018/01/01/goals-for-2018/", "published_at": "2018-01-02T01:19:59+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a15ffe75b", "title": "IPOs, 101", "url": "https://kchodorow.com/2017/11/14/ipos-101/", "published_at": "2017-11-14T16:24:15+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a1695fbb9", "title": "A magic trick", "url": "https://kchodorow.com/2017/10/26/a-magic-trick/", "published_at": "2017-10-26T19:27:25+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a16eb2ce1", "title": "R&R", "url": "https://kchodorow.com/2017/09/21/rr/", "published_at": "2017-09-21T14:16:06+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a1705f177", "title": "P.T. Barnum on salary vs. equity", "url": "https://kchodorow.com/2017/09/16/p-t-barnum-on-salary-vs-equity/", "published_at": "2017-09-16T18:01:03+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a17fb4db4", "title": "My favorite benefits that more companies should offer", "url": "https://kchodorow.com/2017/09/06/my-favorite-benefits-that-more-companies-should-offer/", "published_at": "2017-09-06T14:35:19+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a1813aee7", "title": "BizSpark", "url": "https://kchodorow.com/2017/09/05/bizspark/", "published_at": "2017-09-05T15:47:23+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a18f31231", "title": "The next great frontier in ML: dogs in hats", "url": "https://kchodorow.com/2017/08/06/the-next-great-frontier-in-ml-dogs-in-hats/", "published_at": "2017-08-06T23:22:46+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a196966b2", "title": "Keeping your deps tidy", "url": "https://kchodorow.com/2017/06/28/keeping-your-deps-tidy/", "published_at": "2017-06-28T15:29:22+00:00" }, { "id": "01a0bb63-8b71-7264-ad89-3d0a198d300e", "title": "GitHub notification… notifier", "url": "https://kchodorow.com/2017/04/12/github-notification-notifier/", "published_at": "2017-04-13T00:47:46+00:00" }, { "id": "01a0bb69-9af6-70b2-b5a4-03c0ea5bf12f", "title": "Life hacks", "url": "https://kchodorow.com/2017/04/01/life-hacks/", "published_at": "2017-04-01T14:55:43+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbbcc8cdba", "title": "How to Skylark – the class", "url": "https://kchodorow.com/2017/03/29/how-to-skylark-the-class/", "published_at": "2017-03-29T18:00:46+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbbce39882", "title": "Stamping your builds", "url": "https://kchodorow.com/2017/03/27/stamping-your-builds/", "published_at": "2017-03-27T15:59:29+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbbdb64f90", "title": "Using secrets with Google AppEngine", "url": "https://kchodorow.com/2017/03/08/using-secrets-with-google-appengine/", "published_at": "2017-03-09T02:04:10+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbbe500d6c", "title": "Low-fat Skylark rules – saving memory with depsets", "url": "https://kchodorow.com/2017/01/31/low-fat-skylark-rules-saving-memory-with-depsets/", "published_at": "2017-01-31T20:20:40+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbbf33b0bc", "title": "9 years of blogging have totally been worth it", "url": "https://kchodorow.com/2017/01/18/9-years-of-blogging-have-totally-been-worth-it/", "published_at": "2017-01-18T18:15:44+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbc01690ea", "title": "Aspects: the fan-fic of build rules", "url": "https://kchodorow.com/2017/01/10/aspects-the-fan-fic-of-build-rules/", "published_at": "2017-01-10T16:22:34+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbc04a3a10", "title": "That’s senior programmer to you, buddy", "url": "https://kchodorow.com/2016/11/21/thats-senior-programmer-to-you-buddy/", "published_at": "2016-11-21T17:57:26+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbc0a72021", "title": "The Haunted Homesteader", "url": "https://kchodorow.com/2016/11/14/the-haunted-homesteader/", "published_at": "2016-11-14T20:14:01+00:00" }, { "id": "01a0bb69-9af7-7138-b287-8dbbc0d5e87d", "title": "Recruiting review", "url": "https://kchodorow.com/2016/11/13/recruiting-review/", "published_at": "2016-11-13T20:08:11+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29330343686", "title": "Using AutoValue with Bazel", "url": "https://kchodorow.com/2016/11/12/using-autovalue-with-bazel/", "published_at": "2016-11-12T17:30:45+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a293311088ab", "title": "You do you", "url": "https://kchodorow.com/2016/11/11/you-do-you/", "published_at": "2016-11-11T22:14:17+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29331f224b7", "title": "Snail Spam", "url": "https://kchodorow.com/2016/10/31/snail-spam/", "published_at": "2016-10-31T14:34:20+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29332b909ab", "title": "Four alternative debugging techniques", "url": "https://kchodorow.com/2016/09/28/four-alternative-debugging-techniques/", "published_at": "2016-09-28T14:55:33+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a293338a6cfa", "title": "Compilation à la mode", "url": "https://kchodorow.com/2016/09/14/compilation-a-la-mode/", "published_at": "2016-09-14T18:21:49+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29333fb5006", "title": "The Mixed-Up Directories of Mrs. Bazel E. Frankweiler", "url": "https://kchodorow.com/2016/07/08/the-mixed-up-directories-of-mrs-bazel-e-frankweiler/", "published_at": "2016-07-08T21:02:45+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29334084392", "title": "Custom, locally-sourced output filenames", "url": "https://kchodorow.com/2016/06/21/custom-locally-sourced-output-filenames/", "published_at": "2016-06-21T14:53:08+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a29334858a7b", "title": "Using environment variables in Skylark repository rules", "url": "https://kchodorow.com/2016/06/17/using-environment-variables-in-skylark-repository-rules/", "published_at": "2016-06-17T20:56:52+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a293350a64e4", "title": "Resting BUILD face", "url": "https://kchodorow.com/2016/06/10/resting-build-face/", "published_at": "2016-06-10T14:52:35+00:00" }, { "id": "01a0bb6d-b2a9-71e3-9b75-a293355e1f1c", "title": "Communicating between Bazel rules: how to use Skylark providers", "url": "https://kchodorow.com/2016/05/31/communicating-between-bazel-rules-how-to-use-skylark-providers/", "published_at": "2016-05-31T18:36:21+00:00" }, { "id": "01a0bb71-7888-7193-9c73-149240928566", "title": "Collecting transitive runfiles with skylark", "url": "https://kchodorow.com/2016/05/26/collecting-transitive-runfiles-with-skylark/", "published_at": "2016-05-26T15:06:13+00:00" }, { "id": "01a0bb71-7888-7193-9c73-14924109ef07", "title": "Startup idea #6ec4e42a-28cc-4425-9ebc-61ac8e224580: Adventurer’s gear for geeky hikers", "url": "https://kchodorow.com/2016/05/25/startup-idea-6ec4e42a-28cc-4425-9ebc-61ac8e224580-adventurers-gear-for-geeky-hikers/", "published_at": "2016-05-25T15:25:19+00:00" }, { "id": "01a0bb71-7888-7193-9c73-1492415f7fa9", "title": "Using a generated header file as a dependecy", "url": "https://kchodorow.com/2016/05/19/using-a-generated-header-file-as-a-dependecy/", "published_at": "2016-05-19T21:26:21+00:00" }, { "id": "01a0bb71-7888-7193-9c73-14924211587f", "title": "Operation: Crappy Sewing Machine commences", "url": "https://kchodorow.com/2016/04/12/operation-crappy-sewing-machine-commences/", "published_at": "2016-04-13T01:20:38+00:00" }, { "id": "01a0bb71-7888-7193-9c73-1492429174c3", "title": "New dog blog", "url": "https://kchodorow.com/2016/03/23/new-dog-blog/", "published_at": "2016-03-23T17:01:21+00:00" }, { "id": "01a0bb71-7888-7193-9c73-1492432e96f9", "title": "configure: error: lib_i_don’t_care_about.so not found.", "url": "https://kchodorow.com/2016/03/17/configure-error-lib_i_dont_care_about-so-not-found/", "published_at": "2016-03-17T13:44:48+00:00" }, { "id": "01a0bb71-7888-7193-9c73-1492435481b5", "title": "JoCo Cruise 2016: a misanthrope’s perspective", "url": "https://kchodorow.com/2016/03/04/joco-cruise-2016-a-misanthropes-perspective/", "published_at": "2016-03-04T21:28:51+00:00" }, { "id": "01a0bb71-7888-7193-9c73-14924436a1d8", "title": "Star Trek invades our timeline", "url": "https://kchodorow.com/2016/02/29/star-trek-invades-our-timeline/", "published_at": "2016-02-29T16:21:32+00:00" }, { "id": "01a0bb71-7888-7193-9c73-1492448e7d70", "title": "Flag-Friday: debugging tests with –java_debug", "url": "https://kchodorow.com/2015/12/18/flag-friday-debugging-tests-with-java_debug/", "published_at": "2015-12-18T17:47:38+00:00" }, { "id": "01a0bb71-7888-7193-9c73-149244a7f9ac", "title": "Saving the (prod) environment", "url": "https://kchodorow.com/2015/12/17/saving-the-prod-environment/", "published_at": "2015-12-17T16:19:59+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fc9bf2fa2", "title": "Combining projects without converting to a monorepo", "url": "https://kchodorow.com/2015/12/08/combining-projects-without-converting-to-a-monorepo/", "published_at": "2015-12-08T20:04:09+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fca770686", "title": "Non-technical advice for startups and open source projects", "url": "https://kchodorow.com/2015/11/24/non-technical-advice-for-startups-and-open-source-projects/", "published_at": "2015-11-24T21:23:52+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcb63867e", "title": "One weird trick for fast CI", "url": "https://kchodorow.com/2015/10/15/one-weird-trick-for-fast-ci/", "published_at": "2015-10-15T14:48:12+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcc3d8538", "title": "Creating a javadoc rule for Bazel", "url": "https://kchodorow.com/2015/09/28/creating-a-javadoc-rule-for-bazel/", "published_at": "2015-09-28T19:24:25+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fccb2c4b2", "title": "Build, y u go slow?", "url": "https://kchodorow.com/2015/09/18/build-y-u-go-slow/", "published_at": "2015-09-18T19:48:57+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcd36dee8", "title": "Debugging flaky tests with Bazel", "url": "https://kchodorow.com/2015/09/17/debugging-flaky-tests-with-bazel/", "published_at": "2015-09-17T15:24:41+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcdb65289", "title": "The Return of the Scala Rule Tutorial: The Execution", "url": "https://kchodorow.com/2015/08/14/the-return-of-the-scala-rule-tutorial-the-execution/", "published_at": "2015-08-14T16:01:27+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fce5d3414", "title": "Tutorial: how to write Scala rules for Bazel", "url": "https://kchodorow.com/2015/08/12/tutorial-how-to-write-scala-rules-for-bazel/", "published_at": "2015-08-12T15:50:08+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcec01ef5", "title": "Trimming the (build) tree with Bazel", "url": "https://kchodorow.com/2015/07/23/trimming-the-build-tree-with-bazel/", "published_at": "2015-07-23T18:44:39+00:00" }, { "id": "01a0bb74-e678-713c-ace8-a58fcfb8b482", "title": "Positive reinforcement learning through barbacoa", "url": "https://kchodorow.com/2015/07/07/positive-reinforcement-through-barbacoa/", "published_at": "2015-07-07T15:10:30+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e894c85bf", "title": "New radio in town", "url": "https://kchodorow.com/2015/06/27/new-radio-in-town/", "published_at": "2015-06-27T16:46:06+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e89a91490", "title": "Pain-free OAuth with AppEngine", "url": "https://kchodorow.com/2015/05/31/pain-free-oauth-with-appengine/", "published_at": "2015-05-31T16:44:59+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e89d878e4", "title": "API changes with extra cheese, hold the fear", "url": "https://kchodorow.com/2015/05/18/making-backward-breaking-api-changes-with-extra-cheese-hold-the-fear/", "published_at": "2015-05-18T17:53:31+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8a791222", "title": "Have you ever looked at your build? I mean, really looked at your build?", "url": "https://kchodorow.com/2015/04/24/have-you-ever-looked-at-your-build-i-mean-really-looked-at-your-build/", "published_at": "2015-04-24T15:26:54+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8a9245d0", "title": "Hello, Bazel", "url": "https://kchodorow.com/2015/03/25/hello-bazel/", "published_at": "2015-03-25T14:23:57+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8b62b6dd", "title": "Making wedding rings", "url": "https://kchodorow.com/2014/10/21/making-wedding-rings/", "published_at": "2014-10-21T16:50:02+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8bc33985", "title": "Laptops are getting smaller all the time", "url": "https://kchodorow.com/2014/10/09/laptops-are-getting-smaller-all-the-time/", "published_at": "2014-10-09T20:15:33+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8c9e203e", "title": "Teaching CS", "url": "https://kchodorow.com/2014/09/06/teaching-cs/", "published_at": "2014-09-06T18:00:00+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8d939bfa", "title": "Sharing Programming", "url": "https://kchodorow.com/2014/07/15/sharing-programming/", "published_at": "2014-07-15T20:42:26+00:00" }, { "id": "01a0bb78-1a0d-7385-b718-726e8e3b616f", "title": "I will gladly write a test Tuesday for a program today", "url": "https://kchodorow.com/2014/06/10/i-will-gladly-write-a-test-tuesday-for-a-program-today/", "published_at": "2014-06-10T14:27:23+00:00" } ] posts Claim your blog
Back to kchodorow.com
Blog · corpus.blog/blogs/kchodorow.com/posts

kchodorow.com

kchodorow.com

2025

2024

2023

2022

2021

2020

2019

2018

9 Jun 2018

2017

21 Sept 2017

2016

2015

2014