James Russo

Engineering at Brex

Fullstack engineer who knows nothing about design.
Example: this website.

Bored Hacking

One Year of Elixir: How it compares to Ruby

68.calendarFebruary 21, 2021 | 7 min read

Last year I started a new job at Brex where Elixir is the primary programming language for business logic. This was my first real adventure into Elixir after working in Ruby (mostly) for my professional career. Since José Valim came from the Ruby world, Elixir was a common buzzword I heard for years. I had done a tutorial or two here and there but never gotten to really use it. Now, looking back at the past year I've become fairly comfortable with Elixir, and wanted to outline some of the things I really enjoy about Elixir and some of the things I miss from Ruby.

Commenting Code: School vs Industry

68.calendarDecember 26, 2020 | 5 min read

Back in school, teachers and TAs made commenting your code seem like a necessity that everyone constantly does as a software engineer. Without comments, you shouldn't consider your code complete. However, since working in industry I find it much different in practice. This post outlines my own observations on when software engineers actually comment their code and when it's important.

Onboarding is not a One Way Street

68.calendarNovember 08, 2020 | 4 min read

Onboarding can be a very hectic and stressful time when you are starting a new job. New coworkers to meet, new codebases to learn, new languages to learn, new technologies, new processes, and the list can go on and on. Good onboarding materials and processes can go a long way when you're first starting out. However, it shouldn't just be a one way street where the company gives to you and you don't give back anything in return. Onboarding should be a collaborative and incremental process that every new hire actively contributes to. Things change from new hire(or onboarding class in larger companies) to new hire, especially in a fast moving startup. It is therefore not only up to the existing members but also the new hires to contribute to the onboarding experience and make it better over time.

Starting a new Elixir Project

68.calendarJune 21, 2020 | 8 min read

I recently started coding in Elixir professionally. It's relatively easy to develop and add new features at work where most things are set up and running. However, I wanted to get a better understanding of setting up an Elixir project and tooling from scratch. So I decided to start simple and try to write an Elixir wrapper for a 3rd party API. Here are my thoughts and learnings from starting a new Elixir API Wrapper from scratch.

External API's Should Allow for Free Dev Accounts

68.calendarMay 30, 2020 | 4 min read

Recently I wanted to create a wrapper for a third party API. It wasn't an API I used myself(at least not at the moment), but seeing as there was no wrapper for this language yet I thought I'd give it a go. Luckily this company provides a test account and sandbox environment for every account free of charge. However, I realized this is not a common thing and makes it incredibly difficult to provide wrappers for third party API's unless you are actively using the API and are a paying customer in most cases. Wouldn't developers and the companies be better served if anyone could easily create a test account for an API and develop against it?

Tips For Software Engineering Interviews

68.calendarApril 26, 2020 | 6 min read

Here are some tips and tricks I used during my interviews that helped me perform better. This is by no means a fool proof guide to getting a job, but can definitely help you to perform better.

Technical Software Engineer Interview Tips

68.calendarFebruary 17, 2020 | 5 min read

Software engineering interviews can be incredibly stressful and difficult. Recently, I went looking for a new job and threw myself back into this anxiety inducing process. In order to perform better in my interviews I came up with a 7 step game plan for technical interviews. This is by no means a fool proof guide to passing technical interviews, but can definitely help you to perform better.

Preparing for Software Engineering Interviews

68.calendarFebruary 16, 2020 | 13 min read

Software engineering interviews can be incredibly stressful and difficult. Recently, I went looking for a new job and threw myself back into this anxiety inducing process. Here are some tips and tricks I used to prep during my interview process that I believe helped me perform better and feel more prepared. This is by no means a fool proof guide to getting a job, but can hopefully help you to perform better.

Always Follow Orange Cords

68.calendarDecember 23, 2019 | 7 min read

In software development there are a number of things that once had a purpose but after years of refactoring and feature development may no longer serve a purpose. It's important to never accept something as necessary without understanding why it exists and if it's still useful. When you can, take your time to follow and understand every code and system you see so you can become a better developer and help your fellow developers.

Gatsby Plugin Updates Are Annoying

68.calendarNovember 17, 2019 | 6 min read

Gatsby.js is a fantastic framework for developing statically generated websites using React. Plugins are a necessary part of Gatsby that allow you to quickly and easily add functionality to your Gatsby generated site. However, a lot of these plugins are updated very frequently and at the same time which can lead to a rather annoying number of pull requests when coupled with Dependabot.

When should you use Gatsby?

68.calendarNovember 01, 2019 | 10 min read

Gatsby.js is an up and coming technology for building simple statically generated websites. It has seen a huge adoption, and seemingly everyone in frontend development has heard about it or is talking about it. However, this has led to people trying to use Gatsby in the wrong places instead of other technologies better suited for that situation. This post talks about me falling into this subgroup as well as some of the cases where you should use Gatsby and when you shouldn't use Gatsby.

Automating Deploys to Kubernetes with CircleCI

68.calendarOctober 11, 2019 | 9 min read

This tutorial shows how to automate deployments to Kubernetes using CircleCI. This tutorial uses AWS services like ECR and EKS, but it can be generalized and changed for other Kubernetes solutions. This post will go through the entire CircleCI flow of deploying changes for your app to Kubernetes from updating the image and storing it in a repository to deploying the new application on EKS.

Mocking Sentry in Jest and Gatsby

68.calendarSeptember 23, 2019 | 2 min read

This is a very short and simple tutorial describing how to mock Sentry in the Jest testing framework and more specifically in a Gatsby.js application. This approach can be used in other javascript frameworks that use Jest, but I will use Gatsby.js and their unit testing tutorial as a basis.

Deploying a Gatsby Application to an S3 Bucket Using CircleCI

68.calendarAugust 15, 2019 | 7 min read

This is a tutorial about how to deploy a Gatsby.js application to an S3 bucket using CircleCI.

Avoiding Webscraping Throttling Using Python and Tor as a Proxy

68.calendarJuly 08, 2019 | 18 min read

In order to hide your IP address and to try and limit throttling when web scraping, it might be a good idea to use a proxy such as Tor. This post describes how to use Python based web scraping tools and Tor to hide yourself when scraping websites for data. However, it can also be used more broadly when using Python to make requests to hide your actual IP. I do not condone the use of this information for any illegal or illicit activity.

Deploying a New Docker Image to an EKS Cluster on Codeship

68.calendarMay 19, 2019 | 12 min read

This is a tutorial about how to deploy a new Docker image to your Kubernetes worker nodes with Codeship when you've deployed your cluster on EKS. This was based on a combination of tutorials found on Codeship and comments and extraneous links. The documentation on Codeship requires you to look in multiple places and is outdated in some cases, so hopefully this aggregates it in one place and updates it.

Setting Up AWS Elastic Kubernetes Service (EKS) and Deploying

68.calendarMay 15, 2019 | 9 min read

This is a tutorial on how to setup an AWS Elastic Kubernetes Service (EKS) cluster and deploy a Docker container service to EKS. We will mostly follow the AWS tutorial but make some changes to deploy your personal containers instead of the ones provided by the EKS tutorial. This process was used to deploy our Next.js Application.

Setting Up a Next.js Docker Container and Publishing it to AWS ECR

68.calendarMay 13, 2019 | 5 min read

This is a tutorial on how to setup a simple Docker image for a Next.js application so that we can deploy the Docker image to a container registry. We will use AWS Elastic Container Registry (ECR) in this tutorial as our Docker container registry. This way we can access our Docker image from other machines and deploy the image to something like AWS Elastic Kubernetes Server (EKS) or AWS Elastic Container Service (ECS).

Setting Up Google Optimize in a React App Using Segment

68.calendarApril 27, 2019 | 7 min read

Setting up Google Optimize for A/B experiments in a Single Page Application(SPA)

Pipelining Segment Events Back Into Our eCommerce Store

68.calendarApril 27, 2019 | 6 min read

Using AWS Lambda Functions and Kinesis Streams to process and stream Segment.io events

Hello World

68.calendarApril 23, 2019 | 2 min read

Welcome to James Russo's Blog about technology

© 2021 James Russo. All Rights Reserved, Built with Gatsby