Dylan Ratcliffe
๐ค SpeakerAppearances Over Time
Podcast Appearances
And the only piece of information we had was the IP address of this thing.
And so we tried to just log into it and we got presented with a blinking password prompt.
and so we put in the password for everything and it let us in and so what proceeded then was a whole bunch of infrastructure paleontology we were trying to work out how the bones of this thing fit together when it was alive and it turns out that this is a physical server which was put into the data center about 10 years ago and its purpose in life
is to pretend to be a printer and when someone prints to it it saves that as a pdf and puts it in a folder and then runs a script which moves it from that folder to another folder that folder is mounted to a network share which is mounted to your laptop so when the user presses the button they get a pdf on their laptop but actually what happens is this horrible dance all the way around the network and back again and we had broken that somehow
It turns out that the fix was to update about 30,000 permissions on the network share.
which by the point at which we realized everybody had gone home anyway and we weren't going to make it any worse so we did and it fixed it but that was the moment that i decided to quit my job because it just cemented in my mind that it is totally reasonable to be afraid of pressing that button it's never going to go wrong in a way that is straightforward it's always going to be something that you didn't know you didn't know something that was built by someone who's since left
nobody knew this thing existed and if they did know it existed you wouldn't have got yourself into this situation and so that sort of gave me the realization that we have to be able to discover this automatically with no input from anyone and if we could do that we could prevent this outage not that'll ever happen to anyone again it's so bloody niche but that type of thing happens to people all the time and so we will be able to prevent that if we can go and
discover every dependency with no input from the user.
And so I decided to quit my job and go and build that.
So the MVP started on a piece of paper and continued on a piece of paper for a pretty long time, like months, probably, before I bought a laptop to actually work on it, to actually write the first piece of code.
The MVP was pretty unrecognizable to the product that we have today from a actual product perspective.
But surprisingly, some of the tech, actually a lot of the tech, is still there.
To my shame, some of the code is even still there.
People have to read it.
People have to read what it was like when I was first learning Go.
It is obvious that I was very new to Go.
But anyway, some of it's still there because the tech actually still underlies the product.
But the product itself was totally different.
As I said, I'd thought that if we could discover every dependency in real time with no input from the user, because of course, if you expect the user to tell you where to look, then you're not going to find the things that are going to cause the actual problems, then this would solve the problem.
And so we built a real-time discovery engine that could do exactly that.