RSSAmplifier

Blog

Jeff Klukas

Recent content on Jeff Klukas

jeff.klukas.netRSS feed ↗17 posts

Latest posts

Deduplication: Where Apache Beam Fits In

Summary of a talk delivered at Apache Beam Digital Summit on August 4, 2021. This session will start with a brief overview of the problem of duplicate records and the different options available for handling them. We’ll then explore two concrete approaches to deduplication within a Beam streaming pipeline implemented in Mozilla’s open source codebase for ingesting telemetry data from Firefox…

The Nitty-Gritty of Moving Data with Apache Beam

Summary of a talk delivered at Apache Beam Digital Summit on August 24, 2020. In this session, you won’t learn about joins or windows or timers or any other advanced features of Beam. Instead, we will focus on the real-world complexity that comes from simply moving data from one system to another safely. How do we model data as it passes from one transform to another? How do we handle…

Encoding Usage History in Bit Patterns

Originally published as a cookbook on docs.telemetry.mozilla.org to instruct data users within Mozilla how to take advantage of the usage history stored in our BigQuery tables. Monthly active users (MAU) is a windowed metric that requires joining data per client across 28 days. Calculating this from individual pings or daily aggregations can be computationally expensive, which motivated creation…

The Dashboard Problem and Data Shapes

Cross-posted on the Data@Mozilla blog . The data teams at Mozilla have put a great deal of effort into building a robust data ingestion pipeline and reliable data warehouse that can serve a wide variety of needs. Yet, we keep coming back to conversations about the dashboard problem or about how we’re missing last mile tooling that makes data accessible for use in data products that we can release…

Guiding Principles for Data Infrastructure

Originally published as an article on docs.telemetry.mozilla.org. So you want to build a data lake… Where do you start? What building blocks are available? How can you integrate your data with the rest of the organization? This document is intended for a few different audiences. Data consumers within Mozilla will gain a better understanding of the data they interact with by learning how the…

Triggering trusted CI jobs on untrusted forks

Originally published as a guest post on the CircleCI Blog. On public code repositories, arbitrary users are generally allowed to make forks and issue pull requests (which we will refer to as “forked PRs”). These users could be from outside your organization and are generally considered untrusted for the purposes of running automated builds. This causes a problem if you want a Continuous…

Deploying documentation to GitHub Pages with continuous integration

Originally published as a guest post on the CircleCI Blog. Continuous integration (CI) tools have been evolving towards flexible, general-purpose computing environments. They aren’t just used for running tests and reporting results, but often run full builds and send artifacts to external systems. If you’re already relying on a CI system for these other needs, it can be convenient to…

Managing secrets when you have pull requests from outside contributors

Originally published as a guest post on the CircleCI Blog. Mozilla likes to work in the open as much as possible, which means we primarily do our development in publicly accessible code repositories, whether we expect outside collaborators or not. Those repositories, however, still need to hook into other systems, which sometimes involves managing sensitive credentials. How can we enable those…

lib.jar: Java library? Python package? Both?

I’ve recently started working quite a bit with Spark and have found that there’s not much guidance on best practices for packaging and deploying libraries and apps on Spark. I’m planning to write a series of posts on Spark packaging and app deployment as we find patterns that work for the data platform at Mozilla. Spark is written in Scala, but provides client libraries for…

A Change Data Capture Pipeline From PostgreSQL to Kafka

Originally posted on the Simple engineering blog; also presented at PGConf US 2017 and Ohio LinuxFest 2017 We previously wrote about a pipeline for replicating data from multiple siloed PostgreSQL databases to a data warehouse in Building Analytics at Simple , but we knew that pipeline was only the first step. This post details a rebuilt pipeline that captures a complete history of data-changing…

Building Analytics at Simple

Originally posted on the Simple engineering blog; also presented at PyOhio 2016 and CloudDevelop 2016 Early in 2014, Simple was a mid-stage startup with only a single analytics-focused employee. When we wanted to answer a question about customer behavior or business performance, we would have to query production databases. Everybody in the company wanted to make informed decisions, from…

Safe Migrations With Redshift

Originally posted on the Simple engineering blog Simple has adopted Amazon Redshift as a data warehouse. It’s used not just by our data analysts, but by teams throughout the company to answer questions about fraud, customer behavior, and more.

A Search for Exotic Particles

My Ph.D. dissertation, performed at the University of Wisconsin-Madison. Abstract: A search for exotic particles decaying via WZ to final states with electrons and muons is performed using a data sample of pp collisions collected at 7 TeV center-of-mass energy by the CMS experiment at the LHC, corresponding to an integrated luminosity of 4.98 inverse femtobarns. A cross section measurement for the…

Some LHC Calculations

The LHC is currently running at 7 TeV, giving a relativistic gamma factor of 3730: $$E = \gamma mc^2 \rightarrow \gamma = {E \over mc^2} \rightarrow \gamma(3.5\text{TeV}) = 3730$$ This means the protons are moving at 99.999996% the speed of light: $$\gamma = {1 \over \sqrt{1 - \beta^2}} \rightarrow \beta = \sqrt{1 - {1 \over \gamma^2}} \approx 0.99999996$$ Alright, now let’s look at the…

Influencing Dynamics in Neural Networks

This research was performed under an NSF-funded Research Experience for Undergraduates program at Indiana University and then extended at Wittenberg University to serve as an undergraudate honors thesis. The work was overseen by John Beggs. It was later published in the 2006 issue of Wittenberg University’s non-fiction literary magazine, Spectrum .

Changing Concepts of Ethnic and National Identity in Dakar

This research was performed as a capstone project for the Senegal: Arts & Culture academic program of the School for International Training in Spring of 2005 under the direction of Souleye Diallo. The project was advised by Mamadou Aliou Diallo, Université Cheikh Anta Diop. It was published in the 2006 issue of Wittenberg University’s non-fiction literary magazine, Spectrum .

Teaching

Courses Physics for Elementary Teachers An introductory course built around a student-oriented pedagogy where almost all the course concepts are developed through direct experimentation in groups. It focuses on building a conceptual understanding of energy and forces and using those concepts as a framework for understanding gravity, magnetism, electricity, and light. The course becomes…