Oitihjya Seninhelpshift-engineeringProtocols: Clojure’s Polymorphic MagicIn this post, we will try to understand how protocols work in Clojure. As an example, we will see how clojure/core.cache, a well-known…Feb 28Feb 28
Oitihjya SenUnderstanding: Log-Structured Merge TreesIn this post, I am listing down my understanding of Log-Structured Merge Trees (LSM Trees, in short), based on my reading of the first part…Apr 17, 2023Apr 17, 2023
Oitihjya SenTransitioning from Heroku Free Tier to GCP + YugabyteDBThis post captures the list of steps I followed to migrate a HTTP service from a Heroku dyno to a Google Cloud Platform instance powered by…Jan 8, 2023Jan 8, 2023
Oitihjya Seninhelpshift-engineeringUnderstanding Ring Middlewares and Compojure RoutesRing FrameworkNov 2, 2022Nov 2, 2022
Oitihjya SenPreventing Phantom Meetings Using Transactions and Serializable IsolationIn this post, I discuss how time-slot collisions in a meeting scheduling application can be resolved. First, I discuss the business logic…Feb 10, 2022Feb 10, 2022
Oitihjya SenKicking Around Packets: Understanding How the Internet WorksIn this post, I try to answer the question “What is the internet and how does it really work?”Feb 2, 2022Feb 2, 2022
Oitihjya SenMy First Clojure Backend Using Ring, Jetty and CompojureIn this post I discuss how I built my first web-app, RemindMe, using Clojure! The app is deployed here: https://remind.otee.devJan 25, 2022Jan 25, 2022
Oitihjya SenWho Moved My Cheese: Laziness in ClojureIn this post, I try to understand what lazy sequences are and how to create our own lazy sequence in Clojure.Jan 17, 2022Jan 17, 2022
Oitihjya SenRecurse Center: Week TwoThis post is about my second week at the Recurse Center.Jan 17, 2022Jan 17, 2022
Oitihjya SeninJavaScript in Plain EnglishHow to Make Short Links Shorter: Using NGINX and Custom DomainA guide on how to shorten short links generated by Twirl.Jan 13, 2022Jan 13, 2022