Corey Scott's Blog, page 2
April 13, 2020
Post-Incident Questionnaire for Managers
This is my light-hearted attempt to help engineering managers get the most value out of a downtime incident. Introduction So you had an incident? Condolences.On the bright side, however, perhaps there is an opportunity to learn and make things better? Process I will offer you a series of questions that you should ask yourself about […]
Published on April 13, 2020 18:00
January 9, 2020
The Spampede Filter
This post can also be found on the Grab Engineering blog In Southeast Asia, when it rains, it pours. It’s a major mood dampener especially if you are stuck outside when the rain starts, you are about to have an awful day. In the early days of Grab, if the rains came at the wrong […]
Published on January 09, 2020 17:53
January 29, 2019
How-to fix tightly coupled Go code
Have you ever added a new feature only to have another one break? After fixing the break, something else breaks, like some kind of bug whack-a-mole? Have you ever spent hours debugging a broken test only to find the issue lurking in another, supposedly unrelated package? These issues are caused by code being tightly coupled. […]
Published on January 29, 2019 16:00
January 13, 2019
Designing resilient systems: Circuit Breakers or Retries? (Part 2)
This post can also be found on the Grab Engineering blog This post is the second part of the series on Designing Resilient Systems. In Part 1, we looked at use cases for implementing circuit breakers. In this second part, we will do a deep dive on retries and its use cases, followed by a […]
Published on January 13, 2019 17:00
December 21, 2018
Designing resilient systems: Circuit Breakers or Retries? (Part 1)
This post can also be found on the Grab Engineering blog This post is the first of a two-part series on Circuit Breakers and Retries, where we will introduce and compare these two often used service reliability concepts. For Part 1, we will focus on the use cases for implementing circuit breakers including the different […]
Published on December 21, 2018 15:41
December 2, 2018
Book Release
I am thrilled to announce the release of my book “Hands-On Dependency Injection in Go”. The book will take you on a journey, teaching you about refactoring existing code to adopt dependency injection (DI) using various methods available in Go. Of the 6 methods introduced, some are conventional, such as constructor or method injection, and […]
Published on December 02, 2018 15:13
April 23, 2017
Testing External Services
There seems to have been a lot of talk around me lately in relation to “dev boxes” and “testing on staging”. After unsuccessfully trying to convince folks of why I think this is a bad idea from both an engineering and business perspective I decided it was time to talk code. In this repository I […]
Published on April 23, 2017 17:01
July 25, 2016
Programmers Beware – UX is not just for designers
This post can also be found on the Grab Engineering blog Perhaps one of the biggest missed opportunities in Tech in recent history is UX. Somehow, UX became the domain of Product Designers and User Interface Designers. While they definitely are the right people to be thinking about web pages, mobile app screens and so […]
Published on July 25, 2016 23:03
March 31, 2016
You don’t need transactions
When I tell people, “No transactions!” their first reaction is either “he’s mad” or “for my use-case its necessary”. I know this was my reaction when it was first said to me. I happened to be working on a money based system at the time; something you would think that is the very definition of a system that “must” use transactions. […]
Published on March 31, 2016 16:48