The what, the why, and the how of Bloom Filter

Have you ever wondered how does Medium recommend blogs to read or how does a platform with millions of users tells if a username is available or taken? If yes, you have come to the right place, as we are going to look at the data structure that makes this and a lot more happen. The data structure is Bloom Filter.

Read more »

What is a JavaScript Meta-framework?

No, not that Meta

What most developers call JavaScript frameworks (React, Vue, Svelte, etc) can more accurately be thought of as UI Libraries. While they can make writing the front end of websites and apps simpler, they have no opinions at all regarding what goes on further back in the stack. They don't even have prescribed methods of organizing the folders and files in your projects.

Full-fledged frameworks (think Rails or Django), on the other hand, will usually be very opinionated and expect the code to be organized in a certain way, with the hope that this will lead to shorter development time by getting rid of analysis paralysis and bikeshedding.

Thankfully, there are libraries available to fill that role in the JavaScript ecosystem. Since most UI libraries are called "frameworks", these more full-featured libraries have taken to calling themselves "meta-frameworks".

In a nutshell, they let JavaScript developers focus on the "what" and take care of most of the "how" for you.

Read more »

Statement on Roe vs. Wade

At OmbuLabs, we value and respect our teammates and we are committed to protecting their mental health, physical health, and well-being.

On Friday June 24th, the Supreme Court announced a decision to overturn Roe v. Wade, removing the federal right to an abortion and leaving the decision up to each state.

We at OmbuLabs are prepared to ensure that all of our teammates have consistent and safe access to the benefits we provide, regardless of the state in which they live.

Read more »

Design Sprint Day 2: Sketch

The second day of the Design Sprint is about finding inspiration, looking back at the decisions made during Day 1, and starting to assemble possible solutions. Now that the team has narrowed down a problem space, it’s time to start the idea generation process again, but this time with sketches.

Read more »

How to start from scratch with User Experience

Have you found yourself in the fortunate position of being the only designer in an organization that doesn’t have any design assets or previous research? Lucky you! Now is the time to do things right and build a solid foundation for excellent research and design practices while also creating value as soon as possible. Here’s my approach to starting off on the right foot as a UX practitioner in an environment where you are breaking ground and creating UX assets from scratch.

Read more »

Design Sprint Day 1

Let's deep-dive into what happens on the first day of a Design Sprint. On Mondays, we understand the problem.

I want to give credit to the creators of the Design Sprint method, Jake Knapp, John Zeratsky, and Braden Kowitz from Google Ventures who developed this Design Thinking method in the mid 2010s. Their process is the starting point from which all variations of Design Sprints come from, and I work with their framework to create Design Sprints that are customized to suit client needs.

Read more »

How to Run a Virtual Retreat

Just before the world shut down in 2020, the team at OmbuLabs participated in an in-person retreat in Punta Cana. It was a wonderful experience, and the team was eager to have another retreat in 2021. We even began planning one, but with the safety of team members at risk because of the pandemic and the difficulty of traveling it soon became obvious that an in-person retreat would not be possible. Therefore we turned our attention to having the retreat virtually.

This ended up being a very successful event, and we wanted to share the experience and strategies that we used to plan and execute this retreat which took place virtually over four days towards the end of 2021.

Read more »

Managing Heroku's Review Apps from the GitHub's Pull Request

At OmbuLabs, we have some projects where multiple teams work at the same time on different features or fixes. We started using Heroku's Review Apps because we kept running into blockers when a team needed to deploy a branch to our staging server but another team was using it.

There are two configurations in Heroku to create Review Apps: manual and automatic. A manual creation gives us more control, but not every person involved in the QA process has access to the Heroku pipeline. So, for many months, we used the automatic Review App creation every time a PR was created/updated. This was an easy workaround, but there's one problem, the Review Apps for Heroku Teams can't use free dynos, so we were being charged for Review Apps that were created before they were actually needed or even for PRs that didn't really need a Review App at all.

We started looking for an easy way to control the creation and deletion of Review Apps that can be triggered by anyone directly from the GitHub PR and here are the details and how we do this now.

Read more »

Announcing the OmbuLabs Design Sprint

Do you know what the most successful apps and digital products have in common? An idea. An idea that was challenged, tested, recalibrated, and validated to be a perfect market-fit. New startup leaders may find it challenging to turn their ideas into a product. More specifically, a product that solves the right problem for the right users. That's where we come in. Introducing the OmbuLabs Design Sprint 🎉.

Read more »

How to Nail a Cultural Fit Interview - Especially for OmbuLabs

At OmbuLabs the first step in the interview process for any of our open positions is the cultural fit interview. This interview will tell us a few things about the candidates. It should let us know if they have the kind of experience that would match well with the open job, it also shows us if the candidate would settle in well with the values of the team, and it tells us if we think we should offer a second interview.

Read more »

How to Export Instance Methods from React Function Components

"You can have a little imperative React, as a treat."

When building modern applications with React, Function Components and Hooks are the de facto way to do it. Hooks make your code more declarative and easier to reason about (usually).

However, with all great hammers, you run the risk of everything looking like a nail. Occasionally, some more object-oriented solutions might be the right tool for the job. For example, what if you had a child component that contained a function that needed to be called from the parent? You might want an instance method, but we don't use Classes anymore!

Fear not -- you don't have to abandon Hooks to be able to call methods on child components. In this post, I'll show you how -- using forwardRef and useImperativeHandle.

Read more »