41554 blogs · [ { "id": "01a087ba-bc2d-735d-a040-b75d8891314c", "title": "Don’t move back to the Writers’", "url": "https://otee.dev/2026/05/06/why-not-writers.html", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a087ba-bc2d-735d-a040-b75d88bd0a44", "title": "Personal Project, Public Outage: A Lesson in Incident Management", "url": "https://otee.dev/2025/07/08/personal-project-public-outage.html", "published_at": "2025-07-08T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e58fb7d6", "title": "Ping-pong: Using multiple Kafka consumers to process events", "url": "https://otee.dev/2023/06/19/ping-pong.html", "published_at": "2023-06-19T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e6615c1a", "title": "Understanding: Log-Structured Merge Trees", "url": "https://otee.dev/2023/04/17/log-structured-merge-tree.html", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e7193c0f", "title": "Transitioning from Heroku Free Tier to GCP + YugabyteDB", "url": "https://otee.dev/2023/01/08/migrating-heroku-to-gcp-and-yugabyte.html", "published_at": "2023-01-08T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e7925d2e", "title": "Understanding Tail Recursion", "url": "https://otee.dev/2022/04/03/understanding-tail-recursion.html", "published_at": "2022-04-03T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e88d24f2", "title": "Preventing Phantom Meetings Using Transactions and Serializable Isolation", "url": "https://otee.dev/2022/02/10/transactions-and-phantom-reads.html", "published_at": "2022-02-10T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e903ad55", "title": "Kicking Around Packets: Understanding How the Internet Works", "url": "https://otee.dev/2022/02/02/understanding-the-internet.html", "published_at": "2022-02-02T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e90fe848", "title": "Recurse Center: Week Three", "url": "https://otee.dev/2022/01/26/recurse-center-week-three.html", "published_at": "2022-01-26T00:00:00+00:00" }, { "id": "01a087ba-bc2e-71e2-baf3-9cc9e9fb65eb", "title": "My First Clojure Backend Using Ring, Jetty and Compojure", "url": "https://otee.dev/2022/01/25/clojure-backend-using-ring-jetty-compojure.html", "published_at": "2022-01-25T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d5eb6bc5", "title": null, "url": "https://otee.dev/2022/01/17/lazy-clojure.html", "published_at": "2022-01-17T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d64c5cf3", "title": null, "url": "https://otee.dev/2022/01/17/recurse-center-week-two.html", "published_at": "2022-01-17T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d58b6dc7", "title": null, "url": "https://otee.dev/2022/01/13/making-short-links-shorter.html", "published_at": "2022-01-13T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d4bc5c67", "title": null, "url": "https://otee.dev/2022/01/09/recurse-center-week-one.html", "published_at": "2022-01-09T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d3609d43", "title": null, "url": "https://otee.dev/2021/12/31/deploying-to-google-cloud-compute.html", "published_at": "2021-12-31T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d3e374c7", "title": null, "url": "https://otee.dev/2021/12/31/looking-back-2021.html", "published_at": "2021-12-31T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d2c86373", "title": null, "url": "https://otee.dev/2021/12/27/understanding-oauth.html", "published_at": "2021-12-27T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d2bc296c", "title": null, "url": "https://otee.dev/2021/12/20/twirl-link-shortening.html", "published_at": "2021-12-20T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d1e5a255", "title": null, "url": "https://otee.dev/2021/12/10/ddia-notes-chapter-1.html", "published_at": "2021-12-10T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d15da580", "title": null, "url": "https://otee.dev/2021/12/08/storing-passwords-securely.html", "published_at": "2021-12-08T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7d07bd521", "title": null, "url": "https://otee.dev/2021/11/24/search-relevance-using-bm-25.html", "published_at": "2021-11-24T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cff530bb", "title": null, "url": "https://otee.dev/2021/11/14/twirl-user-management.html", "published_at": "2021-11-14T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cfb4d36a", "title": null, "url": "https://otee.dev/2021/11/10/javascript-promises.html", "published_at": "2021-11-10T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cecaf044", "title": null, "url": "https://otee.dev/2021/11/03/HTTP-explainer.html", "published_at": "2021-11-03T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cf23c64a", "title": null, "url": "https://otee.dev/2021/11/03/diwali-hack-week.html", "published_at": "2021-11-03T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7ce362f38", "title": null, "url": "https://otee.dev/2021/10/27/next-permutation.html", "published_at": "2021-10-27T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cde1f318", "title": null, "url": "https://otee.dev/2021/10/20/using-heroku-scheduler-to-initiate-triggers.html", "published_at": "2021-10-20T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cce55641", "title": null, "url": "https://otee.dev/2021/10/19/event-and-processing-time-semantics.html", "published_at": "2021-10-19T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7ccbcde4e", "title": null, "url": "https://otee.dev/2021/10/17/my-first-npm-package.html", "published_at": "2021-10-17T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cc96834a", "title": null, "url": "https://otee.dev/2021/10/10/cardimom-twitter-bot.html", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cb9b940c", "title": null, "url": "https://otee.dev/2021/10/01/hash-tables.html", "published_at": "2021-10-01T04:40:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7cb50e9d7", "title": null, "url": "https://otee.dev/2021/08/24/crisp-a-simple-lisp-interpreter.html", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7ca985b1a", "title": null, "url": "https://otee.dev/2021/08/18/cache-replacement-policy.html", "published_at": "2021-08-18T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c9a2657d", "title": null, "url": "https://otee.dev/2021/08/13/implementing-graph.html", "published_at": "2021-08-13T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c924fc41", "title": null, "url": "https://otee.dev/2021/08/05/memoization.html", "published_at": "2021-08-05T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c90e720d", "title": null, "url": "https://otee.dev/2021/08/04/binary-search.html", "published_at": "2021-08-04T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c85e76e0", "title": null, "url": "https://otee.dev/2021/07/30/implementing-stacks.html", "published_at": "2021-07-30T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c7e9a712", "title": null, "url": "https://otee.dev/2021/07/28/linked-lists-in-javascript.html", "published_at": "2021-07-28T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c701d706", "title": null, "url": "https://otee.dev/2021/07/27/data-structures-arrays-and-linked-lists.html", "published_at": "2021-07-27T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c6e633c0", "title": null, "url": "https://otee.dev/2021/07/25/valid-parenthesis.html", "published_at": "2021-07-25T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c637b57e", "title": null, "url": "https://otee.dev/2021/07/20/palindrome.html", "published_at": "2021-07-20T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c5cf8d81", "title": null, "url": "https://otee.dev/2021/07/19/creating-objects-in-javascript.html", "published_at": "2021-07-19T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c4dc6239", "title": null, "url": "https://otee.dev/2021/07/14/data-types.html", "published_at": "2021-07-14T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c4b4ac90", "title": null, "url": "https://otee.dev/2021/07/11/higher-order-functions.html", "published_at": "2021-07-11T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c43745a2", "title": null, "url": "https://otee.dev/2021/07/10/functions.html", "published_at": "2021-07-10T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c361cd58", "title": null, "url": "https://otee.dev/2021/07/09/understanding-const.html", "published_at": "2021-07-09T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c2a0c20a", "title": null, "url": "https://otee.dev/2021/07/08/understanding-var-and-let.html", "published_at": "2021-07-08T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c1c1c2cc", "title": null, "url": "https://otee.dev/2021/07/07/global-and-local-variables.html", "published_at": "2021-07-07T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c0f99208", "title": null, "url": "https://otee.dev/2021/07/06/parseInt.html", "published_at": "2021-07-06T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c07c8859", "title": null, "url": "https://otee.dev/2021/07/01/basic-javascript-course.html", "published_at": "2021-07-01T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c022d639", "title": null, "url": "https://otee.dev/2021/06/17/getting-there.html", "published_at": "2021-06-17T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7c019f57a", "title": null, "url": "https://otee.dev/2021/06/15/dev-setup.html", "published_at": "2021-06-15T00:00:00+00:00" }, { "id": "01a0e1da-1b36-726b-9abb-a0f7bf966d90", "title": null, "url": "https://otee.dev/2021/06/14/setting-up.html", "published_at": "2021-06-14T00:00:00+00:00" }, { "id": "01a0e1da-1b37-707a-a9ec-4629d92077c2", "title": null, "url": "https://otee.dev/about/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629d9348b6d", "title": null, "url": "https://otee.dev/otee-and-tutu/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629d977ad5c", "title": null, "url": "https://otee.dev/when-otee-met-tutu/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629d9b15bb6", "title": null, "url": "https://otee.dev/contact/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629da69dff8", "title": null, "url": "https://otee.dev/writing/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629daec4d28", "title": null, "url": "https://otee.dev/journey/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629db4e8f60", "title": null, "url": "https://otee.dev/projects/", "published_at": null }, { "id": "01a0e1da-1b37-707a-a9ec-4629db4f7d5b", "title": null, "url": "https://otee.dev/", "published_at": null } ] posts Claim your blog
Back to otee.dev
Blog · corpus.blog/blogs/otee.dev/posts

otee.dev

otee.dev

2026

2025

2023

2022

2021

Undated