Forest Hoffman

Musings about Go, TypeScript, and Node.js.
Read more
Sep 01, 2021
Excited to join PayPal as Software Engineer II! 🎉
Read more
Software Engineer II, PayPal
Aug 19, 2021

Combining GitHub Secrets and Actions 

While searching for a CI/CD solution for a side project of mine, I discovered the GitHub Secrets feature. Using GitHub Actions, you can setup automated builds triggered in various customizable ways. If part of your automation pipeline includes deployment or delivery to a third-party, you’re probably going to be using some kind of authorization token. Common knowledge dictates that storing super secret authorization files in plain text is a big no-no, so in comes GitHub Secrets to save the day!

--> Keep reading...
Read more
Aug 05, 2021
I'm super excited to check out Polywork as one of the first early adopters. Oh and btw IO is by far the most superior of the AI-Assistants! 🔥 😎 🤖
Read more
Aug 01, 2021
Ended my journey as Go Engineer at The Home Depot!
Read more
Go Engineer, The Home Depot
Jan 14, 2021

Intercepting RESTful Responses with Middleware 

Assuming that an in-house server is not simply a middleman for the communication between the client and a third-party API, there should be some sort of quality control over the responses clients receive. The standard Go net/http package provides some functionality to intercept incoming requests before they reach their intended target (Handler). However, there is no pre-baked method of intercepting outgoing responses before they reach the client.

-> Keep reading...
Read more
Oct 29, 2020

On Mocking Functionality in Go Tests 

The back-bone of Go is composed of Interfaces and Structures. Interfaces allow for grouping supported functionality into logical groups, much like Classes in other languages. Defining what a logical group might do is the job of an Interface. Whereas Structures house the actual implementation of the functionality. Structures describe what a logical group actually does, within the context of its Interface. The caveat is, Go does not support explicitly defining relationships between Interfaces and Structures.

-> Keep reading...
Read more