An article by Lisa and Xiaobin Ran

Girl scout badges (img source: <>)


Troubleshooting web-based issues can quickly become exercises in patience and extreme outside-the-box thinking, especially when there are multiple technologies, codebases, and partners at play. That’s why any tools that allow us to troubleshoot our case-specific problems can be so important. Here at GumGum, our Ad Server team has created an internal tool called “Badges” that allow various teams here to easily see useful data that is collected or created while requesting and serving our ads.


Back in August 2019, I wrote git and git-flow, a guide. I intended it to be used internally by GumGum to familiarize new hires with the workflow we use.

It covers a wide range of topics for people new to git and git-flow; however, it doesn’t cover everything I wanted it to cover. It was easy to say, I’ll do it later, but life happens, and almost two years later, the first part gets modest monthly views and reads while I fear that someone else will notice I never got to writing the second part. …

Photo: BENNI SCHMID — Copyright by

Relax and put your seat belt on… You’re about to enter my journey of an intense 2 weeks sprint I recently led, swapping my DevOps hat for a front-end one to build a full JAMStack website from the ground up deployed on AWS!

Foreword & Context

The GumGum Verity team applies machine learning techniques to the text and imagery on web pages to identify the context of the advertising inventory and brand safety threats. It then delivers content-level data over a Rest API that help publishers, DSPs and advertisers place ads in safe and relevant contexts.

This API not only supports page level…


JavaScript has become as crucial to many websites as the HTML it’s written in. The language may be regarded as the Toby Flenderson of programming languages by many developers, but without it, the functionality of so many of our favorite websites would crumble. And as the saying goes, with great power, comes great responsibility. How performant JavaScript is on a page plays a large part in how good of an experience a user has, and we’re in an age when milliseconds matter. This is why a performance monitoring tool was deemed necessary. …

Photo by Luke Chesser on Unsplash


JavaScript is at the forefront of creating a beautiful user experience or a horrific latency filled nightmare once a site loads. It holds great responsibility for implementing complex features, adding interactivity, and the like on a page. And as web technologies progress over the years, so does the amount of JavaScript at play. So it’s vital that we know what we’re releasing to the world is not one of the culprits stalling the browser’s main process. The only way we can do so is by empirically verifying it with meaningful data. …

We have used Storybook to document our React component library for a while, and although we love it, we’ve had to use various addon packages and do some hacky things to get components to show how we wanted. Storybook has undergone some big versioning changes recently, so I sat down to upgrade everything from 5.0 to the latest version and see what changed.

After upgrading all of the storybook npm packages, I see that the config files have completely changed. I can remove .storybook/addons.js and .storybook/config.js

Instead, I need:

// .storybook/main.jsmodule.exports = { stories: ['../_stories/**/*.stories.@(js|mdx)'], // adding mdx support…

Here at GumGum, we use a variety of apps to manage our products. The oldest one is our internal dashboard which is used by a wide range of teams for managing and reporting purposes relating to the advertising side of the company. Those teams include Account Managers, Publisher Managers, Engineers, testing users and so on, daily. It has evolved continuously since its creation, about 10 years ago, and with that comes a lot of technical debt.

This monolithic application is built with the classic MVC model in PHP with CodeIgniter, Propel and — as of recently, it’s deployed and running…

What is Internationalization?

Websites accessible in many regions may want to translate their text so the content is readable in different languages. In addition to the text, we should also consider that dates, numbers, and currency may differ across regions. Implementing internationalization means that the application should not only show the text in the correct language, but it should also display data in the correct format as well. This enables more people to use an application in their native language.

For example, the number 1,000 could mean something different for someone in Europe and in America, and01–02–01 could mean a different date depending…

As with most tech companies nowadays, at GumGum, we use Git for source control, specifically, the git-flow branching model. It gives us flexibility to work on features and bug fixes independently, without affecting production, staging, or someone else’s code, and while also setting conventions that speed up opening and reviewing Pull Requests.

This post does not intend to explain git’s concepts in depth. Instead, it will be a step-by-step guide on how my team relies on git and git-flow, with examples from things we do everyday and things that may come up every now and then to surprise you.

Who is this post for?



At GumGum Sports we strive to give the most value to our customers every day. Understanding our clients is fundamental, so we anonymously collect several metrics to give us a picture of how our clients interact with our products.

Based on our metrics, we found that one of the most used pages in our applications is what we call “Insights”. This page allows our clients to generate custom tables and graphs based on all the data that we aggregate for them.

Working with our clients, we understood that they were accessing this data to make customized reports to be shared…

GumGum Tech Blog

Thoughts from the GumGum tech team

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