Tamizh in words

Announcing a book series - How I Solve It Using Clojure

Published on
Read Time
· 3 min read

Why Am I Writing this?

I fell in love with programming at the age of 12, and I am one of the luckiest people on the planet to have their hobby as a profession.

In my fifteen-year professional career, I have been fortunate to work with 11 different programming languages and develop 20+ software products using them.

Among those 11 programming languages, Clojure is my favorite and go-to language. It's my favorite for these two main reasons.

  • Frictionless Mental Model Translation - Software design is the process of conceptualizing how a software system will work before it is implemented or modified. When solving a problem using Clojure, I experience zero friction in translating my mental models into code. It just fits seamlessly.

  • Faster Feedback Loop - We often fail our way to success during software development. We write a piece of logic and then run the application to verify it. If the logic is first of its kind (like calling third-party HTTP APIs or DB calls), more often than not, it won't work in the very first iteration. We use a debugger with breakpoints or print statements across the codebase to make sense of what is happening and do the necessary course corrections to get a job done. When using Clojure, I don't rely on any of these. Thanks to its interactive programming environment, I get instant feedback on my logic without wasting any time in the Yak shaving.

These two reasons help me tremendously in achieving the flow state. As Csíkszentmihályi explained it, flow is "a state in which people are so involved in an activity that nothing else seems to matter; the experience is so enjoyable that people will continue to do it even at great cost, for the sheer sake of doing it."

I love developing software using Clojure, and it is hard to express it in words.

In the classic literature, Tirumantiram, there is a beautiful poem that has this golden line

யான் பெற்ற இன்பம் பெறுக இவ்வையகம் (Yaam petra inbam peruga ivvaiyagam)

It means, Let the world also experience the pleasure/joy/happiness that I experience in my life.

It is the objective of this book series.

The SAAS Product Idea

The book centers on the following Software as a Service (SaaS) product idea: building an online platform for teachers and coaches to conduct assessments.

They should be able to set up their question bank and conduct online tests by selectively choosing the questions from it. The students can attend these online tests and submit their answers. The platform should facilitate this entire process, evaluate the answers, and score them.

How this book series is organized

This book series will be of three parts

  • Part 1 - A shorter one that captures how I set up my Clojure projects and write pure domain logic decoupled from persistence and IO operations.
  • Part 2 - This part concentrates on the web application side of the product. It will build on top of the domain logic developed in Part 1 and build an end-to-end full-stack application.
  • Part 3 - The final part covers further application enhancements like new features, extending existing features, billing, and feature entitlements. This part captures how a product written in Clojure evolves after achieving product-market fit and traction.

Who this book is for

This book series assumes that you already know the basics of Clojure. If you aspire to learn more about how to build an end-to-end application using Clojure and evolve it to accommodate future requirements, then this book is for you!

I have already started writing the first part and will likely self-publish it on Christmas Eve. Please subscribe using the form below to keep yourself updated on the progress.

My Clojure Works

If you are hearing about me for the first time and wants to know more about my clojure works, do check the following links


Did the content capture your interest? Stay in the loop by subscribing to the RSS feed and staying informed!