Every once in a while, I end up in a conversation about the relative merits
of logs and metrics in the context of software operations. Usually, we treat
logs and metrics as logically distinct things, and then have to decide which
is more important, because putting all things in the world into rank order is
important and valuable work…
…or not. Perhaps this is a silly discussion to be having over and over
again?
This post is about how “logs vs. metrics” is a false dichotomy, and how
thinking in this binary prevents us from seeing simpler ways to monitor our
systems.
Read the rest of this entry
The Electronic Frontier Foundation (EFF), an organisation
whose aims and work I broadly support, has published a blog post entitled
“Fighting Neo-Nazis and the Future of Free
Expression.”
The authors argue forcefully that GoDaddy, Google, and Cloudflare all made a
mistake when they rejected the Daily Stormer from their platforms, and that
their actions have set a dangerous precedent.
I think EFF is wrong on this issue.
Read the rest of this entry
Over the past year or two I’ve been collecting examples of extraordinary women
whose technical achievements have made the modern world possible. The
contributions made by some of them have become more well known in recent years,
while others remain relatively (and unjustifiably) obscure.
Rather than simply keeping the list to myself, I thought I’d publish it. And so,
in chronological order by date of birth…
Read the rest of this entry
This is part of a short series on being a tech
lead, and about some of the tensions inherent in the role.
Continuing the theme of the last post (about writing code or not writing
code), this one is about another tension
inherent in the tech lead role.
This time, the two extreme behaviours are:
Tyranny: involve yourself in every major technical decision, and many
minor ones. Nothing significant ever changes without your input. You expect to
review everyone’s code.
vs.
Tyranny of
structurelessness: you believe
that the best team is one that is empowered to make its own decisions. You
don’t intervene even in times of stagnation or conflict, because you think
your smart, capable team will be able to work their way to a resolution.
Read the rest of this entry
This is part of a short series on being a tech
lead, and about some of the tensions inherent in the role.
In the introductory post, I wrote that:
…the tech lead role is one which frequently involves tensions between
different ways of working: writing code vs. not writing code, making all the
decisions vs. making none of the decisions, and so on. In the posts that
follow this one, I’ll examine some of these and try and explain why I think
good tech leads spend a lot of their time somewhere in between the two
extremes, adjusting the balance as circumstances demand.
The two extremes, in this case, are:
Keep your hands dirty: spend all of your time working directly alongside
your team with the code.
vs.
White gloves: never write or review code. Focus instead on higher-level
design, architecture issues, or business-facing work.
Read the rest of this entry
As I start handing over my responsibilities at
Hypothesis before I leave at the end of the month,
Andrew suggested I try and write about the role of
a “tech lead.” This is the first of a handful posts about the role and some of
the inherent tensions that I find useful when thinking about my responsibilities
as a tech lead.
I hope that some of what follows may be useful to the wonderful
team I’ve been lucky enough to work with for the
past few years, and perhaps to others.
To start, then, an introduction. What is a tech lead? There are at least as many
answers to this question as there are people in the role, but this is mine:
Read the rest of this entry
I went to Craft for the second time this year, and it
remains one of the friendlier large conferences I’ve attended. Unlike many tech
conferences, it usually has as many speakers talking about culture and human
factors as it does technical talks. A couple of highlights from the schedule:
Read the rest of this entry
I can never remember the names and ordering of the general purpose registers in
the x64 (AKA x86-64) architecture, so I made a diagram that shows the 16
general-purpose 64-bit registers in the x64 architecture, as well as the various
legacy names for half-registers/quarter-registers and so on.
Read the rest of this entry
A letter sent to my MP, Scott Mann, on the event of the Supreme Court judgment
ruling that the government must seek an Act of Parliament before triggering
Article 50.
Dear Scott Mann,
As you will undoubtedly know, the Supreme Court have this morning ruled that the
government must seek an Act of Parliament before triggering Article 50 and the
process to leave the European Union.
This is a critical juncture in our nation’s history. For the past 45 years we
have been members of an international Community and Union created to guarantee
the free movement of goods, capital, services and people within its borders, and
thereby to secure a lasting peace in Europe after two horrific world wars.
Read the rest of this entry
Testing
Something that Sean said when were talking about code
review in New Jersey has come into my head a few times recently, so this is my
recapitulation and expansion of that point.
Whenever we change code, we take a risk that those changes don’t work the way
expected, or worse, break stuff.
Read the rest of this entry