Opening the Source of Open Source

October 31, 2021
.
6 min read

This blog post was originally published on the Redis developer website here.

Preface by Suze Shardlow, Developer Community Manager at Redis:

Lara Aasem is a backend software engineer based in Cairo, Egypt.  For Hacktoberfest, she contributed an enhancement to Kaboom, which is one of our demo apps: an escape room game.  This is her story.


Open source has always simultaneously fascinated and daunted me. As a backend engineer with a background in sociology, the fact that our world is powered by software built out of empathy, a desire to improve our collective experience, and genuine love of craft—rather than profit—seemed upliftingly radical to me. The open source community’s codes of conduct, care for all involved, and emphasis on learning drew me in, but I was still intimidated by it. How do I even start contributing significantly to projects I know nothing about?

Read More

Debunking Data-Intensive Applications

February 17, 2021
.
9 min read

“Our motto is still alive and to the point: Pessimism of the intellect, optimism of the will.”

Antonio Gramsci, adapted from Romain Rolland

There is something fascinating about solving a seemingly impossible problem. This is perhaps what The Queen’s Gambit and data conflict resolution have in common. Watching Martin Kleppmann’s talk on the latter at the 2016 GOTO conference, I realized that this is what’s really interesting about designing distributed data systems: It’s a seemingly impossible attempt to decide what’s real amid conflicting accounts—and yet, somehow, we manage to do it anyway. This talk, many recommendations, and the ever-growing importance of distributed data in backend engineering all prompted me to read the second section of Kleppmann’s book, Designing Data-Intensive Applications, where he discusses the core concepts and tradeoffs involved in designing distributed data systems, from replication and partitioning to transactions and consensus algorithms. I walked away from an initial read of this section of the book with a lot of my previous ideas about distributed systems debunked—from the meaning of concurrency, to the nuances of popular concepts such as ACID and CAP, to the reliability of clocks.

Read More

The Whole 10K: Reflections on a First Hackathon

November 12, 2020
.
6 min read

The closest I’ve ever come to running a marathon was a 10km “fun run” that was part of a marathon event—but, even at a quarter of a marathon, the type of endurance training that long-distance running required gave me a new perspective on pacing. Before that, I had always thought “running” was synonymous to “speed,” so this idea that you could set your sights on a destination, no matter how far, and get there eventually by controlling—and, over time, iteratively improving—your pace was pretty inspirational to me. It wasn’t about sprinting at your fastest from the get-go, but more about increasing the pace that you’re comfortable going at.

No wonder then that marathon metaphors are often used to describe long, oftentimes gruelling feats—most notably life—so much so that portmanteaus of the word exist, from telethons for fundraising to hackathons for building software. Having recently participated in my first hackathon, I couldn’t help but think about this analogy as I reflected on my experience: How did my first hackathon compare to my first quarter-marathon?

Read More

An Error Alerting System of One's Own

May 3, 2020
.
8 min read

2020%205%203%20An%20Error%20Alerting%20System%20of%20One%20s%20Own/Screenshotfrom2019-01-2216-45-38.png

This blog post was originally published on January 23, 2019 on the BulkWhiz tech, business, and operations blog, Whizardry, here.

“Software engineering is strewn with the wreckage of those who have relied beyond reason solely on the error alerting configurations of others.”

— Virginia Woolf, paraphrased

Picture this. It’s 5PM on a Saturday. By some twist of fate you do not yet completely understand, you’ve ended up both on call and committed to a family dinner at this ungodly hour of the Sabbath. You think it’ll be fine; you’ll just keep your laptop handy and periodically check your phone for error alerts until you safely ride out your on-call time slot. Right?

Read More