Last week I was promoted to Lead Software Engineer at PepperHQ.

As part of the meeting we discussed what I want to achieve in the year ahead. There’s a lot and I’m looking forward to it.

I’m going to try to be a bit better at keeping the blog up-to-date with details of my day-to-day work going forward.



Flying Videos

I started a YouTube channel this week for me to upload videos I record whilst flying. I suspect they’ll be quite boring to most viewers, but I’m hoping to refer back to them at some point to see any progress with my airmanship.

I’ve embedded my first video above. It’s a few laps around the Circuit at Cambridge International Airport; with a few touch and go’s, a few practice go-arounds and a few mistakes ūüėČ

I’m quite happy with the quality considering I used a ¬£40 “GoPro knockoff”. I might add a few more to the mix in order to get some more interesting exterior shots and a few different angles. It would also be cool to get a headset convertor so I could capture ATC and intercom audio.

Apologies for the constant engine noise and long run-time. I’m still working my way around iMovies features and have no real editing experience.

For anyone wondering my YouTube channel name, Super Friendly Aviator, is a reference to lyrics from The Zephyr Song by The Red Hot Chilli Peppers.

I’ll update the blog when I upload anything new.


Air Law and Operational Procedures

I passed my first two CAA exams today; Air Law and Operational Procedures with marks of 94% and 91% respectively.

Went for a flight afterwards and did a few circuits and a PFL from the downwind leg. Was only up for 40 minutes as the airfield shuts at 6pm and the lesson before mine lasted a little longer than expected.

All in all a good day out!


Consumer Grade Flight Simulators – Not For Me

This video was recorded¬†before I got my rudder pedals, and is no indication of my ability to perform a take-off ūüėõ

As I wrote in my last post: this year I have been making an effort to get in the air more often and get closer to attaining my pilots license. This month I bought some equipment and software for my own personal flight simulator. My set up consisted of X-Plane 11, the Logitech G Saitek Pro Flight Yoke System and Thrustmaster TFRP T-Flight Rudder Pedals.

My thought process behind putting together¬†the simulator¬†was that if I could practice some elements of my training from my home office and therefore save myself even a few hours of real life flight time, I’d break-even or even save money. An added benefit was that I could use VatSim to practice my radio communication with Air Traffic Control and other aircraft outside the busy environment of an aircraft cockpit.

Unfortunately my time with the combination of hardware and software I bought and used left me feeling dissapointed.


My initial impressions of X-Plane were mixed. The hardware configuration wizards, aerodynamic physics and aircraft models are fantastic — however it’s not without some bigger problems, outlined below:

  1. To get close to the environmental detail you see in many videos of X-Plane posted online you need to download a load of mods (like ORTHO4XP and HD Mesh). Most of these are labours of love and, therefore, whilst excellent don’t have the best initial set up user experience
  2. The¬†sim doesn’t come with a model of any of the PA-28 family of aircraft, which I fly in real life and is the second most popular training aircraft in the world. (In the video above I am flying a Cessna 172)
  3. Although the hardware setup wizard was excellent, X-Plane had an irritating habit of losing my rudder pedal settings everytime I launched it, so I saw this screen far too often
  4. In¬†the out-of-the-box configuration everything is very american centric. First I noticed the massive amount of Delta Boeing 747’s at Cambridge Airport, then when I tried to use the built-in ATC it spoke of, for example, ‘altimeter settings’ rather than ‘QNH’. This, as far as I could tell, wasn’t configurable


Being unimpressed with the simulated air traffic control built into X-Plane I decided to join VatSim. VatSim is an impressive feat; a well-organised collective of virtual pilots and air traffic controllers all around the world coming together to produce a very realistic flying network. There’s a range of software built around the VatSims protocols including this neat Google Map which shows the sheer number of people currently flying in the network.

Whilst in theory and in terms of technology I loved VatSim in reality it wasn’t quite right for what I wanted to do. After spending far longer than I should have done configuring VatSim and getting connected I spawned into Cambridge Airport with my puny Cessna 172.¬†Fairly quickly I realised that not only were there no other aircraft within 50 nautical miles, there was also no one playing as ATC in my region. It turns out that¬†most¬†of the VatSim pilots simulate large commercial aircraft (Boeing 747s, Airbus A380s etc) rather than small single prop¬†General Aviation planes. This, in turn,¬†means that most people simulating Air Traffic Controllers converge around large national or regional hubs such as Heathrow, Gatwick and Manchester where GA isn’t welcome.

When I gave in and spawned at Gatwick in a 747 the ATC ‘chatter’ was of really good quality — I could have believed it was real¬†— …right up until someone joined the server and proceeded to breath very heavily down their microphone for 5 minutes whilst everyone shouted at them.

Rudder Pedals

On the hardware side of things my biggest complaints lay with the Rudder Pedals. In both a PA-28 and a Cessna 172 the pedals perform two major functions:

  1. Their primary function, as is evident from the name, is to control the position of the rudder on the vertical stabilizer. The rudder allows the pilot to control the yaw of the aircraft.
  2. The top half of the pedals, known as toe breaks, can be used to perform differential breaking on the main landing gear. Differential breaking can be used to aid tighter turning when taxiing on the ground, and both breaks are applied at even pressure during landing to slow the aircraft down.

I unfortunately had issues with both functions. Rudder control in an aircraft, as you can imagine, has some weight to it — the rudder is being hit not only by the air you’re flying¬†through at 112kts but also by the slipstream caused by your propellor rotating at 2400RPM. Unfortunately with consumer grade flight simulation pedals you cannot feel any pushback when you press on the pedals, so they make very large movements. Even with the sensitivity turned right down in X-Plane I still had to take my shoes off and press as lightly as I could to make anything other than full whack changes to the position of my rudder. After a while I remember exclaiming “wow, it’s actually easier to fly a plane in real life than use these”.

Other than the issues related to the lack of force my Thrustmaster pedals also had a bad relationship with X-Plane. They often seemed to invert direction between simulated flights, and in more than one simulation both pedals just affected how far to the left I wanted my rudder to position. No right rudder for me!


I actually quite liked the Logitech Yoke. As well as being nicely shaped for extended use and having additional buttons on the controls for things such as flap extension it came with some very nice to use Throttle, Mixture and Prop Feathering quadrants.

Despite the good build quality and ease of use and set up of the Yoke it too suffered the problem that all affordable consumer greade flight simulator products have; a complete lack of feedback in the controls. This made it exceptionally difficult to trim (explanation) the aircraft, which was one of the skills I was hoping to improve on using the flight sim.


X-Plane 11 is a cool product, I think that if it came with ORTHO4XP and HD Mesh out of the box and improved its internationalization and built-in ATC I would be able to reccomend it to more PPL students.

The VatSim community remains impressive to me. It’s well organised and seems to have positive outcomes for most of the people involved. However, for someone who is practicing for their PPL I’d reccomend to give it a miss. In my experience you’ll quickly become frustrated with the lack of other single piston aircraft in circuits and ATCs at small and medium sized airfields and airports.

In terms of hardware the biggest problem for me was a lack of feedback on the controls.¬†I understand that more expensive commercial set ups have this feedback built in using hydralics and I’d love to give these at go at some point to see how realistic they feel.¬†However, for my budget I just don’t think the hardware is of great use — my equipment has therefore gone back to Amazon and I’ll be spending the refund money on some more real life flight hours.


Onward Toward Solo Flight

It’s been a little while since I’ve posted about my flying. After spits and spurts of flying since my initial taster lesson last year I decided to make it my goal to be in the air every two weeks in 2017. I’ve stuck to that so far and now have 35 take-offs and landings under my belt.


Class II Medical

The week before last I took my CAA Class II medical exam — which proved me to be fit and healthy enough to fly a plane on my own.


The AFE Air Law, Operation Procedures and Communications book. Didn’t think I’d be studying for an exam again so soon after my MSc

This week I have been reading from the excellent AFE Private Pilots Course books in preparation for my Aviation Law and Operational Procedures exams. Once those are compelete and an instructor signs off on my abilities I will be able to fly solo for the first time!

I will of course update the blog when that happens.


A “Social” Experiment

This weekend I was trying to resolve an issue with an accidental purchase one of my relatives made on ViaGoGo. We realised the mistake the same day as the purchase, and I set about trying to get a refund.

Being the somewhat impatient person I can be with matters like this, and knowing that different channels of communication often result in different outcomes, I decided to send ViaGoGo an email and a direct message on Twitter at the same time.

A few hours later I got a response via both email and twitter (strangely enough, they replied by email first).¬†The email I recieved was a pretty bad copy/paste job that started with “Dear mrs , ” Yes, lowercase Mrs. Yes, without my last name. The email told me that tickets were unrefundable and that they considered the case closed.

Meanwhile, on Twitter, I recieved a well written response and the offer of a full refund — which was then processed the same day.

The cynic in me thinks that perhaps companies are more likely to work with you when they know you have a public platform to complain about them on. But perhaps this isn’t the case, perhaps the different responses is just a function of speaking to different people in different roles (Community Manager vs Customer Support) or just people in different moods on that day.

Either way, I always seem to have recieved better customer service when I use a Social Network.


A Simple Transaction Log

A little while ago I was curious about how software that uses Transaction Logs works, so I built a toy to-do command line application to get some hands on experience.

Transaction Logs are used when you want to have metadata detailing each action that has taken place on a system but then actually use those logs as the data for the system. Therefore to build up the state of the system at any time you can simply “replay” each action¬†that took place before that time. This enables you to time travel as well as know exactly what happened for user 54 to go into his overdraft.


Above you can see every feature of todo-log (I did say it was a toy application!) being used from the macOS terminal.

Using the add command you can store a todo item with both a title and some additional body text. This todo item is then assigned a short code — shown in red above — which can be used as the unique identifier to manipulate it in other commands. The transaction detailing the addition of the todo item is saved to a JSON Lines (.jsonl) file.

The ls command, without parameters, displays a list of all the todo items which are outstanding at the current time. Some basic formatting is applied including showing a friendly date (e.g. “two hours ago”) for the creation time of a todo-item.

Deleting a todo item is simple, just pass the shortcode of the item to the rm command. The command doesn’t then delete the add transaction from the jsonl file, instead it adds its own remove transaction detailing the time of deletion and the todo item involved.

Invoking the log command just prints out the raw .jsonl to the terminal for inspection. In the above screenshot you can see the format of both the ADD and REMOVE transactions.

Finally, passing a positive integer parameter to the ls command goes back in time by that number of transactions. In this example you can see what the state of the todo list was before the previous rm command was issued. Everytime ls is called it simply builds up the current state of the system by rerunning each of the actions detailed in the .jsonl file — to go back in time we just ignore the last n lines, where n is the number provided to the command.

You can have a look at this fun little project over on my Github.

Though I only spent a couple of hours on it, and it doesn’t do much, I feel like working on this gave me a greater appreciation of what transaction logs can be used for and the challenegs around them. Systems like RDBMS transaction logs and Apache Kafka are much more interesting to me as a result.

Sometimes the easiest way to learn about something and become more interested is just to jump in and build something