After almost 20 years in the San Francisco Bay Area, I am moving to Pittsburgh, PA, to accept a management role with Google. I am very much looking forward to working at a world-class software company.
It was a great two years at Percolate, and I wish all my old colleagues there the very best.
I’ve been programming for many years, and have spent most of the last few years managing development teams. I’ve written plenty of closed source software, and for a time made my living writing open source software too.
One thing stands out: a shared code base does not a software team make.
Continue reading A shared code base does not a software team make
Slack: Where work happens
Something is happening at companies that use Slack. Slack, the company, may claim it’s work, but it’s less and less productive work, and it’s having a destructive affect upon my own field of software development.
I like really Slack, Flowdock, Hipchat and their ilk — I’ve written about it before. I couldn’t do my job without them. But it’s time to confront the damage these tools are causing.
Continue reading Why Slack isn’t working
The new Analytics system, built by my team at Percolate, allows our end-users to program their own custom calculations, offering them the ability to precisely customize the product for their needs.
At the center of that feature is a Pratt Parser. Percolate recently presented on this topic at the San Francisco Python Meetup. You can find the slides here, and code here.
Today sees the launch of Analytics 2.0 on the Percolate platform. After 12 months of hard work by my team, I am very proud of the new platform.
1 year ago the San Francisco team was tasked with rebuilding the Analytics system at Percolate. In place of our legacy MySQL-based system, we now have a brand new architecture, based on Apache Kafka and Elasticsearch. It’s more responsive, more flexible, and offers much richer functionality.
You can learn all about the new system on the Percolate blog.
It’s 2017, and that means I’ve been in various engineering management and technical lead roles for about 6 years. That’s long enough to learn something about management, but short enough to remember clearly all the mistakes I made early on.
Continue reading What new development managers should know
I was recently asked by some colleagues about my favourite books on programming. And not just books on coding, but on improving their understanding of successful teams.
Continue reading Some of my favourite programming books
Last night Percolate hosted the San Francisco Elasticsearch Meetup.
I acted as host, and it was a great night, with excellent speakers and presentations.
Continue reading Elasticsearch Meetup at Percolate
I gave a presentation on Ekanite — the syslog server with built-in search — tonight at the San Francisco Go Meetup. It was an enjoyable evening, and I had a chance to discuss why I built Ekanite, how it works, and where it might go in the future.
Continue reading Ekanite at the San Francisco Go Meetup
I’m a conviction engineer.
To me it’s the only way to be an effective engineer, software developer, and technical leader. You’ve simply got to truly believe in the value of what you do, and you’ve got to believe in doing it the right way.
Continue reading Be a Conviction Engineer
I made a presentation on rqlite tonight at the San Francisco Go Meetup. It was an enjoyable evening, and I had a chance to discuss why I built rqlite, how it works, and where it might go in the future.
Continue reading rqlite at the San Francisco Go Meetup
“Bad money drives out good.”
When is the last time you spoke with your fellow developer? I mean actually spoke? Or was it just over Slack?
I like really Slack, Flowdock, Hipchat and the like. I couldn’t do my job without them. But as with Gresham’s law, bad communication is driving out good.
Continue reading Gresham’s law and Slack
While running services is hard, it’s also fun. It confronts you with a whole set of engineering challenges because you’re building — and running — large scale systems.
So after 18 great months working on the InfluxDB source, I’m returning to Services and have started a new role with Percolate, as Director of Engineering on their Data Platform team.
I recently presented at the InfluxDB San Francisco Meetup, on InfluxDB and the Raft consensus protocol. My talk was about the fundamental problems of distributed systems, and how InfluxDB uses Raft to solve these issues.
Continue reading InfluxDB and the Raft consensus protocol
I came across another great video about software engineering management, this time by Bryan Cantrill. It’s a really great talk, and discussed in-depth — with plenty of humour thrown in — the importance of Mission to high-performing software developers.
Continue reading Leadership without Management
I’ve recently been thinking about why running Services is particularly hard. By Services I mean Software-as-a-Service platforms. During the years, I’ve written software for many different systems — embedded software, web services, databases, and distributed systems, but being involved with designing and running a SaaS platform was difficult in a whole new way: running Services is hard work.
Continue reading Running services is hard
Well, almost nothing.
Obviously it’s got something to do with computers since developers spend so much of their time in front of one. But software development is actually all about people. And successful software development even more so.
Continue reading Software development: it’s got nothing to do with computers
Recently at InfluxDB we discussed how code reviews fit in during the various stages of development. It’s great to see the team reach consensus about how we should develop software. It made me think more deeply about why I remain a big believer in the code review process.
Continue reading Code reviews still rule
Tomorrow I join the team at InfluxDB, something I’m really excited about. I’m really looking forward to coding in Go full-time — it’s a language with real promise, a nice clean tool chain, and a very active community.
Continue reading Measure Everything