6 people riding into the sunset on a wide tarmac.

Click for high-res image.

The Green Web Foundation team riding on Templehofer Feld in Berlin.

2023 in review

Well, 2023 pretty much done and dusted. A solid year work wise, and a pretty big one personally. I’m really not great with keep journals or notes of things that happen, so this review might be a bit scattered. Something to improve on in 2024 I suppose.

Fixing my eye

I’ve had eye problems for the last 4 years. My right eye has been turning inwards since around about the start of 2020, and after trying a few different approaches to correct it I was told that surgery was the best (and last) option available to me.

So, that’s how I ended my 2023. Minor surgery on my right eye which left me looking like Terminator for the better part of a week. My eye’s started to heal now, and the whites are beginning to reappear. What’s even better, at 1 week post-op, is that the visual discomfort I had been experiencing for the last few years is now gone!


I got married to my partner here in Taiwan in October. We both wanted to keep things simple, and avoid the headaches of arranging a full blown Taiwanese wedding banquet. Despite the best efforts of both our families to make things more complicated, we just about got away with it.

Another upside of this was that my parents got to visit Taiwan. It was my Mum’s second time, but my Dad’s first. It was cool to show them around the place I’ve called home for the last 11 years.

They’re using CO2.js in where now?

Towards the end of 2022, we began seeing CO2.js being used in an increasing number of projects. That continued into 2023, and it was wild seeing some of the tools that were picking up the library.

Of note, CO2.js now contributes to the Firefox Profiler’s Power Profiling feature. It was also a personal highlight to see it being used by the team at WebPageTest in their Carbon Control test suite. I also helped the team at PianoD add it to Sitigreen, their Italian website testing tool.

What next for CO2.js

I’ve got two big goals for CO2.js in 2024:

  1. Add additional models to the library to give developers more choice. There are open issues for adding the GreenFrame and DIMPACT models.
  2. Give developers a way to pull in data from third-party grid intensity services like Electricity Maps, WattTime, or others. This should hopefully reduce the friction to perform nearer to real-time carbon estimates with current data (rather than yearly averages).

Meeting the people I work with

In March I got to travel to Germany to meet up with Hannah, Michelle, Katrin, Oliwia, Justine, and Chris whom I work with at the Green Web Foundation. It was fantastic to meet them all in person, after having spent the better part of nine months getting to know them through pixels on my screen.

Not going to lie, though, it was freezing! It was also exhausting. We had two days together as a team, and I was still running on Taipei time which meant I was running on fumes by the late afternoon.

That said, wouldn’t change any of it for the world. Below’s a picture of everyone riding into the sunset on Tempelhofer Feld, a former airfield that is now a sprawling public space.

6 people riding into the sunset on a wide tarmac.

Click for high-res image.

The Green Web Foundation team riding on Templehofer Feld in Berlin.

Making this website carbon aware

At the beginning of the year, I wrote a bit of code to make this website carbon aware. The idea is to understand the grid intensity of a user’s location, and then adjust what kind of website they receive based on that.

This is very much me playing around with tech and some ideas. A few folks have commented that perhaps the “low carbon” version of this website should be the default. It probably could, and nothing would be lost really. One thing I wanted to show through doing this is how carbon awareness could be added to an existing website or app, rather than a greenfield project.

Currently, the code I’ve written works in Cloudflare’s edge compute environment. I’m hoping to get some time at the beginning of next year to write starters for other providers as well.

Another COP website audit

COP28 happened, and so did another COP website audit. Unlike previous years, though, this one picked up a bit of traction with a couple of media folk reaching out and asking me to comment on the site for different stories. I guess that’s more down to the controversial nature of this year’s COP host nation rather than the quality of my writing per se.

It was especially nice to be interviewed by the ABC in Australia. Finally getting some bang for my tax dollars.

I’ll probably never finish TOTK

I was so amped for The Legend of Zelda Tears of the Kingdom to come out. I’m glad Nintendo has such long release cycles between these games, because I’m not sure I’ll get around to finishing it anytime during 2024. The ease at which I get side tracked in the game probably means I’m never going to find Zelda and will just fork out my money for the DLC or next release in a few years.

Two more international refereeing caps

In September I was lucky enough to travel to Japan to refereeing in a series of Mens Open International Touch Test Matches between Japan and Singapore. It was my first time refereeing internationally since 2018, and my first time refereeing outside of Taiwan since 2019.

It was some seriously fast Touch, with both teams well into their preparations for the upcoming 2024 World Cup. I was glad for the run, and picked up a few things I need to continue working on if I’m to pursue higher refereeing levels in the future.

For now though, my eyes are on making the Taiwan team as a player for the 2024 World Cup. The first 8 months of the new year will be revolving entirely around that. As one of the old players in the squad, it’ll be a challenge but one that I’m keen to get through.