RSSAmplifier

Blog

Evan Meagher

evanm.websiteRSS feed ↗21 posts

Latest posts

More trail safety tips

As a follow-up to my last post recommending that trail runners carry first aid kids , here are a few more tips for staying safe when running or hiking on trails. 1. Bring water You should always carry water if you’re planning to be out for more than an hour or if it’s particularly hot out. Heat stroke is scary and can sneak up on you. 2. Bring your phone Your phone is a table stakes piece of…

Trail runners should pack first aid kits

A couple weeks ago, I was running on a trail near my house when I slipped and fell, gashing my knee against the corner of a crib wall 1 . It was thankfully just a flesh wound, but quite painful in the moment and enough to put fitness activities on hold for a while. The experience spurred me to put together a compact first aid kit to bring with me on trail runs, something I’ve been meaning to do…

Momentum is magic

A concept I’ve frequently found myself referring to lately is momentum . In physics, momentum is a quantity that captures the tendency for a moving object to remain in motion. Once something gets moving, it takes energy to slow it down, and the forward motion often becomes the new default state. This is a great metaphor for project work. At the start of a new project, it’s easy to procrastinate or…

How to avoid overengineering

This article considers the conditions that lead teams to produce overengineered software and describes how you can avoid falling prey to such conditions. What do we mean by “overengineering”? When a software developer says that a piece of software is overengineered , they are saying that they think it has too many moving parts, too much abstraction, or an excessive emphasis on performance. The…

Things I Learned From Five Years in Climate Tech

This post also appeared on The Next Web in March 2020. Over the past five years, I’ve worked at two startups in what is now being called the climate tech sector 1 . Given the recent surge in interest in this space, I thought it would be worthwhile to record a handful of lessons that I’ve learned from this experience. These lessons span business strategy and the realities of the electric utility…

My Climate Lobby Hobby

In a departure from this blog’s typical tech-related content, I’d like to write about some work I’ve done outside of the confines of my day job(s). For the past few years, I’ve volunteered as a member of an organization called the Citizens’ Climate Lobby . CCL is a non-partisan, non-profit advocacy group whose mission is to build political will for solutions to climate change. Specifically, the…

Defining resiliency in energy and software

The word “resiliency” is all the rage right now. The notion of resiliency is uniquely applicable in a systems context. Specifically, it is a desirable feature of any system that is made up of many moving parts that operate in a distributed, coordinated fashion. In such systems, failure is an inevitability that must be planned for. Whether you’re talking about an electricity grid or a network of…

Lessons Learned Putting a Thing on the Internet

This is a text version of a talk I gave on May 1st, 2017 at an event that my company hosted focusing on our experience bringing a connected device to market. My talk focused on the software side of the company, presenting three lessons that we’ve taken to heart after two years in the trenches building a data-intensive hardware product. Slides available here . At Whisker Labs, our goal is to unlock…

Aiming for sustainability

My last post dealt with the subject of “systems thinking”, claiming that its fashionableness in the tech industry doesn’t jive with the amount of collateral damage being racked up by prominent companies. I wanted to follow up with a post that doesn’t spend 600 words tearing down other people’s work. To that end, I’d like to pose the question of what a company would look like if it were to truly…

Systems Thinkpiece

Luminaries in the technology industry love to trumpet systems thinking . A “systems thinker” is one who possesses the ability to reason holistically about the relationships between independent components of a system. This notion is recursive in the sense that each component may itself be a system composed of interconnected parts. In practice, companies tout systems thinking as a means towards the…

Introducing JSON Toggle

This post proposes JSON Toggle , a JSON document structure for specifying feature toggles. This format is being used at Whisker Labs with a Java 8 library which we’re open-sourcing as a proof-of-concept for JSON Toggle. Background Feature Toggles (or feature flags) are a programming mechanism used to dynamically configure running programs. A team utilizing feature toggles can modify a software…

Synthesis over invention

I recently finished a great book called Hilbert [1], an eponymous biography of the mathematician David Hilbert. It’s a fun read and conveys an important message for anyone who strives to be creative in a technical field. In contrast to the stereotype of the inventive genius who advances a field by creating fundamentally new concepts, many of the innovations to which Hilbert’s name is attributed…

Adaptive compression of periodic signals

What do all compression algorithms have in common? They usually involve some fancy math, but when it comes down to it, their defining tactic is to exploit properties of their input in order to encode the data in fewer bits. Thus a given compression algorithm is typically best applied to a specific type of data. Inversely, given a type of data, the process of selecting an appropriate compression…

Design documentation at small companies

One component of the engineering culture at Twitter (where I used to work) that I’m trying to instill at my new job is the importance of writing design documents prior to implementing complicated systems. In this essay, I will argue in favor of premeditated software design at small companies and propose what I call “precautionary migration planning” as a design doc section that caters specifically…

Introducing Armsible

Update: Since the publication of this article, Armsible projects have since been folded into Whisker Labs’ GitHub organization . Much ink has been spilled over the “Internet of Things”. A consequence of this trend is the rise of the single-board computer as a mainstream form factor for application development. With the popularity of open source 1 platforms like Raspberry Pi, Arduino, and…

Coordinating technological change in large software organizations

The topic of software scalability seems to bring out the armchair general in everybody. Much of the culture of the software industry is fueled by anecdotal war stories, blog posts, and “this one paper you should read”. We are all knee-deep in an unending stream of literature prescribing ways to achieve maximum computer performance, but the organizational consequences of hyper-growth get far fewer…

Survey on Technical Debt Management

First coined by Ward Cunningham in 1992 , the concept of “technical debt” is widely known within the software engineering community. It evokes other colloquialisms such as “code rot”, “cruft”, and “kludge”. The word “hack” is often used synonymously, but its usage is now overloaded and popularized to the point of meaninglessness. From his keynote presentation at the 2013 International Workshop on…

TTLs for Dropbox

A bunch of friends and I have a Dropbox shared folder in which we swap files of various (legal) sorts. Most of the folks in the group aren’t Dropbox zealots like myself who find ways to get 9+ GB for free. Thus the size of the directory in question becomes an issue as large forgotten files start to eat up others’ precious 2GB of space. As a solution to this problem, I wrote a Node.js program that…

Teach Scala to undergrads

A symptom of Scala’s growing popularity is the incessant discussion of its place in the bevy of industrial programming languages. This debate is often confusing, as both advocates and detractors of the language at times use the same argument in their favor: that Scala’s complexity renders it unfit for use by the average developer. This talking point may generate votes on Hacker News, but it isn’t…

Two months in

Like countless others on the internet, I’ve been “meaning to write more” for a long time. Under the assumption that Wordpress puts too much process into the task of blogging, I’ve designed a new personal website using a simpler tool . Hopefully the ability to write essays using the same workflow that I use to write code will grease the wheels of expression. My old Wordpress site is now accessible…

Graduation

It’s been a little over two weeks since I graduated from college. Tomorrow I’ll pack my life into a truck and begin the 800-mile journey from Seattle to San Francisco. This move has been the light at the end of my tunnel for the past six months. In December, I turned down a job at Google Seattle in favor of one at Twitter, to the bewilderment of many of my friends and family. With a new city and…