Browse Category

Reviews

Piped Connector (Q2 2021 Review)

Image by Bernhard Stärck from Pixabay

The past 3-4 months seem to have gone by quickly, and more of the same appears to characterise this period well, unfortunately. There have been some positive developments: personally I got my first vaccine dose, knocked in an open source contribution, finished reading Java Performance (Scott Oaks) and found out that a patent for some of my past work was approved. On a broader scale, in the UK lockdown has been gradually eased, and the office has reopened. In some ways I’ve reached good partial milestones towards some of my longer-term goals, though the highs relating to these partial successes are still somewhat fleeting.

Software Engineering

Not too many changes here. I think I’m at a point where I need to continue running planning cycles and ensuring things remain on track for the team as a whole. To some extent I might be becoming more independent, and it’s interesting if a bit unusual to be asked by others for planning advice when I don’t know if my own protocols work that well. Generally the planning process works, and the team’s velocity which I thought was pretty decent at the end of Q1 has continued at a pretty good pace into Q2. It is a little below what I’d want (in particular, reactive support issues have slowed things down a bit), but I really can’t complain too much.

I’ve also had some good dev moments, especially relating to complex support issues. The best of these was probably solving a seven-month old issue that had been bounced around a lot that turned out to be a subtle years-old bug in the Apache commons pool, which I managed to fix. These have been enjoyable, though a little frustrating as they’re still distractions from the work that was planned for the team.

The recent reopening of the office was helpful. One of my bigger concerns when the office was initially closed was losing access to spontaneous meetings and discussions with people who were on other teams. There’s often little impetus to set up an explicit sync with no agenda. Indeed, there were a bunch of more interesting chats I had when back in the office. On a smaller scale, I also found that I appreciate explaining concepts on whiteboards a lot more than I remember.

Finance

I really haven’t been following my portfolio closely, as the usual automated processes run and deposit the chunks of money accordingly. I might interestingly be at risk of not making the Amex Gold spend bonus target (£15,000 in a year) because I haven’t been travelling, and the office reopening with its meals will actually push this downwards. Hopefully as international travel reopens this will change: I’m looking at a possible Switzerland or Germany trip in September as that will be well past my second Pfizer shot (regulations permitting), but that’s already after the August deadline for this bonus.

Deutsch

Ich habe gefunden, dass mein Schreiben ist ein bisschen besser geworden. Wenn ich kleinere Briefe schreiben muss, in denen der Inhalt des Texts relativ einfach sind oder feststeht (z. B. wegen der Aufgabe), mache ich weniger Fehler als vor zwei oder drei Monaten. Das ist nicht zu sagen, dass die Texte fehlerfrei sind. Ich wähle immer noch manchmal die falschen Präpositionen, und die Deklination von Adjektiven bleibt monströs. Aber es gibt Tage, an denen das Papier nicht in einem Meer aus blutroter Farbe schwimmt. Das leigt zum Teil daran, dass ich zwei Denkweisen auf die Aufgabe habe. Normalerwise möchte ich experimentieren. Deshalb werden komplexere Strukturen (z. B. mehrere Nebensätze) benutzt, bei denen einfacher ist, einen Fehler zu machen. Aber wenn ich etwas richtig schreiben will, schreibe ich einfach und direkter. Ich bin vielleicht nicht in der Lage, eine so nuancierte Meinung zu äußern, aber das ist ein B2-Problem.

I’ve found that my writing has gotten a little better. When I have to write short texts, for which the content is relatively simple or fixed (e.g. because of the task), I make fewer mistakes than I would have two or three months ago. That’s not to say that the texts are free of errors – I still sometimes choose the wrong preposition, and adjective declination remains a monstrous problem. However, there are days where the paper doesn’t swim in a sea of blood-red ink. That’s in part because I have two approaches to these assignments. Normally, I like to experiment, and therefore more complex structures (such as multiple subordinate clauses), in which it is easier to make mistakes, are used. However, when I want to write something correctly, I will write more simply and directly. That means that I may not be able to express as nuanced of an opinion, but that’s a problem for B2.

Reading and listening are pretty stable at the B1 level in that I’m consistently getting over 80% (though not consistently over 90%) when doing mock tests. Speaking is tougher, though Stan has commented that my speed and fluency there has increased to some extent. I also find that while the opinions I express may not be as nuanced as in English, and/or unnecessary circumlocution may be needed, it’s rare for me to have issues expressing at least in general terms what I think of something. Interestingly, I may need to be careful I don’t switch into Chinese mid-stream; this does happen sometimes though primarily in the other direction; recently I was conversing with a colleague in Chinese, and an und popped out as I was trying to link two ideas.

Sudoku and Puzzles

I’ve continued to participate in a number of these contests. Sudokus are very much “keep on trucking” mode for me; in the GP I’m rank 67 after 6 rounds, and my individual round rankings have been 41-128-78-65-155-57 (though curiously in terms of raw points the 155th place wasn’t actually the worst!). I imagine most of the variance here stems from variant types (I’d be a lot more confident doing a Killer or XV sudoku than say Scattered or Surplus, or even high-value Consecutives for which I tend to be slow). Interestingly, most of this appears to be downside risk: I find that it’s rare that I do a puzzle remarkably fast or can get an outsized gain on a single puzzle, but I sometimes get completely stuck or “break” a puzzle (reach a contradiction owing to some actually unsound deduction made earlier) and my score will go down by a lot when that happens. From what I can remember the previous round went pretty smoothly, but there weren’t any major flashes of insight. In a sense, there’s often not very much new under the sun here, apart from the odd variant that comes up.

That said, although it was in hindsight obvious and is probably something well known to more competitive solvers, it was pretty cool to have independently come up with some “extra group” constraints in Windoku, a variant where there are four additional 3 by 3 blocks that also must contain the numbers 1-9 once each. The deduction was that in addition to those blocks, there are actually five other groups of nine cells which can be proven to contain the numbers 1-9 once each! I think I was trying out one of the puzzles from the German Sudoku Meisterschaft 2021 and got a bit stuck before noticing that those deductions were possible.

Puzzles on the other hand have descended into remarkably inconsistent territory; I’m rank 87 after 6 rounds, but the positions there have been 65-196-87-191-258-36. I think a lot depends on the individual round itself; for example, round six of the puzzle GP featured puzzles from Thomas Snyder (who runs the GM Puzzles blog and also releases some solution videos – I’ve watched a couple of those to learn basic techniques for new puzzle types) and Serkan Yürekli, and I figured that the puzzles would generally have deduction-heavy paths as opposed to more bash-heavy instances I’ve seen elsewhere. This meant that when getting blocked, I’d hold out slightly longer to try and make a logical deduction before doing casework. It also helped that TomTom, Star Battle and a bunch of word puzzles featured prominently; 36th is my best placing ever in a puzzle GP, and I realise that a number of factors aligned for that to happen.

Board Games

The Storage Gloomhaven campaign continues; it appears that at the end of Q1 I was still playing Rie Templeton the Mindthief (psychic rat), but since then I’ve retired a bunch of characters. I then played Robert the Cragheart (rock golem whose signature ability involves manipulating terrain geometry), Will Burns-Edward the “Music Note” (bard with focus on making enemies unable to attack by disorienting, distracting or stunning them with music) and now the “Triangles” class, with whom I’ve only played three scenarios.

For the most part, I enjoyed the characters, though playing the Cragheart got a little sluggish towards the end (but then I probably had him for around 15 scenarios). I think of the group, the Music Note felt the most powerful; by the time he reached level 9 (maximum level), repeatedly cancelling three or four enemies’ attacks or turns while simultaneously buffing everyone’s attack or defense was normal, and I could even do that to seven enemies if desired. It didn’t help that he had an amazingly high experience growth rate; while I struggle to get even 12 or 13 experience in a scenario with the Triangles, he easily raked in over 30 experience per scenario – this caused an overflow of the XP counter on our Tabletop Simulator mod (even the Mindthief regularly had to make do with “only” 20 XP). A level up every two scenarios was expected.

I had a couple of games of Spirit Island too, both on high difficulty with very experienced Palantir friends (including my first brush with Heart of the Wildfire) and slightly more normal difficulty with friends from Imperial. It’s fun, though I notice I’ve indexed quite heavily on a few of the spirits (Shifting Memory, River Surges and Fractured Days).

Video Games

Separately, I picked up Hades, a popular rogue-like action game. One plays Zagreus from Greek mythology (the son of Hades and Persephone) and attempts to escape the underworld, represented as a series of chambers with enemies that must be defeated. I’ve played a number of these (Dead Cells last year was pretty good, as was Slay the Spire) and I do quite enjoy the idea of having a core gameplay loop with meta-progression mechanisms. The game offers Zagreus a choice of multiple weapons, such as a sword, a bow, a spear or gloves; I’ve opted to use the railgun, as my reaction time is not particularly quick. This is fairly common for me in this type of game; I started Dead Cells with a ranged turret build, for example. (Slay the Spire is more strategy focused.)

These games tend to be quite challenging and allow for difficulty scaling as well. In Hades this is achieved with the Pact of Punishment, a system by which conditions with assigned difficulty numbers, called Heat, can be enabled to modify a run (for example, “enemies do more damage”, “more enemies”, “enemies move faster”, “healing is less effective” etc.). There are achievements for completing a run with a certain heat level; the furthest I’ve got is 32 (as that’s required to unlock an in-game achievement), which is probably challenging enough to the point of not being particularly fun. In particular, my 32 Heat run included the stipulation “Approval Process” – normally, when Zagreus receives an upgrade, he can choose one of three options; this reduces his selection to two. This adds challenge but for me at least is definitely not fun; “Convenience Fee”, increasing all shop prices by 80%, wasn’t particularly enjoyable either.

Reading List

A couple of things I digested this quarter come to mind:

  • Java Performance (Oaks) for work, which had pretty mixed reviews from my team though I thought there was adequate interesting content. The main issue with learning about the JVM internals and aggressively leveraging them is that any custom options or things like that would need to be maintained, and might be different depending on where the software is deployed. Nonetheless, there were some less dramatic suggestions around concurrency or how to leverage the JRE efficiently that we adopted, and although I’ve been reasonably familiar with JFRs it was good to recap some of the points of profiling.
  • Why the Germans Do It Better: Notes from a Grown-Up Country (Kampfner); the title is a bit presumptive in that it implies Germany does do things better (there are metrics one can choose to build a case that that’s not the case), and also seemed to be in fairly large part an indictment of how things have been going on in the UK and US specifically. Nonetheless this did seem like a good introduction to post-1945 German history and how that has shaped elements of the country today. It was nice to see some failures called out as well (the Brandenburg Berlin airport and the use of brown coal come to mind).
  • Easy Readers – Drei Männer im Schnee (Erich Kästner). This is an easy-reader version of a German comedy that is driven by a number of misunderstandings. This is meant to be of a similar level to Die Entdeckung der Currywurst I did during the summer break last year, and I think it does show that I’ve improved somewhat; reading Currywurst was very tough at the time, while here I understood most of the material pretty easily. It helped that there were also questions after each chapter to check my understanding.

Music

Not found much this quarter. I’ve found a few delightful heavy or fast-paced tracks, both modern (such as Freedom Dive and Tempestissimo, which run at 222.22 and 231 BPM respectively, though the former has more 16th runs) and classical (Jenkins’s Concerto Grosso for Strings “Palladio” sounds epic). In terms of more popular or current music, the song I’ve played the most is curiously a three-year old one which has lyrics I don’t directly understand: Lemon by Kenshi Yonezu. It’s a song about death or coping with the loss of a loved one. The lemon is relevant in terms of leaving a bitter scent, and also there’s a comparison where the speaker feels like he’s the remaining half of a sliced fruit. Thus the themes are quite dark, but the instrumentation is pretty upbeat and loaded with interesting ornamentation.

Burning Smoke (Q1 2021 Review)

Q1 2021 hasn’t been the best of quarters, not directly because of any specific negative events or occurrences, but because I haven’t really been in a position to make active progress towards some of the longer-term goals I’ve had. I think there has been too much routine; the days, then weeks have blurred into one long stretch of what seems to be fumbling in the dark. At least for work and for the pursuit of said goals, I tend to have a consistent sense of urgency. This is normally a strength, but recently progress has been slow and that is a point of frustration.

Software Engineering and Finance

Things seem to be running more smoothly at work, and that’s great: my main reticence with delegating tasks centers around a lack of confidence that they would be done in the way I want them to (even when this isn’t necessary). While I still struggle, I do find it easier to set things down and believe that they will be done well – perhaps because increasingly I have good reason to do so, even if I still end up overpaying the overheads of checking things it’s at least a good first step. Some of this is also because it’s necessary: the team’s velocity has improved considerably, to the point where I’m not easily able to keep up with all of the details of the various features that are being built at a time. This is definitely good though: I’m certainly happy that velocity is higher. Sometimes I get comfortable when things are too comfortable, but this is not one of those times – I wouldn’t mind if things ran a little bit cooler in the short run given the other things that are going on. Working from home remains a bit of a bugbear, though it’s manageable, and in general the relative loss of social contact continues to weigh on my mood here.

Finance-wise ‘meh’ describes Q1 well. I guess the point of passive investing is that to some extent it’s boring, and I have some fun if questionable plays (small cap value ETFs, funky REITs, cryptos!) in my satellite portfolio. Expenses are at normal levels – slightly lower than last year, though probably explainable from lack of holidays and me finding that I probably have way more clothes than I should. The tax year is at its end, though I’ve dealt with most of the main action items (ISA balance and CGT allowance – though a mandatory redemption and some gains on PLTR shares actually messed things up a bit here).

Deutsch

Ich bin relativ sicher, dass mein Lesen und Hören auf dem B1-Niveau sind. Ich habe eine Modellprüfung aus einem Buch, das “So geht’s noch besser B1” heißt, gemacht. In dieser Prüfung habe ich 28 von 30 Fragen in beiden Teilen richtig beantwortet. Ich würde gerne nach Deutschland reisen, vielleicht für einen Urlaub oder für einen kurzen Sprachkurs. Aber das ist im Moment nicht möglich, wegen des Coronavirus. In diesem Bereich ist Großbritannien jetzt tatsächlich besser (und das hat ich nicht erwartet!). Hoffentlich wird die Situation im Sommer besser sein. Wenn ich kann, möchte ich am Ende dieses Jahres die B2-Prüfung versuchen. Ich weiß, dass ich dafür noch viel verbessern muss.

I’m relatively confident that my reading and listening skills are at the B1 level. I did a practice paper from a book called “So geht’s noch besser B1”. In this exam I correctly answered 28 of 30 questions in both of these parts. I’d like to travel to Germany, maybe for a holiday or a short language course. However, that’s not currently possible because of the coronavirus. In this area the UK is actually doing better (unexpectedly). Hopefully the situation will be better in the summer. If I can, I’d like to attempt the B2 examination at the end of the year, realising that that still requires a lot of improvement.

In class we’re now going through Aspekte|neu B1, and I’m finding the material mostly approachable (though there’s still enough new material that I’m learning). Over Q1 I’ve also watched all 76 of the B1-level episodes of Nico’s Weg, a German series from the Deutsche Welle (DW). Each episode is accompanied with exercises that cover both grammar and vocabulary. Interestingly I’d already covered a majority of the grammar when I worked through Deutsch für Besserwisser A2 about 15 months ago, and the B1 book more recently. The only new grammar concept I remember learning was Konjunktiv I, a mechanism for reusing verbs as adjunctions (among other uses which I probably haven’t covered yet). For example, you could describe me as ein tippender Mann as I’m typing this. The course was still definitely very useful, though, as it introduced a fair bit of new vocabulary across a variety of themes. I’ve now started on the aiming-towards-B2-level Ticket nach Berlin, a reality TV series about travelling through Germany and it quite is a bit more difficult! There are probably some etymological reasons for this, but a trap I remember coming across in episode one was that zunächst actually means first (while nächst means next) – I’d normally use zuerst for first (which is also valid).

Sudoku and Puzzles

I performed somewhat inconsistently in the Sudoku and Puzzle GPs (as always, more consistent in Sudoku). Three rounds in I’m at rank 62 in sudoku and 91 in puzzles, which I’d say is a little weak for sudoku (but then I do feel I have not been performing well there) and within expectations for puzzles. The Logic Masters India ones have been interesting in a different way: the Sudoku ones have generally gone smoothly (including a recently easy though I think very well crafted round 3 where I finished a 90-minute test in 59 minutes and was still only ranked in the 40s) while the Puzzles ones have been tough for me. I think I scored 40 or so in the Loops round and 60-something in the recent Regions round, and these in relative terms weren’t very bad scores (compare with Loops a few years ago where I was able to claim the time bonus).

There hasn’t been much in the way of memorable puzzles. This is at the end of the quarter, but this Killer Su-do-ku (stylised as such; the dashes indicate the presence of negative numbers) by Michael Rios was probably one of the meatiest ad most satisfying ones that I’ve solved completely logically. Once puzzles pass a difficulty threshold that generally isn’t that high, especially in the context of a contest I tend to end up doing casework as I find that that’s faster. I have watched a couple of videos from GM Puzzles and it can be interesting to see how Thomas Snyder, an actual grandmaster approaches the puzzles. Some of the modulo-based arguments in pentomino division puzzles while simple in concept (placing a pentomino in a given orientation means that one has to partition a N cell area with pentominoes where N is indivisible by 5 meaning that that orientation is wrong) can be difficult to spot.

Board Games

The group of us that used to play Spirit Island (hereafter SI) at work seems to have switched to Gloomhaven (GH). I’d heard much about GH before; it was ranked #1 on BoardGameGeek for some time, though I hadn’t played it previously. I do enjoy both, though their focuses feel different. It does feel to me that SI requires more strategic thinking though I could just be missing a lot of depth in GH: having to decide and sequence four powers and an innate in SI has seemed much more complex than anything I’ve had to reason through in GH. The GH systems are trickier to work with, to the point that there are online tests to verify that one understands the AI system correctly, and some of the decisions the system makes are unintuitive. In particular, characters that are performing a move but not an attack move as though they intend to do a melee attack, meaning that healing characters can sometimes move nearer the front-lines of combat than they need to be. We’ve played both games at a fairly high difficulty (SI would often be at difficulty 8-10; we’re currently playing GH at difficulty +2 and have something like a 15-1 scenario completion record even with a lot of inefficiency).

Separately, the roleplaying aspects of GH and its progression system, being able to permanently enhance actions in ways that persist across game sessions, are compelling. I’ve been playing a rat-like creature called a Mindthief that seems to have psychic abilities, though her strengths really seem to lie in dealing large amounts of direct damage – the phrase “glass cannon” comes to mind. Games of SI, at least in their original form, are separate (some of the powers do certainly feel thematic – I remember playing with Shadows Flicker Like Flame’s Amorphous aspect in particular to aggressively use strong Range 0 powers).

GH is also semi-cooperative (while SI is, as far as I can tell, fully cooperative): individual player characters have agendas that may be conflicting, even if they’re rarely entirely conflicting. Some of the most interesting games have been ones where because of individual objectives I want the team to do well but not too well, leading to slightly more self-serving behaviour. One could even invent unforced errors, though I don’t think I’ve actually done that.

Music

Top of my playlist (and perhaps gaining traction because of recency bias) in Q1 was 優しい彗星 (Yasashii Suisei / “beautiful comet”, perhaps?), by a Japanese pop duo called YOASOBI. It is the ending theme to an anime called BEASTARS – I generally don’t watch anime and this isn’t an exception, so I didn’t find it through that. I’m not particularly sure how I discovered it actually – this was probably a result of YouTube’s recommendation algorithm as I did listen to another of their songs called たぶん (Tabun / “probably” or “maybe”) quite a bit, because it works really well for DDR. For some reason, songs with triplet or sextuplet rhythms especially when syncopated seem interesting for this, because I’ve played quite a number of variants of “130-150 bpm, occasional 16th runs” type of level 14 and 15 songs and they feel quite similar. In any case, the vocalist Ayase has a great voice.

I don’t speak or understand Japanese at all, so I’m not in a position to comment on the quality of the songwriting. There exist pretty good English covers too, like this one by Will Stetson. The content is fairly depressing but also seems to have some kind of “grim determination”, to quote one of the commenters – which isn’t too different from how Q1 2021 was for me. Hopefully as vaccination continues to roll out things will improve.

Ordering the Chaos (2020 Review)

Personally, the year I find most similar to 2020 was 2011. In both of these years, for various reasons the range of activities I could choose from was externally limited (in 2011 because of National Service and in 2020 the coronavirus), and I thus focused strongly on work and personal development. In 2011, this amounted to reading up a fair bit on mathematics and computer science before I started full-time at Imperial, which made most of first year fairly light; I caught up on the gaps in my knowledge from not having taken Further Mathematics in my IB years, and also learned a fair bit about Java and discrete mathematics. In 2020, I think I improved a lot at work in terms of how I manage a team, to the point where I’d question a good number of the approaches I used in 2019. I also spent more time than I expected refining my German skills.

Software Engineering

Transactional Storage

I am still a software engineer, still at Palantir, and still working on databases. This marks 4.25 full-time years there, 4 of which were spent on AtlasDB or Transactional Storage. I’ve continued to find working on the team interesting and challenging, both as the team’s remit has expanded (especially this year!) and my responsibilities in keeping things running and improving, as other engineers decided it was time for them to move on. I also became a people lead; in a sense, it’s nice to be a relative junior again, in this way. A junior senior, if you will.

AtlasDB merged with another internal team to form Transactional Storage; this made sense as there was often work crossing product boundaries, and also support rotations could be handled with a bit more breathing room. There was a double lead structure which was interesting; we were certainly in a place where we trusted each other to work on projects, and at least on my end I was comfortable with maintaining very minimal context on any projects the other lead was overseeing. That said collaboration was a bit more limited to support and a project at the end of the year. He then decided it was time to move on, which means that treating ongoing projects as such isn’t really an option any longer.

The company has started to become a fair bit more critical about individual growth and performance, and we’ve had monthly reflection exercises about this (for me this entails sessions for each team member with them, plus sessions with my lead and group-leads about myself). I’ve found these useful in terms of forcing myself to sit down and write feedback, though the monthly cadence can be quite a lot of work since I have to do five of these reflections each month and I generally try to put a lot of effort into them.

Working from Home

A big change this year was of course working from home; we started at the beginning of March (three weeks before the UK lockdown) and that continued throughout the year, even through the summer (and of course the fall/winter with the second/third/Nth waves). Before this I had a fairly full calendar, with a lot of syncs, coffees and external events; many of these were cancelled or stopped, and a consequence of this was I spent a lot more time working directly with the team. This involved daily pairing sessions with the newest member of the team as well as less regular sessions with others; if I was to help guide a team today this is how I would probably do it, unless everyone on the team was very experienced and independent. It wasn’t something I anticipated last year, perhaps because I thought everyone on the team was very experienced and independent anyway; I had the shortest tenure in terms of industry experience at that time!

Working from home was probably not good in terms of raw efficiency when I was working on a specific task – there, the comfort of the office, the quality of the network connections and the availability of external resources where needed was high. Of course, collaborating on an original design was going to be a lot more difficult, which I think meant that for some features a lot more needed to be written down in RFCs, or I ended up doing more of the scoping than I would like. However, it did serve as a forcing function to strip away things that may or may not have been necessary, and in this way I think I still reached overall 80-90% efficiency compared to what I would have in the office.

I am skeptical of the claim that this exercise reflects which activities are necessary and which are not, though; until late in the year when we started to create more opportunities for social interaction team morale felt much weaker than it was in the office, and even now I don’t think it’s on the same level. Furthermore, on a technical level I think there’s value in being able to have spontaneous in-person discussions that may run across teams, which hasn’t really been the case here.

Recreational Pursuits

Logic Puzzles

I’ve continued to participate in puzzle contests. On the Sudoku side of things I’m pretty consistent; in the Sudoku GPs this year I moved up from rank 66 to 52, and also finished at rank 28 in the UK Sudoku championships. The more general Puzzle division is much more unstable with a Puzzle GP rank of 89, which is an improvement over last year’s rank 92 though it hardly feels like one. There are certain types which I can do probably just as quickly as Sudoku (like TomTom or Star Battle), and then some which I just don’t seem to get (like anything involving drawing snakes). I used to practice puzzles a lot more aggressively, often burning through multiple 90- or 100-minute puzzle sets each week. I still find them fun and relaxing, though I don’t do as many as in the past. This is probably a balancing issue: my hobbies were previously primarily sudoku and puzzles, while now they have to contend with Deutsch, board games and quite a few more things.

As in previous years, I also wrote a puzzle for the Palantir Puzzlehunt. This year’s puzzle Salt Fat Acid Heat was unfortunately a fair bit easier than originally intended: it involved three connected 6×6 Thermo Sudokus. My goals here were twofold: (1) have a puzzle without numerical clues, and (2) have connected puzzles that were only uniquely solvable together. I thought I reached a nice design which had a deduction involving all three grids at the same time, though this proved too hard in playtesting and was thus scaled back. Feedback on the puzzle was expectedly divided, with praise for elegance and complaints for being too classical, and remarks on the difficulty (even though it was already simplified).

Deutsch

In diesem Jahr war die Entscheidung, Deutsch weiter zu lernen, schwieriger als im letztes, weil ich selbst bezahlen muss. Wegen des Coronavirus hört Palantir meinen Sprachkurs auf. Ich setzte meine Deutschstunden mit Katja fort, denn ich finde, dass sie gut und schnell lehren kann. Ich weiß nicht genau, wie gut mein Deutschkentnisse jetzt sind. Ich bestand die A1-Prüfung mit 100 Prozent, und beim Deutschstunde beendeten wir das A2-Kursbuch. Ich las Bücher und machte Ubungen auf dem B1 (z.B. Deutsch für Besserwisser B1, Hueber Lesen und Schreiben B1), und ich probierte (und bestand, aber nur mit 70 Prozent!) die B2 Leseprüfung. Ich bin sicher, dass ich B2 nicht erreichte. Auch nicht zum Lesen: ich kann nicht auf Deutsch “zeitgenössische literarische Prosatexte” verstehen. Ich bin wahrscheinlich B1 für Lesen, Hören und vielleicht Schreiben, aber nur A2 für Sprechen.

Ich bin viel besser in der Grammatik als noch vor einem Jahr. Damals lernte ich gerade wie man “weil”, “deshalb” oder “ob” benutzen – jetzt verwende ich diese Konstrukte leicht. Es gibt Dingen, z.B. Passiv und Adjektivendungen, das ich noch ein bisschen komisch finde. Aber wenn ich einfache Dinge sagen will, ist es kein Problem.

This year, the decision to continue learning German was more difficult than last year. This was because I had to pay out of my own pocket. Palantir stopped the language courses because of the coronavirus. I continued my lessons with Katja because I find she can teach well and quickly. I don’t know exactly where my German skills stand. I passed the A1 exam with 100 percent, and in the German lessons we’ve finished the A2 book. I’ve read books and done practice exercises at the B1 level (e.g. in Deutsch für Besserwisser B1, Hueber Lesen und Schreiben B1), and I even tried and passed the B2 reading exam (though with only 70 percent). I’m sure that I haven’t reached B2 though, not even for reading. I cannot read and understand “modern literary prose” in German. I’m probably B1 in reading, listening and maybe writing, but only A2 in speaking.

I am much better in grammar as compared to one year ago. At that time, I had just learned how to use “because”, “therefore” and “whether”; now I use these constructs easily. There are things like the passive voice and adjective endings that I still find a little unusual. However, when I want to say something simple, it is not a problem.

Board Games

One of the activities that I’ve been doing somewhat more this year is playing board games with friends. Expectedly, most of this has been remote on Tabletop Simulator. There have been two games that have been particularly successful in the gaming sessions I’ve had with my friends:

  • Spirit Island, a cooperative game about repelling invaders from a natural island (or, depending on how one sees it, optimally crafting and scheduling database transactions), and
  • The Crew: The Quest for Planet Nine, a cooperative trick-taking game where the goal is usually to ensure that specific nominated players win specific cards.

I’d played some Spirit Island before this year, but I had more sessions this year and have become a lot more comfortable with the game mechanics. I used to stick primarily with a few spirits that I knew how to play quite well (River Surges in Sunlight, Lightning’s Swift Strike, A Spread of Rampant Green) but have had a lot of fun with some of the newer spirits with the various expansions. Stone’s Unyielding Defiance feels very powerful, even if the gameplay is a bit onenote. Playing Shifting Memory of Ages is exciting, if at times very dependent on major power card draws, and to me feels like a more fun version of Vital Strength of the Earth. Downpour Drenches the World is enjoyable in its own right, essentially denying invaders progress and then repeating a power five times. I think these three are probably my latest set of “fun” spirits. Some of my teammates used to play the game a lot in the office; more recently, we’ve had a few sessions remotely. The game has a lot of moving parts, but is essentially a big and, to me at least, engaging optimisation puzzle (that admits pretty suboptimal solutions, fortunately).

The Crew on the other hand has been primarily played with friends from Imperial. It has elements of Hanabi in that communication is limited, and thinking about player intentions is critical. James and I have played through and beaten a number of the hard missions, though the 2P variant with Jarvis hasn’t actually been that difficult, I think – we both play quite logically. I think some of my experience with playing out a bridge hand (not so familiar with the bidding, more so with the play) is relevant.

Travel and Exploration

What is travel?

More seriously, there was one weekend trip to Switzerland this year and that was about it, though I did spend more time exploring my parts of my local area that I did not know as well in the past (such as St James’s Park and some walking routes in London). Eat Out to Help Out and the various Amex Shop Small promotions did also make me look around for new deals and offers.

I think if the situation abates in 2021 (like it did in the summer), even if in an inconclusive way, I will be travelling quite a lot (taking the relevant precautions, of course, and the vaccine as it becomes available). I can’t remember if I even travelled overseas at all in 2011, so this might strangely be more than that still.

Music

I started getting back into DDR late this year, though I’ve had to play at home for the most part because of the coronavirus. Some of the songs also make good background music when I’m working on something, especially tasks that are “just work” as opposed to requiring a lot of deep focus. Hopeful Frontier is probably a good example; the track runs at a crisp 200 BPM and has fast 16th and even 24th note streams. I can’t step that quickly in DDR terms (that’s 13.33 and 20 steps per second, respectively) – and in any case it’s not actually a DDR song, instead originating from jubeat, one of the other games in Konami’s rhythm game series. Paranoia Survivor is slower but has a bit more personal significance; it’s the first level 15 song I passed on DDR probably about 10 years ago. Coming back to DDR after not having played for so long, it’s hard but not ridiculous (unlike the level 17s which I don’t have the stamina or footspeed for now), and being able to almost automatically pivot my body to do the crossovers has been nice.

Some of this is probably coronavirus-influenced but this cover of I Will Remember You is probably the most-listened song outside of the aforementioned rhythm game music.

Financials

Distinct Positive Outlooks

2020 was a tough year for many developed and developing economies. It does feel kind of perverse that this year was financially successful for me, amid broad destruction both in terms of economies as well as many individuals’ finances. I’ve been fortunate to remain at Palantir, and I do produce good enough work so that the people there are willing to keep me around. Palantir had a direct public offering (DPO) at the end of September. The stock opened with a volume-weighted average price of $10.12 in the first trading session, and then rose further, eventually going above $30, which was well beyond what I expected. The tax rates on the earnings here are pretty high (having to pay the employer NI contributions puts the marginal tax at around 54%) but I don’t find them unreasonable given equity-based compensation is a privilege.

Budgetary Changes

This was the year where I spent more on groceries in April than I did for the whole of 2019. Obviously, working from home influenced expenditure patterns; there were large increases in Food, Coffee and Groceries. However, especially for groceries working from home alone does not explain the magnitude of the increase. Grocery expenditure in 2020 was 9.8 times that in 2019. Previously I would usually have 2 meals at home each week, while now it is probably more like 10. Thus, the “equivalent factor” should be no higher than 5, and actually given that the office was still open in January and February, 4.33 is probably the correct multiplier for the year. The implication then is that I am spending more per meal, let’s say p times. Then, we want to solve \frac{1}{6} + \frac{5}{6}(5p) = 9.8 \leadsto p \approx 2.31. That probably checks out; I have gone to M&S quite a bit more than I used to. I’ve also spent a fair bit more on fresh food and the occasional specialist Japanese groceries as a treat. This was accompanied by massive drops in transport and travel (as expected), and noticeable increases in Learning (paying for German lessons, buying more books).

Investments and Philosophy

COVID-19 has made me re-think my approach towards money. A more formal way of saying it would be that I’ve realised that having money is not a sufficient condition for being able to redeem it for something useful or enjoyable; a more causal way would be the “you only live once” (YOLO) phrase that Drake invoked. Having non-essential retail and almost all restaurants close during the first lockdown (even for take-away: while it was legal to remain open for take-away, they had logistical issues to sort out first) made the limitations of having money or some other store of value apparent. There was still online shopping for goods (and, as it turns out, services) that one could have done, but it was relatively constrained. There is a point where optimising for today becomes irresponsible, but having an excessively long-term mindset can also be damaging.

We’ve had many studies on the subject of delayed gratification and how the child that was able to wait for his marshmallows tends to perform better in life later on, but never eating the marshmallows doesn’t seem to be the solution. I’ve discussed this in a blogpost before, but if we consider the question of “would you take N dollars today or 2N dollars in a year’s time”, I’d used to always have opted for the future option, but nowadays depending on N I might opt to take it today (generally if N is very large). For some reason, I have a natural instinct to save aggressively. This period has taught me that there are limits to this, and perhaps along the lines of what the teacher says in Ecclesiastes, the fruits of one’s labour are to be enjoyed.

Interestingly, in 2019 I claimed to have lost some interest in my portfolio; that’s even more true in 2020. I’ve taken quite a bit less interest in my investments this year, perhaps because of this lesson. I continue to do the monthly motions, but otherwise haven’t looked much at my portfolio. My understanding is that performance for this year is broadly flat for a GBP-based broad-based global equity tracker; I do remember pushing a bit more money into the market in March when the market fell, and did the Bed and ISA, but otherwise don’t really remember much.

Trackless Path (Q3 2020 Review)

A quarter is a relatively fixed amount of time: three months. While certain quarters of the year are longer than others (Q3 and Q4 are ordinarily 92 days long while Q1 is 90 in non-leap years) the difference is still fewer than three percentage points. However, perception can differ, and for me Q3 seemed to pass by rather quickly. On one hand, with a relative scarcity of exciting events it might seem that things would drag; yet, a high volume of tasks at work and making concrete plans to enjoy as much as I could despite the circumstances meant that there was a constant stream of things to pay attention to. There was quite a lot more duplication in these tasks and plans than normal.

Work

Software Engineering

In a sense, not very much has changed. Still on AtlasDB, still running the team, still doing storage things. However (and I think this is good) we’ve started more intensely looking at growth and development of team members, myself included. I think it’s useful to explicitly consider how team members should be seeking to improve; most of the validation that I’d been getting was along the lines of “there’s no dire feedback, and you haven’t been removed from your position, so you’re doing OK”. In a sense, it was refreshing to have a good amount of critical, constructive feedback, which I don’t normally get to hear. I’m also branching out more into other areas of work – in fact, a quick look at GitHub would show that I haven’t been making as many contributions to AtlasDB itself recently (and I also haven’t been slacking off!).

Also, PLTR’s direct listing happened on 30 September (disclaimer: I do own PLTR shares). This was fun and obviously storage is important for functioning, though I was informed that it had influence beyond just having systems working, and that makes sense. I didn’t join the company that early so I model it more as a tasty additional bonus, rather than a life-changing sum of money. That’s a nice segue into the next section…

Personal Finance

To some extent I’ve lost track of where things are going. One could argue that that’s part of the point of (mostly) passive investing – for the most part the portfolio does its work for you, giving you time to look at other things. I’ve just let most of the portfolio do what it’s been doing, and do the usual monthly rebalance. The direct listing is basically a cash injection, which I plan to cost average; while I know this isn’t generally optimal in terms of numerical outcomes, my utility curve is convex (that is, I will be <2x happier with 2x money). I haven’t been tracking expenses as closely as well, though I’m fortunate in that I naturally have quite a strong saving instinct.

I did a couple of things out of concern for budgeting-related tax changes. As mentioned when discussing Eat Out to Help Out, I strongly suspect higher taxes are on their way:

  • I maxed my S&S ISA for 2020/21. I’m normally a lot more diligent about this and do it in April, but this year let it slip for a good few months. The mechanism for doing this was a so-called “Bed & ISA” where you sell shares and repurchase them in an ISA. As part of this…
  • I used up most of my Capital Gains annual allowance (£12,300 this tax year). Unfortunately my assets haven’t been that productive that the Bed & ISA covered all of this. It’s still kind of awkward to see that the markets are performing well when the economy is struggling with COVID measures, but to paraphrase Newton, I cannot calculate the madness of men (or for that matter, know if it is madness).
  • I used up most of the pension tax relief cap (£40,000 this tax year BUT watch for tapering if you’re a high earner, AND you may be able to pull previous years’ allowance in). The main gamble here is that this says you’re willing to part with that money until you’re at an age where you’re allowed to draw from your pension. There’s also the risk of running foul of the lifetime allowance.
  • I ate out to help out (with suitable protection). There’s something around actually benefiting from the schemes which I’m paying for as part of my tax. I wouldn’t advocate creating an unnecessary burden on public facilities, but if it works well with my plans, I don’t see why I shouldn’t participate.

Recreational Pursuits

Deutsch lernen

Wenn man weniger Dinge tun kann oder darf, verbringt man vielleicht mehr Zeit mit den Dingen, die man tun kann. Ich verbrachte in Q3 mehr Zeit damit, Deutsch zu lernen, als in Q2. Ich setzte den Unterricht mit Katja fort, in die ich mein Sprechen und Schreiben besser verbessern kann, weil sie meine Aufgaben korrigieren wird. Ich übte auch mit ein paar Büchern von Hueber-Verlag, dem ein deutsches Verlag ist. Das letzte, an dem ich arbeitete, ist “Lesen und Schreiben B1”. Im Buch gibt es einige Texte über verschiedene Themen, z.B. Wohnen in Deutschland, Hobbys, Umweltverschützung. Diesen Themen sind relativ einfach, aber sie bieten eine interessante Lektüre. Ich habe auch B1 Modellprüfungen gemacht, in die ich Lesen und Hören sicherlich bestanden (am letztes Mal: 26/30, 29/30).

Früher hatte ich geplant, eine Reise zu einer Sprachschule in Deutschland zu machen, aber ich glaube, ich war bei der Arbeit sehr beschäftigt. Die Situation mit dem Coronavirus in England wird immer schlechter, deshalb bin ich nicht so sicher, ob ich in Q4 gehen kann. Deutschland könnte die Grenzen schließen, wenn der Trend anhält.

When one can or is allowed to do fewer things, one might spend more time on the things one can do. I spent more time in Q3 learning German than in Q2. I continued with the lessons with Katja; in them, I can better improve my speaking and writing because she corrects my work. I also practiced with a few books from Hueber-Verlag, a German publisher. The most recent one which I worked with is “Lesen and Schreiben B1”. There are texts about various themes in the book, like living in Deutschland, hobbies and environmental protection – these themes are relatively simple, but still make for interesting reading. I’ve also done practice exams for B1, and I’m safely passing Reading and Listening (last time: 26/30 and 29/30 respectively).

I had originally planned to make a short trip to a language school in Germany, but I think I got too busy at work. The coronavirus situation in England is getting worse and worse by the day, so I’m not sure whether I’ll be able to go in Q4. Germany might close the borders with England if the trend continues.

Sudoku and Logic Puzzles

The “season” for these puzzle contests seems to run from January until July or August it seems – I think normally this culminates in the World Sudoku and Puzzle Championships (these were on the 1st of October last year). Round 8 of the Sudoku GP happened and I put in another solid performance with rank 37 and 443 points, putting me at rank 52 overall with a score of 2536 (best six of eight scores). In some ways this is an incremental but sizable improvement over last year’s rank 66. I’m not sure that I’ve improved significantly – in fact I’d say speed solving has taken a bit of a back seat this year relative to other pursuits. The field might have gotten weaker as people got busy with other things, and/or I made incremental improvements that were enough to result in some progress.

There were some technical glitches on the general puzzles side of things in Q2, so there were three rounds in Q3 in which I placed 83, 96 and 66. Nonetheless, this was an improvement after a very flimsy start where I had rank 137 and 156 in my first two rounds. Despite still having to count a weak round 5 with 261 points, I had 2174 points overall, getting rank 89. I think the general approach I have for both Sudoku and Puzzles is to, after doing one or two warm-up puzzles, jump into hard stuff that looks interesting, and then re-evaluate after each puzzle and towards the end pick lower-value puzzles. This seems to work quite well in Sudoku but not so in Puzzles because I seem to be much better at hopelessly breaking a hard puzzle in general than a hard Sudoku. I think I shifted towards a more conservative strategy of tackling some medium puzzles before making a stab at one hard puzzle.

As mentioned, I’ve been spending less time on these this quarter (and more broadly this year). Some of this may be a function of work which I’m finding more challenging – puzzles are fun but of course do require quite a lot of complex reasoning.

Travel

I haven’t left London since my Zurich trip in March. It was a mixture of being busy at work and my favourite destinations maintaining travel restrictions for travellers from the UK (Singapore, Switzerland). I could have travelled to France and Spain earlier in the summer, and can still travel to Germany, but for some reason I haven’t really felt a desire to do it – keine Lust, as I would say in German.

Even within London I haven’t bothered to travel very much. I think I’ve taken the bus once when meeting Tom; it’s possible the last time I took the tube was in March before the lockdown. While I do walk quite a lot on weekends, my range is probably only about 8 km or so when one considers that I need to return. It tends to be the same few places that I’m comfortable with and/or have things to do or look at, like Eat Tokyo or Foyles.

Reading

I’ve gone through a number of German practice books: the aforementioned Lesen und Schreiben B1 (reading and writing), and also for exam preparation (even though I’m not sure why I’m preparing for B1 right now; I think it’s more as a form of assessment) a series called So geht’s noch besser (which means something like “it’s even better”).

Other than that, though, things may have narrowed a bit this quarter. In terms of titles, I can only recall Will Storr’s Selfie and Tim Hartford’s 50 Things that Made the Modern Economy (though both were very interesting pieces of work).

Rhythm Games

I used to play Dance Dance Revolution (DDR) very frequently when I was in Singapore, because I had a pad at home. At my peak, I was able to pass a couple of level 17 songs (songs are rated on a 1-19 scale where larger numbers indicate higher difficulty) – I even uploaded a video of one run.

I then went to university, so I didn’t have a pad any more. 8 years on, I’m also a fair bit heavier now (the thesis and joining Palantir were, for various reasons, not particularly good for my weight) and haven’t done exercise of this intensity for a long time – most of what I’ve been doing recently are relatively light jogs or long walks.

So trying to get back into things, my first port of call was MAX 300 Expert (level 15) which I saw as a bellwether of my DDR skills. The song is pretty straightforward in terms of footwork but demands a fair amount of stamina, having drills and simple runs at a rate of 10 hits per second. I failed, running out of stamina shortly after the stop. I found that I was back to around the level 12 range (which was a level I was at before I did National Service, roughly), and have worked my way back up to the easier end of 14s.

Music

Perhaps to enhance the work from home environment, or because I’ve been doing a bit more individual development work in this quarter, I’ve generally found piano instrumentals when I’m working to be quite agreeable. I do sometimes like fast, aggressive pieces when I’m implementing something which I’ve scoped out, but generally quieter pieces tend to work better – as part of this I found two good channels, relaxdaily and BGMC; the former is a bit more specific to piano while the latter seems to cover “quiet background music” in general.

From a more artistic point of view, I found a cover of Britney Spears’ Everytime by a singer named Dave Winkler. I like the base song, and have found a number of covers in the past, but this is one of the most polished ones I can remember. Execution is solid throughout, and there’s a very pleasant, if small, improvised line at the end. He has quite a lot of covers on his channel as well, with a seeming rock slant. The quality across the board seemed pretty high as well.

There are also songs I like to listen to because of their energy. I occasionally go to a nearby arcade to play DDR, but most of the playing happens at home with a program called Stepmania. Through this, I’ve found music outside of the official DDR catalogue, including a number that I’ve liked. The one I’ve enjoyed the most this quarter is probably one called For UltraPlayers. I would not consider myself as one (the song was composed for the finals of one of the Konami rhythm game world championships), but the song is still enjoyable to both listen to and play. Many songs on DDR or even when I play Stepmania on keyboard seem to derive most of their difficulty from runs of notes that need to be hit quickly and accurately, called streams. The song runs at 201 BPM which is pretty fast (13.4 notes per second), but to spice things up, there are sections that use triplets or even sextuplets (these run at 20.1 notes per second) and one has to regularly switch back and forth.

In This Economy? (Q2 2020 Review)

Although just one quarter has passed (slightly less, in fact, since the last time I wrote), it’s felt much longer than that. I think the lockdown and working from home has meant that I’ve worked longer hours, and also that the weekdays blend into one another. The weekends are clearly different. However, they still seem less separated from the work-week.

COVID-19

This is of course central to Q2; although working from home began in early March (the company made a prescient decision!), the UK-wide lockdown only fully landed on the 24th, and is still slowly being eased. During March I travelled to Zurich, still visited the office sometimes and went out (including dining in in restaurants) freely.

Essentials and Non-Essentials

When the lockdown was first instituted, I imagined it would be psychologically very stressful. I would not call myself a libertarian, though my opinions to some extent trend in that direction. I think having a lockdown was a perfectly reasonable thing to do, as painful as curtailing one’s freedom of movement and civil liberties is. I’d be uneasy with saying people should have full freedom to decide how much coronavirus risk they should accept (and thus not have a lockdown at all, as was done in Sweden).

There has clearly been an impact on my activities, even putting aside working from home. I used to semi-regularly physically meet up with some old friends from Imperial, and also go for drinks with some colleagues at Palantir. These have been paused, and I’m not sure they will resume immediately from July 4. I’ve also had two planned summer holidays cancelled because of COVID-19 related issues (one to Singapore, and one to Austria and Hungary).

That said, the experience I’ve had with some more local activities has improved. Going out has been quite comfortable: the air is cleaner, there are fewer people and it is quieter. I’m reminded of my time in Zurich, actually. (There are other factors that would make me prefer to stay in London, though, at least for now.) I’ve also realised that physical non-essential retail and even dining in aren’t things I actually use that often. There is an exception of bookshops, though, because I still find the browsing and discovery experience far superior. I suspect I will miss some of this relative peace and quiet (as much as I realise that it’s unsustainable and bad for the economy).

It’s also worth noting how geographically distributed the friends I keep in touch with are. Of course, there was always a group based in Singapore – but for the Imperial group, by now more than half of them aren’t based in London. Thus, there was no real change in how we communicated, for the most part.

Working from Home

This is hardly news, but I’m still on AtlasDB. I’ve written about this before, but I do miss working in a physical office: pairing and iterating closely on features is a lot easier in person. The office also serves as a great forcing function to get me to leave at the end of the day, as its emptiness does make me ask myself if I should still be around. It is also a useful crutch in encouraging separation between work and non-work.

There were a couple of changes here, as adapting to a work-from-home environment focused my time more. Paring down the number of things I’m juggling has helped significantly (there are still quite a few, but I don’t mind it that way). Previously I had a large number of tasks that I could barely keep tabs on, let alone contribute actively to. I think I’ve been holding things down reasonably well.

I did push myself a bunch of times in ways which I knew to be unsustainable. I would still maintain that some of these heroics were justified, though I need to be better at easing off after such “surges”. I think my working hours can easily hit 70+ during a surge, with the intention of having a 40-hour week after that…. that ends up turning out around 55 or 60 still.

I had had my concerns about job stability as well. I’m fortunate that my position is reasonably secure, and there are backup mechanisms in that I would be able to survive getting furloughed (of course that would be pretty unpleasant). The high, if admittedly not quite FIRE-style savings rates I’d been maintaining should help.

Finance

Stocks have been volatile, and so has the pound (it now seems to be a ‘risk-on’ currency, which makes sense given Brexit uncertainty – even though it’s undervalued in PPP terms). I haven’t looked at my portfolio closely, and have continued with the standard mechanical monthly contributions and occasional rebalancing. Similarly, things like salary sacrifice have been chugging on as normal.

The expenses side of the balance sheet is much more interesting, if unsurprising. I’ve adhered closely to the lockdown rules, so the transport category (which normally covers tube and bus usage) has crashed to 0.00 for this quarter. My last Tube journey was from Heathrow Airport at the beginning of March. Similarly, the travel category is at 0.00. On the other hand, expenditure on entertainment (computer games, primarily) has doubled, and that on books has tripled from normal levels.

The main increase, however, is in groceries; I spent more on groceries in April 2020 alone than I did for the entire year of 2019. This was a short-term increase because of some stockpiling, and the grocery bill for May and June is much lower. I’m aware that I used to have lunches and dinners provided in Palantir and usually cooked two meals a week, but the increase has still been by more than a factor of seven.

The Joseph Rowntree Foundation’s report on a Minimum Income Standard in the UK for 2019 suggests that a single person’s weekly budget for food and non-alcoholic drinks would come in at around £49.64. I was spending about £7 per week in 2019 – multiplying by seven to account for the increased number of meals that clocks in at just about the standard.

I’ve now been spending more than that (I’d say a stable level for me is probably about £60-65 per week now). Some of the items involved are definitely treats, like black cod with miso from the Japan Centre, or fancy Korean ramyeons from Oseyo. It’s certainly quite a change from first year at Imperial though, where I made things work on £7 a week (for all meals!) for a full term. It’s almost a 10x increase.

Other Pursuits

Deutsch

I continued my lessons with Palantir until the end of May. I then decided to continue taking lessons with Katja. I’ve found her to be a great teacher because she has been able to adapt to my iteration speed (which is generally quite high and involving nontrivial amounts of homework). We’re most of the way through the A2 course book, though I like to think my reading at least is probably at B1. I even tried to do the Goethe-Institut B2 practice test for reading and got 23 of 30 (an okay pass)! Unfortunately my productive skills (speaking and writing) definitely aren’t there yet. We now have a summer break. I have to prepare a presentation and a book report! I’m hoping to reach B2 by end of next year.

Ich fortsetzte meinen Unterricht bei Palantir bis Ende Mai. Dann entschied ich mich, die Deutschstunden mit Katja weitermachen. Ich fand, dass sie eine gute Deutschlehrerin ist, weil sie meine Schnelligkeit, die ziemlich hoch ist und mit viel Hausaufgaben zu tun, benutzen konnte. Ich habe den großen Teil des A2-Kurzbuchs gelernt. Obwohl ich gerne denke, dass meine Lesekenntnisse zumindest wahrscheinlich auf B1 liegen. Ich sogar probierte die Goethe-Institut B2 Modellprüfung für das Lesen. Ich erreichte 23 von 30 Punkte – das ist genug, wenn man bestanden möchte. Meine produktive Sprachkenntnisse (Sprachend und Schreiben) unbedingt sind nicht auf B1. Wir machen jetzt eine Sommer-Pause. Ich muss eine Präsentation und einen Buchbericht vorbereiten! Ich hoffe, dass ich bis Ende nächsten Jahres B2 erreichen werde.

Sudoku and Logic Puzzles

I haven’t been doing these much outside of the various contests. I’m still on rank 49 in the Sudoku GP after seven rounds, though I don’t think I’ll be able to have a top 50 finish (as the aggregate score is derived from one’s best six rounds, and there are a couple of people slightly behind on the leaderboard whose score was derived from five rounds). I think my performances in these were generally solid, if nothing exceptional (rank 47 in round 5, 39 in round 6, 40 in round 7). Still, it looks like there’ll hopefully be a big improvement over last year’s rank 66.

There was a technical issue (I think?) on the general Puzzles side so only five rounds have taken place. I’m at rank 102 which is worse than last year. I’ve been pretty inconsistent (rank 137, 156, 71, 141, 124 for the five rounds); not sure why.

The UK Sudoku (where I finished with rank 28) and Puzzle (rank 39) Contests 2020 also took place. Both went quite smoothly for me, Sudoku slightly more so. I also had some experience with designing logic puzzles (I’ve written for the Palantir puzzlehunt before, but the previous ones I wrote were largely steganography-based). I have read parts of Selinker and Snyder’s Puzzlecraft, and it felt gratifying to see test-solvers reason through exactly the same path of logic I intended (though the puzzle had to be changed a bunch of times because the intended solution path, although entirely deducible one step at a time, was quite narrow).

Reading

Here’s a list of some of the books I’ve been reading in Q2, and attempted short summaries:

  • General Reading
    • Stuffocation: Living More with Less (James Wallman): Spending on experiences like tourism and travel with friends is generally more worthwhile than spending on things. This is claimed to be something that people are trending towards.
    • Start Now, Get Perfect Later (Rob Moore): Indecision and the fear of failure can often be obstacles to starting doing things at all, even though that is often the best way to build a good solution in the end. Thus, as the book’s title says, start now, and get perfect later.
    • Science the Shit Out of Life (Colin Stuart, Mun Keat Looi): Algorithms are fun and can be deployed for profit. Sometimes it’s unclear what to do beyond running experiments – in that case it can be interesting to run experiments.
  • German
    • Faust: das Volksbuch (Achim Seiffarth): B1 graded reader – Faust is a brilliant scholar, both of medicine and of black magic. He ends up making a pact with the Devil: he will get whatever he wants for 24 years on earth (subject to some conditions), but then the Devil will take his soul thereafter. Of course, this does not end well.
    • Deutsch für Besserwisser A2 (Anneli Billina): A revision of grammar at the A2 level; in terms of conjunctions, prepositions, declination and the passive voice. There are quite a few exercises to practice.
    • Wie man Deutscher wird in 50 Einfachen Stritten (Adam Fletcher): Descriptions of some common stereotypes about German culture. The book is written in both English and German, so I usually read the German version of each chapter first, and then check my understanding against the English version.
  • Discipline-Specific
    • Puzzlecraft (Mike Selinker, Thomas Snyder): A puzzle is a battle between the solver and the creator where the solver always wins; the onus is on the creator to make that win satisfying. This should account for the solver’s intended experience level, and there are a number of puzzle-specific techniques that can be exploited to this end.
    • How to Solve It (George Polya): There are a collection of heuristics that people can use when approaching mathematical problems (or possibly problems in general). These are useful both for attempting to solve problems ourselves, as well as teaching others how to solve problems that they may run into.

Travel

Well. This was expectedly non-existent in Q2. Let’s see what happens in Q3: from the 10th of July travel to a number of countries on the government’s travel corridor list is permitted without the need for quarantine. However, the country on the other end also needs to allow me in, and my combination of being a Singapore national but a UK resident means that I have to be very careful when reading the rules. For example, the German Auswärtiges Amt (foreign office) notes explicitly that “The question of whether travel to Germany is permitted depends on where the person travelling has previously been staying, not on their nationality”, so I’m good there (and the general EU guidance is also as such). Switzerland, on the other hand, would not allow me in: to quote the UK Foreign Office guidance, “Travellers from the UK who do not have UK/EU/EFTA nationality will not be permitted to enter Switzerland, however there are some exceptions”. There are some even more nuanced rules – in Denmark, for instance, “if you enter as a tourist, you need to document a holiday stay for at least six nights”.

Tourism in the UK is also a very valid option, and one that I haven’t really explored much beyond the odd day trip when my parents were around, or as part of events at work; this would likely be easier, and would be good for the local economy as well.

Music

Not much here. There’s an acoustic cover of Through the Fire and Flames that I’ve liked – I’m not always feeling up to listening to the full DragonForce track, but there’s a nice melody there, and I find the execution here mostly clean and very listenable. I hadn’t found a more relaxed version of Fury of the Storm, which I prefer.

Board and Computer Games

I played quite a bit more of these because of the lockdown. There’s a trend in challenging (ish) roguelikes – Dead CellsDicey Dungeons and Enter the Gungeon and possibly to some extent Darkest Dungeon were the games I spent the most time on this quarter. I also had a couple of sessions of Overcooked 2 and Tabletop Simulator (playing Hanabi, Pandemic and The Crew: The Search For Planet 9 primarily) with friends – the theme in the board games seems to be cooperative games and possibly difficult ones, which I generally tend to like.

The Crew in particular seems to have gone over quite well with a number of friends I’ve played it with. It is a cooperative trick taking game: the players collaborate to achieve constraints on the flow of tricks. For example, a specific card may need to be won by a specific player, or specific players may have to win specific tricks. This has to be achieved with only very limited communication between players regarding the contents of their hands: a player generally has one clue token per hand, and can use it to indicate that a given card is their highest, single or lowest card of the relevant suit.

It’s perhaps not as directly involved as tracking information in Hanabi (especially when considering negative information clues), though there are similar elements: playing hard missions often involves thinking about why the other player(s) might have done something, and then acting based on those thoughts. Playing the cards themselves does remind me of bridge; there’s often a need to figure out how to draw out certain suits or pass control from one hand to another. Players may have tasks to win a low card that they hold, which usually requires other players to be void in the suit (if multiple players end up in this situation, the hand may be unwinnable – though usually that suggests poor allocation of tasks).

Torrential Storm (Q1+ 2020 Review)

I’m somewhat behind schedule on this one. To some extent, working from home has confused my weekend workflows, in that there isn’t as clear of a separation between work and non-work days. I’ve also been finding writing more taxing than normal, perhaps because I’ve had to do more of that at work for various reasons, both in a professional capacity and auf Deutsch, fur meine Hausaufgabe (in German, for my homework).

I’m still working on AtlasDB and at Palantir. For various reasons Q1 (and I’m extending this review to cover the first two weeks of April) has been tricky in terms of events at work. I think there’s one core paradigm that I used to have as a lead that I had some doubts about at the end of last year, and I’d say has been shaken even more since.

My normal approach to being a lead is to aggressively apply the golden rule – to push policies that I would like or find useful or helpful as a developer, and to reject those that would be unhelpful (allowing for some measure of unpleasantness, but not too much). The problems here come if there are considerable differences in relevant preferences or inclinations: what I find useful as I started out may not be useful for others.

Normally I’d write a section detailing my travels, though of course this was considerably less in Q1 because of COVID-19. I did travel a little bit in the early part of the year (I was in Singapore for the holidays, and made a short trip to Zurich to visit Stan in early March – back when there were just eight reported cases in Switzerland). I was originally slated to go back to Singapore for Easter, though of course that didn’t actually materialise.

We’re entering week 5 of the UK lockdown, and week 8 of working from home for me. Initially, the changes to my routine weren’t particularly serious (I was fortunate in that I had just come back from Switzerland – I normally travel once every 1-2 months, even if it’s just for a short weekend break).

The markets have also been pretty exciting, though I haven’t been thinking of them as much because of coronavirus (and perhaps that’s for the better, given the scale of the drops). I remember the first time I lost a month’s worth of investment contributions, but this was the first time I lost a year’s worth of them (on paper, at least). With increasingly stark economic data prints and forecasts, it’s a healthy reminder that movements in the market are often not about whether business/the economy are doing well or badly, but rather whether they are doing better or worse than expected (so if the consensus estimate is for a grade D and the actual performance is a C-, stocks could do well!).

In terms of logic contests, four Sudoku GPs have occurred, and my performance is probably not too different from last year. I’ve performed worse in terms of absolute number of points scored (I finished last year with 2502, four contests at 1565 would suggest 2347.5 as an overall score), but better in terms of ranking (61-50-74-71, overall 51; I finished 66th last year). I’m not sure if I’ve gotten any faster, really; in terms of strategies I wouldn’t say I could concretely identify a way I’m better now than I was last year. It’s possible the contests themselves have gotten harder, or the test solver pool has gotten faster (points are generally allocated based on how long test solvers take).

Similarly, four Puzzle GPs have been completed. I have been considerably less stable at puzzles; this hasn’t changed from last year, and has probably gotten worse in fact. I did worse in terms of absolute numbers of points scored (I finished last year at 1921, and four contests at 1205 implies 1807.5) and worse in ranking (139-154-71-141, overall 100; I finished 91st last year). I think my bad habits here involve being overly fearful of bifurcation. Puzzle choice is a bigger issue in these rounds than in Sudoku, since there are more options (even the best solvers frequently don’t actually solve everything). I tend to gravitate to number-heavy types like KenKen, Arithmetic Squares, Skyscrapers or Futoshiki because they feel comfortable, even though I’d say I’m fast at the first two but pretty bad at the last two.

Another hobby I’ve been pursuing is learning German. I took my A1 exam in Q1, and got a sehr gut (very good) grade with 100 percent. Perfekte Noten (perfect grades), as one might say. Lessons at Palantir continue and have been useful in ensuring that I have a more proper, structured framework for learning, as well as providing quality feedback on pronunciation and writing.

I started learning about Nebensätze (subordinate clauses) at the very end of last year to beginning of this year, and they’ve substantially broadened the range of things I can talk or write about. Wennals and ob (if/when – though not specifically previously, previously when, whether respectively) are very useful; weil (because) a bit less so since I already knew denn (because), but for some reason I find sentences with weil tend to roll off the tongue better. The practice of ending these clauses with the main verb (e.g. Ich weiß nicht, ob das gute Idee ist, weil ich vielleicht nicht genug Geld habe – I don’t know whether that is a good idea because I might not have enough money) currently requires me to build most of the sentence upfront, but the catharsis of unleashing the verb at the end feels great.

Social distancing has made me look at video games more, both in terms of games to play on my own as well as with friends. Interestingly, the concept of a rogue-like seems to be a common thread in three of the games which I’ve been playing a lot in Q1: Slay the SpireDicey Dungeons and Dead Cells. Games generally consist of individual runs that take from 15 to 60 or so minutes (Dicey Dungeons is probably on the faster end, Dead Cells can be much slower); there is some, but generally limited, progression across runs.

The first two are actually fairly similar in that combat is turn-based; the former involves deckbuilding, while the latter involves arranging equipment to maximise effectiveness of die rolls. The latter is very different and is much more focused on action and reflexes, which can be more appropriate if I don’t want to think as much. Slay the Spire, especially on super-hard modes, is quite a brain-burner.

These games are also similar in that they are reasonably easy at their base difficulty level – I think I had my first win of Slay the Spire on the third run, Dicey Dungeons on the very first run, and Dead Cells on the second run. I think I’d be able to win >95% of games on the easiest mode (Ironclad Ascension 0, Warrior level 1 and 0 Boss Cells, respectively). However, difficulty modifiers can make things very challenging: I’m pretty sure my win rate on Slay the Spire‘s Ascension 20 (max difficulty) is under 10%, and I’ve not completed Dead Cells with 4 Boss Cells (difficulty ranges from 0 to 5, increasing with each additional cell). There’s some evidence that I’ve gotten better at surviving what the game throws at me though, in that when I first started Ascension 20 and 3 Boss Cell mode looked completely impossible. Furthermore, I’d find the base modes mostly boring now, as even clear lapses in my play would be largely inconsequential – I think I enjoy a challenge.

The relative lack of travel also means that I haven’t listened to very much music recently. There are the fast-paced instrumentals that I listen to sometimes when implementing features (as opposed to design) – Destination Relapse is pretty good, even if the 200+ BPM track was written to be a really difficult rhythm game boss. To some extent similar would probably be Chopin’s Etude Op. 10 No. 4 (here performed by Rousseau), which would probably make a good boss song if playing the piano in general was treated as a rhythm game. There’s a kind of unrelenting fury and incessant urgency in the closing streams of Relapse and throughout the Etude that appeals to me, and perhaps reflects a torrent of potentially creative destruction (incidentally, the Etude is sometimes given that moniker as well). For me, that does make sense considering what I’ve been looking at in terms of work.

Burning Lights and Falling Stars (2019 Review)

When I look back on 2019, what first comes to mind are a number of protracted struggles. These spanned a broad range of issues, from work to philosophy and from finance to logic. This was probably either the toughest or the second toughest year I’ve had since I moved to London. It’s comparable to 2016 (with MCMAS and Palantir work in parallel, and then TimeLock): in both cases I think that I’ve grown and learnt quite a fair bit over the course of the year, probably more than in other years, but also that this generally isn’t a long-term sustainable pattern.

Software Engineering

The early part of the year involved finishing up work done last year on Transactions2. This project was generally successful, though more painful than expected. There were a lot of weird bugs that took quite a lot of iteration, and since the previous dev lead with whom I worked with on this project left the team and these involved pretty deep technical knowledge it would have been very costly to ramp anyone else up. Delivery could have been improved with a bit more careful project management/planning, but in terms of technical execution I think I performed at or slightly above my personal bar here.

I became a tech lead in March and then a more general team lead later on. A lot of the year involved me trying to get comfortable with the roles; it was a conscious decision to focus more on that as opposed to further refining technical execution of individual projects.

The former focuses on making architectural decisions, prioritising feature and support work, being a representative of the team at higher-level meetings, and being responsible for communicating thoughts and ideas with other teams. The first two things I think were expected to go mostly smoothly, and did: I already contributed to quite a bit of these while “strictly” an IC, and I definitely consulted the leads at the time and then jumped in on things I thought were more important than the work I was originally planning on doing. I maintain a lot of context on what’s going on on the team and product, and am aware that my input on these is valued quite well. The latter two also turned out to have worked better than I expected, in that feedback has generally been positive with regard to communication and argumentation. I also don’t think I’m where I’d like to be with regards to coming up with ideas for things to do (as opposed to, given a list of features, filter them for feasibility/benefit and then prioritise them) though there are of course support structures for that.

The latter role seems to also involve project management, and developing other members of the team to become stronger engineers. This hasn’t gone as well. I think it’s not so much a question of not wanting to do it or investing in it, but instead not being efficient by making an invalid assumption that others would follow the same growth path as me (which is basically mostly by absorption and from figuring things out as they come up). That by itself is maybe reasonable in terms of expectations (I think it worked very well in my case), but I took a long time to course-correct. It looks a bit ironic that why I took a long time to course-correct was because my bandwidth was strained on a lot more pressing things because I felt I needed to handle them directly, and the antidote to that is scaling myself by investing in team members’ growth.

I continued to work on some technical projects throughout the year, though not as intensely as in 2017 or 2018 probably by design. I’d probably say that the highlights were the two hackweek projects that I did. The Summer project is going into production, and involved careful reasoning through the AtlasDB development stack. The Winter project came with a bit of a pleasant surprise: my efforts on being thoughtful about interviews landed a runner-up for use of tech, which I really wasn’t expecting; I did the project more because I saw a relevant need.

Recreation and Personal Development

A fairly common theme here is skill development – there’s some evidence of this in terms of Sudoku and German, both of which are things I spend a fair bit of my free time on.

Sudoku and Logic Puzzles

I set a goal to achieve a global rank in the top 100 of the World Puzzle Federation Sudoku and Puzzle GPs. This was achieved in both cases: I finished with rank 66 in Sudoku and 92 in Puzzles. The contests run monthly (I think it’s actually every 4 weeks) from January to August.

Each Sudoku contest is basically an exam paper which is marked out of 600, though additional points can be obtained by submitting a fully correct paper before time is up. There are 8 contests, and the overall GP ranking is based on the sum of the six highest scores. I was at around the 350/600 mark at the end of last year, and so was expecting a final score of about 2200 or so (allowing for discards of bad results), but I probably got slightly better over the year and managed to finish with 2504. Puzzles went less smoothly as I missed the first round as I was on holiday and had a really bad round 6 where I chose very tough puzzles to attack, but I still squeaked over the top-100 line.

Deutsch

I started learning German this year. I think I began with Lingvist and Duolingo around May or so, and then started formal lessons in June. I have lessons once a week for 1.5 hours. I was originally hoping to take the A1 exam by the end of this year – this is currently planned for January, though my teacher’s quite confident that I won’t have issues. Nonetheless I do think I’ve made substantial progress.

I hoped to push on towards A2 actually. It’s unclear if I am at A2: while the CEFR descriptors don’t look too hard at that level (I feel I can satisfy almost all of the criteria), I’m aware there’s quite a lot of grammatical knowledge expected at A2 that I don’t know or am not confident about (e.g. irregular verbs in the simple past, passive voice). I’ve tried the Hören, Lesen and Schreiben (listening, reading and writing) sections of various exams aimed at the A2 level, like the telc A2 and UK GCSEs (I’m saving the Goethe papers for when I actually do that exam) and generally have been able to do quite well on them (i.e. above 80% on telc A2, Grade 9s on the GCSE components – maybe not writing), though admittedly Sprechen (speaking) is the part I’m most concerned about.

Travel and Exploration

Travel this year included four trips to Singapore (two were based around weddings). I also visited Zürich multiple times, Japan, Brussels, Boston, Stockholm and Palo Alto (though mostly for work). I did not travel as much as I wanted to outside of work, possibly because of prioritising other goals (I mainly worked on logic puzzles and German on the weekends) though actually they aren’t that incompatible (e.g. a flight is a good amount of time to work on learning German).

I really enjoyed the Japan trip (highlights included the Sankei-en Garden, Shin-Yokohama Raumen Museum and Ginza Tamai), and though the wedding trips were short (just 3-4 days in Singapore each time) I don’t regret them at all. Travelling is interesting: I don’t always look forward to the trips (especially the work ones) but almost always enjoy them. It’s possible there’s some sunk-cost fallacy here, though that’s mitigated by me not directly paying for the work trips in terms of money (still in terms of time, of course).

Financials

I generally looked at my portfolio quite a bit less after Q2, perhaps because I invested more resources in my new role at work and also because there generally was a fair bit of non-actionable stress.

Savings Rate

There are several ways to slice this: Savings Rate #4 from this post is what I normally use. In a UK context, define S_1 as workplace pension contributions, S_2 as individual pension contributions (e.g. SIPPs), S_3 as other savings (ISAs, taxable accounts), C as consumption and D as tax changes derived from taxable benefits. Furthermore, define \tau as the tax rate expected when one withdraws from one’s pensions. Then

SR = \dfrac{\tau(S_1 + S_2) + S_3}{\tau(S_1 + S_2) + S_3 + C + D}

Roughly 55% this year, up two percentage points from last year (looking at it, my expenses did increase quite a lot from last year, but not by as much as the raise I received, so this makes sense). This is in a pretty reasonable spot.

Discipline in Spending

I’ll paste an extract from the essay I wrote on my birthday this year, that captures the major spending increases here:

  • Groceries has had an increasing trend year-on-year, going up by 50% from 2017 to 2018, and another 26% this year. Some of this is because I patronise M&S nowadays; I actually find the food tastes better. The ”three meat or fish items for £10” deals were something I used to scorn in first year at university, calling it absurdly expensive; I now actually use that on occasion.
  • Gifts has increased to 2x over last year. I think this is natural, seeing as my financial position is a bit more stable now. I also definitely recognise that I don’t have infinite time to use this.
  • Travel has increased to 2.5x over last year, as part of a generally increasing trend. This is fine as long as it doesn’t increase exponentially from here. Some of this is also probably because I started thinking about flying slightly more premium cabins (premium economy or even business), and where this is not the case booking extra legroom seats. It seems I also can spend quite a bit when making “bleisure” trips, such as to Boston and Palo Alto. I think that’s okay, though – especially if I’m spending it on interesting experiences (and not tat).
  • Clothing has increased to 2x over last year. I have lumped shoes into clothing and that is certainly a part of the cost, but that definitely doesn’t explain the whole delta. I think it tends to be a large number of items as opposed to individually expensive ones – perhaps it’s a form of retail therapy? I think something actionable here might be to implement a one-in-one-out policy in 2020. £28.74 per week for clothes is concerning. This does cluster (e.g. I spent £250 in the Black Friday and Cyber Monday sales, including on a pair of Nudie raw denim and two pairs of Converse that should hopefully last) but it’s still more than I would expect. I’d view most articles of clothing apart from shoes to generally be luxuries at £28.74, and I certainly don’t feel like I’m buying one such treat per week.

There’s still some discipline, in that my savings rate has increased in spite of these trends, and in most cases (apart from the clothing one) the increases are justified and were made (mostly) thoughtfully. I have to deduct points for the clothing-as-retail-therapy thing though.

Above the Inclined Bar (Q3 2019 Review)

Work has been fine, though I’ve noticed my hours have been growing longer. I guess some of this has been me trying to adapt to and work well in areas that I’m not sure are historically in my wheelhouse (mainly around prioritisation; most of my other work concerns decomp-ing larger features, which I think is something I can do reasonably well especially in the context of AtlasDB). I do appreciate the challenge here though. The theme I’m going for, as it remains, is superlinear growth; which involves enabling others to work more effectively and guiding them as needed. My interactions with the AtlasDB team thus far and comparing notes with others trying to guide teams suggest that I have a tendency to be relatively hands-off with design but strict with reviews, perhaps in both cases more than I should be.

I had two major trips this quarter (Palo Alto for work, and then Singapore with a stopover in Zürich), which feels slightly above average. There wasn’t much in the way of short trips. I think I enjoyed the change of routine each of these trips provided; work has kept me pretty busy, perhaps because I’m pushing for overly tight quality controls, as I’ve been advised.

I’m unlikely to re-qualify for KrisFlyer Elite Gold this year. I’ve been travelling quite a lot, but I’m in this position for two reasons. Firstly, my flights to the US are mostly done on Virgin Atlantic, which when credited to KrisFlyer earns redeemable miles but not the elite miles that count for status credit. I’ve actually flown close to 20,000 miles in this way. Secondly, I’ve been flying Economy with an extra legroom seat instead of Premium Economy, which tends to earn fewer miles. A cheap economy ticket usually only counts for 50% of the distance flown (while Premium Economy almost always counts for at least 100%), and extra legroom seats don’t actually give you any more miles. I did think about doing a mileage run to top off the 50,000 miles, but the gap is probably too large; I anticipate finishing the year on around 37,000. The 13,000 gap is around one round trip to Singapore (!) on a ticket class that earns 100% miles.

Following on from the Q2 review, I have indeed been less interested in the gyrations of the market. I actually wouldn’t be able to give a confident answer as to how my portfolio was doing without looking it up.

That’s actually somewhat better than I expected, especially viewed in the context of the Q1 and Q2 results. The LS80’s performance seems a little weak as I thought the bonds (which performed well) would help, but it seems that the UK home bias worked against it.  I guess the pound falling by just over 6 percent over the last 6 months against the dollar does make the numbers look nicer than they should be. To be fair, I should have seen this coming; my portfolio has increased by more than the take-home income I’ve made from work, which is obviously untenable without market gains.

Spending has been higher than normal this quarter; about 60% above Q2, and 25% above Q3 last year. I think some of this is connected to stress at work, and some with no longer chasing pristine balance sheets in general. I don’t ordinarily think of Q3 as particularly spendy (typically Q4 is the most expensive, but there isn’t a consistent ordering between the first three quarters).

In terms of logic puzzles, the last few contests for the Sudoku and Puzzle GPs for this year are done. In Sudoku, I had a pretty weak-ish round 7 (score 325; rank 98/414) and a rather solid round 8 (score 435; rank 60/420). For Puzzles, I had two fairly normal rounds (7: score 341; rank 82/344, 8: score 312; rank 93/315).

Overall rankings are computed based on adding up the top 6 raw scores across rounds. There are a total of 8 rounds, so participation in an additional round (no matter how poor) will never harm one’s overall raw score. I guess getting an accurate measurement does require some balancing between rounds (e.g. two participants of roughly equal skill may have very different scores, if one has an off day on an easy round while the other has an off day on an excessively difficult one, since everyone might discard the difficult round anyway), but I’m not sure how to do that. The other obvious mechanism (normalising scores, so that the first-place scorer scores 1 contest-point, say, and everyone’s score is scaled to that) is probably too sensitive to the people at the top of the leaderboard having an off day. Maybe some kind of mechanism where the median scorer scores 1 contest-point, instead, could work.

My overall rank in Sudoku was 66/886, and for Puzzles 92/656. I set a target at the beginning of the year to have a top-100 finish in both, though I was more confident in the Sudoku contest. I missed one round of puzzles and had some pretty poor rounds, so I wasn’t sure if I would clear that mark. I finished 428 points over the bar for Sudoku (which is probably just over what I would score in one round on a good day), but just 61 for Puzzles (I’ve solved single puzzles worth more than 61 points). That should be it until next year; people are preparing for the World Sudoku and Puzzle Championships now. I’m sadly not good enough for those (yet!).

German lessons continue; my teacher went on holiday for 5 weeks but lessons have resumed since. I’m making some progress, though the range of things I’m able to discuss still largely lie in the realm of the concrete (like Ich war in Singapur für eine Woche or Ich muss etwas essen and so on, which mean I was in Singapore for a week and I must eat something). I’ve been reading through the Dino lernt Deutsch series – I’m mid-way through Karneval in Köln, the third book. I also worked on some grammar and writing exercises in both the official textbook we’re using (Begegnungen A1) and another book suggested by the teacher (studio [21] A1).

I’m still enjoying learning as well, though there are some concepts that sometimes seem rather arbitrary. One I’ve run into recently is that of separable verbs. For example, waking up is referred to by the verb aufstehen (literally “up” + “standing”; not too different from “get up” in English, to be fair). However, this verb is separable and thus instead of writing or saying something like Ich aufstehe jeden Morgen um 7.30 Uhr (wrong), I would have to write/say Ich stehe jeden Morgen um 7.30 Uhr auf. However, not all verbs that are compounds have this property (e.g. besuchen, to visit, has be- as a prefix of suchen, to search), so something like Ich suche Singapur be would be wrong; determining whether something is separable or not seems to involve memorizing a bunch of seemingly arbitrary prefixes. I think the grammatical rules once one has identified a verb as separable or inseparable (similar to noun genders) make sense, at least.

Grgur introduced me to Spirit Island, a somewhat heavier cooperative board game. Players play as spirits which aim to protect an island from colonial invaders. The invaders explore the island, build larger settlements and then ravage the land (reflecting pollution/damage brought about by their construction); spirits play powers to directly destroy invaders, move them around, or enhance the strength of the indigenous people to fight them off.

The game takes place in turns, and each turn has two phases for powers (one, for fast powers, happens before invaders take actions; the other happens after). Powers are resolved one at a time, but can take place in any order that the players agree on. This often allows for synergistic plays (e.g. gathering invaders into a land and then hitting that land with a powerful power). Interestingly, finding the best powers makes me think about finding the most advantageous serialization of a bunch of database transactions. Some powers have conditions (e.g. invaders must be present/absent, the land must suffer from Blight or not, etc.) but don’t actually change these states of the land, so they are effectively performing a read of that state of that land; others might affect these traits and would thus be writing to such a key.

I do enjoy the game quite a bit. I’ve played a few times in a group and maybe around ten solo games (though usually playing two-handed), and have won games up to a 9 out of 10 on the difficulty scale. I think a good challenge level for me is probably around 7-8; below that, it seemed like winning was never really in doubt, while the level 9 game was a nail-biter and I won on the very last possible turn.

I usually conclude each quarter’s review with some insight into the music that I’ve been listening to, though this quarter has seemed a bit dry. I think finding new music can be hard; flights on Singapore Airlines are usually a good opportunity for me to discover things, as the IFE usually has a good selection – however this seems to be less true on Virgin Atlantic and on Swiss. My more conventional pick here would probably be Jonah Baker’s cover of Ariana Grande’s thank u, next (this was published in November last year, but I admittedly don’t frequently actively seek out new music). The second and third verses in the original worked well and I would say I’m supportive of the general messages there (take care of oneself, have self-confidence). These were mostly retained in the cover (swapping genders and the name self-insert, as reasonably expected). I would say that the main issues I had with the original were some possibly gratuitous swearing and the first verse being too specific – it’s relevant to her circumstances but naturally limits the extent to which listeners can identify with the song. These were addressed here, and the execution was pleasant and enjoyable.

Separately, I’ve been listening to a fair bit of video-game music to power me through long implementation sessions; songs with lyrics tend to be too distracting, and I tend to reserve the classical music or solo piano pieces to times when I need deep focus. I’ve posted about the Touhou 2D shooter game series before, and one aspect of that that I enjoy is the music. These tracks tend to be upbeat and have strong, catchy melodic patterns, which I enjoy; two I’ve been listening to quite a lot have been Golden Hymn ~ Ibis Trismegistus and Tracks of the Snow Rabbit ~ Nowhere but Everywhere. The shooting games often have bullet patterns designed to partly follow the music, but I find that they still work well without context. That said, having played the boss battles where the music was sourced from, I’m not sure how much of the context I can strip from each of these tracks.

17:9 (Q2 2019 Review)

This quarter felt particularly tough for me, for various reasons. I remember being tasked as a 16-year old back in middle school to, for a philosophy class, write an essay on the meaning of life. I don’t remember the content of that essay particularly well; I remember that I took an existentialist approach to the problem. Essentially, it is up to oneself to create some semblance of meaning. I think I found the quarter more draining than normal because I was confronted with situations that made me re-evaluate some of the underlying principles I use to guide my decisions.

I’m still on the AtlasDB team. The transactions2 project I’ve been driving has finally been (mostly) completed. It has been almost nine months since this started, and it’s the largest and probably the most difficult project I’ve done professionally. I see quite a few parallels with MCMAS-Dynamic (though transactions2 is probably theoretically easier but more difficult in terms of implementation). There’s always a bit of burnout after launching these large projects, perhaps because of the substantial time and effort invested in them.

Looking forward, the lead stuff now means that I’m helping with scoping and guiding work on pretty much all the major things the team is doing – which also means that for a change I’m not actually directly leading an individual project. I’ve also continued to interview and (I hope) further refine my skills – I like the debugging facet and have kept plugging away at it.

I normally write a healthy section on finance, but it hasn’t featured as prominently this quarter. I normally update my tracker spreadsheets twice a month, on the 10th and 25th, but I missed the 10th June update completely. It’s perhaps a reflection on the importance of different things; as much as I would like to champion financial responsibility or support the FIRE movement, there are many more important things once one’s affairs are mostly in order. This was a pretty normal quarter in terms of saving and spending – there were many things that felt luxurious as I holidayed in Belgium and Japan, but a good chunk of that was prepaid in Q1. Investments seemed to pretty steadily push their way higher up the charts (I’m up a few percentage points); this is probably in part due to a fall in Sterling, though.

One thing that got more serious for me this quarter was learning German – or, as I should say, Ich lerne jetzt Deutsch. It’s a privilege to take lessons at Palantir and the instructor is excellent; besides that, I’ve also been using Lingvist (a flash-card app) to expand my vocabulary. I’ve found the grammar to be quite challenging; the myriad ways in which nouns and adjectives get declined is not something my past experience with English or Mandarin helps with very much. I often use strange mnemonics to keep track of noun gender (such as little Bobby Tables for der Tisch, a Brutalist town centre for das Zentrum, and Minnie Mouse for die Maus). Ich habe leider keine Konfidenz auf Deutsch zu schreiben – that is, I unfortunately don’t have the confidence to write in German (beyond simple phrases and isolated statements).

I travelled quite a bit this quarter, balanced between work and leisure. I visited Boston for the Palantir puzzlehunt. I also visited Singapore for Daniel’s wedding, and Brussels and Tokyo for holidays. It can be quite expensive, but I’ve been finding I need a bit more relief from the pressures of work and general administration than normal. I enjoyed these trips, to some extent in spite of very packed schedules. The Brussels and Japan trips were mainly food-focused (though the Musical Instruments Museum and Sankei-en Garden, respectively, were also standouts; I think we spent about two or three hours in each of these places, but if I was on my own I could imagine spending the whole day there). Satou Steakhouse (teppanyaki), Ginza Tamai (a restaurant specialising in sea eels, or anago) and even the somewhat more humble Toriyoshi (grilled chicken skewers or yakitori, and fried chicken or karaage) were all excellent. I’d like to go back, schedule allowing; I had a really good time.

This quarter also features a fairly large number of bank holidays in the UK, meaning that I had a number of three-day weekends (and four, in the case of Easter). I’ve started to take more interest in enjoying these extended holidays by trying to do different things (as opposed to focusing on reading, logic puzzles or things along those lines). It seems like I end up going on longer walks, and staring at coffee cups in cafes; past me would have decried this as a waste of money – and while I intellectually can’t deny that it is frivolous, I do still enjoy this.

In terms of logic puzzles, the WPF Sudoku and Puzzle GPs are almost over. The seventh round of the Sudoku GP ended last week, and it felt absolutely brutal (I scraped 325 points and a 98/414 rank). It wasn’t my worst round (that was the fourth round), but in round 4 I made steady progress while breaking a few puzzles while this time I struggled to tackle the puzzles at all. I had two good rounds in between (round 5: 51/502; round 6: 57/476). I had two decent rounds for the Puzzle GP – I’d say I’m weaker there, and I ranked a reasonable 90/384 in round 4 and 83/383 in round 5; conversely, round 6 was an absolute mess for me though and I ranked 207/349, which is my first sub-median score in a good while!

I played a lot of Slay the Spire in Q1 but this slowed down; in fact I haven’t spent very much time at all on computer games this quarter. I didn’t play very much in the way of board games as well, though I distinctly remember a Pictionary session where I managed to guess CURRY off a bunch of lambda expressions, and a few Codenames Duet clues – an AIRBASE, 3 clue for MESS, FLAG and APRON which landed perfectly, and a game which went wrong when I tried to be smart and gave a STEEL, 5 clue for a bunch of vaguely metal-related words not noticing that BEAM was an assassin – or rather, noticing that it was there, but having my mind filled with images of laser or wireless signal beams.

Musically I’m not sure where things were going this quarter. I did listen to more instrumental pieces. A good number of these were piano-focused, both classical (like Liszt’s Hungarian Rhapsody No. 2) and relatively modern (like Rush A and other entries in that series). Some of these also come from video games (like Fantastic Light, Ancient Flowers from the Touhou series). A common theme here might be speed – many of these pieces are very fast. Perhaps I find music to be an outlet for dissatisfaction when things are not going quickly enough.

On the flight back to Singapore, in between rounds of Tetris I listened to Calum Scott’s debut album Only Human. I think I recognised his name from his Dancing On My Own cover, though I really don’t watch much TV or listen to the radio so I didn’t know what kind of music he produced. It was mostly very listenable, though a bit on the heavier side (I guess in my opinion at least this fits his voice much better, though).

I particularly enjoyed three of the tracks on the album, though I think only one of them can reasonably qualify for my song of the quarter. The opener If Our Love Is Wrong is well put together, though more specific to Scott’s situation; the closer Not Dark Yet (a Bob Dylan cover) works well but is a bit too dark for me to enjoy – which is probably the point. My winner is the much more straightforward You Are The Reason; it’s a clean and well-executed piano ballad that seems to carry a certain gravitas. The line in the chorus about fixing what one has broken also appeals to me; I think if I look back at the songs I’ve chosen, failure and subsequent correction is a pretty common theme (e.g. Starting Over, These Days, Back from the Edge). Scott’s vocal line does get pretty difficult to follow, but it makes sense given the subject matter.

Notes from a Nervous Engineer (2019 Q1 Review)

I think the first time I came across the concept of a scarcity mindset (where one approaches problems believing resources are finite) when I was around 14 or so. This was in The 7 Habits of Highly Effective People. To quote Covey:

Most people are deeply scripted in what I call the Scarcity Mentality. They see life as having only so much, as though there were only one pie out there. And if someone were to get a big piece of the pie, it would mean less for everybody else.

Covey recommends its counterpart, the abundance mindset, which is the idea that there are enough resources out there for everyone. That said, I don’t buy in to the idea of abundance being superior, because resources and opportunities often are scarce. I’d bring in the Bruce Lee “I fear the man who has practiced one kick 10,000 times” quote here; bearing scarcity in mind forces prioritisation, and that if done well is really useful. This may be dangerous, but I’d hazard that scarcity can lead to fear that one is stagnating. This, if managed well, can drive one to, to use Covey’s terms, aggressively “sharpen the saw” (pursue self-improvement) as well.

There are sides of the scarcity mindset that are certainly dark. There is a danger of casting things that are not zero-sum games as zero-sum games. Aggressively focusing on scarcity can lead to excessive stress and blind short-term optimisation (manifesting in things like money dysmorphia as described in this Guardian article). I’m also somewhat guilty of this, but it can lead to hoarding. That said, in my experience a scarcity mindset is often unfairly tarred and feathered – it indeed can often be dangerous, but it has its uses.

Software Engineering

Things changed direction; I expected to move off AtlasDB, but instead became the tech lead (admittedly with a bit of dithering and some convincing from other storage experts – and a few non-storage ones too). My responsibilities have changed somewhat in that I have been spending more time maintaining context and reviewing code. I don’t think there are benchmarks, but I suspect the amount of individual development work that I do is still high relative to other TLs (in any case it’s a spectrum – I’ve worked with one in the past who did more work than I did).

I also got started on studying Designing Data-Intensive Applications after recommendation from some engineers whom I respect. Having spent almost two and a half years on AtlasDB, most of the material is not particularly new to me – that said, this would have been an excellent read when I just started on the team. I’d recommend the book for people working with distributed systems (even if they’re not necessarily working directly on distributed systems – e.g. if doing support).

Finances

With Brexit looming, the pound has been extremely volatile. I was a bit of an uneasy Remainer during the 2016 referendum. In any case, the way things have panned out since has sent me very firmly in the Remain direction now. I’d say my exposure to sterling cash is at relatively low levels. I tend to be somewhat risk-averse, and although GBP is probably undervalued, the danger of no-deal is there.

I haven’t been tracking the markets very closely; from what I remember things went up in January (after getting smashed at the end of December) and then have mostly gone sideways. It’s also coming to the end of the 2018/2019 tax year; I’ve seen the ISA ads around, though not so many for ‘use your capital gains allowance’ which is something I should look at this week.

Expenses-wise, Q1 has been awkwardly high; some of this is because of one-off expenses for activities that’ll actually take place in Q2 (travel and holidays). My overall savings rate is still decent, as income was higher because of bonuses.

Travelling

I had just two trips out of the UK this quarter, and interestingly both were to visit specific friends in the context of specific events. I went back to Singapore in January for Isaac’s wedding – that was a very short trip as I only had close to a day or so to actually spend with family. The other trip was to Zurich for a weekend trip in February to meet Stan.

Hobbies

The logic puzzle train has been chugging along. I took part in most of the WPF Sudoku and Puzzle GPs, though I missed one round of the puzzles as I was in Zurich that weekend. I’ve always been stronger at sudoku and it shows – I’m on overall rank 60/774, with rankings 82/599, 139/598 and 47/541 in the three rounds. I thought round 2 went pretty well, though I broke an easy Classic Sudoku and, more significantly, a (I think still easy) Braille Sudoku that was worth a lot of points. Round 3 was good – all three of the ‘weird’ variants at the end were disposed of quickly. For puzzles I’m on overall 167/557, with rankings of 102/434 and 93/405 in the two rounds I participated in. We’ll see how Sudoku Round 4 goes, though I think it went poorly for me.

I’ve been reading a fair bit too – some readers may recognise that the title of this post is inspired by Matt Haig’s Notes on a Nervous Planet. I first came across his earlier work Reasons to Stay Alive randomly in a Popular bookshop in Singapore late last year, when waiting to meet a friend. I found the book pretty captivating, though I didn’t buy it then – instead, I placed an order for the book to be delivered to me in London. Both of the books held my interest; the former was raw and pretty compelling, while the latter is more familiar territory for me and I think I could to some extent identify with his perspectives.

I also found James Clear’s Atomic Habits to be a very practical read; I’ve been following his emails for a while. I appreciated the principled approach the book presents. He first establishes that things that become habits tend to be obvious, attractive, easy and satisfying; he then explores how to influence behaviours to increase or decrease how much they show each of these traits.

General Thoughts

It’s been a stressful quarter; there has been a lot of change at work, unease in my financial situation, and discontent with things in general. Perhaps this is something worth thinking about; there’s a passage near the end of Notes on a Nervous Planet on diminishing returns, where Haig observes that many people have tendencies to repeatedly move the goalposts when successful. For me, “be good at math” became “top my class in math”, then “top my cohort in high school in math” (I failed this one, though unexpectedly got Physics instead), then “get a first at Imperial”, then “get the first at Imperial”… “with a 90 average”… “while running a club and working part time 20 hours per week”. Similarly, “be a good dev”… can quickly spiral into “with patents”, “building large features”, “be a principal engineer” and so on. It’s important to maintain perspective as to whether the repeated escalation of these goals is something one really wants to do.

There’s usually a song I associate with each quarter. This time around I’ve been listening a fair bit to Drunk Me by Mitchell Tenpenny. He’s a country artist and I don’t listen to country very much, but this is pretty much a straightforward pop song. There are some awkward metaphors in there, but generally I find the production pleasant, and the A4s he hits in the chorus are nice enough. The message involves giving up habits that are likely to lead the singer back to his ex, which is a pretty logical response.

I’ve been sober
‘Cause there ain’t no hangover like you girl
“Baby, can you come over?”
I always find those words at the bottom of a hundred proof

I don’t drink much alcohol, though I do drink quite a bit of coffee and chocolate. In a sense, my ‘alcohol’ would be activities or behaviours I find addictive that are likely to lead to ruin or negative consequences. This could include things like obsessive fear over how the markets are doing or how Brexit is going, or spending time procrastinating. I don’t think there is an object of spite here, unlike in the song, but nonetheless the idea that one may find value in cleaning up one’s life is something I can get behind.