Posts

Founder mode: Oxide and friends (best take so far)

Best take so far on founder mode:  https://oxide.computer/podcasts/oxide-and-friends/2098243 The hosts do a fantastic job of keeping the discussion entertaining, despite its length. Some key takeaways: Oxide write-intensive culture as a mechanism to build trust and keeping the company true to itself: a writing- (and reading-!) intensive company culture does, in fact, allow for scaling the kind of responsibility that Graham thinks of as founder mode the false dichotomy between founder mode and "traditional" manager mode the feat that founder mode will be used to justify all kind of behaviour and decisions Footnote: interestingly they link to the same interview of Brian Chesky that I linked too in my previous posts on the topic.

Rethinking Conventional Business Management: Insights from Brian Chesky and Airbnb

Two weeks ago, a post by Paul Graham about unconventional company management sparked significant discussion in the Refactoring community. Initially skeptical, I shared my thoughts after reading the post multiple times. Graham's compelling question lingered: what if the common way to run companies isn't the best approach after all? Intrigued by this idea, I decided to delve deeper. I watched two insightful interviews with Brian Chesky, CEO of Airbnb, which I believe offer context to his remarks at the YC event mentioned by Graham: "Leading through uncertainty: A design-led company" (Config 2023) "Brian Chesky's new playbook" I recommend the first video for those short on time. After watching these interviews, I found Chesky's ideas resonating strongly with me. His core philosophy can be distilled to: "If you do what everyone else does, you'll get the same results everyone else gets." This approach seems to be working. Airbnb's impr...

"Same results as everybody else" and "founder mode"

Image
A  post by Paul Graham caught a lot of attraction in the Refactoring community  a couple of weeks ago. I read the post a couple of times, and then rushed to share my thoughts (which I reproduce below). The essence (at the time) is that I was skeptical, even though I think Paul Graham's post asks a compelling question: what if the common way to run companies is not the best after all? Last week I finally had time to watch a couple appearances by Brian Chesky which I believe give an insight into what Brian Chesky might have have said at the YC event mentioned by PG, which is, AFAIU, not publicly available. For the record I watched these two: Leading through uncertainty: A design-led company - Brian Chesky (Config 2023 ) (my recommendation if you're short on time) Brian Chesky’s new playbook and I have to admit his ideas resonated a lot with me. Abstracting to the core I would say that Brian's approach can be summarized as ...

Quoting Will Larson: extract the kernel

One of my most unexpectedly controversial posts is Extract the Kernel , which argues that executives are generally directionally correct but specifically wrong, and it’s your job to understand the overarching direction without getting distracted by the narrow errors in their idea. from executive translation : it reminds me of Shreyas Doshi antithesis principle : everyone can be effective with a good boss, but it's more interesting (and relevant as a hireable skills) to be effective even with a "bad" boss. This KP episode explains it in much more details . It's an alternate take on the old adage: “In calm waters, everyone looks like a good sailor, but in stormy waters, you want to be the one with the experienced captain.” The experienced captain is our ability to handle these situations in imperfect conditions.

Syncthing: backup your phone pictures

My phone has (for all intents and purposes) fully replaced my DSLR, however this poses the question of how to back them up and share them with the rest of the rest of the household. One solution is of course to just enable the cloud storage of choice (Google Photos, Apple iCloud, etc) and for some time I relied on my old, trusty Flickr Pro account with its 1Tb of storage and the automated sync. With Flickr having gone through a few acquisitions I am becoming more and more concerned about whether the sync will keep working and how well. Also, I wanted something that I could run on my home PC (a Mac Mini).

Effectiveness of code reviews

Image
Really interesting research article on the impact of various factors on code review effectiveness. The research focuses on a single product: "analysis of data collected from a (commercial) software project and developers from a single software development company" The findings should be not new to all of us, but, personally, I always appreciate having data to back experience up. All the study findings in one chart The take aways 👇:  Change size : size negatively affects all outcomes of code review that we consider as an indication of effectiveness. Reviewers are less engaged and provide less feedback. Moreover, the duration is not linearly proportional to the patch size, which may affect the quality of code review. Number of Teams involved : code reviews involving more teams have lower effectiveness considering duration and participation, but higher effectiveness with respect to the overall comment density. Comment density by reviewer is slightly higher when two teams are i...

Quoting Deming: A bad system ...

A bad system will beat a good person every time. W. Edwards Deming at a February 1993 seminar.

There are no stupid questions, only stupid answers (my motto)

My motto (has been for a while): There are no stupid questions, only stupid answers

Not all tech debt is created equal

Image
Just like financial debt, not all tech debt is created equal. There is some you want to pay back ASAP and some you can slowly pay back over time just like the low, fixed-rate mortgages one could get in the past decade. Surely, you would not borrow from this guy On the other hand, if you borrowed money from the thug down the corner you'll want to pay him back right away. Credit card debt: you can give yourself some time, until the next sprint. The question is, how do you tell one tech debt from the other?

Error correction: cryptocurrency flooding npm with garbage modules

Image
Via:  https://blog.phylum.io/the-great-npm-garbage-patch/ The Tea protocol started with good intentions as a way to reward open-source contributions, but is ending up badly by polluting package repositories with (lots of) garbage packages. Most of these packages are harmless , but some are downright mischievous as they pretend to depend on the popular axios module, when in reality they're downloading a completely different thing instead. So, besides warming up the planet, now Crypto is also blowing up package repositories with trash. Not all hope is lost however: the key to building good systems is consistency and great error correction . So if Tea protocol recognizes the problem and acts upon it promptly, the course can still be reversed into a (possibly) positive direction.

Codescene clever approach to measuring complexity: whitespace

Image
I've heard or of Codescene through Matthew Skelton who mentioned it in his presentation "Untangling software delivery with Team Topologies, flow metrics, and careful decoupling" .  AFAIU Codescene is a contraption of the title of the book "You code as a Crime Scene" by CTO and Founder of Codescene Adam Tornhill . Illustration from Codescene documentation I was playing around with Codescene and came across a chart referencing a  ws_complexity metric. Curious about how complexity was measured, I asked and they pointed me to this document page:  https://codescene.io/docs/guides/technical/complexity-trends.html#what-s-complexity-anyway  Essentially Codescene measures amount of (leading) whitespace as a proxy for complexity. As they explain this has several advantages, the most important being that it is simple (both in terms of implementation and computation) to implement for almost all programming languages.

Quoting Dan North: people don't get blocked, work gets blocked

 Quoting Dan North on Patterns Of Effective Teams  on standups (he calls them seize the day ): I think Ken Schwaber is being misunderstood [...], so these three questions what did you do yesterday, what are you doing today, and are you blocked? These are the three standard question, he using those sort of questions, it's kind of close, yeah. Unfortunately you're totally missing the point - I do apologize - the questions are these: what work items moved yesterday, what work items are likely to move today, what work items are blocked . People are never blocked, right? If in doubt context switch, if you are worried about which context to switch, have a meeting, you lonely at work? have more meetings. So... people don't get blocked, work gets blocked . [...] You don't measure the workers, you measure the work items, we're measuring the the flow of work through a system...

Trying out Unblocked

Image
Disclaimer: I am not affiliated with Unblocked, nor Unblocked sponsored this post in any way. This is my a genuine account of my time spent with Unblocked. I wanted to give Unblocked a try for a while, but never got a good excuse. Last week I came across opslane , which does something I always thought would have been great to have as part a ChatOps setup. Since opslane does not support Prometheus Alertmanager I decided to fork it, and then give unblocked a try. First, I familiarized with the code in a codespace, once I had an idea of how the code is setup I decided to give Unblocked some tasks. The first one was to ask: how do I add a new alert source? BTW, these are the actual questions I used. As far as I can tell Unblocked answer was detailed and accurate. However, before jumping into writing code I needed to assess if my codescene could run tests. We should only touch a codebase after we've ensured it passes tests (it's green), righ...

How much MORE value am I adding?

The most effective way to kill anybody's commitment when they present an idea or work to us is to start suggesting changes. Now it's no longer their idea, and as a result their commitment will be cut in at least half. A reduced commitment will in turn negatively affect execution, then outcomes, and ultimately impact. And we don't want to negatively affect impact. So what we should instead think about is: how much MORE value am I adding? Unless it's an amazing margin (2x), the best course of action is just to say thanks, that's a great idea! How were you planning to execute it and is there anything that I can help with, now or later? Alternatively, if we really want to add something we can ask: what kind of feedback or advice are you looking for from me? By asking in this way we're still leaving the agency - and the commitment - with them. This does not apply only in employee - manager situations, but can happen in lower-stakes interactions too: think code revie...

AWS deprecating Cloud9

From https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/: After careful consideration, we have made the decision to close new customer access to AWS Cloud9, effective July 25, 2024. AWS Cloud9 existing customers can continue to use the service as normal. AWS continues to invest in security, availability, and performance improvements for AWS Cloud9, but we do not plan to introduce new features. Cloud9 , which was back then operating as a stand-alone (Dutch, IIRC) company, was my first Cloud IDE. It was amazing being able to do all sw development in the browser with literally nothing local (including C/CD, at that time Travis-ci was the golden standard. Does is still exist? Yep, it does).

No-money fun

Image
I first heard about the concept on no-money fun in The Knowledge Project Ep. #181 where it is said that the term was coined by  Mike Myers : You build whatever life you want to build. What I learned for myself, it’s what the actor Mike Myers… Mike Myers …, and they’re writing… Austin Powers, beautiful thinker, great comedian. In an interview, he talked about what he called “no-money fun,” no-money fun. He said, “When I was a kid, we would sit out by the airport, my dad and I, and we’d watch the planes land.” He said, “Because we had no money.” He said, “And we would watch the planes land and we would guess what kind of plane they were. And then we’d go to the lake and we would skip stones, and we’d watch cars and guess what color they were.” He said, “We grew up with not a lot of money.” He goes, “But I was always happy.” Somehow the concept stuck with me. As a kid I did not have a lot of money to spend, but I was happy because the place where I lived and my parents allowed for a ...

Brendan Gregg on the Crowdstrike incident

I guess I HAD to write about Crowdstrike, and I find this article by Brendan Gregg to be the right reason for jumping on the bandwagon. I love how Brendan shows us a path forward that does not rely on static code analysis, or more tests, or more QA, or no more automatic updates, but instead solves the problem by changing the approach entirely. Instead of writing a kernel driver to perform whatever security checks are necessary, Brendan suggests we'll use eBPF instead which is designed to run custom programs within the kernel. AFAIU Brendan has been one of the major proponents of eBPF for monitoring and has some awesome tooling to show for it:  https://github.com/iovisor/bcc The idea is that since eBPF has been designed to run custom programs it is designed and hardened against errors that could cause the kernel to crash. Of course it won't be completely effective against code with poor performance and that is ok. What I did not know was that Microsoft has a port of eBPF for W...

HTTM: CLI Time Machine for ZFS, BTRFS/NILFS2 now supports restic

httm added support for restic with version 0.4.0. I've been a long time restic user, and even used restic to backup large datasets (TB) encrypted to S3. While backup is very fast, restore is where things get a little bit more complicated (and slow). Using httm with restic is pretty simple. First you mount the restic repository: restic -r /your/restic/repo/path mount /mnt/restic then you can run httm in browse mode for example for the current directory (assuming it's a directory backed up by restic): httm -b --alt-store=restic . easy peasy.

Quoting Gerald Weinberg on problems

 Once you eliminate your number one problem, number two gets a promotion. From the Secrets of Consulting, A Guide to Giving and Getting Advice Successfully . Might be my next read, I need something humorous. Found via the Personal MBA: Constraints

STM employee reaches out to Reddit for UX feedback

Image
I was casually browsing Reddit today when I bumped into this post in  r/embedded : the account is new (their first post), and the post says brand affiliate which should mean the post is authentic. Regardless of that, I truly believe STM is going in the right direction. Embedded developers should expect more (i.e. more boiler plate such as automated testing, rtos integration, linting, etc) from manufacturers, and IMO STM should start supporting other languages than C/C++ too, i.e. rust or swift (maybe on select MCU only initially). I am convinced whoever adds rust or swift support will have a significant market advantage, especially if we consider the pressure that major organizations (NSA, White House) are putting on the adoption of memory safe programming languages. I've pitched the idea to our contact at STM last year, and haven't heard back so far. As I've argued before embedded development is ripe for a sudden change of pace. Fatma , one of our most talented engine...