Image for post
Image for post
Photo by David Straight on Unsplash

On December 1, 2020 I left Gusto after over 4 years of employment. It was my first job out of university. My first job residing in a city faraway from home. My first job with significant consequences.

The Itch

My desire to leave had been building for months. I joined Gusto as a 22 year old fetus and had matured greatly since starting. I felt funny about the fact that I’d spent almost half of my twenties working for the same company. How much of my identity was tied to working there? Who was I without Gusto? …


Image for post
Image for post
Image source: https://www.youtube.com/watch?v=Dh-ULbQmmF8

When you think of the word “interview”, what comes to mind? Do you imagine a simple encounter between two people exchanging questions and answers? One in which all is well and professional? And everything seems to be running smoothly?

As a software engineer, I’ve interviewed close to hundreds of prospective candidates both in a technical and cultural capacity. The format consists of 45–60 minutes of either solving a technical challenge or asking questions that reveal if they’d be a good fit for the company.

As straightforward as the process may seem, I’ve had my fair share of incredibly awkward experiences which has revealed to me the messiness of the practice. …


Perhaps you are not comfortable or don’t know much about either of these two terms other than they start with the same four letters “auth”. Well, were you aware that the prefix “auth” is actually Greek for “self”? Both operations refer to being able to do things on one’s own behalf, but there are important distinctions between them that I will break down in plain English.

Image for post
Image for post

In the context of programming, authorization refers to checking that a user or entity has the ability to access specific resources based on their permissions.

Authorization is not the same thing as authentication. Authentication refers to a user or entity being able to prove their identity in order to access specific resources. …


If you’re intimidated by ActiveRecord :joins then fear not, this article will break down a step-by-step guide for understanding and using them with ease in your own code.

Image for post
Image for post

Why joins are important

The main motivation behind joins is to efficiently load data. With joins you can significantly reduce the time it takes to select records that fit the criteria you are looking for.

Slow code without joins

Let’s say we have 2 tables: Employee and Company where a company has many employees.

# == Schema Information
# Table name: employees
# id
# company_id
# name
# status
class Employee < ApplicationRecord
belongs_to: :company
end
# == Schema Information
# Table name: companies
# id
# name
#…


When I was a budding programmer and was requested to query data that involved more than one table, my stomach would drop and I would think to myself, “Well it was nice being a software developer while it lasted.”

This is unnecessarily dramatic. But let’s be honest, knowing how to use and distinguish joins in SQL can be a little confusing. However, with a bit of practice and some basic knowledge about how they work, they really aren’t bad at all!

So let’s jump into the four most common SQL joins.

Let’s say we have a group of cats and pet owners. …


Image for post
Image for post
This article is based on my presentation “Gusto & Xero: 4 Offices, 2 Countries, 1 Massive Payroll Integration” given at Kiwi Ruby on November 1, 2019 in Auckland, New Zealand.

In January 2019, Gusto became the preferred payroll provider of Xero in what was both companies’ largest software integrations to date.


Image for post
Image for post
Photo by Don Agnello from Unsplash

TLDR

Gems that I’ve included in every Rails app and Ruby gem I’ve worked on thus far are the following:

pry-byebug
rspec (or rspec-rails for Rails)
rubocop (or rubocop-rails for Rails)

TSPE

Note: TSPE stands for “Too short, please explain”

In the past few years, I’ve built a handful of Ruby based repos from scratch including Gusto’s Partner Directory as well as our OmniAuth strategy gem. While these projects have ranged from being Rails apps, to Rails engines, to Ruby gems, I’ve consistently used these three gems to lay the groundwork for development. …


Image for post
Image for post

One of the most unique and often misunderstood features of Ruby is blocks. Blocks are Ruby’s version of closures and can be used to make code more reusable and less verbose. But keywords such as yield can be hard to grok at first and make this functionality a bit intimidating to work with. This article aims to go over block essentials and build up your knowledge piece by piece.

What is a block?

Blocks are anonymous functions whose return value will be applied to the method that invokes it. That’s quite a mouthful 😳 so let’s work up our understanding.

Blocks consist of code between a set of curly braces or a do/end pair. The former is the single-line definition and the latter is the multiline definition. …


I had convinced myself that I didn’t have enough time to study abroad in college. Even though I really wanted to do it, I was studying computer science as well as studio art and didn’t think I could find a school that would be able to fulfill my remaining class requirements. I vented about this over dinner with my mom one night at a cute Nepalese restaurant in my home town of Burlington, Vermont. My ever supportive and the best mother you could ask for responded “You should try talking to someone, maybe it could work out”. I realized she was right, why not try to make it happen? After some research as well as several meetings with the student exchange office and the heads of the CS and art departments, I found a school that offered all of the classes I could take in order to graduate on time. Shortly after, I found myself in Sydney, Australia at the University of New South Wales for my last semester as an undergrad student. …


In Rails, callbacks are hooks provided by Active Record that allow methods to run before or after a create, update, or destroy action occurs to an object. Since it can be hard to remember all of them and what they do, here is a quick reference for all current Rails 5 Active Record callbacks. An image version is provided at the bottom and a downloadable PDF can be found on my website.

Image for post
Image for post

Callback Glossary

Definitions of available Rails 5 callbacks based on the Ruby on Rails API dock. Listed in alphabetical order.

after_commit

Called after a new or existing object is committed to the database. An :on argument can be used to specify which action (create, update, or destroy) this callback should apply to. …

About

Julianna Roen

She / Her ✦ Software engineer at Loom, previously at Gusto ✦ juliannaroen.com

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