I have a PhD in experimental physics, specifically in antiferromagnetic spintronics and magnetooptics. Through the PhD, I became an expert in interfacing with equipment using Python and in experimental design. Since then, I have discovered a passion for the interplay between hardware and software and am therefore now striving to immerse myself in just that.
I have undertaken many personal projects involving mechanical design, electronics and programming in various languages, and I am always jumping into the deep end to learn new skills. With access to my dad's workshop and some tools of my own, I undertake woodworking projects as a hobby and have worked as an assistant to a builder/joiner and renovated houses and built extensions, developing a very board suite of skills and varied understanding of how things work, which have been demonstrated as remarkable applicable to the research and development environment. This page provides a summary of my PhD research, followed by examples of four projects, each primarily showcasing: programming skills, equipment design skills, electronics knowledge and woodworking skills, followed by a bit more about me.
Example magneto-optical detection scheme
A view down the bore of a cryostat
My PhD research (thesis linked below) consisted of developing new measurement techniques for measuring antiferromagnetism (a form of magnetism in which there is no net magnetisation, although the materials possesses local and long range magnetic ordering) in CuMnAs samples. In theory, antiferromagnetic materials are ideal materials for use in storage devices because they are impervious to external magnetic fields, have very fast switching dynamics and maximum storage density, overcoming limitations in existing magnetic storage devices. Writing of information has been experimentally shown (paper linked below) however these results highlight the main drawback: the readout signals are much weaker (0.1% resistance change compared to 150% recorded in ferromagnet HDDs). My research hoped to find new ways to measure these changes and explore the new ways to measure the magnetic properties of antiferromagnets in order to expedite material development.
The aforementioned research goals meant that I was exposed to a wide array of experimental techniques (optical, large facility, electronic, cryogenic, vacuum etc.), collaborated internationally (TU Dortmund, several institutes in Prague and with Ioffe Institute back in 2018) and have gained vast experience in interfacing with hardware. For this, I primarily used Python (more about this below), but have also included Arduino devices as intermediate hardware and have programmed a Red Pitaya for a spectroscopic applications. I left the research group just as they discovered a new class of magnetism called altermagnetism. This new material promises even more ideal properties for the next generation of storage devices. I have continued to work with the group to improve experiments and accelerate their research into this new field.
Below, I have included a few other links for the keen reader, focussing on CuMnAs, the material I studied.
The ArtieLabUI window
An electrical switching GUI
A GUI for spectroscopy measurements using ASOPS
Throughout my PhD, I wrote Python code to control instruments, process data and for image processing applications. Because of this experience I was approached by my research group while working as technical specialist in the teaching labs. They tasked me with re-writing the existing proprietary LabView software which was shipped with their latest system: a magneto-optical Kerr effect (MOKE) microscope set-up. They employed me alongside my technical specialist role. The result is ArtieLabUI, an open-source replacement which is faster, and modifiable by the group. It was developed specifically for their application and with their input throughout. At over 5000 lines of Python (and 100 of C++), this is my largest project yet. This required real-time image processing, multithreading, C++ interfacing in Python, UI design and a lot of reverse engineering.
Also for work, I wrote a Python package which contains wrappers for interfacing with the instruments I used regularly. This, and some examples, are included below as well. Because of my expertise in this, I was asked to write a guide for using Python to interface with the equipment in the project teaching labs (3rd and 4th year undergraduate labs). Finally, some LEEM analysis scripts by TAdeJong were heavily modified to use them for PEEM analysis instead.
Other snippets of research code and other projects have been lost or are not publicly available for various reasons. These include my time evolving 3D magnetic simulation, simple Arduino scripts and Red Pitaya code.
ArtOS Test
I started writing an operating system (OS) by following the OSdev.org bare bones tutorial. In order to progress beyond this "hello world" result, I have had to drastically improve my competence with C, C++ and CMake. I had to learn AT&T and Intel assembly syntax, teach myself about manual linking and have had to implement various bare metal CPU controls.
At the time of writing, the OS boots using a pre-made grub multiboot configuration and the kernel provides stdout, stderr and the ability to get and draw to a pixel frame buffer. using 32-bit colour (unused transparency). The primary goal of this project is to implement a public domain C library in order to run a freeware version of DOOM. There are many basic syscalls currently missing but they are being added one at a time.
Other programming hobby projects include writing a game engine in Kotlin with my brother, called Balding Gate. Although functional as a world editor and playable scenarios, we shelved development when we heard tell of Baldur's Gate 3. Aside from this, I have won two Hackathons for remote controlled robots, won a pebble smartwatch for developing an app for it and have attended other hackathons and game jams.
3D model of the room temperature vacuum system
I have drawn many individual parts in CAD, and made several larger assemblies. Several of the smaller parts have been 3D printed, such as a replacement handle for a Black and Decker workmate workbench and a controller for an Atari 8-bit computer from the '80s. In many of my projects you can see evidence of CAD and progression in skills using it. Recently I have focussed on learning best practices and trying to form good habits. For the following project, I drew a CAD model in the final size and had it manufactured by the in-house workshop at UoN and LewVac.
As an example of my design skills, I present my room temperature system: I was tasked with designing a high vacuum system with stable temperature control for measuring electrical devices at and near to room temperature for the Spintronics group. The stability is required to eliminate drift in resistance measurements and to cool the sample when under load. There were three main points in the brief:
Crokinole Board, Discs and Bowl
I really like to make things (as if that wasn't already clear) and one of the easiest materials to get started with is wood because the materials are readily available, and it is possible to do a lot of things with few expensive tools (by using hand tools). It is for this reason that most of my projects are woodworking, not because it is my favourite. To get where I am now, I learned most of what I know from my dad but also worked as a joiner's labourer during many of my undergraduate holidays. Recently I have been working on earrings to hone my skills with hand tools. When I head home to visit my parents. Over a Christmas break, my dad and I made a crokinole board (a tabletop game somewhere between curling/boules and pool with DNA from shuffleboard and air hockey) to play with family and friends. The following year we made a chess board. It is always a joy to have access to his tools, knowledge and company.
Assembled dimmable 2-wire LED driver.
I have undertaken many small electronics projects, such as replacing a power supply in an old BBC Master computer, making cables or analogue filters for laser experiments and the box for the temperature controller in the RT system. The two other largest projects are a cartridge emulator for Atari 8-bit series computers using, an Arduino Mega, with plans to replace it with a PIC after the proof of concept stage, and a display board demonstrating the function of an 8-bit adder for outreach purposes. I have also focused on hardware-software interfacing in programming for my research and in my contribution to hackathon entries (see Programming for more on hackathons) but I helped with all the circuitry in those projects (where applicable). My most impressive electronics project is the following LED driver.
Two-wire LED drivers work by oscillating the polarity of a driving DC current applied to a string of LEDs with sections of opposing polarity LEDs. This allows for easy assembly and control of the LEDs for animations etc. for Christmas lights. Typically, the controllers come programmed with several fun animations however they were all too bright and I just wanted adjustable soft lighting. I wanted to make a simple dimmable LED string driver for a 2-wire LED chain. As always, things got out of hand and the project ended up quite sophisticated. See the image on the right for a sneak-peak and click below to find out more.
I hope you found my projects interesting and have learned something from them! If you're wondering what kind of person I am, and how I find time for these alongside my studies and life, you'll be glad to hear that I have a healthy work-life balance, with a less healthy interests in specialty coffee and rock climbing (indoors and out), finding time to cook and eat world foods, play board games and video games, socialise with friends, listen to a lot (and I mean a lot) of different music, read books (sci-fi and fantasy novels lately), and go on adventures: hiking in the woods, hiking up mountains, climbing up rock faces and exploring new cities. When not being active, I spend my time watching educational YouTube, often in niche subjects e.g. organic chemistry syntheses, machining and botany, but also in more typical subjects.
If you are wanting further information about any of these projects or are considering offering me a chance to apply to work at your company, please do not hesitate to contact me using the form below.