I recently discovered a Google tool that I immediately took an interest in: Data Studio. According to Google “Data Studio is a free tool that turns your data into informative, easy to read, easy to share, and fully customizable dashboards and reports.” For me the thing that makes Data Studio really stand out is a combination of it being free (unlike the very similar tools Tableau and Amazon QuickSight) and the fact that it is fairly easily extendable by means of community-built connectors and visualizations. While there is a fair amount of documentation from Google on how to build connectors…

While I am already fairly familiar with AWS Lambda, the platform for doing serverless computation at Amazon, I was not familiar with the “Step Function” aspect until I was introduced to it at work. To oversimplify a bit: step functions are a way to run multiple lambda functions* sequentially, like a state machine.

Photo by Ankush Rathi from Pexels

Pros & Cons (vs. one “big” lambda)

Some gains of doing it this way rather than doing one bigger lambda function to handle all concerns are:

  • Your code can be organized into smaller, discrete chunks. The Single Responsibility Principle of SOLID comes to mind.
  • Each step in the state machine can have its own…

One man’s thoughts on which Linux flavor is best suited for your personal computer

A fitting image for comparing Linux distributions

The first time I tried Linux was when I was still in high school, circa ~2004. I had used Windows my entire life up until then but as someone who was passionate about technology, network security, coding, and general computer tinkering, the word “Linux” came up enough times in my tech exploration to get me curious about it. Eventually, I downloaded 6 CDs worth of SUSE Linux and set off to try it on an old PC. To see something on the monitor that didn’t have a Windows logo, with a UI that looked completely alien to me, immediately got…

We recently launched a new project at work that uses AWS’s “serverless” lambda functions and I wanted to see how simple it would be to leverage lambdas again to do some alerting around when our application encountered errors. When you print to standard output in a lambda (as is the recommended way of logging by Amazon), it goes directly into a configured CloudWatch log group which you can then add an event trigger to in order to run a separate “alerting” lambda function. I wanted to see what it would take to make that work together with Slack to post…

I wanted to put together a guide on how to get started with my typical set up for a new rails web application project, mostly for myself to refer back to as a kind of checklist for how to quickly get going with my usual tooling, but I figured it would be helpful for others as well, so without further ado, let’s go!


  • Node.js (for webpacker to run)
  • Yarn (used by webpacker to install dependencies)
  • Visual Studio Code (I’ll explain how to set up debugging in it)
  • Ruby (does this really need to be said?)
  • Rails installed globally (in order…

Running a web application such as a Node.js API, Ruby on Rails site, or really anything that accepts HTTP requests simultaneously with Apache or NGINX may seem counter-intuitive: you might ask yourself “why the heck would I want to run a web server with my application that already acts as a web server?” — but that’s the wrong question to be asking. The right question is “What kind of advantages do I gain by using the two together?” and the answer may surprise you.

Why use a reverse proxy?

There are several huge advantages to be gained.

  • You can set up a ‘under maintenance page…

Coming from the pre-Angular2 Angular.js world, Angular (which is already at version 5 at the time of writing) can seem daunting with its insistence of using the Observer/Observable design pattern. Everywhere you look, things seem to return an RxJS Observable instead of that nice familiar promise we all know (and maybe even love?). When trying to pick up Angular, this was super frustrating and my gut reaction was to use the very-handy toPromise() method that Observables provide and take the easy way out, but I convinced myself to learn it since I was sure there was a reason for all…

Petro Podrezo

You’re never too old to learn something stupid.

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