Tarik Eshaq

Rust Proc Macros

Fun with Proc Macros This will be a super short post about some of my thoughts messing around and using proc macros in Rust What is a Macro To understand proc macros, it’s important to understand what a macro is. Macros are in a way plugins for the compiler. They take tokens and return Rust syntax to replace the tokens. Often times macros are used to avoid boilerplate code and repeating the same code over and over again.

Designing Data Intensive Applications Slides

Designing Data Intensive Applications slides As a part of a small book club with a couple of friends, I wrote a few slides covering some topics in the popular Designing Data Intensive Applications book. You can find the slides in my slides page! That’s it - I might write a summary at some point though 😛 (Warning, the slides are VERY casual (they were written for a group of friends), packed with typos and have some explicit language)

Cutting CI costs by over half

Introduction Every good project has a Continuous Integration (CI) and Continuous Deployment (CD) process. CI and CD give you the confidence you need to ensure your code is working as expected. In the Mozilla application-services project, we run a variety of CI/CD jobs. We use Github Actions, CircleCI and a Mozilla-made tool called Taskcluster. For this post, I’ll only focus on CircleCI. CircleCI is what we use for most of our CI jobs that run on pull requests.

Explain Like I'm Human 2: Operating Systems

Episode 2: Operating Systems! Why you should care You’ve probably heard of operating systems, fancy words like Windows, MacOS, iOS, Android and Linux. This blog post should hopefully help you understand why you should care about your Operating System. More importantly, it should convince you to always update your operating system when an update is released. I use the words Operating System so many times, I’ll abbreviate it by OS.

Explain Like I'm Human 1: The Internet

Explain like I’m human! What is this I’m attempting a new series, where I’ll choose a bunch of technical topics and explain them in non-technical terms! The audience for this is anyone who wants to learn about technical topics but doesn’t have the technical background the look it up themselves. Why Human? Honestly? I just thought it sounded cool - this is meant to be approachable for everyone, regardless of their background, but it’s still not an “Explain Like I’m five”.


Graduated! A couple of weeks ago I started my first full time job at Mozilla after graduating from The University of British Columbia. It feels weird and I am conflicted between being excited about the work that I’ll be doing and missing school and the structure I had for 5 years. I went to university at a critical point in my life, I had just immigrated to Canada a year before, I knew no one going into my first few days of University, and I did not know what to do with my life - all I knew is that it’ll be something related to computers.