Am I dreaming?
import AmIDreamingHallucination from '../../components/AmIDreamingHallucination.astro'; <AmIDreamingHallucination start="raw" minIntervalMs={760} maxIntervalMs={1700} scrambleFrames={11} driftDurationMs={90000} /
Latest posts from lee meichin
import AmIDreamingHallucination from '../../components/AmIDreamingHallucination.astro'; <AmIDreamingHallucination start="raw" minIntervalMs={760} maxIntervalMs={1700} scrambleFrames={11} driftDurationMs={90000} /
import Aside from "../../components/Aside.astro"; There's been a mixture of hype and controversy about this new AI agent thing called Openclaw[^1]. It bills itself as a Personal AI Assistant and, basically, you set it up with a bunch of integrations and let it loose on your life.
Alright, I'll start off by saying that 'brogrammer' here is intentionally incendiary but I'm in my DGAF era with my clickbaity blog titles and maybe I'll make a valid point by the end of the post. Exciting, no? Remember some time back in the early twenty tens when we started maki
import Aside from "../../components/Aside.astro"; I titled the post as I did because lately I've been feeling a bit Toothless. A cursory glance at my LinkedIn account will reveal my general bullishness towards agentic AI in the programming/productivity space and certainly I am le
This graph about the decline in the number of questions being asked on Stack Overflow has been going around the internet over the past few days: Pundits are attributing this to the increasing usage of AI by developers, which effectively bypasses a site like Stack Overflow (SO) an
Here we are: a new year, a new opportunity to look forwards and inwards. Two things, I believe, characterised the previous twelve months for me: health, and purpose. One thing that has frequently come to mind over the previous years is, basically, what am I doing? I'd churned thr
For a few years I had all my shit hosted on a multi node Kubernetes (K8S) cluster, which I put on Hetzner Cloud. Even wrote a guide about it, although at the time of writing it isn't back online. None of this is high stakes enough for me to care about uptime, really, so it just h
The life of a software engineer involves more than simply writing code. As your experience grows you'll find yourself getting involved in the design of a feature before it's even ready to be developed, and the testing and deployment of it after the fact. At each stage in this del
My relationship with AI has been quite unusual over the past year or so, and despite working for startups exclusively devoted to building AI based tech I didn't use much of it in my actual workflow. Well, not much more than a Q&A with Claude. So, if you asked me about integrating
Once upon a time we engineers used to argue the merits of TDD and whether or not it was dead. There's no reason to bring that conversation back from the grave, though. There isn't a good answer to a question like "should we write tests?" because it's not a very good question in t
For the past few years I've reflected on the months gone by and committed them to paper. Or the digital version of paper, at least. Kinda like my own year in review, which every app and its dog seems to be doing now. Rather than that, I'm going to take the last few years and then
import NullPointerEffect from "../../components/NullPointerEffect.astro"; <NullPointerEffect / In light of the recent news about CrowdStrike breaking the entire world with a botched release, and further justifying the decision to remove all networked systems from the Battlestar G
import Aside from "../../components/Aside.astro"; I remember an article that hit the front page of Hacker News some time ago. It was one of those posts that are basically written as a reply to some other trending post, and in this case the debate was around the value (or burden)
I'm not exactly old, but at some point in history 37 was considered old. I think. I've been doing this whole startup/engineering thing for some time. Sometimes I have a lot of patience for it, sometimes I don't. I generally prefer to focus on culture and inter personal challenges
It wouldn't be a new year if I didn't put my editor setup on a diet, and with the release of emacs 29 last year I've been able to simplify a lot . So, here are a few things I've changed or replaced thanks to emacs offering baked in support. Package management has been the goto li
Another year passes, another year to reflect upon, and as far as living in interesting times goes, once again I couldn't remotely expect where I would land. I've probably mentioned bits and pieces in previous non technical posts throughout the year. So, where to even begin? The q
There have been a few posts going around recently floating the idea that all code is tech debt[^1], all code is legacy, whatever. Naturally there are a selection of posts that refute this and provide their own explanation, like this one called Code is Not Technical Debt [^2]. I'd
I rather suddenly found myself back on the job market recently (by choice, before anyone asks). Given that it puts me back on the interviewing circuit it's given me an opportunity to reflect on the conversations and processes I enjoy the most, even if ultimately it doesn't result
I was going to call this post Cargo Culting but I think the term is inaccurate as much as it is antiquated. In fact, I'd be happy if we cut the wartime rhetoric out of tech entirely, as if getting a 64k bill from a badly built Lambda function is as bad as getting trench foot in A
I recently switched my emacs config back to Org mode, because Org is absolutely amazing for literal programming no matter what language you're using. It's still a work in progress, because I'm not really using all that much at the minute, but it gets the job done. My objective wi
A few months ago I started a new job at a company that uses Elixir as its main language on the backend. I've never written a line of Elixir or Erlang before in my life, but I've heard a lot about it and Erlang is familiar because I've played around with Prolog for a bit. Thanks t
Recently I took a month off work in between jobs to give myself a chance to reset. To be honest, the month felt more like a long weekend and it wasn't enough: most of the time was spent recharging and it didn't leave much behind for pursuing more fun activities. What I did achiev
Growing up in Britain, one learns how to stiffen one’s lip in the face of adversity. No matter how something is—good or bad—one simply needs to say ‘could be worse’ and all will become right with the world. It doesn’t matter if the greatest fortune besets you or the illest will,
I recently left my remote job, one I'd been working at for close to three years in total. It's pretty much been my life since COVID, as it has been for many, which meant that much of that time was spent in some form of lockdown with only brief moments of respite. Over the past co
The term 'hedonic treadmill' was coined back in the 1970s to describe the tendency to revert to a baseline state of happiness over time. In one limited sense it works as a metaphor for chasing pleasure without a lasting sense of fulfilment: buying a brand new car, for example, is
Everybody loves to talk about self documenting code, self documenting architecture, self eplanatory everything. If it's obvious you should obviously know it. If it's intuitive you should know it without actually knowing it. This comes up a lot when you talk about documenting a co
I have a feeling that this post might say more about me than anything else, but given that I mostly write about my own experience anyway that probably isn’t such a problem. A long, long time ago I wrote a post on Medium about how news on the internet becomes increasingly amplifie
This isn't going to be a deep dive into YJIT, benchmarking it and such like, just a few quick tips to get started with it yourself. First things first, though, some context! What's YJIT? Yet another entry in the Yet Another series, YJIT is a new just in time compiler for Ruby. Wh
At the start of the year I wrote a post about my outlook for this year. I signed it off with a desire to check back on it in six months or so and see how things turned out. The post still lives on the old version of my blog and I haven’t migrated it over yet, but I was positive a
import Small from "../../components/Small.astro"; import Aside from "../../components/Aside.astro"; <Aside <Small This is an old post, originally written in 2014 during my time at New Bamboo. You can find the original in the web archives[^1]</Small </Aside Agile is dead! Long liv
Another day, another post about burnout. But really, I'm thinking more about that point that precedes it, the stall that–left unchecked–turns into a nosedive. The good thing is you do have an opportunity to pull back up, you always do, but it gets harder the longer you wait. The
I like to maintain a single configuration across machines. Mostly it works fine and I take account for whether I'm working on Mac, Windows or Linux. All I need to do is run a small script to set most of my shit up: My config files are structure in a way that likes: It gets intere
import Aside from "../../components/Aside.astro"; I have a friend who once explained to me the concept of a comfort zone and what it means to go outside of it. It happened a good few years ago so my memory is a little hazy, but it came with a useful visual aid. Enjoy my crude rep
This is a bit of an unusual twist for me, in terms of what I generally write about, because I don't really care about the world of celebrity that much. But something has been on my mind over the past few days since we saw a famous actor, Will Smith, hitting a famous comedian, Chr
import Aside from "../../components/Aside.astro"; If there's one thing I like writing about more than anything else, it's compassion, empathy, and intuition. It's a super squishy topic which means it's vulnerable, emotional, empowering, and ultimately human. I wish I could talk a
As they're wont to do, a certain tweet was floating around the interwebs for a while the other week. Recruiters be like: We're looking for someone who can connect to the database using CSS. It's been a hell of a long time since I last embarked on a quality shitpost project[^1], i
I've been working fully remotely for almost 18 months now. It's not a temporary measure, brought on by the Covid 19 pandemic, it's because the place I work is fully remote. No offices anywhere (just like Elastic and Gitlab, last time I checked). It's not my first rodeo either, th
import Aside from "../../components/Aside.astro"; I recently read a post called No code reviews by default , by a startup called Raycast[^1]. In summary, code reviews are optional and the team deploys nightly internal releases so that the changes introduced can be tested (or used
There was one time where I thought that being a software developer meant that I just had to get good at writing code, because to my mind the main thing I was producing in my time at work was, well, code. This was back at an agency called New Bamboo, and it was my first job both i
import Aside from "../../components/Aside.astro"; About six months ago I wrote a post about rewriting the tech that publishes this blog.[^1] It seemed like a good idea at the time to try and build something out in Racket and Pollen, and it was a learning experience. In doing this
import Aside from "../../components/Aside.astro"; I recently realised that despite many new additions to the Ruby language and ecosystem, I've never really had an opportunity to take advantage of many of them. Of course, some new language features are more useful than others, par
import Aside from "../../components/Aside.astro"; I was browsing HN over my coffee this morning and came across an interesting thread[^1] linking to a post titled When Buddhism Goes Bad [^2]. That wasn't actually the title I read, as on HN the more neutral subtitle – How My Mindf
I finally got around to paying some money for Beautiful Racket [^1], a fantastic online only book that introduces you to Racket by guiding you through building a few language implementations. In that sense it's not unlike Write Yourself a Scheme in 48 Hours [^2], except that book
Way back in 2002, or perhaps 2003, I'd acquired a copy of Macromedia Dreamweaver and started playing about with HTML. The timeline is a bit blurry, considering that it's almost twenty years ago. CSS wasn't really a thing yet, though, and IE6 was still the main browser of choice.
I think everyone needs at least one blog post under their belt that describes mistakes they've previously made in their careers. Now is the time for me. 1. Liberal application of the word 'just' "Why don't you just do this other thing instead?" Uuughhh…this word, which serves as
Over the past decade of my wondrous career I've rather haphazardly stumbled in and out of the realm of agile leadership. I've been a scrum master and an agile coach, even got the PSM1 certification which is nice but not really worth the PDF it's written on these days. My best inv
I'm driven by ambition, as are many of us. I don't think that you need to be ambitious to be successful, though, unless you reframe your perception of it. You can be enough; no more, no less. My ambition is fuelled by wanting to do more or wanting to do better, but on the flip si
I'm sure everybody goes through the 'angry programmer' phase at some point in their career. I'm sure that some people enter it and never leave. The angry programmer looks at code and wonders what kind of dumbass would write something so stupid. The angry programmer assumes a code
Depression fucking sucks. It sucks to suffer from it; it sucks to see others suffer from it. I lost contact with my landlord sometime last year, and obviously as a private tenant that raised some concerns as my main point of contact for my flat had vanished off the face of the ea
I previously wrote about how this site was built[^1] and then deployed[^2]. I'm quite happy experimenting with how I set up this whole shebang because I can learn a lot from it and the worst that happens is that the site goes down for half an hour. The stakes are low. You might t