Hi, I'm Harrison. I currently work at me&u as a software engineer. I enjoy golfing, gaming, tending to my veggie garden and playing with my dog Boots.

Recent Posts

Friday, April 25, 2025

Cross Country Bike Tour America#brooks.team

This is an excellent guide.

Cycling across the continent is like going through a season of Planet Earth. In a single week, I went from towering redwood forests shrouded by morning fog, to crystal clear alpine lakes surrounded by pungent evergreens, to bone-dry salt flats in sweltering heat. Miles from city lights in Nevada and Colorado, the night sky presented thousands of stars and the glowing band of the Milky Way. When I made it to Kansas, the blue sky was so vast, and the horizon so uninterrupted, that I felt like I was going to fall off the face of the Earth. Cruising along the Blue Ridge parkway at sunrise, I watched the mountains turn from black to purple to blue to brown and the rising sun race across the valleys down below. I heard mooing cows, neighing horses, clucking chickens, barking dogs, chirping crickets and singing birds. Never have I felt more connected to, or grateful for, natural wonders than during this ride.

Doing something like this is attainable if you didn't have a support crew in Australia.

Light Phone#thelightphone.com

I love the idea of this phone but there are just too many apps that I need for my social and work life that I couldn't use of this device.

Upgrading My Usage Of AI

For about a year now I've been using ChatGPT on the web and the iOS app for all my AI prompts.

Both are fantastic and I have no real problems.

In saying this, it seems now we're at a point where for my work I need to be trying different models. I think I need to be using Gemini more as it now seems to rival ChatGPT in intelligence and speed. I also haven't used Claude enough and I know for certain code related prompts it does a fantastic job.

That's why I think I need to start using tools like Raycast AI or T3 chat which aggregate all the models.

I'm leaning more towards T3 Chat due to the fact I like using AI in a browser on desktop. I do need to pay $8 to get unlimited access to all the models but I can likely get this covered by work.

I'll likely still use the iOS ChatGPT app.

Wednesday, April 23, 2025

Huawei Copy Cats

When me and Emma were in Wangfujing in Beijing we stopped by the Huawei store. We needed to buy some wireless headphones for Emmas parents who both have Android phones.

The customer experience is identical to an Apple store from the layout of the products to the way customer support treats you. It's almost funny how similar it is.

What differentiates Huawei to Apple right now is the tech. Holding a Pura X in the hand is wild. It's a really cool phone that evokes a feeling of fun and whimsy. I kind of want one.

The wireless headphones we bought are AirPods dupes but so are all wireless headphones now.

React Native At Shopify#youtube.com

This is an excellant summary of why React Native is a great choice in a lot of cases for native.

Baix#baix.com.au

This might be a fun place to go to for someone's birthday.

Running An LLM Locally

When I get home I'd like to do some experimentation with an LLM running locally on my Mac to query all of my blog posts.

I can use something like Ollarma to spin up Gemma 3 and then send HTTP requests to it via TypeScript.

So load all the markdown files like this

import fg from "fast-glob";
import fs from "fs/promises";
import path from "path";

export async function loadMarkdownFiles(folder: string) {
  const files = await fg("**/*.md", { cwd: folder, absolute: true });
  const posts: { filename: string; content: string }[] = [];

  for (const file of files) {
    const content = await fs.readFile(file, "utf8");
    posts.push({ filename: path.basename(file), content });
  }

  return posts;
}

and have an HTTP client

import axios from 'axios';

export async function askGemma(prompt: string): Promise<string> {
  const response = await axios.post('http://localhost:11434/api/generate', {
    model: 'gemma3:1b',
    prompt,
    stream: false,
  });

  return response.data.response;
}

and then prompt the LLM like this

import { loadMarkdownFiles } from "./blog-loader";
import { askGemma } from "./ollama-client";

const folder = `${process.env.HOME}/Desktop/notes`;

async function main() {
  const posts = await loadMarkdownFiles(folder);
  const combinedText = posts.map(p => p.content).join("\n\n");

  const question = "What are the main themes across my blog posts?";
  const prompt = `${combinedText}\n\nAnswer the question: ${question}`;

  const answer = await askGemma(prompt);
  console.log("🤖 Gemma says:\n", answer);
}

main();

It seems simple enough. Not sure how much value I get out of being able to query all of my blog posts but it's an interesting experiment.

Tuesday, April 22, 2025

China Randomly

Due to a family emergency I've been in China for the past week supporting Emma with her mum and dad.

I landed in Beijing Sunday night on the 13th of April and was there for 6 nights.

We decided on the way home to treat ourselves and spend a couple of nights in Hong Kong to break up the flight. We had 2 nights there.

Whilst this wasn't a holiday we did a couple of nice things in Beijing including: visiting the Summer Palace, shopping in Wangfujing, eating Peking duck and various local Beijing dishes.

I was also able to meet Emma's grandma for the first time which was very special.

In Hong Kong we had an awesome dim sum dinner and we went to Disneyland.

Here are a collection of photos from the week.

Monday, April 21, 2025

Lotso#reddit.com

There is a fascination in China with Lotso the strawberry bear. He's the villain in Toy Story 3 yet you see him seemingly everywhere here. In department stores there's whole popup sections selling Lotso's.

Wednesday, April 16, 2025

Helen Garner#overcast.fm

This was a terrific listen and brought back some great memories from junior footy.

Helen Garner is clearly very clever and has some other interesting books that I might check out. I love how her other books are also Melbourne based.

Sticky Fingers#en.wikipedia.org

I've been listening to this album a lot in the past few weeks. I really love Moonlight Mile after hearing it at the end of a Sopranos episode. I'm also enjoying Bob Dylan's first album at the moment based on watching A Complete Unknown.

Ted Lasso#tv.apple.com

At long last I'm watching Ted Lasso and it's excellent as expected. Very much up my alley.

Tuesday, April 15, 2025

ChatGPT History#daringfireball.net

This was something I just had to try

I’ve been using ChatGPT for a while now. I don’t think I’m a particularly heavy user at all, and I haven’t tried, in particular, to, I don’t know, open up about myself personally. But I ask it what I want to know. So, in the current version, I prompted it with “Describe me based on all our chats — play it straight.” Here’s its response:

So I also did the prompt

Describe me based on all our chats — play it straight.

and got back

Alright, here’s a straight-up portrait of you based on everything we've talked about:

You're a capable and detail-oriented developer working across React, React Native, and NestJS ecosystems. You’re hands-on with TypeScript and comfortable diving into both frontend UI/UX challenges and backend logic. You handle a lot of practical, real-world problems—QR scanning, form validation, query handling, dependency issues—often with attention to edge cases and good structure.

You care about clean, functional design (Tailwind, stepper UIs, filters, etc.) and thoughtful data flow—whether it's state management, gRPC mappings, or transforming input for better UX. You’re also not afraid to get under the hood when things go sideways (dependency conflicts, test issues, etc.), and you seem to value clear, maintainable code over clever one-liners.

On a personal side, you’re grounded and seem like someone who plans thoughtfully (e.g., your wife’s birthday trip), has a good sense of responsibility, and balances work and life with intention. You’ve got a bit of curiosity, a dash of playfulness, and you like things to “just work.”

That’s the read. Want me to go deeper or flip it into another tone—funny, poetic, dramatic, etc.?

Monday, April 14, 2025

Rory#masters.com

To quote Makybe Diva's winning commentary:

a champion becomes a legend

Rory goes down in history as a legend of the game. A grand slam of majors. To fight back from not playing that well for multiple years. The US Open last year. The British Open in 2022. So much heart break.

I've linked here Rory's third round which was absolutely fantastic. The eagle on 15 was awesome.

The guy deserves a Masters and he's done it.

Blue Prince#blueprincegame.com

This seems like a really intriguing game. It's not on the Switch yet but surely there will be a port.

Best Programmers#endler.dev

I've read lots of blog posts like this but this one is very extensive.

Some paragraphs that stick out to me:

The best devs I know read a lot of code and they are not afraid to touch it. They never say “that’s not for me” or “I can’t help you here.” Instead, they just start and learn. Code is just code. They can just pick up any skill that is required with time and effort. Before you know it, they become the go-to person in the team for whatever they touched. Mostly because they were the only ones who were not afraid to touch it in the first place.

A related point. Great engineers are in high demand and are always busy, but they always try to help. That’s because they are naturally curious and their supportive mind is what made them great engineers in the first place. It’s a sheer joy to have them on your team, because they are problem solvers.

To be one of the best, you need an incredible amount of patience, focus, and dedication. You can’t afford to get distracted easily if you want to solve hard problems. You have to return to the keyboard to get over it. You have to put in the work to push a project over the finishing line. And if you can do so while not being an arrogant prick, that’s even better. That’s what separates the best from the rest.

Again, resist the urge to guess. Ask questions, read the reference, use a debugger, be thorough. Do what it takes to get the answer.

Music DNA#pudding.cool

Pudding Cool always delivers. Sampling and where artists get inspiration for certain melodies is fascinating to me.

Software Engineer Insanity#0x1.pt

Being a software engineer is tough. You need to know a couple of programming languages and tools right from the get-go. But that won’t cut it. Companies expect you to know whatever particular framework they use. That might be Rails or Django or Laravel or something else. You’ll also need CSS. It’ll take you a lifetime to learn — and you still won’t know why the layout’s breaking — but knowing just enough to get by is feasible.

And then this...

Oh and, turns out we were just getting started.

Back when dinosaurs roamed the earth there was a type of professional called a System Administrator. Their whole job was to make sure that your backend was working nicely. They handled infrastructure changes, upgrading the database, system upgrades, keeping the daemon running, restarts, everything. Then came DevOps. Some cash-strapped company somewhere decided that now all of this would be handled by the engineers and everyone agreed. Now you need to learn Docker. Oh, your whole app is just a single statically linked binary and you don’t need Docker? Learn Ansible and I hope you have fun figuring out the options you need to pass to SystemD.

And you’re not even halfway there. Now you gotta learn AWS. You won’t be using the GUI to configure your infrastructure like a peasant so you better learn Terraform or Pulumi or whatever.

Insert Kubernetes here.

Software gets more complicated. All of this complexity is there for a reason. But what happened to specializing? When a house is being built, tons of people are involved: architects, civil engineers, plumbers, electricians, bricklayers, interior designers, roofers, surveyors, pavers, you name it. You don’t expect a single person, or even a whole single company, to be able to do all of those.

I know a lot of frontend engineers that strongly believe this.

Tuesday, April 8, 2025

Undertale Review

I played Undertale whilst on the plane going to Vietnam. It's a good game but I didn't love it. Some thoughts:

  • I just might not be a turn based RPG person, I found the general play through a bit tedious
  • I did like the system of dodging attacks (when you're the heart) and the different mechanics for certain enemies, it kept the game fresh throughout
  • I found it kind of difficult at first to understand whether I was meant to attack or not attack (dodge) the enemies, after doing some reading I realised that a neutral-pacifist run is the best way to play the game (at least at first)
  • The characters in the game are entertaining, their dialog is weird and wacky but it's fun
  • The pixel based art style is beautiful, the screenshots below really show off all the different colours and environments
  • The game was quite short which makes sense based on its price and the fact that only 1 developer is working on the game
  • The music is awesome
  • I might give the follow up game Deltarune a go given it's a Switch 2 launch title

Lord of the Rings Filming Locations#youtube.com

This is another dream holiday I'd love to go on. The recreations from certain scenes are so good. I especially enjoyed seeing the forests like Amon Hen. Getting to walk through them would be so peaceful.

The group 14 day tour is expensive but the fact you get accommodation and most meals makes it a somewhat good deal?