Messaging & RabbitMQ

RabbitMQ is an event bus. In other words, it’s a message broker. Simply put, RabbitMQ accepts and forwards messages between separate applications. Messaging is useful for decoupling applications. This means that different applications are connected through a message broker, but they don’t directly rely on one another. Other open source message brokers include ZeroMQ and qpid. This post will provide an overview of messaging with a focus on RabbitMQ, AMQP, and the pub/sub pattern.
Read more →

SQL GROUP BY using JavaScript

This post explores how PostgreSQL’s GROUP BY clause and JavaScript’s reduce method both have the ability to help you group objects/rows of data based on properties. I’m assuming you are already familiar with both GROUP BY and reduce, and that you are also (mildly) interested in gaining a deeper understanding of each. PostgreSQL’s GROUP BY clause According the PostgreSQL documentation, “the GROUP BY clause is used to group together those rows in a table that have the same values in all the columns listed…The effect is to combine each set of rows having common values into one group row that represents all rows in the group.
Read more →

Interviewing TypeScript

Sometimes JavaScript tries to guess what you mean. For example: true + [] // returns "true" You could say JavaScript is trying to be helpful by not asking any questions and just getting results, but sometimes those results come with a cost. Sometimes you may not find a bug that JavaScript’s guesswork produced until your code is in production. TypeScript helps solve this problem by providing error messages in a more timely fashion
Read more →

Making Filth Finder Faster with Google Cloud

I’ve written a bit about Filth Finder, an app that surfaces health inspections from NYC restaurants near you. Most recently, I wrote about the API that served the restaurants to the frontend. While this implementation worked, it was pretty slow to load. In an effort to speed up the loading time, I rewrote the backend to pull the of index restaurants from Google Cloud Storage. Check out how much faster it loads.
Read more →

Details Oriented

You don’t need JavaScript to implement a dropdown. You can create an accessible dropdown using just the html <details> element. This post will cover how I implemented a dropdown menu for an app I recently created called Congress Connect. I first learned about this element at a BrooklynJS meetup almost a year ago. There was a really cool talk, and the slides are excellent, and I highly recommend reading them if you are interested in learning more than this post covers.
Read more →

Geocoding with NYC’s GeoClient API

Filth Finder is an application that loads NYC restaurants near you and allows you to view health inspection violations at each restaurant. One problem that had to be solved when developing Filth Finder was how to calculate the distance between the user and all of the amazing restaurants NYC has to offer. The NYC Open Data API provided the addresses for each restaurant, but Filth Finder needed the geolocation of those restaurants.
Read more →

I’m Going to LTV Conf

If you are going to LTV Conf and want to chat about tech, please say hi. I received a scholarship to attend LTV Conf, and I’m looking forward to attending next month. The conference brings together leaders from the SaaS industry to share ideas about marketing, scaling, tech and entrepreneurship. I found out about the scholarship through Diversify Tech’s newsletter, and I applied knowing that it would be a cool opportunity to learn more about the SaaS industry.
Read more →

Filth Finder: React Hooks Rewrite

Have you ever walked around NYC looking for a place to eat? Have you ever wished there was a way to find the health inspection info for restaurants near you? Well, now you can do that using Filth Finder, a React app with a Rails backend. This application fetches data from the NYC Open Data API. I recently took the opportunity to rewrite one of the components using React Hooks!
Read more →

A Brief Overview of JavaScript’s New Primitive Type: Symbol

In the last post, we learned that we can access the index of an array in the modern for…of loop by using the entries() iterator which implements a method of the new primitive type Symbol. You are probably familiar with the older primitive types: undefined, null, Boolean, Number, String, and Object. Symbol is a new primitive type! What can Symbols be used for? to define properties for objects for iteration to define a global registry of objects to define some special well-known methods in objects This post will review these 3 three use cases, so let’s start at the top.
Read more →

JavaScript’s for loop: A Retrospective

When I started learning JavaScript, ES6+ was already released, and I was initially pretty confused about the difference between the older style versus the ES6+ style. Once I started picking up the language, it became easier to recognize and appreciate how ES6 made many aspects of JavaScript not only more readable, but also easier to maintain. For this post, let’s take a closer look at the traditional versus the modern for loop.
Read more →