Sign in

Clojure/ React Hacker. Indie Business Enthusiast. Amateur Mindfulness Seeker & Writer. Other home: krimlabs.com

TL; DR; If you have already learnt it or have the time to do so, then yes

Photo by Matt Palmer on Unsplash

I have been writing Clojure professionally for the past 5 years, but I still, have a hard time recommending Clojure to friends and clients. My friend Anand, co-founder of Pabio aptly said that:

JavaScript for me is a language for making prototypes, and not a system that you want running after a decade from now.

Although I’m a Clojure fan-boy and advocate, the realist in me knows that Anand is right. Clojure has an adoption problem.

What is Clojure?

Clojure is a functional LISP that with a futuristic feedback loop. It’s hosted, has a strong following, and often reaches the first page of…


My personal list of resources and techniques that might help you land your next job in Clojure

Photo by Iman soleimany zadeh on Unsplash

So you have read a few articles, watched some Hickey talks, and dabbled with the REPL. You want to graduate from the hobbyist level and write Clojure professionally?

I was in this position a few years ago and soon realized that there are way fewer Clojure jobs compared to JavaScript or Python. But many companies use Clojure, and you can easily find them if you know where to look. This article is a collection of resources and techniques that might help you land a Clojure job.

Clojure is a superpower. In my biased opinion, it’s a radical way of building…


Clojure is a functional LISP dialect written by Rich Hickey. It is recommended by Paul Graham and Uncle Bob Martin as the go-to modern LISP.

Clojure is a hosted language

What’s so special about Clojure?

Clojure is a usable, yet purist, language. It is not as strict as Haskell or Ocaml, nor as forgiving as JavaScript or Python. It stays true to the functional aspect and stresses the importance of building simple systems.

It doesn’t run on a VM itself but is hosted on the VMs of existing languages. There are three official ports of Clojure:

  • Clojure — Runs on JVM
  • ClojureScript — Runs on Node, Browser, IO, and other JS runtimes
  • ClojureCLR — Runs on .NET runtime

In addition to the official ports, there are many community-led efforts to run Clojure on top of…


Photo by Jeremy Bishop on Unsplash

Did you know that you sleep in multiple phases? At first, you lie down and close your eyes, but it’s still easy to be woken up. As sleep progresses it becomes deeper, to the point where you lose your sense of time and start dreaming. This stage is called deep sleep or REM sleep and it’s essential for learning, memory, and wellbeing. The catch is — you cannot progress to the REM stage until you have finished the earlier, non-REM stages.

Flow state is akin to deep sleep. When you reach your desk, you are not immediately productive. You read…


On March 4, 2020, I saw that my friend Anand was building an open platform to help an NGO. This group had designed a Food and Health Kit and had established safety protocols. I called him up and found myself at a conference the next day.

15 odd people, whom I had never met before were trying to feed the marginalized. They had already raised Rs. 700,000 (~ $ 9,000) and had partnered with an NGO to handle on-ground distribution.

I was told that the our kit was designed to sustain a small family for 1 month.

The optimist in…


Photo by chris panas on Unsplash

Switching Component Libraries is hard

You just found out that a Modal library you use is malicious and can potentially steal user data.

You want to replace this library ASAP. But your app is in prod and has over 100 usage instances. What will you do?

I was in a similar situation, except the library we depended on wasn’t rogue. We needed to change the library because we found a better one.

Updating a library is hard because every library has a different API.

To future proof our applications, we introduced the concept of Component Interfaces. …


This month’s startup ideas have 3 offerings:

Text to social media ads

Most posters/ads/banners are not creative production, but just an aggregation of stock photos, graphics, and content. This aggregation takes is a set of menial tasks like:

  • Search Stock Photo Sites
  • Search Stock Graphic Sites
  • Create a simple Design

Automate these tasks in an engine that can convert any text into a banner.

Target Audience

Bloggers, Ad Agencies, Maybe People who make presentations.

Implementation

  • A neural network that studies existing ad designs
  • An NLP engine that parses a sentence, fetches relevant images and illustrations
  • A design engine uses the neural net and fetched resources…

This story is available without a paywall at https://krimlabs.com

At the end of 2016, a colleague and I built a sales acceleration platform. It was a bunch of if statements that we tried to sell as AI.

We were both developers and had to learn how to sell in order to survive.

We didn’t survive, but we gained a new perspective.

Photo by Kaleidico on Unsplash

I used to think of salespeople as charmers and smooth talkers, but under the hood, their skills are exceptional.

Sales reps are excellent listeners

A sales rep’s job is to figure out if the lead needs their product.

The strategy is pretty simple: ask…


Cover Photo by Stoica Ionela on Unsplash

Writing ideas down allow them to rest and germinate. This is an attempt to log my thoughts so I can refer them later. If you are wondering, “Aren’t ideas to be kept secret?”, my personal opinion is no, because ideas are cheap. It’s only the execution that matters.

For this version, I have been thinking about two products. Both of them are in the content creation/ blogging domain.

They are:

JAM Stats

Static Website Analytics Powered by Google Sheets

With the rise of static site publishing and headless CMSes, there is a trend to shift personal blogs and other small sites to JAM.

But the available analytics solutions are…


Most projects I work on tend to have more than one front-end. Admins have their admin panel, customers access the main site and developers might have some developer status panel.

In this tutorial, we’ll learn how to set up and securely serve multiple sites with Docker. Although targeted at React, this approach can be used to serve anything that exports HTML.

Base Photo by Gabriel Gurrola on Unsplash

Prerequisites

This tutorial assumes that you are familiar with Docker and docker-compose.

It also assumes that we have two sites: admin-ui and ui. Both these sites reside in a directory called MyApp. And both these sites contain a folder called…

Shivek Khurana

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store