As part of my on-going efforts to continue to contribute to the open source community, I have released @clarityhub/serverless-simple-router as part of the Clarity Hub, Inc open source ecosystem.

What’s It For?

At Clarity Hub, we use serverless to quickly build new features and deploy without the overhead of configuring servers using kubernetes or docker. This package lets us quickly route incoming requests to controllers so that our code can stay organized within a serverless lambda.


All of the documentation on how to use the serverless-simple-router can be found in the README of the Github repo, but to give a quick overview: if…

If you have an expensive calculation that you want to cache, there are a few different approaches you can take to cache that result using React and not have to constantly re-compute it. While you could wrap the expensive calculation using memoization, I’m going to cover a few techniques that move that responsibility to the component instead of the function.

By no means is this an exhaustive list, if you can think of others, please feel free to comment below.

State Hooks

A simple approach to caching synchronous (this one also applies to asynchronous calculations) would be to do the calculation when…

As development team and products grow, creating a unified design system becomes more appealing for teams to be able to get a single source of truth for design and shared components. A robust system can help teams develop UIs faster, more consistently, and with greater browser support.

I’ve helped teams create Design Systems to enable teams to move fast, but still be consistent by creating reusable tokens and components for all of our development teams to use.

Building A Design System

Before we jump into the how, let’s start with the what. What is a design system?

A design system is the source of…

There are different types of user research that your team might be doing. You may be doing surveys and A/B testing to get quantitative data to test user behavior. Or you might be doing customer interviews and usability testing to get quantitative data to understand the experiences and goals of your customers.

The goal is to create products and features that are truly relevant to your users (User Research, That’s why we recommend that you take the time to understand how to make the most of your user research sessions. …

Are you asking the right questions during your stand-ups

If your team is new to sprints or is trying to adopt more agile practices, then you may have started doing various ceremonies: daily stand-ups, sprint retrospective, grooming, etc.

For new teams, sometimes the daily stand-ups seem repetitive, boring, or plain useless.

Boring, Painful Stand-Ups

Normally teams do some baseline questions that everyone goes around in a circle and answers:

  1. What did you do yesterday?
  2. What are you doing today?
  3. Do you have any blockers?

While the questions are important, the goal is to make sure the team is collaborative and involved. It’s easy to just go around and succinctly say: “I was…

Product managers know how important it is to align their products with their customers. The best possible way to run a modern business that sells products is to utilize modern tools to help you undergo detailed user research. If your business isn’t doing customer discovery, then it’s going to fall behind businesses that do.

Doing Customer Discovery

Customer discovery is the ideal way to minimize risk by creating products that actively appeal to your customer base. It’s is all about testing and checking all of your assumptions about your customers (What is Customer Discovery, Future Founders). It’s about interviewing them and figuring out…

Customer Discovery is a key process in making sure that you are building what your customers actually want. It involves getting out there and interviewing potential customers and users to figure out their current pains, what tools they already use, and how they currently solve their problems.

Clarity Hub makes it easy to take notes and capture all of your customer interview data. You can focus on building great products now that all of your customer interview notes, pictures, recordings, and transcripts are all in one place.

Let’s explore how you can gather and organize customer interviews and feedback with…

Back in 2014, I was part of a small team that was in charge of maintaining dozens of websites and applications for the Global Institute it Sutainability at Arizona State University. While the team was small, there was no shortage of work to be done — the development team created and maintained around 30 active websites , an event management system, an employee management system, and data integrity systems for all of the departments long term studies. It’s safe to say that the team’s time was valuable.

Since many of the websites were the first point of contact for potential…

The Reducer Pattern with RxJS

Our Goal

With RxJS, we can create observables that allow us to listen for multiple values and manipulate streams of data. If we look at the data coming from the reducers of a redux store, it can be considered a stream of data that we are reacting to by updating our React view.

With Observables, not only can we implement the functionality that redux provides, we can easily extend it to include asynchronous actions that return a single piece of data or multiple values.

In this article, we will go over how to create a redux store without using redux — instead…

The key to creating maintainable code is adhering to “low coupling, high cohesion”.

But what exactly does this mean? At what point is your code loosely coupled and highly cohesive?

In this article, I refer to “modules” which represent almost any sort of language construct you have. In Object Oriented languages, this may represent classes. In JavaScript, it may represent actual packages or domains.

Low Coupling

How much do your different modules depend on each other?

Modules should be as independent as possible from other modules, so that changes to module don’t heavily impact other modules.

High coupling would mean that your…

Ivan Montiel

UI Engineer at Lacework. Founder at Clarity Hub.

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