Using Redux for global state management in your React application is a complete game changer — no longer must you tactically navigate an ever-expanding (and confusing) web of local state to get the right data to the right components. But with great power comes great responsibility… like adhering to the single responsibility principle (aka, the S in SOLID)! In this article we’ll walk through how to ensure your app is SoC compliant while still leveraging the power of Redux.

The example app I’ll use to demonstrate this is a GIF library app I recently completed for module 5 of Flatiron…


If you’ve used Ruby on Rails for any decent amount of time, chances are that you’re pretty comfortable working within the Model-View-Controller architectural pattern, but may be feeling the constraints of using ERB templates for your views. While ERB serves the purpose of templating the front-end of a basic web app just fine, writing entirely in embedded Ruby can still feel cumbersome and confusing at times, especially as your app grows.

At this point is when you will likely reach for a more robust and streamlined front-end framework like React, Angular, or Vue, which will bring some much appreciated modularity…


When you’re first learning JavaScript fundamentals, there’s a lot that can scare you off and/or confuse you — like the multiple ways to write functions or the fact that functions are treated as first-class objects. I came from a background in Ruby where neither of these concepts really exist, so trying to grasp the JS way of doing things took some time.

The scope chain is another example of this, but much like the other concepts I mentioned, I soon began to see how beneficial and groundbreaking this functionality actually was, and all the potential it unlocked. …


My professional journey has never been easy for me to suss out. Muzzled by indecision in my late teens and early twenties, like many, I had no clue what I wanted to do “when I grew up”. My only true passion in life has always been music — playing it, listening to it, seeing it performed live — it has always been at the center of my life. At the same time, as a self-proclaimed “optimistic realist”, the knowledge that sustaining myself purely on my passion for music wouldn’t be easy or necessarily worthwhile has always been at front of…


When starting my first Ruby on Rails application, I knew one thing for certain: instead writing line after line of code to manage user sign up, sessions and authentication, I wanted to take advantage of a great Ruby gem called Devise. For the uninitiated, Devise is billed as a “flexible authentication solution”, but that’s quite an understatement in my opinion. You can check out everything it does here, but to put it simply, Devise handles everything from user registrations, to sessions, to forgotten passwords and everything in between.

Using Devise relieves you of a lot of work and potential headaches…


Any software engineer will tell you that it’s imperative to know how to “mix-and-match” various technologies, programming languages, and/or frameworks in order to design and build a sound final product. For example, we typically use HTML to build the structure and content of a web page, CSS to add styling and formatting, and Javascript to add certain functionality and dynamics. While this trifecta may be the front-end standard, there’s an unsung hero at your disposal (if you code in Ruby) — ERB, or Embedded Ruby.

An ERB file allows you to embed Ruby directly into HTML, providing a convenient and…


I’ve just completed my first app build, and even though it’s been a few days since writing my last line of code, there’s already been a flood of ideas for how to improve, iterate, and evolve its functionality. In fact, it’s an almost annoying barrage of ideas (that may or may not actually be good) — it’ll stop eventually, right?

My first app is the PHL Covid Testing Ruby gem. It uses OpenDataPhilly’s testing location API and allows the user to search for a nearby testing site in Philadelphia, PA (by name, zip code, drive-thru, or walk-up) and then view…

Brian Firestone

Los Angeles based Software Engineer and musician.

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