Jobs Q&A
What are you about as a person?
I’m a creative person foremost, I think. I like to pick up ideas, explore them, put my own spin on them, make something, then move on. I spend pretty much all my active time on some sort of project, and am nomadic about it, easily dropping things when I feel I’ve achieved what I wanted to. The goals tend to be ambitious so I have to be always improving my craft, whatever that is. I also really value competence, which is about being able to tell what goes into a job, whether or not you’re yourself up to it, and what your limits are. And I compulsively teach things, simplify and redraft explanations over and over, and aim to bring others up on things I know as much as I can.
Why did you leave MNV Capital?
I’d been learning entirely by self-teaching for some months, and was the only person working on my project, or able to in any practical way. Yet my expertise was still far below the standard in the field, since most knowledge about low-latency coding is secret. Hence, I was both socially isolated and carrying a burden of technical leadership in a field I was inexperienced in. The example I always give is how I had to cost/benefit whether to use a standard HTTP library or write my own. I made a good go of this skill but it weighed on me daily. All of this was not worth an equivalent of £30,625 p.a. gross for 9.5h away from home in a given day, with 1.5h of that spent on underground trains.
Out of work for a year?
At the time I quit (Nov 2019), I had just flopped a 3-month initiative to get a quant-dev job in a top hedge fund. I’d been practising algorithms and doing interviews while working 2 days per week, and was pushing myself too hard in hindsight. During this time, I was continually confronted with propositions that involved long hours/commutes and bad remote arrangements. I countered that by going for extremely well-paid jobs at companies that were guaranteed to be highly competent. 3 of these companies rejected me after a final-stage interview, one of which invited me to a pub to meet the whole team after the final stage, and then dropped me.
I had to stop pushing right away to recover mentally. I felt crippled by the pressure of continually fronting to be accepted by other people. This brought on a deep lack of confidence that I’d be able to get a job, in the senses that:
- I hate algorithms practice – it never has a bearing on my actual work, and I only enjoy learning theory when practical work mandates it now (even when I learned theory-first, it was much more elegant theory, namely pure maths). I was never motivated to de-rust algorithms for the uncertain chance at a good job.
- Being potentially bad at interviews owing to poor algorithms practice meant going for a job that wasn’t at a top company, at which point I was scared I’d run into a company like the one I’d left, which I couldn’t learn from and had no progression in.
- The working hours, commutes and remote arrangements were just never what I was looking for.
I didn’t really know how to tackle this so I just habitually kept going back to working on my personal projects instead of thinking about it.
What’s changed?
I feel like the pandemic’s put everyone on the back foot, whereas in the past it was just me, struggling to fit in. I have weak health in a few senses, namely intermittent sleep, stomach aches and breathing difficulties, that made it hard to keep up with the intensity of a traditional capitalist working routine. I was always ~7 minutes late when trying to hit 8am 5-days-a-week even though my company was a 5-minute walk away, which just strained personal relations, and I was struggling with 1.5h on trains in tunnels once it had moved further away.
But honestly I think many people were just suffering in silence. The trains were always overcrowded and 40h/week is not a reasonable amount of time to spend on a single interest for most people, particularly if it’s 45+ including commutes. My personal ideal was always around 30h excluding commutes. The amount of commuting before the pandemic had significant environmental implications as well, and was just insanely unnecessary given modern tech infrastructure. I think my ideal is still working 2 days/week in an office, since changing scenery and social contact are good for morale and inspiration.
Anyway, I just generally feel like it’ll be easier for me to be happy now, so I’m more willing to take risks and just apply to different places. This blog post particularly helped me to feel less adrift.
How are you as a programmer?
This is all a self-assessment, entirely my opinion. My level of conscientiousness is very rare, as far as I can tell. I’m very responsible and dutiful, question everything and leave almost no stone unturned. It’s easy for me to motivate myself to do the best job I can with any task that’s not especially boring. My analytical ability is very good, which pairs well with conscientiousness to give me a record of high-quality work. My creativity is good and problem-solving is average for a Cambridge maths student. I tend to be more perfectionist than effective, and my natural mode of working is until-it’s-done – in fact, I get very motivated and can’t drop it until then. I’m experienced enough to have a good sense of cost-benefit though, so I avoid e.g. premature optimisation decently well, and have put in some solid performances under extreme time pressure, particularly during exam season, though I’ve not had many chances to practise that since then. The things I most readily notice I’m weak at are some skills that I’ve struggled to self-teach but think I’d be fine with if mentored – documentation, collaboration, testing. Documentation is starting to get good, at least given I can almost never find someone to review it, but I particularly tend to lack the imagination to come up with good automatic testing methodologies for some reason – likely a case of reinventing a wheel I haven’t played with yet.
What content are you looking for in a job?
I find it easy to get invested in anything if the incentive is good, meaning new ideas (less-so familiar ground), opportunities to learn, and money. Being poor is the reason I don’t push personal projects as much as I used to. The subject areas that I’ve fancied lately are:
- practical work on distributed systems (to build on my coursework Raft implementation),
- practical work on machine learning (extrinsic motivation to learn it, since I don’t like the maths it’s based on for its own merit, namely stats and optimisation),
- any work on security,
- any opportunity to learn Rust.
What’s your philosophy of programming?
- I’m about generality/simplicity (since that’s what makes things “elegant” in pure maths), so I make programs that do something specific, have only a few ideas explaining them, and do their thing really well.
- Low cognitive load is important, meaning avoiding code that takes ages to understand and is surprising (i.e. contravenes the principle in maths that “the obvious thing should work”).
- I believe in assessing short and long-term with equal priority, and what I work on tends to follow the 80/20 rule – pulling out the biggest gains for the lowest effort. I see utility as proportional to time, so the earlier I can help people with a big need, the better, even if the solution is temporary.
- I will also always tell you to use statically-typed languages when reliability matters in any way. It was just staggering using Go to make an internet service you’d typically use Python or JavaScript for – I wrote 90% of my Streams bot’s code correctly first-try. I don’t much believe in patching tech to do something it wasn’t designed to do – whether that’s JavaScript’s whole existence or the weight of linters used nowadays to stand in for compilers.
Anything else to consider?
I’m generally willing to accept a lower starting salary as a gesture of trust-building, because I back my own competence and am confident in demonstrating that, and have a sparse history of paid work. I’m very tempted by opportunities that have good mentoring and career progression. I’ve always learned by making things, and am kind of bad at getting hired.