All Posts
Prompting Experiments
I’m on vacation, so I’m getting some time to do things that interest me in between time spent with family and recharging. As part of that, I wanted to write a blog on turmoil and how to use it for testing, and I’ve ended up yak-shaving my way into making a preprocessor for mdBook to compile examples that use external dependencies. I say making instead of writing, because I prompted my way to a solution.
Anvil: Verifying Liveness of Cluster Management Controllers
Summary of Anvil: Verifying Liveness of Cluster Management Controllers
Wouldn’t it be nice to write some software and confidently say that you know it’s right? That, as long as some assumptions about the world hold, it’s going to do exactly what you want it to, no matter what strange permutations or combinations of failures happen. In broad strokes that’s the promise of formal verification and proofs in software.
MRTOM: Mostly Reliable Totally Ordered Multicast
Summary of MRTOM: Mostly Reliable Totally Ordered Multicast
This paper is about building a network primitive to speed up consensus protocols. Like other papers in this area, MRTOM builds on the fact that network ordered protocols can have much higher throughput than standard consensus protocols. MRTOM takes this one step further by offloading not just packet ordering, but also the fast path of consensus protocols to programmable switches.
How Hard is Asynchronous Weight Reassignment?
Summary of How Hard is Asynchronous Weight Reassignment?
Majority quorum systems are useful in providing a simple mechanism for consensus. To accept a value, you need a majority of servers to agree to accepting it. Weighted majority quorum services (WQMS) take this approach and recognise that some servers are going to have better performance than others, so they should get more voting power.
Hydra: Serialization-Free Network Ordering for Strongly Consistent Distributed Applications
Summary of Hydra: Serialization-Free Network Ordering for Strongly Consistent Distributed Applications
Replicated systems typically pretty much always have some overhead in comparison to unreplicated systems, at least if you want strong consistency for your data. We need to do extra work in order to make sure that we get the same result across all nodes. The fastest systems minimise or avoid that coordination, but where we can’t avoid it, we need an algorithm to manage that consensus.
Breaking into tech: Advice on getting your first role or internship
This is my rough sketch of advice for people trying to get their first role in the tech industry. A lot of this is synthesized and regurgitated from what others have told me, so might be pretty recognizable! Cracking the Coding Interview is a really excellent resource for all of this too.
XFaaS: Hyperscale and Low Cost Serverless Functions at Meta
Summary of XFaaS: Hyperscale and Low Cost Serverless Functions at Meta
This paper from Meta presents their home-built Function-as-a-Service system called XFaaS. According to the paper, XFaaS handles trillions of function invocations per day, across hundreds of thousands of worker servers. The paper sets out the system architecture, and talks about how they’re able to achieve some quite impressive hardware utilization at scale.
Keeping CALM: when distributed consistency is easy
Summary of Keeping CALM: when distributed consistency is easy
This paper from Hellerstein and Alvaro centers around what we can do without coordinating. The core insight of the paper is that some distributed programs can run without coordination, as long as the output of running the program on a subset of the inputs doesn’t change once you get more information.
Best Practices for Software Engineering (IMHO)
I feel like I’ve been learning a lot over the past 9 months that I’ve been working full time as an SDE. I want to get some of that understanding down in an open place. Here’s a doc, that will hopefully evolve over time, on some best practices that I’ve come to know about since working.
Ending and Starting
Today I handed in my dissertation, drawing a line under the past year of work towards my MSc at the University of Bath.
Finish Strong
Just got back from the first weekend spent with a big group of friends in a long while. It was so good to spend time wandering about, eating and drinking together. Highly recommended.
Halfway Through
Halfway through my dissertation now! I’m at the point of getting results and starting to draw some graphs on my first experiments.
Rabbit Holes
It was really hot, now it’s back to relatively normal temperatures. The pendulum of British summer is swinging around.
Environments
I skipped the weeknotes last week, popped up to London to see some friends. So so nice to give them a hug, have a beer, share dinner. I’ve been missing that most out in the countryside.
Sun!
Summer has maybe, potentially, tentatively rolled around. This week has flown by, I’ve been exploring environments for my dissertation.
Setting off
Done with exams et al, so working on my dissertation for the summer here on out, not that it’s looking much like summer yet.
Exams and breaks
I haven’t written anything in a good long while as I’ve been focusing on the various coursework and exams that came along. It’s good to be coming out of the other side.
Dependencies
I truly hate dealing with dependencies. Trying to get to grips with some neural net techniques for machine learning this week.
Easter
No more new materials on the course this week, we’ve been off on an Easter break, so a nice slowdown from before. I’ve been wrestling with type inference and my literature review.
Drafts
Got the first draft of my dissertation project proposal in! Very glad to have some tangible progress there. April is lining up to be a bit of a sprint to the finish.
Project Planning
Currently trying to pull together a first draft of my dissertation project proposal, and it’s going slowly.
Challenges
Had a great time at my first Hackathon last weekend! I won the Optiver challenge at Hack the Burgh 7 along with my teammates George, James, and Vlad all from the course at Bath.
Halfway through
The Army has been conducting firing exercises on Salisbury Plain, about 20 miles from where I live, so I’ve had a distant booming as background noise for the last week.
Maybe Spring
Spring, or something that feels creepily like it, is poking it’s way in. The days are an hour and a half longer than they were at the beginning of February.
A Gap and Coursework
Extra week gap between notes this time around. My only defence is that nothing much is happening.
Back to it
My courses have started again, it’s so good to get back into the material. A lot of lectures and notes to get through.
Well rested
Last week before my courses kick off again, and my first week out of quarantine. I’ve been enjoying getting back outside, getting on some walks and runs.
Quarantine 2, Lockdown 3
This week has been a real in-between week, all of my Semester 1 exams are done, I haven’t been able to leave the house due to my returning quarantine, and I don’t have any new work to do.
Exams and quarantine
I’m back in the UK, just before the stricter requirements for return came in, although I still had the pleasure of a nasal COVID test before flying (not the most fun).
Ringing it in
Last week was the New Year so I took a week off (even though these are hardly long blogs).
Happy Christmas
It feels like the main issue with everything interesting or world changing is that there’s a lot of hard maths at the root of it.
Cabin Part Two
I’ve spent another week in the cabin up in the Rockies happily cut off from the world, working on what I’m calling my Canuck-ification.
Out at the Cabin
I’ve reached the end of my first semester at Bath, and I’ve landed in Canada to spend Christmas with my partner. Things are all very well.
Flying
On the first day after saying goodbye to the second lockdown I passed my motorbike test on direct access. It was an absurdly miserable day,
Agents and grammars
Making more progress towards the end of term, doing a little reading regarding the agency of AI, and generally ticking over.
Countdown
Thinking about overloading and under-loading this week. I have a piece of group coursework nearing it’s end. We’re figuring our way through it, but it’s a lot of work.
Hand In
So what’s going on? I had four pieces of coursework to hand in on Monday of this week, but being the highly organised, enlightened, best grad-student version of myself that I am, I had them all done by last Friday.
Lockdown 2: We've been here before
Last weekend it was raining like hell, and it looked like we were about to enter another lockdown. It’s a week later and here we are.
Homo Moto
It’s one of those days where I’ve had too much coffee and my heart feels like it’s resting rate is 10bpm faster than it should be. It has been a productive morning.
A little late
Most exciting news of the week is that I’ve received my travel exemption so I’ll be visiting my partner in Canada for Christmas! It definitely feels weird to be planning intercontinental travel at the moment
Mod 1
A major step forward in getting loose on the roads came for me this week as I passed my Mod 1 motorcycle test on Thursday of this week. I now have the Module 2 to look forward to in December, and only 3 weeks until my car practical.
Autumn gift
It’s been a pretty calm week this end. Things are picking up on the course, the first few courseworks are popping up so I’m trying to get into a habit of batting those down and getting a submission in.
Blended learning
I’ve finally hit week 1 of studying at the University of Bath! This week has been all about getting into the swing of semi-distant learning.
It's all happening
This week, like any now, has been full of interesting and challenging things going on. I’ve made two trips up to London to try to finalise my handover at my last job, but that hasn’t been going so well for some ‘circumstances-beyond-our-control’ type reasons.
Everything's theoretical, until it's not
It’s been a good week here. I passed both my car and motorbike theory tests on Monday, so I’m moving ahead with getting both of those licenses. By the middle of November I should be legally terrorising the roads.
Homeserver 1: How to set up virtualisation, the easy way
So this week while I had some free time I wanted to take an old computer I had and set it up for virtualisation so I could quickly spin up virtual Linux servers for dev environments/projects/whatever came up. I wasn’t quite sure what I wanted to do at first, so this was a little bit of a process of finding out what I want, and what’s easy to do.
More room, more stuff
So far this week has been fantastic. It’s been my first time off working in about 6 months (I handily squeezed all of my holiday in before travel shut down and we made the big switch to remote working). I’ve mostly spent it on a project to sort out a new massive desk for myself as I’m going to be studying mostly from home for the next year.