What makes frontend development tricky

Preface This blogpost took over a month to write, it’s what I like to call exploratory writing where I explore some ideas that I have, or a new topic that I don’t know about and share it with you. It isn’t as polished as I’d like it to be. I also need to find a better way to present UI code, like having a live UI to interact with. The writing is quite long, there is a lot of code, but hopefully you’ll make it through....

September 17, 2023 · 29 min · Abhinav Omprakash

Petri Plates to Parentheses: How I Became a Clojure Engineer

Exactly a year ago (15th December 2021), I was sweating bullets because it was my first day at my first ever tech job. All I could think of was “They made a mistake and haven’t realized it, they’re going to find out that I can’t really code”. But wait, how did I get here? Just a year ago, I was in a lab, waiting for the autoclave to finish, so I could make my plates and go home (autoclaves are used to sterilize lab equipment)....

December 15, 2022 · 11 min · Abhinav Omprakash

Learning to walk with Clojure

Introduction This is a blogpost on how to use clojure.walk. clojure.walk is incredibly powerful and definitely worth investing time into. We’ll first look at some simple examples to get a feel for the functions and then I’ll demonstrate its power by walking through a problem and showing two solutions, one without clojure.walk and one with. I know the title says ‘learning to walk’, but by the end of the post you will know how to fly....

October 9, 2022 · 23 min · Abhinav Omprakash

ELI5: Clojure's Iteration function

I’m going to try to explain in the simplest way how clojure’s iteration function works. It’s hard to discern how it works by reading the documentation (atleast the first few times). One of the most common use cases for iteration is making paginated api calls. A paginated api call usually returns two important data points, the actual data and a cursor which is used to fetch the next set of data points from the sequence....

September 21, 2022 · 6 min · Abhinav Omprakash

How to run tests in clojurescript

This is a stupid simple guide to setting up clojurescript tests. This was written out of sheer frustration at the lack of a simple guide to run cljs tests. This will not be a guide about the various configurations you can run tests with, or the various ways to run cljs tests or any of the fancy stuff. This is a guide I wished I had when I was trying to setup clojurescript tests....

July 16, 2022 · 7 min · Abhinav Omprakash

Writing Transducer Friendly Code

Introduction Clojure Transducers are a thing of beauty. They maybe hard to wrap your head around the first time, but are a joy to work with when it clicks. I’m not going to cover Transducers in this post, you can watch Lamdba Island’s video on transducers. All that you need to know is transducers are FAST! With a small change in your code, you can get a performance boost for free....

June 4, 2022 · 7 min · Abhinav Omprakash

Macrobrew: Clojure macros distilled

I first read about the legendary lisp macros in Paul Graham’s essay, and since then my whole journey of learning lisp has been driven by a desire to fully understand the power of macros. If you have not heard about the power of lisp macros, here’s a quote from one of the creators of Scheme (a lisp) that captures the essence of this power. If you give someone Fortran, he has Fortran....

November 10, 2021 · 23 min · Abhinav Omprakash

Recursion is recursion is recursion is...

Defining recursion in terms of itself is an old joke among programmers. Despite the fact that it frustrates a lot of new-comers, we don’t change it. I like to define recursion as “Iteration for the cool kids”. I don’t mean this in a snobbish, let-us-exclude-the-for-loopers kinda way, but rather in a tone of appreciation. Recursion is an elegant way of doing things. Recursive alogrithms are concise, have less noise and have immutability baked in (always a plus)....

October 27, 2021 · 9 min · Abhinav Omprakash

Clojure Tutorial for Beginners 1

Welcome, young lisper. I see you have heard the summons from the mystical forces. Prepare yourself for a journey like no other. Your view of programming shall change, and change for the better. You must shed your past beliefs and practices. This is a new path, one that bears little resemblance to the paths you have trodden before. And that is a good thing. Initiation rites You have two options - either use an online one-click setup or bite the bullet and install clojure and other tools on your local machine....

August 30, 2021 · 8 min · Abhinav Omprakash