robert xu

good programmers are masochists

There’s an aspect of remote-working that I will say is both a bit easier to work with, and at the same time a bit harder to work with – complex topics are often more difficult to gain consensus on when there’s not a whiteboard in the room.

That definitely isn’t a universal opinion. Some people prefer remote working, and don’t find the difficulty in it at all. I love remote working. But when it comes to explaining, sometimes I just want to get people into a room with a whiteboard and just… draw it out.

Because often times I want to just draw out a use case, a user interaction, or just generally how systems link together. Usually when I want to draw this happens on the fly. In cases where we would all be in the office I can usually just grab the nearest whiteboard and just start drawing. But when I’m remote I either need to be prepared with a drawing ahead of time, or I need to use digital tools to do my drawing.

And I’ve struggled with drawing on my Wacom One. Maybe I’m not using the right software, but I am so used to annotating what I write, and breaking my flow to type something in is just rough. I’ve tried using software like Bluescape (and through a browser this sucks), and it’s just not… precise. I want to be able to write like I do on a whiteboard. And it doesn’t flow nicely to me.

I will admit that the tools I have at work are lacklustre. And – to be clear – I’m not dissing on remote work! Sure, even the fact that I have a tablet is already a better situation that most. And yeah we have digital tools. But it feels like there’s a big difference sometimes between being able to quickly draw something out on a whiteboard on the fly versus having to take the time to draw up something ahead of time because of digital limitations.

I’ve been looking ideas on how I can make digital whiteboarding feel more natural. Because right now I’m having to write a lot of documents to compensate, and while that’s fine, and it helps me practice my writing (which has greatly improved over the past year), it feels like I’ve slowed down in my decision making and collaboration. Maybe that’s for the better.


twenty twenty one, tired, lonely, and quiet, yet so fulfilling.


In my quest to find a better wireless headset to take calls with, I ended up taking a dive into Bluetooth codecs.

It's pretty messy. My original intent was to find some earbuds that I could use during video calls, when I couldn't use my speakers and microphone. Maybe I'm not at my desk, or I really don't want to wear my headphones. I think it just couldn't continue sitting on my head much longer just because of how often I had to keep it on my head – AND it's gotten so much worse this year because the number of meetings I've been involved in have exponentially increased.

So I bought the cheapest earbuds that seemed reasonable quality for use – Anker's Soundcore Life P2 earbuds. Seemed fine, a little miffed that these earbuds can't share the same name sometimes (if I take the left ones out first, they're marked “Life P2 Earbuds-L”). But the moment the microphone activated on the earbuds, the audio quality more or less died. Calls are hard enough to pay attention to; it's so much worse when it's way more unclear.

That took me into a dive on Bluetooth profiles (A2DP vs HSP/HFP), which is something I haven't had to explore before. But basically, nothing was really pointing to a solution for higher-quality audio that could sustain both ways.

I ended up finding the following

  • Bluetooth 5.2 is supposed to bring a marked improvement to bandwidth rates or something. I'm unsure if this is just marketing or not.
  • There are two codecs that attempt to do duplex audio – or at least some form of having the microphone work whilst still having somewhat high quality audio on the headphones. That is Faststream and AptX-Low Latency, both of which seem to be horribly hard to find.

The most authoritative information on these seem to be Pipewire’s implementation of AptX-LL:

No, Faststream appears to be a hack that combines a 48 kHz 212 kbps SBC audio stream with a 16 kHz 72kbps voice stream. Compare this to msBC which is 16 khZ 60.8 kbps bidirectional. Basically you are getting average quality audio with slightly higher than HFP quality voice.

Whereas AptX-LL is 44 kHz 352 kbps bi-directional.

It seems to be incredibly hard to find headsets that support either nowadays. So I'm still looking, but I'm really hoping to at least maybe find some earbuds that support either of those protocols.

aside: I’ve been having frustrations searching Amazon for earbuds that support either of these protocols. It’s incredibly frustrating to search up “Bluetooth Faststream earbuds” or “Bluetooth Apt-X LL earbuds” and not get any relevant results. I took a plunge and ordered Anker Soundcore Life P2 Mini earbuds because I thought maybe it was supported – nope. Time to return those. I found some Chinese-branded Faststream sport headset earphones, and I think I’ve managed to find a Apt-X LL sport headset earphones too, so I guess I’ll try those and see how it goes.

And they’re all sport headsets, too. Sigh. Earbuds have so much marketing and no substance attached.


burnout sucks.

if there's one piece of advice that i've tried to adhere to (given by one of my former managers, who i very much still look up to), it's to make sure you don't make any decisions under duress. run towards an opportunity, not away from a situation.

figuring out how far under duress i've been has been something that i've been traditionally poor at. when i had my first burnout spike, i recovered by focusing on what i wanted to do, in that moment, and declared everything else off-limits to try to recover. maybe it's an aspect of work that i know i have an interest in and is ambiguous enough to warrant further digging; maybe it's just helping others get disambiguate their tasks to ensure the entire project moves forward.

my second burnout spike moved much the same way; the cause of that one was personal-related; i shifted my focus to burnout recovery and tried my best to ensure that people knew i was stemming burnout and dealing with the root cause.

but this most recent burnout spike has been not only the most intense, but also the one that has come from misunderstanding how far under duress i've been. there's a couple of factors: crazy ambiguity that's taken a lot of effort to untangle; a pandemic that refuses to end and is slowly normalising longer working hours; and an insistence by certain upper level figures to death march instead of reasonably push back a date.

by the time i had forced myself to take a break (or rather, my friends), i was feeling every inch of the burnout. i felt like my contributions weren't making impacts to slow the tide; but what was worse was that every impact that some of my closest colleagues were feeling were impacting me, too. and so i tried to find something that would be interesting for me to work on, and direct my attention to help me recover from burnout.

in retrospect, that should have been my red flag. when i went talking with different teams, i wasn't motivated to work on any of their problems, or i found red flags that i knew would hurt my recovery. by the time i had talked with a number of teams, i was starting to feel desperate. i ended up pulling on the one thing i knew i was interested in – and that was a huge mistake.

if there's only one thing that interests you, that's not a bad thing. but that one thing is almost never in isolation from other aspects of that thing. and i had totally failed to take into account all the other aspects i would be dealing with. i had ended up running away from a situation instead of running towards an opportunity.

so that one thing i was interested in – i'm not really that motivated to pursue anymore. more to the point, i'm not motivated to do anything at the moment. i'm doing my best right now to stem any further burnout, but that's really hard when i've used my last interest and my motivation has evaporated as a result. my current manager has been hugely supportive of my experiences and has helped me every step of the way so far. they can only do so much, though, and i won't hesitate to say that i'm not mentally equipped to deal with more than what i have at the moment. (i understand why people take sabbaticals, now.)

so if i'm interacting with you over the next few weeks, months (or have interacted with you over the past few weeks or months), i apologise. burnout is a tricky thing to manage, and taking steps to remediate burnout is a hard and ardous, but necessary task to manage, and my focus will be on that for the near future.


i've taken the time to update the blog again (which, you know, only happens whenever i have a major life event, it seems). still trying to make my way towards a normal blogging cadence – the list of topics i want to blog about are growing larger every day – but for now, i've added a link to my polywork page and added in some magic around the description.

Notably, my blog's description and footer were actually CSS content blocks – so you could see it because it was rendered as CSS, but it was unselectable, because it was considered decoration. I ended up adding in some Javascript to get the computed style, clear the CSS content, and replace it with the actual text (from the CSS content – had to do a couple of .replaceAll() calls to reformat it), but I think the end result came out pretty well?

Yeah, it uses jQuery. I know, there are native browser APIs I could have used. But this was quick and dirty, and honestly, my fallback for that is always to instinctively pull in jQuery to get it done. I'll probably spend some time later this week to remove jQuery and just use native browser calls.

edit: I removed jQuery! It was very easy.


it's the holiday season. Here in New York, we're teetering on the precipice of a second wave of COVID-19.

I can't say much has changed all these months. Slowly some restaurants are opening up, but many more have closed down – casualties of an uncontrolled pandemic and a lack of a safety net. I've been back to the office every so often – working from home just gets tiring. I've kind of gotten used to it, but being productive takes a lot more effort without the environment change, and if I have a bad night of sleep, I basically have to write that day off and productivity-less. I've finally gotten used to my setup, but I'm also beginning to grow very tired of the gaming chair I have – which is peeling faux leather on the seat cushion from how much more I've used it these couple of months than any time else I've had it. Potential Herman Miller purchase?

Summer flew by – usually summer is marked by how much hotter it gets, but when you spend the vast majority of it indoors, suddenly it's gone in a blink of an eye. The hardest part for me was Daylight Savings Time – the change hit me so much harder this year as a result. It's also marked a shift in trying to go out and enjoy at least a little indoor dining while I can – because I know this winter is going to be much tougher than normal.

And I didn't go home for Thanksgiving. I last visited my parents in September – a quick trip around the time of my birthday – and back then, the airports at least at LGA and DCA were nowhere near anything resembling crowded. Hearing that 1.5 million people still travelled on an airplane for Thanksgiving was a big oof – and I ended up cancelling my flight to DCA the day of the flight. Shout out to Delta – I'm glad they're still allowing changes and keeping middle seats clear. (I'll gladly pay extra if you keep doing it until a vaccine comes, hint hint.)

And so here we are, about to head into December. What will that bring? Who knows. (Hopefully not another lockdown, but it's looking more and more likely by the day with the numbers trending as they are.)


We're almost 3 months into lockdown. Wow.

Time flies. On 15 January I was on a plane to Shanghai as a normal routine work trip, and by 23 January I was wearing a mask and heading back to New York worried about the sudden lockdown of Wuhan.

Working from home during this has been a challenge. The first time I did it, I remember coming back to the office with a mess of a document and remarking to my colleague, “how do you focus? I couldn't get anything done.” I remember it was so concerning to so many of my colleagues that I had essentially had a cliff dive in productivity, and all I could do was shrug my shoulders and remark how it all seemed like a blur. And it still does – I'm not sure what happened, just that I had a document, words were not falling into place, and I couldn't understand why.

Fast forward to this situation today, and the initial work from home issue took hold again, but at a shorter interval – possibly because I planned for it. But as someone who tried to keep a strict separation of work and home, physically more than anything, my home workstation was nowhere near prepared for this. Buying KVMs, laptop stands, new adapters... it made for some tough times at the start of this one, especially since it was sold out everywhere. I didn't plan well enough – probably should have bought all of these things before everyone went into lockdown, but I probably thought I can survive through this again, and try my best for it to not be a blur – then when it passed 2 weeks I realised that was more than definitely not happening.

And being so used to physical separation of work and home sucks, too. There are days where I sit down at my computer at 9am and don't get up until 9pm, and I'm still staring at the same screens, except now they're my computer instead of the laptop I have plugged in. So I'm still sat here, and that's not a good thing.

I got a pull up bar, though, so occasionally when I'm stressed or need to stretch my legs I'll go over there, attempt a pull up, hear my back crack from the stretching, and then go back and sit down – but it'll feel much better.

Anyway, other than the obvious productivity hit, I think things have been relatively okay on my end. Kind of wish I had a patio. But not sure there's enough money in the world to afford a place with a patio in New York City right now.


By now I'm sure you've heard of the recent macOS supplemental update that rolled out to basically everyone and bricked a ton of devices – that includes Catalina, Mojave, and High Sierra. I know tons of people who have Macbooks and have been impacted badly.

The thing I keep wondering is, at a time where most of us are stuck at home, why push out a buggy update like this? I think this is where processes need to be called into question, because typically companies would want to avoid any updates during peak season (I know at work this is sage advice; this is definitely peak season for Apple when so many people rely on their devices and there's no convenient mechanism to get them repaired due to COVID-19).

Does Apple consider the owners of its devices its customers? Because for the businesses that are just hanging on and need their devices, any blow like this could be devastating to them – and with this update, it seems that Apple isn't following the same line of thinking there.

(And aside, if it doesn't, then let me do whatever the hell I want on my device, and stop trying to be gatekeepers if you don't want us to be customers either.)


2020 is here! happy new year, but also, things have definitely changed since the last time I wrote a post on here.

last year, i went to hawaii for the first time, went back to the philippines to see family i haven't seen in over 10 years, took a road trip from los angeles to san diego to see friends i haven't seen in a while, reunited with some friends back in maryland that i haven't seen since high school...

this year is already shaping up to be an interesting one. lots of travels planned, but also trying to push forward my involvement in open source again. it's stalled heavily but i want to make it work.

and i finally started casually streaming games on the side! only every so often otherwise how else am i going to find time to do anything else? but it's happening.

here's to a good 2020.


purchasing a new laptop is difficult.

there are so many factors that come into it – chief amongst them usually the question of “do I need this?” – but afterwards, it’s easy to get lost in a world of specs and displays and whatnot…

but one thing i seem to have a hard stop on is keyboard layout.

not qwerty or azerty or anything like that, but more like: can I use fn-arrow keys to go home/end/page up/page down?

it seems like such a minor issue but it actually really affects the way I type on a keyboard. especially in code and when I’m typing documents, I actually find it really handy to be able to arrow key around the document both in small increments, but also around the whole page.

i’ve found, however, that a lot of laptops don’t follow the fn-arrow keys philosophy. some of them change the arrow keys to volume or prev/next; some of them change it to volume/brightness; and some of them just leave the keys bare.

to make matters worse, the home/end keys, if they’re not on the arrow keys, are either on the top of the keyboard in some randomly inaccessible place, or off to the side, where they still require me to break my line of thought to find where those keys are.

at least macbooks are pretty consistent – cmd-arrow keys for mac applications, fn-arrow keys for console applications. i don’t mind trying either because at least it’s second nature and doesn’t break my line of thought so much – my hand isn’t moving from the arrow keys and typically my pinky is on fn and my thumb on cmd at that point.

but seriously, shopping for laptops is just a pain.



Enter your email to subscribe to updates.