← All posts

How I got here, and why I'm trying to leave

metacareer

This is the first post on this blog. The blog exists because I’m spending the next three years trying to switch careers, from senior full-stack engineering into ML research, and I want a public record of the attempt. This first post is mostly backstory. How I got from where I started to here, and why ML is the destination this time.

ITER, briefly

I did a mechanical engineering bachelors and spent an internship at ITER doing dynamic analysis on the “first wall”. The first wall is the surface of the blanket layer that faces the plasma inside the tokamak. It is one of the more abused pieces of metal in the universe. My job was to calculate the electrical body forces acting on the assembly, which gets complicated quickly because the structure is itself complicated, and because the magnetic fields it lives inside are doing genuinely strange things. I liked it. I liked the physics, I liked the people, I liked living and working in Barcelona.

I did not love the speed at which decisions happened. That bit came back to bite me later.

Climbing, a shoulder, and an accidental programming career

After university I taught climbing for a year. The plan was to spend a year outside before settling into something more sensible. I had dislocated my shoulder repeatedly across climbing, kayaking, and snowboarding, and the last straw was getting it out while doing a handstand. At that point the consultant told me I needed a SLAP and Bankart repair to tie the glenoid labrum back to the bone, which I duly had done. I could not teach climbing during the recovery, so I gave programming a go to fill the time.

I loved it. The pace, the flexibility of working from anywhere, a decent salary, a team I genuinely liked, and a boss who was, genuinely, one of the good ones. He matters enough to the rest of this story that I will refer to him from here on as the Really Nice Boss, capitalised. The career sort of happened to me from there.

A masters in fusion, sponsored by a slightly bemused company

Some way into my dev career I convinced the Really Nice Boss to fund a masters in Fusion Energy. It was not, by any honest measure, directly useful to the company, and he knew that. He sponsored it as a friend. Partly out of generosity, partly because he reckoned that keeping me happy and intellectually fed would also keep me at the company. Both worked. I stuck around for years afterwards.

The MSc was good. More matrices, more magnetic fields, more of the maths I had not properly used since the bachelors. I did my thesis on high energy laser interactions with plasmas, specifically looking at QED radiation reaction and its potential to focus a beam of electrons very quickly. There are real medical applications for that kind of fast focusing, and at the time the work felt genuinely groundbreaking. I came out of the thesis in love with the physics.

I came out of the broader programme rather less in love with the field.

A few things got my goat. The bureaucracy. After working on coding teams where a change you decide on at 10am is in production by 11, watching a fusion project move at its actual pace was a shock. I am sure the slowness is partly necessary. Big experimental physics has to be careful in ways software does not. But the structural slowness was real, and it bored me.

The other thing was the funding. There is a creepy pattern where fusion research, especially in the US, leans heavily on money that originally comes from nuclear weapons programmes. It does not always sit easy. The most visible example to me at the time was the National Ignition Facility, where some of the decisions about how to run shots seemed to be optimised more for understanding how to blow shit up than for getting useful fusion energy results. Watching that as a student who genuinely cared about clean power was disheartening.

The other Greg, and why I did not go into fusion research

After the MSc, the smartest guy in my cohort, who happened to also be called Greg, and who happened to share my birthday, went up to Strathclyde to work on cutting edge laser-plasma research. The conditions were the usual academic-physics conditions. About twenty-something thousand a year, twelve hour days, six days a week, a lot of it in the lab.

I had been working flexibly from cafes and home for a few years by that point, in a streamlined team I liked, on a salary that was not embarrassed about itself. And the work kept getting more interesting, with more trust, more responsibility, and (damn it) more money. My version of “what if I quit and chase the physics” died there. Not heroically. Just quietly outbid.

So I stayed. Eleven years in now.

Why now, and why ML

A few years ago the Really Nice Boss left, not on his own terms. That was the wake-up. He had been the gravity of the place, and once he was gone the version of the job I had fallen into stopped being a given. The team around me stayed brilliant, and a genuinely good lead developer arrived not long after, which is most of why I am still there. But something shifted around then, and the easy dreamland feeling has not really come back.

The other thing is that programming is changing under my feet.

I love using Claude. It is genuinely the best tool I have ever worked with. The speed at which I can move from idea to working feature is unrecognisable from where I started. But I can also feel what it is doing to my brain. I rot through brainstorming sessions and end the day with a working feature and a slightly less capable engineer behind it. I love the product velocity. I miss writing raw code and figuring out the hard bit on my own. I have started doing LeetCode problems on evenings and weekends to keep the code brain from shrinking, which is the kind of thing you only resort to once you have noticed something is going.

The broader signal is the same. Whatever programming as a profession is going to look like in five years, it will not look like the profession I joined. I would rather be the one redirecting my career on my own terms than the one being redirected.

ML research is the destination because it lines up with the things I actually like doing. Matrices. Physics. Code. Problems hard enough to make my brain feel something. From the outside the culture also looks like a better version of the bits of fusion research I liked, without the bits I did not. The work moves quickly. The norms are flexible. The bureaucracy, for now at least, has not yet calcified.

There is also an arms-race aspect to ML that mirrors the one in fusion. ML is already changing research itself, including in fusion. A shout to FUSE.jl, lovely Julia work that another classmate of mine, Tim, moved onto after the masters. Tim was properly clever, and a strong chess player on the side, somewhere north of 2200 ELO when we were in York together. Some of the best applications of ML in the next decade will be in areas like materials, biology, and the kind of physics simulation that fusion needs. Some of the worst will not be. I would rather be in the room pushing on the good versions than watching from outside.

What this blog is

A public lab notebook. I am writing here because writing in public is the fastest way I know to find the gaps in my own understanding. I will be wrong about things. That is the point. The plan is to put up paper reproductions, project writeups, and the occasional essay when I am trying to chew through something hard. Quarterly I will write something more honest about whether the plan is working.

Three years from now, one of two things will be true. Either this blog is full and I am somewhere doing work I find genuinely exciting again, or it is empty and the experiment failed in a way that is documented. Either outcome is more interesting than not trying.

Onward.


Code lives at github.com/sgtwickool/ml-journey.