Blog

August 18, 2023 09:44 +0000  |  Climate Change Employment Environment Shell 3

That's it, I'm out. It took me longer to find the exit than I would have liked, but such is life. I'm actually sad to be leaving some of the people there, but I'm afraid I'll be wrestling with the moral quandary that is my contribution to Shell's bottom line for the rest of my life.

When I started working at Limejump, I honestly believed that I was doing the Right thing: using Shell's oil money to build a green future. I know now how naïve that was.

Once we were TUPE-transfered into the parent company, it became clear to me how Shell really works, and perhaps more alarmingly, how so many working there perform appalling mental gymnastics to convince themselves that they're doing good things for the world.

From the Orwellian "Respect for Nature" scrawled on the walls of the office, to the contemptible climate denialism you hear from staff at all levels, it's clear that too many of the people working there truly believe that they're somehow making the world better even when confronted with the evidence.

There are of course some great people still there, attempting to "change the company from within", but it's a fool's errand if you ask me. Shell has known about the climate crisis for decades and every new generation of management since has worked to support and expand fossil fuel extraction. This latest crop is no different. Their performance at Shell's latest AGM where they straight up denied that their plans violate our Paris obligations in the face of clear evidence should divorce anyone of the illusion that Shell is on the right side of history. So long as it's profitable to burn the world, Shell will continue to provide the fuel.

What's more, even if Shell were interested in achieving a carbon free world (its actions say otherwise of course), I don't think it's capable.

Shell is a Very Large Company that's spent more than a century doing one thing: digging stuff out of the ground and setting it on fire. They're heavily invested in this pattern, with infrastructure all over the planet and tens of thousands of employees dedicated to it. They've got armies of lobbyists working to preserve that model in every country that matters and mountains of amoral investor cash lined up to support it too.

Combine this with the reality that big corporations can't pivot because of the black hole of inertia all of the above represents, and you get what happened to Limejump: a small renewables start-up, bought by a Big Corporate Fossil Fuel Company, after which it's swallowed and dismantled -- its goal of a renewable energy future lost.

Perhaps the most frustrating part of working there was the way staff and management would attempt to separate their actions from the ethical implications: "Don't blame us, the world demands energy. We're simply supplying it."

This is a convenient lie Shell employees tell themselves, crafted to obfuscate the fact that Shell has leveraged substantial lobbying efforts on all sides of the political arena to ensure a fossil future. They lobby (or fund 3rd parties to lobby) government and the public to crush green legislation and expand support for fossil fuels, all while repeating "net zero by 2050" as if merely saying it is sufficient.

These are not the actions of a company looking to embrace a carbon-free future. They're not even those of a company hoping to expand their portfolio to include renewables. This is a concentrated effort by the one arm of the company to crush the business of the other arm, a tactic that only makes sense if the renewable side exists exclusively to greenwash the fossil one.

Maybe this is obvious to you, but 2½ years ago, I really couldn't see it, so I'm sharing what I've learnt now.

To future generations: I'm sorry. I never contributed to Shell's fossil fuel business, but I did build systems that Shell used to distract the public from what they're really doing. I honestly believed I was helping, but for over two years I was part of the problem.

To my brilliant Limejumper colleagues that I've left behind: I'll miss you all and hope that one day soon you come to the same realisation as I have: that your skills are valuable, that Shell is using them to burn down the planet, and that you can do better.

Image credit: Rosemary Mosco

July 28, 2023 11:56 +0000  |  Employment Management Software 0

When I started as tech lead at Limejump, it was my dream job. Finally, I was going to be able to actually lead a project's technical direction, rather than spend a whole lot of time arguing about how I thought it should work. As it turned out, this job was a whole lot more than that, and all of it has been a fantastic experience.

Now that I'm leaving though, I find myself having to explain just what my job is for those that will step in to replace me and I thought it pertinent to write this all down. Maybe someone will see it and find it useful, or maybe they'll call me out on my bullshit. Either way, the result will likely be net-positive.

External Relations

The idea that as technical lead I'd be spending a big chunk of my time not talking to my team at all was a big surprise, but that's how this has worked out. Over the last 2½ years, a surprising amount of my work has consisted of communication with other teams, our product owner, my manager, and even upper management directly.

Coordination

For the most part, a lot of the comms are about coordination. My team needs X to be finished by Team Y, so I'm talking to them about what they need to get X done. I can then later go back to my team and set reasonable expectations about the future, which will sometimes include a conversation about workarounds for the interim.

It's more than just harassing other teams about deadlines though. In many cases, I'll be asking for advice around what those teams are doing, what works best for them, what they might need from us or trying to arrive at a consensus of best practice across the company.

It goes the other way too. Other teams, when curious about what mine is doing, will usually just reach out to me directly. "Why does service X do Y? Can it do Z instead or as well?" This is a big part of my day.

Technical PR

If your team builds Something Awesome, but no one knows about it, it'll never be used, and so those efforts are effectively wasted. So part of my job is talking to other teams (usually just the nerds) and promoting some of the cool stuff we're doing. Maybe we've got a new library we think others might benefit from, or a new process for our CI that has improved things. Talking about this with other nerds earns our team respect and helps the company as a whole build on our experience.

Taking those Meetings Bullets

No one likes going to meetings, especially engineers who would rather be writing code. Honestly, I'd much rather engineers never have to be in any meeting they don't want to be in 'cause their contributions toward actually building things are much more valuable. To that end, if someone has to go to a meeting, I usually volunteer. It's my job to know everything about what my team is doing technically, so theoretically I should be able to advise on any subject related to what we're doing. Let the nerds do what they love instead.

Criticising Management

When I became a tech lead, I thought I'd never be in a situation again where I had to argue with my boss about the right direction for things, but I've learned that as you move up the chain, you're still writing software, just through additional layers of abstraction ;-)

There have been a few times where upper management has made decisions that I've disagreed with. Whether it was a choice to keep an antiquated legacy service alive, or to migrate a bunch of systems to another standard, it's my job to be critical of things I disagree with.

Sometimes I've been persuasive, and other times I've simply had to adopt a position of "well, at least the truth is where it needs to be". I've even reconsidered my position a few times and gone back to my team to support the new direction. In any case, I think it's important that a tech lead speak out when they see the company doing something they think is wrong. It's basically a big reason they're paying us.

Institutional Knowledge

As someone who's not necessarily deep in the code but rather leading a team of people developing (19!) different projects, I'm in the unique position to be able to "mostly know what's going on" in a lot of different areas. As employee turnover churns, that knowledge becomes more valuable, such that on any given day, about 20% of my conversations are from newer colleagues asking me why something is the way it is and if it can be safely changed to do something else.

A lot of companies think that you can solve this problem with thorough documentation, but in a start-up atmosphere, where things are developed, tested, partially adopted, and then thrown away because of a discovered failure (move fast and break things!), expecting that everything be documented is a bit nuts. Even if you could document it all, no one would ever read it. Hell, if you've read this far into this post, you're probably in the 1%.

So, the best you've got in a lot of cases is good communication between your longer-running staff and the newer staff. Make sure people ask why a lot, so we can pass on lessons learnt.

Greasing the Wheels

My team is awesome and they all really know what they're doing, but sometimes they run up on something that blocks their progress. If that problem is political (management needs to fix something, or someone above needs to approve something) then they go to our engineering manager, but if it's technical they come to me.

I have a lot of days where I'll spend an hour or more with my nerds troubleshooting a problem, pair programming, or just fiddling with configurations together to get things working. Sometimes it's just me sitting in for some technical advice/guidance, and sometimes we're learning together. Either way, my involvement is usually only momentary, getting the engineers un-stuck so they can carry on being awesome.

Mentoring

Probably my favourite part of this job has been the mentoring. I've worked with some really brilliant people at various stages in their careers. With 23years behind me, I get to play the "Elder Nerd" and talk about "that one time where I worked at a company where X happened".

The key thing here for me is that you have to put the interests of the person you're mentoring over the interests of the company as a whole. If you don't, they'll know it and they won't trust you. I think I've managed to cultivate a reputation where people know that I'll always be straight with them, and that's allowed me to have some really great conversations about personal and career development. I've also made some great friends.

Technical Direction

Much of what I do as a technical lead is not technical direction at all.

Imagining the Future

This was the most daunting part of the job when I applied for the role. I figured I was a pretty good coder, but could I actually lead a team? Why they hell would anyone follow me? I decided to look back on all of the tech leads I'd had over the years and apply the good stuff (obviously) but also look deeply at the truly terribly bosses I'd had and decidedly do the opposite.

To that end, I didn't direct the team at all. Instead, I spent months just getting to know the team, the context, and the various codebases we were responsible for. Over time I started to sketch out a diagram of where I thought we should be and updated it daily through various conversations.

After all that time, I had a pretty good idea of where I figured we should be going, but critically I never tried to impose that vision on the team. Instead, I used it to inform my conversations with them and slowly nudge us in the direction I wanted. The idea was to make sure that the team as a whole decided to go in a direction collectively with some guidance, rather than just slapping a diagram on the screen with "Ok kids, here's where we're going!"

Some concessions were made of course, but they were never treated like battles won or lost because there was never a battle at all. We decided, as a team to build things this way. I've been really happy with the result, and I believe, so has the rest of the team.

Code Review

I don't write a lot of code these days, but I review tonnes of it. With a team of 5 other engineers churning out multiple PRs each a day, I'm usually the one going through that code.

For the most part, I'm not looking for bugs. Instead, I'm trying to make sure that the code is:

  • Safe: Have we made any decisions that could leak data or pose a security risk?
  • Boring:
    • Does it conform to standards?
    • Is it needlessly clever?
    • Can someone who's never seen this code before understand what it does easily?
    • Does it violate the principle of least surprise?
    • Is it self-documenting, or do I need a probably-out-of-date document to understand it?
  • Tested: I mandate 100% test coverage, allowing for explicit exceptions that must be defended during review. This may sound extreme, but the result is code that can be regularly and easily updated. On our projects, a complete Django update takes about 1hr of developer time, while at previous companies it was weeks or even months of work combined with a lot of fear & uncertainty.
  • Performant: This is where I get to say things like: "We did this at Y company back in the day and it didn't go well, maybe try Z instead."

I also try to give some time to questions around broader architecture. Should we be storing this code here, or should we instead be moving it into a different folder or even an external library or service? Sometimes these questions are more meant for later conversations though.

The pattern we usually follow is that unless there are "show stopper" bugs, security flaws, or violations of any team standards, I usually mark the PR as "Approved" and let the engineer decide if they're going to implement any of my suggested changes. It's a collaborative effort, and engineers shouldn't feel like their tech lead is writing their code for them.

Compromise

However every once in a while someone writes something that I just think is a Bad Idea. It's not that the code is bad, but rather that it takes the wider codebase in a direction I'm not comfortable with.

This is a Hard Problem for me. In these instances I struggle with balancing what I think is the right direction for the project and making someone on my team feel like they've wasted their time, or worse, that I think they're a bad engineer. What follows is usually a dance of egos and an attempt to find some middle ground, which is not always possible.

This sometimes is a battle, and in the end, someone will have to give a little. I like to think that I've been reasonably conciliatory, but I guess I'll leave it up to my colleagues to be the judge there.

Cheerleading

Humans aren't ants. We need a reason to keep going, so if you work at a job that feels soul-crushing, you won't work there very long if you know what's good for you.

Collective Ownership

I can't take credit for this idea, as I'm pretty sure that Rob, our perpetual team sunshine inspired this, but I'm a big proponent of it:

If you write the code, and I review it, it's not your code anymore. It's our code.

A lot of companies talk about "no fault retros" or a "culture of shared responsibility", but in 23years I've never seen it done as well as we've managed in our team. Somehow, we've managed to foster this culture of collective ownership to the point where we carefully choose our pronouns when talking about our work.

  • "The server fell over when it received X"
  • "We made a change last week to call Y when X was received"
  • "Alright no problem, let's make a ticket for this so we can patch it up for tomorrow's release."

If someone tries to claim ownership of a bug or failure, someone always reminds them that they didn't cause this problem, we did. The result is a team that celebrates individual and collective successes and takes on failures as a shared burden.

Morale

Sometimes things suck. Sometimes there's a load of work ahead, or a colleague has left, or a project was killed. Whatever the cause, as the lead it's at least partially my job to try to keep spirits up, to make what needs to be done feel achievable.

Honestly, this is one of the harder parts for me as it always feels forced. I mean, I'm usually a rather emotional and animated person, but it's hard to step out of myself and try to illicit a particular feeling in others, especially if it's for the benefit of a company rather than a person.

The same goes for good news though. Pitching a subsidised night out to management when a project is delivered on time, or even just to acknowledge the efforts of individuals is a pretty great part of the job.

Actual Code

I used to have a tech lead that would regularly lament: "I didn't even get to write any code today!". As one of his engineers at the time, I thought that this was a pretty weird thing to get worked up about. After all, I was writing code all the time and it wasn't that great.

You start missing it though. If you're in a job where you're only ever looking at other people's code and not writing any of your own, you get... itchy.

Ticketed Work

I'm in stand-up every day, and I try to regularly take a ticket and hack away on it throughout the week. This work generally takes a back seat to everything above though, so I try to avoid taking any work that might require a lot of time or upon which other tickets depend so I don't end up blocking anyone.

Usually, I try to sharpshoot tickets whose work will inform future development, so that I can establish what I think are good patterns for what's coming down the pipe, but it doesn't always work out that way.

Gardening

Finally, if everything else is accounted for, I try to do a little of what I affectionately call "gardening": the process of looking at existing code and creating a pull request to make it a little more stable, performant, or just developer-friendly. Most of the team is focused on churning through tickets, and sometimes improvements are overlooked: typos in comments, missing type hints, somewhat kludgy ways of doing things that could be a lot cleaner and simpler if afforded the time and attention. On days when I need a break, I do some gardening, create a PR, and ask that someone review it when they've got a moment.


And that's it. That's my job. It's a whole lot more than I expected it to be when I answered the recruiter 2½ years ago, but to be honest, I really like it. It's kind of the perfect middle ground between hands-off management and hands-on trench work, and I wish more companies followed a model like this.

At my next job, my title will be "engineering manager", but as I understand it, the role won't be all that different, just with added line-management responsibilities. This probably means I'll have even less direct code access, but that's fine by me. I can satisfy the "itch" with some Free software projects. 😆

January 05, 2023 22:48 +0000  |  Cambridge Transit Urban Design 0

There's some exciting stuff happening here in Cambridge. The county council (the tier of government between municipal and national that handles Cambridge and the surrounding smaller towns) has declared that they want to build what they're calling a "sustainable travel zone" around pretty much all of Cambridge proper.

In practise, this means that within this area, if you drive your car, you'll be billed to the tune of £5/day. There are a series of exceptions of course, ranging from cabs to emergency vehicles, but on the whole most drivers in the city will have to pay this fare every day they enter (or leave) the city. And yes, this applies to people who live inside the zone.

Understandably, a lot of people are upset by this, but I think that it's a great idea that's long overdue.

I'm going to rant on this for a bit.

Why charging £5/day per car in Cambridge is great

For nearly 70 years, most of the developed world has been asleep at the wheel (see what I did there?) when it comes to urban design to the point where private cars are seen as not just a necessity, but even a force of nature. When pedestrians are mowed down by careless drivers in this country, the conversation inevitably falls to victim blaming, asking "why weren't they wearing their government recommended high-viz jacket?" Discussions around cycling centre around the decorum of those who violate laws written for cars, while ignoring the drivers who violate those same laws with fatal consequences.

Cars are dangerous

Cars kill 1.5million people every year and that's collisions alone. When you factor in the deaths from pollution and climate change, it's insane that we've entertained this pattern for so long.

Cars kill community

On top of that, a society that privileges private cars (ie. nearly every country) necessarily excludes the poor, the disabled, the young and the old. That means that events like all candidates meetings and football games, or public parks and children's play areas place an unfair burden on people to own and be capable of operating a car or depend on having someone else drive them. People can be isolated by their partners because they simply have no way to leave the house, or feel "fenced in" by the pedestrian-hostile world outside.

We know all this

The thing is, everyone knows this is terrible. 9 out of 10 drivers will agree: cars are terrible for all of the above reasons. However, when it comes to actually reducing cars on the road, everyone thinks they're an exception.

Everyone else needs to get off the road, but I have to drive my kid to school! What am I supposed to do, send her on a bike? It's not safe!

This of course comes from the self-fulfilling prophecy: we built a world so dependent on private cars that we can't interact with that world safely using any other means. You can have a development without cycle lanes or even sidewalks and no one will bat an eye, but dare to skimp on the free parking and people lose their frickin' minds.

Ok I get it, so what're we supposed to do?

This world our predecessors built for us sucks. Accepting that, where do we go next? To my mind, you have to start with a collective decision around what we want to become, and the rational answer to that has to be: Amsterdam.

Clean, quiet, safe streets mostly used by pedestrians, bicycles, and transit, allowing for delivery and emergency vehicles and even the occasional (very slow moving) private car. That's a world where you can safely send your kid to school on her bike, the world where an 80 year old woman can choose to live alone and still buy groceries and visit friends independently.

I don't think it's unreasonable to say that most people want this. The problem mostly seems to be around the public's unwillingness to accept that this is even possible. I want to go through some of the more common objections:

We can't do that here! The Netherlands is flat. We have hills!

There are plenty of examples of good pedestrian, cycling, and transit infrastructure being applied in cities all over the world, but like anything else, we can tailor our designs to the geography. Many towns (like Cambridge) are flat, so a heavy cycling focus makes sense. Other cities (like perhaps San Francisco) are probably better suited to biasing pedestrian and transit corridors, or subsidising e-bikes.

That's unreasonable. They had the density so it was easy for them. We're too spread out!

This sounds plausible until you realise that the Netherlands looked like this in the 1970s:

An Amsterdam traffic jam in 1970

Cities change all the time. We can change ours, but we have to want it.

That's nice, but the Dutch don't do the same kind of work that I do. I need a big truck to do my job!

This is laughable to anyone who's seen a hydraulic crane truck hoisting a grand piano three storeys into the air on the Haarlemmerstraat. Nine times out of ten, small trucks do the work just fine, and for that last 10%, a work truck can always be acquired. You do not need a land rover to buy groceries.

My office is in a business park off the freeway. I have to own a car to get to my job.

This is a symptom of our failed design philosophy: the idea that everyone owns a car, so they "they can just drive" to my cheap office space. These far-away office parks don't make anyone happy. They're painful and dangerous to commute to, require expensive hardware (cars) to make the trip, and typically exist in "deserts" where you can't find food or child care, let alone nearby homes.

This model is bad for everyone and has to die. At the very least, it shouldn't be cheaper to subject people to this.

What about the suburbs & villages? Those people need cars!

Some people don't like living in a "city" like Cambridge and prefer to live further out where the land is paradoxically cheaper, but where you must own a car to go basically anywhere. That's fine, but we can't let their preferences dictate the structure of our community. If Cambridge wants to be like Amsterdam, these people need to be dissuaded from driving their cars into the city.

The carrot & stick

The £5/day charge will be applied to cars driven within a very large "sustainable travel zone" (STZ) on any weekday. The proceeds from this levy will be applied to expanding transit (frequency and routes & lowering fares) as well as improving/expanding cycle infrastructure.

In effect, this is a classic carrot/stick arrangement: you can drive your car if you want, but you're going to pay. However if you're open to alternatives, they're now faster, cheaper, and more convenient.

It's not a perfect plan. Personally, I would have favoured outright banning of cars within the zone, or at least extending the STZ to include weekends, but this is a step in the right direction.

The risk

There's a whole bunch of politics operating under the radar here that makes this all rather interesting.

Cambridge's mass transport, like all transport in the UK (excluding London) is privately held. There are a handful of bus companies managing separate routes charging exorbitant fares for notoriously unreliable service and they don't even allow transfers. It's a terrible system that's barely used and politically, no one has dared step up with a solution to fix it. Through this plan, these companies stand to benefit considerably, effectively absorbing a public subsidy for a private service that has historically not been provided well at all.

In other words, this might just be a case of politicians finding a way to soak the public for some money so that they can give it to their friends in some private companies. It certainly wouldn't have been the first time.

What's worse is that they'd be doing this with the blessing of active transport activists like Camcycle who have pinned their names and reputations to the project for support. If this is, as I suspect, a fleecing of the public purse, it could be terrible for everyone.

Why it won't happen

The plan is being executed by the Cambridgeshire County Council which is presently governed by a Labour/Lib-dem coalition. The Conservatives, who are largely elected by car-driving village dwellers will likely use this as an issue to beat their opponents in the next election.

That election is timed to happen just before the £5/day charge comes into effect, but after the public funds have been spent "bolstering transit". My inner cynic says that this is all designed to take that public money, give it to the bus companies and then fold up shop before the next election so they don't have to go through with it.

All of this is terribly disappointing, but even given the very likely chance that this is all a scam, I find myself still siding with it.

When it comes to building our cities to be clean, quiet, and safe for everyone, I'm going to support any plan that furthers that goal. If the alternative is letting a bunch of carbrains turn around and kill it ensuring that nothing gets better, I'll back any plan that gets us even a little bit closer to a better home.

December 01, 2022 17:12 +0000  |  Mastodon 1

Mastodon is Twitter's logical successor. Like Twitter, it's a "microblogging" platform that lets you follow and ~~retweet~~ "boost" posts you like for your followers to see. The key difference compared to its predecessor is the "federated" nature of the platform, which others have written on heavily, so for the uninitiated I'll just say that "it's distributed, so no central authority controls it."

What we don't talk about nearly as much though, is Mastodon's painfully limited system of managing that federation at scale. When faced with the reality of dealing with unwanted content, the answer in the Mastodon community is "the instance moderator does that". The assumption being that not only does the owner of the server you're using have the time/skill/inclination to sift through reports of your content, but also that this moderator shares your values.

Additionally, instances can be "de-federated" from the greater network by moderators of other (potentially huge) instances for not blocking content those networks consider objectionable. It all sounds like a neat and tidy way to keep the baddies out, but it's also a recipe for an echo chamber.

The reality of living in a society is that there's very little consensus around what content should be permitted, and this is a good thing! Some people share pornographic content daily, while others consider this a mortal sin. For that matter, posting a drawing of a prophet is enough to drive some idiots to violence, while for others, it's considered hate speech.

The hate speech question alone is especially difficult, as the term itself even lacks a consensus-backed definition. It's regularly used in online spaces to shut down debate rather than to inform it.

So with all of this, how can we expect the human moderator model to scale? The word "scale" itself suggests expanding a system's capabilities beyond that of individuals. We must accept the use of algorithms in navigating this space, and we can do this without risking the bias AI-based systems have demonstrated.

For my money, the answer is community tagging and leveraging that tagging to allow clients rather than (or at least in addition to) instances to filter according to their values.

The idea is allow users to tag content (and even other users) with whatever string they want: tree-hugger, fascist, pedo, cute-puppies, porn, nazi, deluded-psycopath, nerd, bootlicker -- whatever. Instances or clients can then choose which tags they want to filter on, as well as the weight they want to allocate to tags applied by people and posts bearing specific tags.

So for example if a user gets a lot of nazi tags from 15 different accounts, your client, configured to have a nazi threshold of 10 will filter out that user's content. If however a user was tagged as pedo from 15 different users who are also already tagged as nazis according to your threshold, the weight of those tags could be diminished or completely invalidated and so the "probably not a pedo" user's posts would get through.

The idea is to mimic actual human behaviour. If a MAGA nut tells you that "that dude's a fascist" you're less likely to care about that statement than if it had come from someone whose opinion you actually value.

Of course this system suffers from the whole question of gaining a reputation from the start, so maybe this would have to work much like other reputational systems (eBay comes to mind) and rely on people less filter-conscious to rate people and posts before the more filter-heavy users see that content.

I'm curious what other Mastodon users (Mastodonians?) think about such a system. If they're satisfied with the current system of filtering/defederation or if they have different/better ideas to manage the problem with limited bias.

September 14, 2022 17:06 +0000  |  United Kingdom 0

Queen Elizabeth is finally dead. We all knew it was coming. The lady was 96 years old, and no matter how ridiculously rich you are, no one is immortal. This country is losing its mind over the whole thing of course, with everything from Cancer appointments to bike racks, and even other people's funerals being cancelled out of condolences to the royal family.

Not everyone in the country has lost their mind though. Shouts of "God save the King" were met with boos in Edinburgh, and there have been a variety of incidents of protest across the country. Some of these were put down by police of course because apparently holding a "Fuck imperialism, abolish monarchy" sign is grounds for arrest in this "free" country.

For my part I want to be clear that have never had a single fuck to give about Elizabeth or her entire family. They're all entitled, inbred parasites and they need to go. Elizabeth was far from the "sweet old lady" people like to pretend she was, but rather just another manipulative billionaire who banned "coloured immigrants or foreigners" from working in her palace, tried to steal money from a poverty fund to heat said palace, and sat upon a mountain of money while her "subjects" literally starved.

Now that she's in a box, that mountain of money and investments all pass to her son Charles, with zero inheritance taxes thanks to laws she likely helped write thanks to King's consent conventions dating back to 1728.

It is absolutely maddening that, in the 21st century, in a country where people are literally having to choose between eating and heating their homes, that those same poverty-stricken idiots are lining up to pay their respects to a billionaire parasite. I don't get it. I likely never will. These people are insane and they clearly deserve this level of subjugation.

August 29, 2022 13:39 +0000  |  Music 0

Today, I thought I might tell you a story about someone else. Maybe you've heard this one, but if you haven't perhaps this post will add a sense of urgency to your life, or maybe it'll just remind you of the terrible tragedy of being. Either way, it's a story about an amazing young woman that I want to share.

This is her. If you watch through to 1:40 and aren't hopelessly blown away by her talent, you are indeed made of stone.

Christina Grimmie was one of those breaking stars in the earlier days of YouTube, a kid with no industry connections wielding an internet connection and a bottomless well of raw talent. She updated her channel regularly and over time built up a fan base, was doing live shows, and even cutting albums. Her life was looking up: she was young, beautiful, and amazingly talented.

Then one evening at one of her shows, all that ended when a complete stranger murdered her.

Her Wikipedia page tells a more thorough story of her life and death, so I won't add more here. If you're curious, you know where to read it. I just wanted to share her song with you, and maybe remind us all that sometimes, our time on this earth isn't as much as we expect.

August 10, 2022 07:31 +0000  |  Education Religion United Kingdom 2

Anna is will be four years old next year, and they start kids into school early in this country, so Christina and I have begun the process of looking for a school for her.

Apparently, it's not as simple as "you go to the one closest to you" here, but rather there's an application process wherein you rank your preferences and you're awarded your first, second, or third choice based on a variety of factors, including (possibly?) any personal appeal letters you might submit to justify your choice. It all sounds terribly stressful and yet another way to enforce class structure.

The process is made additionally complicated by our preferences: we don't want to put her into a religious school and we want to avoid mandatory uniforms. OMG does that limit the field of options.

In the UK, school uniforms are touted as a virtue and in parent's circles people have a tendency to get completely irrational on the issue. As a result, it's often the case that when you're comparing schools on any sort of official list, uniform mandates aren't even mentioned, so you have to dig into each of the (poorly designed) school websites to find out for yourself. It's not been fun doing this digging. The number of sites that think it's ok to use comic sans is... unfortunate.

The religion question is murkier.

There are straight-up religious schools here, typically Anglican, but there's also Catholics, and presumably others I've not seen yet. There's also supposedly non-religious schools (ie, not funded/controlled by the church) with names like St. Matthew's (check out the font choices on that one) that make figuring this out based on name alone difficult.

It gets even more complicated though. There's an official policy here called "The Cambridgeshire Agreed Syllabus for Religious Education" which sounds like some progressive guidelines to expand kid's understanding of religion in general... that is, until you read it (emphasis mine):

Teachers should consider the religious experience of the pupils in the classroom and the whole school when planning which religions to look at and in which order. * Christianity will be studied in all Key Stages.

  • The choice of which other religion(s) to study in KS1 should be relevant to the experience of the pupils in the class and local demographic. Where Christianity is the only religion present the school will choose the other religion to be studied.
  • However, by the end of KS2 all major religions (Christianity, Islam, Judaism, Hinduism, Buddhism and Sikhism) and a secular world view (humanism) must have been studied.
  • In KS3, building on KS2, all major religions and a secular world view must have been studied in greater depth.

It is desirable that all pupils visit a church or other Christian place of worship and the school should make all efforts to plan visits to religious buildings of other faiths. Visitors from different faiths and world views should be encouraged to visit all schools. When neither visits nor visitors are possible then the use of virtual tours and resources are recommended.

I'm reasonably certain that something like this wouldn't be ok in Canada, but apparently this is normal here.

Annoyingly, the above (and the rest of the guidelines) are clearly written to be very flexible, so the guidelines themselves aren't enough to tell you what kind of education you're signing your kid up for. You could have teachers that discuss Christianity in the same way most people talk about Greek Myth and do a field trip to a local church cemetery as part of a local history unit. You could also interpret the above to teach Christianity as the default, and other religions as adorable savages.

It's so hard to tell if I'm signing my kid up to be indoctrinated and the state is clearly not on my side here.

April 29, 2022 21:43 +0000  |  Media 0

I have a kid now, which means the kind of media floating around in my home has changed since my child-free days. Sure, we still find time to watch The Witcher and The Wheel of Time, and I still love The Expanse when I'm on my own (Christina doesn't care for it because she's a savage), but for the most part, if the TV is on these days, it's playing something kid-friendly because you can't have people getting their heads chopped off in front of a 3-year-old.

As you might have guessed though, the quality of children's programming is all over the place. From the brain-rotting Cocomelon, to the formulaic and ear-wormy Octonauts there's a lot of options out there that can make any adult forced to watch a little bit crazy.

So, I thought I'd make this (short) list of shows that I've been watching recently that I'd consider "kid and adult friendly". If you've got kids, or just enjoy exciting kid-friendly stories, you might wanna check these out.

Kipo and the Age of the Wonderbeasts

  • Available on: Netflix
  • Published by: Dreamworks
  • Ages: 3+
  • Links: Wikipedia, IMDB

I love this show. Kipo is an inspirational character abound with wonderful human qualities. She has a way of seeing the world -- her wild and fantastical world -- that just makes you want to be a better person.

The supportive characters (heroes and villains) are interesting, complex characters with their own backstories and development, the art is fantastic and the music is brilliant. By the second season I was literally punching the air at the opening credits of every episode! It's so good!

At Anna's age (3), I don't think she gets all that much out of it. The characters are cute & funny and the music is fun to dance to. I don't think she's really grasping the plot or anything like that just yet, but I imagine that this show would be enjoyable for pretty much anyone.

The show had a fixed run of 3 seasons, all of which have been released.

Infinity Train

  • Available on: Cartoon Network, HBO Max
  • Published by: Cartoon Network Studios
  • Ages: 8+
  • Links: Wikipedia, IMDB

I don't think Anna's ready for this just yet, but if your kids are older, it's a great thing to sit down and watch with them.

With each episode running at just 11 minutes, each 10-episode season of Infinity Train follows a different "passenger" as they traverse the train and learn how to sort out their life before they're permitted to return home. Our heroes meet new and interesting characters as they pass through car after car after car after car, learning about themselves and growing as people. Each car is different and more bizarre than the one before it, and the characters we meet along the way are fun, interesting, and sometimes voiced by awesome people like Kate Mulgrew (squee!)

For the most part, I'd say that this is safe for really young kids, but there are a few problematic scenes for younger kids that mean you probably want to avoid it for the young ones. In season 3 a character dies somewhat graphically (no blood, but it's still scary), and in season 1 a character is turned into a sort of shadow monster.

Hilda

  • Available on: Netflix
  • Published by: Silvergate Media and Mercury Filmworks
  • Ages: 2+
  • Links: Wikipedia, IMDB

Anna loves this show and has for a long time. I originally picked it up because my friend Robin worked on season 1 and he sent me a link. I loved it within the first few minutes so I made sure to inject it into Anna's diet in place of some of the dumber stuff.

Hilda is a great character, full of adventure and courage, with a strong sense of justice. She lives in a fantasy world loosely built around Scandinavian folklore, with giants, elves, thunderbirds, and dear foxes, and because Hilda is "a friend to all animals and spirits", she gets along well with (almost) all of them.

The stories are largely self-contained with long-running character development but not much in the way of the "season arcs" you tend to see in some other shows. I think what I love most about the show (aside from Hilda herself) is her relationship with her (single) mother who is objectively a fantastic role model for her kid. Oh and Alfur. He's fantastic too. And Twig! And Woodman!

You should watch this show.

Honourable Mentions

The three above are lesser-knowns, so I wanted to give them special treatment, but there's a few more that're worth covering if you've not heard of them yet:

April 29, 2022 20:29 +0000  |  COVID-19 Health 0

On April 12th, our child minder called to let us know that she had COVID-19 and as a result would have to close her doors 'til she was done with it, which likely meant the rest of the week. I cycled over there to pick up Anna, put her on the back of my bike and Christina's parents (visiting from Greece for a few weeks) took care of her for the rest of the day while I finished my work.

By Thursday, Anna had minor symptoms. By Friday she had a heavy fever and a positive lateral flow test. Both of Christina's parents were also suddenly positive and I had a very feint line on my test as well. Christina was blissfully healthy.

Friday was the easy part. I continued to work from home and Anna mostly slept on my lap while I wrote code and attended meetings as if everything was just fine. Christina's parents had mild symptoms and spent the whole day inside trying not to stress themselves.

By Saturday, Anna was fine, getting more active & animated, wanting to dance to the Octonauts theme etc. Unfortunately Saturday is when COVID hit the adults pretty hard. I literally couldn't keep my eyes open for big chunks of the day and Christina's mom Carol and I took turns keeping an eye on Anna while the other slept. Christina's dad Yannis helped out in the times in between, and Christina, still happy & healthy went to work.

Sunday through Tuesday I was in no shape to be useful, so I took those days off and tried to just focus on getting better. Wednesday I said goodbye to the in-laws and went back to work (remote) feeling pretty good. Thursday I felt a little worse. Friday I was a mess again and had to clock-out early so I could sleep the rest of the day. Christina & Anna came home to me fast asleep at 1730h.

I took another lateral flow test tonight. I still have it, and the line is much darker this time than it was when I tested last week. I don't know if the line intensity correlates to level of infection, but either way, I'm very much not over this thing. I'm going to take the whole long weekend to do as little as possible, sleep whenever I'm tired, and stay the hell away from everyone else.

Thankfully, Christina is still just fine. My guess is that she is/was an asymptomatic carrier or just still has sufficient immunity from her shot back in January. She'll be able to care for Anna while I'm down for the count and can even do grocery shopping etc. I honestly don't know what single parents do in this situation. It's one thing to be sick & miserable living alone, but to be charged with caring for someone who's not sick and wants to run-around-and-do-all-the-things is a whole other nightmare that I'm glad I don't have to live in.

From what I've been reading online, COVID-19 infection & symptoms can last anywhere from 3-4 weeks with a misery peak at around 10days so this weekend should be fun. At least my symptoms are manageable and not life-threatening. I'm mostly tired, with inflammation in my sinuses. I still have my senses of smell and taste, it's just that my arms and legs are so much heavier than they usually are. Hopefully some more rest and fluids will get me through this soon.

April 18, 2022 14:17 +0000  |  Climate Change COVID-19 Europe Family Politics War 1

I always post an annual "recap" on my blog. It's useful for me to keep track of the past, but also as a nice way to look back on my life with a sense of nostalgia. I rarely write this sort of thing until the year is completely over, as you never know what might happen even in the last few days of the year. I don't think I've ever waited this long though, so as my memory of 2021 has begun to rot, I find myself stretching looking for stuff to include here.

Family

By far the biggest news of the year for me was Violet's diagnosis with Stage IV neuroblastoma. It shook the whole family, and the waves travelled outward to everyone: friends, colleagues, even the entire town of Peachland where she lives. Her family uprooted themselves from the Okanagan and moved down to Vancouver for treatment into the wonderful Ronald McDonald House for the remainder of the year.

Shawna gave up her job and stayed with Violet in the hospital, while my brother had to split his life between seeing his wife & kids, and working to keep his job. Shawna's parents moved into RMH too to offer support and help take care of Violet's sister Lucy was dealing with the emotional toll of her sister's condition along with moving her whole 5 year-old life to a new city under strange new conditions.

By the end of the year though, things were looking good, and despite the odds, Violet appears to be doing better. Just a few weeks ago (April 2022), my brother informed me that Violet has had a bunch of scans all showing literally no Cancer left in her system. We're all cautiously optimistic.

Friends

As you get older (and coupled), it's difficult to find & keep friends. It's even harder when you sabotage things by moving to a new city every few years or decide to have a kid. Add to that a pandemic, and you've got a recipe for suck.

Rahel & Stepan

Our friends Rahel & Stepan came to us early in the year to announce that they were moving to the Philippines. This was rather disappointing, since we'd become quite fond of them, and Anna and Stepan had bonded (he's really good with kids). He's given up his job and the two of them are moving in with her parents to figure out what comes next for them. Honestly, I don't get it, but I with them luck.

Annie

Also in out-of-the-blue friend news, Annie sent me an email one night just to say hello. "If anyone still has the same email after all these years" she said "it's Dan", and she was right. We caught up a big on what's been going on in her life and it turns out she has other friends & family here in the UK, so I hope to see her in-person some day soon.

Work

I finished 2020 finally escaping from Workfinder with a job offer to work at Limejump starting in January. There was a 2-month gap between my the former and the latter, so I returned to MoneyMover temporarily to help get them sorted and eventually connect them with my replacement. From what I hear, they're all doing quite well over there, having now gone full-remote. They still meet up for social drinks & dinner though, and sometimes I'm invited, which is really nice.

My work at Limejump has been pretty great. I was worried about stepping into the tech lead role though: I knew I had the technical experience to guide a project, but wasn't sure I could be trusted with actual people to do the work. "What if", I thought, "I start working there and everyone are resentful assholes who fight me on everything out of spite?"

The thing is, I've been that resentful asshole at previous jobs. I've been saddled with tech leads & CTOs who demonstrably don't have the technical chops to do the work, yet insist on telling me how to do my job. So I decided to use this as my superpower: I leveraged my experience of what it was like to be on the receiving end of that sort of thing to remind myself not to be the kind of person that solicits that sort of thing from other developers.

The result of all of this is that our team developed a sort of "architecture by way of consensus". One of us proposes a solution, we all poke at it until we're happy with it, and then we apply it together. The only "hard lines" I've imposed have been along coding standards (black, isort, pep8) and offering some anecdotes & best-practise-by-way-of-experience stories here and there.

I don't want to give the impression that I'm taking credit though. My team are fucking awesome people to work with. Rob has a welcoming and friendly attitude that really makes you feel like you belong there, Rémy is attentive, organised, and excellent, at the big picture, Emmanuel has been friendly, receptive, and hard-working, and Leo is the most knowledgeable, organised, and collaborative product guy I've ever worked with.

It's not just the team though. Nearly everyone at the company is stand-out amazing at what they do. There are problems at the company for sure, but there are problems everywhere. What I love about working at Limejump is that I get to solve problems with awesome people.

COVID-19

Contrary to what everyone was secretly hoping, December 2020 wasn't the end of the pandemic. For the entirety of 2021, governments around the world applied pandemic restrictions in the least effective way possible in an effort to be seen as "doing something" rather than to actually keep people safe.

From selective re-openings to ridiculous rules around when a mask was required and when it wasn't, to outright hypocrisy from government -- as far as I can tell, no country followed the science. It's a harrowing sneak-preview of our climate future.

The UK was especially egregious, pushing to re-open earlier than most countries with the campaigns like Eat Out to Help Out that paid people to go to restaurants. There were no mask mandates in restaurants and no limit was applied to locations with outdoor eating.

A Vaccine

The big moment came in 2021 though: we had a vaccine. We had, in fact, multiple vaccines of varying effectiveness and variable shelf-life. There were lots of discussions around how the timing of testing for effectiveness can vary the results, which was interesting, and there were also warnings of blood clots from the Astra-Zeneca and Johnson & Johnson versions.

There was also lots of geopolitical fighting over vaccine availability. Astra-Zeneca over-promised its stockpiles to both the EU and the UK, and when it actually came to distribution time, the two were suddenly at odds as if AZ hadn't been the one at fault. The global north unsurprisingly screwed-over the global south, with most of us getting as many as three shots before those in India (who were being ravaged by oxygen shortages) received even one.

By the end of the year, I'd been vaccinated 3 times: first and second with Astra-Zeneca, and a third time with Pfizer.

And after all that, the world had to go back to school and learn how exactly vaccines even work. After presidents and prime ministers declared that the vaccine would "stop" the virus, they had to backtrack. COVID-19 is so aggressive that it still manages to spread fairly well among the vaccinated, and symptoms can even persist (albeit with much less lethality). This was a nuance lost (or more likely ignored) by the grifters and charlatans though. Suddenly the vaccine was a lie to keep you afraid and "controlled" (whatever that means). Public health has become political because people are gullible idiots.

Restricting travel

When you're an expat, your life is all over the world. My kid has family in Greece, Vancouver, Kelowna, and Ottawa, and we've got friends in a smattering of other countries.

This does not play well with anything that restricts international travel. My parents last saw Anna when she was 6 months old. She's now 3 years old and they still won't have a chance to see her 'til she's almost 4.

In the words of my mother-in-law: "I've lost two years".

Clearly, things could have been worse, but it still sucks.

The News House

In September, we moved from our cold, damp rental housing into a lovely new-build home just on the other side of the River Cam. It's big, beautiful, warm, and dry, with Ethernet in nearly every room and a heat pump in the back yard.

It's also in the wrong country of course. We keep looking back to what we left behind in the Netherlands (with all its faults, I'd still rather be living there than here). The truth is though that we'd managed to save up a decent-sized chunk of cash and the combination of the pandemic, plus the inevitable rise of inflation we knew was coming afterward dictated that we needed to move that cash into something that wouldn't lose so much value in such a short period of time.

We did the math:

5 years renting at roughly £1500/mo = £90,000

This means that if we bought a house and paid the mortgage for 5 years, we'd have to lose £90k on the resale value to make this a bad decision. Given that the housing market is the way it is, that loss is very unlikely, so this just made sense.

Also, have I mentioned that it's warm & dry? Why the fuck is this such an uncommon perk in the UK?

I Quit Twitter

In April, Lindsay Ellis posted a video on her channel about the current drama she was enduring over Twitter. The way the platform is designed to sow discontent and just fill people with rage was laid bare and it set me thinking about it for a long time.

Later that month I signed off Twitter for the purposes of interaction, and by November I'd dropped it altogether switching entirely to Mastodon, a federated Twitter-like network with no central control. If you're interested in following me, you can do so there.

Majel: Raspberry Pi

Majel has been developing very slowly. Maybe I've lost interest in the project and I just haven't accepted it yet, or maybe it's just gotten to that point where distribution is the problem. I'm not sure yet.

I spent a good chunk of 2021 working out how to package Majel for distribution to others. Ideally, I'd like it to be something like a Raspberry Pi image, but there are a few problems with the CPU architecture that make this difficult, not the least of which is the absence of the proprietary Widevine DRM for aarch64 systems.

The other problem of course is that my day job is technically challenging, so I often end the day without the energy to take on something else.

Still, the project is (slowly) progressing. For the moment, you can follow development here.

The World

On the world stage has been dominated by two things: the pandemic and climate change. The former has been driving the stupid into the arms of proto-fascists, and the latter has been creeping up on us like a roaring lion looking to eat a dumb kid playing candy crush with headphones on.

The Idiot's Coup and the Rise of Stupid Pride

2021 opened with the horde of objectively stupid people demanding that Trump be awarded a presidency he didn't win, culminating in an assault on the capitol. The degree to which there was inside help is still being investigated and Trump's complicity remains insufficient to put him in gaol. He may well run for president again.

The US is also embroiled in a moral panic around critical race theory, a phrase that has a very specific meaning but to which the right-wing has attributed every bogeyman they could invent to scare parents.

The anti-vaxxers have been having a field day with the rollout of the COVID-19 vaccines. Before the pandemic they were just dangerous idiots, now they're dangerous idiots with substantially growing numbers. There's even a guy out there who claims to be the inventor of the COVID-19 vaccine telling people it's unsafe, and people are listening to him as if he's an authority.

He's not. He's a dangerous lunatic.

And finally, fuelled by Facebook, Twitter, Telegram, and the seemingly bottomless potential for human stupidity, QAnnon is still a thing.

Eurovision!

On a happy note, Eurovision returned this year! Not only that, but the top performances were all from groups that sang in their native languages, hopefully marking the weakening of a trend toward English-only events.

Here are some of my favourites if you're curious:

Fire & Water

There were two major climate events in 2021: the massive flooding across Europe and the unrelenting wildfires in Greece. The floods claimed 196 lives and cost roughly €10 billion, while the fires in Greece ravaged the entire country. The outpouring of resources and personnel was inspiring, with firefighers, trucks, planes, and helicopters arriving from across the EU and beyond

The Withdrawal from Afghanistan

NATO finally pulled out of Afghanistan in 2021, making this Canada's longest-running war ever: 20 years. I remember when it started, just after September 11th the US, and to a lesser extent, the whole world was looking for a target to direct our wrath. There were a few measured voices, calling for reason and reflection, but the overwhelming response was a call for blood. "Those people over there" had to pay for the 2,996 lives lost and we made it happen to the tune of a kill list so long it has a whole Wikipedia page devoted to trying to measure it.

In the end, the war served to spawn another war in Iraq, the creation of an entirely new movement for an Islamic state, and likely thousands of disparate terrorist networks. Our exit was so abrupt and disorganised that any semblance of liberalism was crushed by the Taliban within days and now the new enemies we've made have new crops of desperate people to recruit to the cause.

I'm not an expert on any of this, but any fool can see how broken this whole process was from the start. There was never an achievable goal to the whole thing, just perpetual war, which I suppose is an end unto itself. Regardless, if you'd like to hear the opinions of actual experts, I strongly recommend Canadaland Common's excellent new series, "War" that covers the withdrawal and the chaotic disaster that it was for the people left behind.


And I guess that's where I'll leave it, if for no other reason than I'm tired and I've been writing this for a few hours now.

I just want to say though, that I'm conscious of how lucky I've been this last year. Despite a global pandemic, my family is all still alive, my kid is happy and healthy and we have a home to raise her in. I have a skill that's in demand so employment is reasonably secure and despite the ineptitude of the local government, the UK remains largely unscathed from the horrors others have had to endure.

I'm not sure that "thankful" is the right word, since it suggests some external force to thank for our good Fortune, so instead I'm going with a recognition that our fortune is localised, that it could change any time, and so I need to remember that when spending time with the people I love.