Henrique Cabral
banner
hcabral.bsky.social
Henrique Cabral
@hcabral.bsky.social
Moving electrons around, not always the right way. Chaser of nanoseconds. 0.1x engineer. He/him. 🇵🇹🇳🇱
Not a world I am looking forward to.
July 16, 2025 at 10:08 PM
But at this rate, LLMs will balkanise the entire field into exclusive rings of mutual trust within which the old heuristics still hold against the tides of generated slop. Reputation will become ever more valuable. The outside will become a market for lemons, with the attendant incentives.
July 16, 2025 at 10:08 PM
Many developers underestimate the degree to which their ecosystem is held together by spit and trust. However flawed in practice, the promise of open source was always that anyone could contribute. And, for a few decades at least, it seemed like this might actually work and move us all forward.
July 16, 2025 at 10:08 PM
But from a societal perspective, it's clear how this can wreak havoc with the heuristics we use to review code, both in open source and proprietary projects. I'm hardly the first person to point this out, but the firsthand experience really makes the impending collapse concrete for me.
July 16, 2025 at 10:08 PM
The most concerning thing for me as an interviewer is how little signal I can get about the candidate from their solution. There's no reasoning to question in a follow-up interview, no theory of mind to build. They bet the house on a tool that requires eagle-eyed review and they failed at it.
July 16, 2025 at 10:08 PM
This student, however, produces what seems at first glance to be high-quality code that works with the provided inputs. It requires careful review and familiarity with the language to identify many of these problems. In fact, our standard evaluation matrix would grade this an excellent solution!
July 16, 2025 at 10:08 PM
In the end, reviewing this code did nothing to challenge my view of these tools. Some of these are issues I also find in other (presumably human-generated) submissions, but overall I am put in mind of an overeager but easily distracted student who gets things to work by trial and error.
July 16, 2025 at 10:08 PM
Some other bits of interest:

- Custom timestamp type instead of std::chrono (passed by reference despite being 64 bits)
- Use of pointer/size pairs instead of std::span
- Use of const std::string& instead of std::string_view
- Catching exceptions, logging, rethrowing, and catching and logging again
July 16, 2025 at 10:08 PM
From a correctness perspective, the biggest issue was parsing a network packet without properly validating its size. There was no out of bounds access thanks to a ham-fisted length check, but it essentially attempted to read the head and tail of the packet without verifying whether they overlap.
July 16, 2025 at 10:08 PM
The unit tests were another dead giveaway. There were extensive tests, mostly useless or even duplicated (including a test to "verify that Google Test is working"). One test checked debugging output; another used a "mock" class which essentially reimplemented the real class for no reason.
July 16, 2025 at 10:08 PM
These maps themselves (std::map, although ordering was unnecessary and unused) were not used efficiently. Insertions and some lookups used the subscript operator; these lookups, however, were also redundant.
July 16, 2025 at 10:08 PM
shared_ptr was also used to store data (unshared, with no type casting) in maps, and in one instance a unique_ptr was used to return a value from a function. The value ended up in one of the shared_ptr maps, but not before being unnecessarily copied.
July 16, 2025 at 10:08 PM
The code itself used a slew of abstract base classes with badly designed interfaces. These objects were stored in shared_ptrs in some cases and unique_ptrs in others. Aside from the inconsistency, shared_ptr is particularly glaring since there was no sharing whatsoever.
July 16, 2025 at 10:08 PM
The two most obvious signs were a surplus of small redundant comments and an extensive design doc, including Unicode art diagrams, with many points about potential future performance improvements which did not apply to the problem at all, couched in generic palaver about best industry practices.
July 16, 2025 at 10:08 PM
Is there a reason they cannot use the video component of some remote desktop protocol for screen sharing? I would expect this to be an ideal delta compression scenario
June 25, 2025 at 8:44 PM
Not a library but I was thrilled to find The Sapling Cage face out at the American Book Center here in Amsterdam last weekend!
January 28, 2025 at 10:38 PM
I have recently used a Beryl AX while traveling and was very impressed with the performance. I used it with Tailscale and an exit node in my home network, but the docs explicitly mention Mullvad as well. I expect their other routers also support it.
GL-MT3000 / Beryl AX
Beryl AX (GL-MT3000) is an OpenWrt multi-gigabit Wi-Fi 6 wireless router for frequent travelers and remote workforces to protect their digital assets and footprints online.
www.gl-inet.com
January 12, 2025 at 9:20 PM
We need a list of your favourite Marx bangers
December 3, 2024 at 7:36 AM
This is the one I'm using bsky.app/profile/did:...
November 25, 2024 at 6:33 PM
You're thinking about this the wrong way! You must push everyone to be stupider, not climb to their level
November 16, 2024 at 6:50 PM