Making Redux Easy

React and Redux are a top choice for front end projects. React provides fast performance, easy ways to create shared components, and a plethora of libraries. Redux lets you simplify state management in your application, but it has serious drawbacks. In large projects, Redux bloat your project with repetitive code. To support a single store update, you need to create a reducer that handles an action type which is dispatched from an action called inside a component.

Introducing Daily Reading Notes

Recently I ran an experiment of posting daily reading notes on this blog. This was very much a personal experiment. Making these posts every day reinforced my reading habit. I felt motivated to set aside time to read, and I got the chance to reflect on my reading. It also provided the opportunity to share more with others. I plan on keeping this habit going, but this blog isn’t the right place for it.

Why I Built a Static Site in Clojure

At a summer barbecue, a friend asked if I could build a website for his new restaurant. But what he didn't know was that I haven't built a static site in nearly a decade. However I couldn't let him spend thousands of dollars on a cookie cutter website designed by a firm that knew nothing about his restaurant. We started coming up with ideas right away over a couple of beers.

Your Job Isn't Writing Code

Every line of code you write is a liability. That line of code you just wrote adds complexity to your code base, gives you more nuances to remember, it might even be a bug. If code is so expensive and dangerous. What can you do? After all, you are a developer. The answer: You must remember your real job… Delivering value to the users. Users don’t care what your class hierarchy looks like.

Universally Testable Dependencies in JavaScript

JavaScript dependencies are notoriously hard to mock and test across framework and environments. However, Dependency Injection (DI) ensures testability. It is common in statically typed languages, like Java or Go, but is also useful in dynamic languages like JavaScript. This article will guide you through a simple technique that can apply to any JavaScript code base, frontend or backend, independent of frameworks and libraries. The technique I am going to demonstrate is arguably not true DI, since the dependencies are still managed by the module using them.