Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Phil Eaton
Has AI tells - The Consensus
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. A big goal of The Consensus is to promote good technical writing in software infrastructure. We feature more than just our own writing. We give you an interesting article every day in the at a glance section. We feature many more articles in our free weekly newsletter. And we filter for good technical articles in our free and public third-party feed.
Data races and the limits of ThreadSanitizer in C and Go
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. To gain confidence in code we write tests. But when you add concurrency to the mix the bugs become nondeterministic. To gain additional confidence in concurrent code we might enable a race detector that tells us that a race happened in some piece of code during a run. This is useful because our tests might still have passed even though a race happened.
The road to ACID transactions in Cassandra 6
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. Cassandra is a compelling data system. It is one of extremely few vendor-neutral, open-source databases supporting a SQL-like query language with builtin sharding and builtin replication. A desirable combination. And a reason Cassandra has so many (large) users including Apple, eBay, Bloomberg, and Netflix. Cassandra has evolved significantly since its first release.
Touring The Consensus, six months in
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. The Consensus is a bootstrapped site, started February this year, dedicated to software infrastructure, run independent of any software vendor. It's my full-time job and, aside from writers who are paid to contribute articles, I'm the only one running it.
Watching Go's new garbage collector move through the heap
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. Go 1.25, released last year, introduced a new garbage collector: Green Tea. And in Go 1.26, released a few months ago, Green Tea became the default. That linked article is excellent. We’ll recap it and take a look at a few programs that benefit the most.
Python 3.14 garbage collection rigamarole
You are getting early access to this article as a subscriber. Your support makes articles like this possible. Thank you. Python 3.14.5 was just released and is the current latest stable version of Python. Python 3.14.0 (released in October, 2025) changed the garbage collector (GC) from traditional generational garbage collection to incremental garbage collection. We’ll get into what this means in this article.
A Programmer-Friendly I/O Abstraction Over io_uring and kqueue
Consider this tale of I/O and performance. We’ll start with blocking I/O, explore io_uring and kqueue, and take home an event loop very similar to some software you may find familiar. This is a twist on King’s talk at Software You Can Love Milan ’22. Classical approach When you want to read from a file you might open() and then call read() as many times as necessary to fill a buffer of bytes from the file.
Embedding Python in Rust (for tests)
The latest generation of programming languages (Rust, Go, Zig) come bundled not just with a standard library but with a suite of first-party tools for working with the code itself (e.g. cargo fmt, gofmt, zig fmt, etc.). But I suspect that some future generation of (statically typed) programming languages will also come with a first-party embedded scripting language to make it easier to write tests. Until then though, third-party embedded scripting languages can be convenient.
Finding memory leaks in Postgres C code
I spent the last week looking for a memory leak in Postgres’s WAL Sender process. I spent a few days getting more acquainted with Valgrind and gcc/clang sanitizers, but ultimately got nowhere useful with them. Finally, I stumbled on the memleak program from the bcc tools collection which led me right to the source. Since I had a bit of trouble figuring this all out for the first time, I wanted to share the process I went through. Working with some contrived memory leaks.
SQLite has pretty limited builtin functions
Published on by sqliteduckdbpostgresqlgo SQLite is the core of DataStation and dsq. So a while ago I tried to use DataStation/dsq to analyze some benchmarks I had done that generated CSVs. But I quickly realized how limited SQLite's standard library is. SQLite only comes with these few core functions. A few JSON functions have recently become builtin too.
One year as a solo dev building open-source data tools without funding
May 26, 2022: DataStation 0.11.0 is released! Read more Published on by retro I quit my job as an engineering manager at Oracle in early June 2021. I had a bit of savings and a few contract opportunities so I decided to see how far I could get building an app I've wanted for years as a manager. I have never built my own app before and I've never built a desktop app before. Over the last 12 months I've garnered over 4,000 Github stars across 4 tools, 6 libraries, and 5 benchmark repos.
HTML event handler attributes: down the rabbit hole
April 8, 2022: DataStation 0.9.0 is released! Read more Published on by htmljavascript I was throwing together a license management app for DataStation and got to form submissions. DataStation has a complex user interface and benefits from React. But this license management app I wanted to keep simple using only server-side templates (Pongo2, a Go clone of Jinja templates). But I wanted all of my Go code to just deal with JSON HTTP bodies rather than multipart/form-data.
dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
What is DataStation?DataStation is an open-source data IDE for developers. It allows you to easily build graphs and tables with data pulled from SQL databases, logging databases, metrics databases, HTTP servers, and all kinds of text and binary files. Need to join or munge data? Write embedded scripts as needed in Python, JavaScript, Ruby, R, or Julia. All in one application.
Mental illness and addiction aren’t taking a break
By Phil Eaton Saturday May 2, 2020 at 9:16 AM A time of sheltering at home can be particularly difficult for individuals struggling with mental health or substance use disorders. The World Health Organization had predicted that there would be greater demand for services during the pandemic, and we at Rosecrance have definitely seen this to be accurate. A recent study shows that substance abuse has increased during the COVID-19 public health emergency.
Recovery as fuel to move forward
By Phil Eaton Saturday Sep 14, 2019 at 6:00 PM The opioid epidemic in its shocking flurry of media coverage has been circulating for several years now. We all see them — the stories of tragedy and loss, the grieving families. On a national scale, overdose deaths have reached over 70,000 annually; that’s nearly 200 deaths per day. Hearing and seeing them so often can dull the impact of these stories and statistics, and the people they affect.
Stretched housing industry must avoid past mistakes
The government’s challenge is to build another 10,000 houses. It’s easy to say but is it possible? Especially when you consider the GDP of the property industry has doubled to $30 billion over the past 10 years – and most of that has been in the five years since the global financial crisis. So, how much more is left in the tank? Are there any easy wins left? Consider the health of the industry and the symptoms don’t look great.
My VIew: It's more than 'just say no'
By Phil Eaton One of the questions we hear from parents most often at Rosecrance is, “how can I keep my child from experimenting with drugs?” It’s a valid question, and one that I’m certain most every parent has asked more than once.The answer, unfortunately, is there is no guarantee. There is no way to ensure that a child won’t engage in any kind of risky behavior.
My View: Triage program a vital piece of health care in Rockford
By Phil Eaton At Rosecrance we are grateful for the continued discussion regarding the need for mental health service support in our community.
Letter: Rosecrance Foundation expresses thanks to benefit supporters
Phil Eaton On behalf of the Rosecrance Foundation board of directors, clients, and staff, I would like to express our sincere gratitude for the hundreds of people who said “Yes to Recovery” at our annual benefit April 24.I am humbled by the generosity of our community, touched by its compassion, and encouraged by its commitment.
My View: Addiction is a public health issue; treatment works
By Phil Eaton In 1964 the Surgeon General’s report on smoking and health began a movement to shine the bright light on cigarette smoking and dramatically change individual and societal views. Today, most states ban smoking in public spaces.Most of us avoid private smoky places and sadly watch as the die-hard huddle 15 feet from the entrance on rainy, snowy or frigid coffee breaks.
My View: Rosecrance thankful for support of triage program
By Phil Eaton On behalf of Rosecrance Health Network and the Rosecrance Board of Directors, I would like to both personally and publicly thank everyone who in some way participated in the approval or securing of funding for the triage program.Rosecrance is a complex organization, serving tens of thousands of people each year for substance use and mental health disorders at more than 40 locations.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Phil
Contact Phil, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack