Posts

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...

Bad leaders are great decision makers and solution providers

I was watching this video , and at around 37' he says something along the lines of: we need to stop rewarding leaders for making good decisions, and instead reward them for enabling their teams to make the decisions/find the solutions which reminded me to of this passage in  L. David Marquet's Turn the ship around! : When the performance of a unit goes down after an officer leaves, it is taken as a sign that he was a good leader, not that he was ineffective in training his people properly.

Quoting Nikhil Suresh on AI

Warning: strong language ahead.

Is Embedded Systems development ripe for a jump in productivity? 30' with Nerves Project

In a chat on the refactoring community somebody mentioned Nerves Project as an alternative to the reigning programming language (C) in embedded systems. I was at the airport with 30' to kill and decided to check it out and see how I could go in just half an hour. Turns out I managed to fully compile the hello_nerves project and stopped short of flashing the image to a rpi3 which I did not have with me. I find this pretty impressive, considering it's a fully-fleshed Linux-based system for half hour of work on a flaky internet connection.

Quoting luminousmen: Senior Engineer Fatigue

An article I related to a lot on seniority and what it brings to the table (even though the term fatigue gives it too much of a negative connotation IMHO): Senior Fatigue is characterized not by a decline in productivity but by a deliberate deceleration. The vibrant energy of younger engineers, bursting with rapid pull requests and overflowing with design documents, starts to give way to a more measured pace. At this stage, seniors might send fewer pull requests or be quieter in meetings, but this isn't an indicator of lost productivity. Quite the opposite — seniors are often finding more efficient, impactful ways to contribute, leveraging their vast experience. The seasoned engineer learns that sometimes the best code is the code you never wrote. They become adept at delegating tasks, capitalizing on the strengths of their colleagues, and asking the dreaded question, "But why?" — a question that often leads to the heart of what needs to be solved, avoiding unnecessary w...

Readwise and Reader

I've been a Readwise user for 4 years now and I can say without a doubt that it has been the best investment I have made towards increasing the retention of what I read. I lost count of the times that the Daily Review brought up the exact highlight I needed in that moment, making me more effective and more content. Their Reader is equally good and I have moved over all my feeds from Feedly as soon as it was usable. The Chrome extension lets you save pages for reading later, highlight content, etc. It's just an indispensable tool. I'm just a satisfied, paying user and Readwise did not sponsor this content.

[link] Apache DevLake

Image
Today I came across DevLake on the DORA Resources page. DevLake is an:  Open-Source Dev Data Platform for Productivity It seems to be an incubating Apache Project which means it might still be a bit rough around the edges. It's going to be interesting to look into it.

Analysis of the Verizon Data Breach Investigations Report [link]

Compelling analysis of the Verizon Data Breach Investigations Report : 1. financial motive is behind most breaches 2. IT systems are the easiest target: developers have figured out how to quickly patch their systems, IT has not yet 3. AI is *not* playing a role in cyberattacks (yet?) 4. email still plays a relevant role because  of email overload

An engineering roadmap distinct from product is a set up for failure

What a great insight from the recent Refactoring podcast episode  with Laura Tacho ! https://lauratacho.com/blog/engineering-roadmap-destined-to-fail This is something I had intuitively grasped and, consequently, I always tried very very hard to weave the Engineering in the Product roadmap (and even after that, it's still difficult to find the right balance in the daily work, as some of my reports tell me). I'm grateful that Laura expressed this concept so clearly, allowing me to take the insight out of the subconscious (the things we do instinctively) and into the conscious space (the things we actively and purposefully seek out).

Leadership tech debt

This week on the  https://refactoring.fm/ community a member asked the difference between a good Engineering manager and an exceptional Engineering manager. In the conversations that followed someone suggested that " a good manager leads the team, a great manager creates a team of leaders ". That immediately reminded me of how in Turn the ship around , the author Captain L. David Marquet argues that leaders’ performance should be measured by how their reports perform after the leader has left. A few days later I was listening to the Knowledge Project podcast (I usually listen to most episodes two or three times to make sure I can get all the knowledge), and I made the connection of the above to tech debt. Someone who is a good leader but is required/essential for the performance of his reports is the transposition of code tech debt in the organization hierarchy. The organization trades going further in the long term for going fast in the now. Touch points between the two...

Agency, skill and mastery

Image
Agency, skill, and mastery are topics on which I have so many thoughts, and I am still discovering myself. This writing summarizes my position as of roughly April 2024. Agency, as pictured below, is to take on things, doing hard things without waiting for conditions to be perfect or otherwise blaming others or your circumstances. Examples of low agency: I could develop so much faster if only the code was not so crappy!  We would be already finished if this or that team had done their job properly!  If only my boss (or company) understood me, I could really do great things for this Company or my team! High agency behavior:  I'll try to make changes to the code/add tests/etc as I work on parts of it so that I will, over time, be faster. Let's see if there are ways that I...

XZ Backdoor: we all were in a movie

The XZ backdoor has been covered extensively in various writings, but I had to listen to this episode because it features Andres Freund, who discovered the backdoor: https://oxide.computer/podcasts/oxide-and-friends/1843393 And of course, Bryan Cantrill did not disappoint. His energy and passion, together with the unique views and understanding he has around topics that are otherwise trite and thought to be well understood , to me looks pretty much like how a reality distortion field would work. The big revelation for me is that we've all been featured in a movie. You know the classic movie plot in which one person finds something out, and then they go about telling everybody about it, and nobody believes them but they take it upon themselves to save the world? That's what happened, well except everybody took Andres seriously from the beginning this time. And the world was saved. Pheeewww. Well, it was saved this time.

ArchUnit: enforce architecture in Java codebases

Today , I came across ArchUnit  which lets you enforce architectural choices on any Java codebase. For example you might want to enforce that certain domain object methods are only accessed by the persistence layer classes, but not in, let's view-related classes, with the exception of tests. This can be helpful to avoid spaghetti code, with all classes depending on each other. Java packages can help in this regard, but they are a rather coarse filter. Additionally, a unit test adds an immediately clear and conspicuous layer of intention to the codebase by expressing certain design choices that might be otherwise overlooked, unless a careful code review catches them. It's pretty clear to me that Java, even with all its shortcomings and despite Oracle efforts to sabotage it , offers the best development environment in terms of tooling, IDEs, support, and libraries. Notice that in the video, the host Ted M. Young is wearing the Change Behavior beanie, the other beanie is Refactor...

Drucker: the manager

Image
I recently picked up People and Performance by  Peter F. Drucker . If you're keen on understanding what is this manager job that everybody talks about (especially if you're new to management) this book will set you on the right path. I've thoroughly enjoyed reading it and I wanted to make a visual summary for my own use. I think it came out nice enough that it might be worth sharing it, so here it is:

Brain dump on the recent Figma database infrastructure articles

Image
Warning: this post is in a stream-of-consciousness form. Approach it accordingly. Figma recently posted a couple of articles ( one and two ) on the challenge they are facing to keep their database infrastructure up with the massive growth they are going through, and how they're solving it. The last article especially was re-shared in some of my circles, and my initial gut reaction to the articles can be summed up in the immortal words of Jeff Goldblum in Jurassic Park : “Your Scientists Were So Preoccupied With Whether Or Not They Could, They Didn’t Stop To Think If They Should” . After I (admittedly) quickly read the article a couple of times, I still did not "get it". IMHO is a red flag as critical infra stuff like that should be simple: simple to understand, simple to operate, simple to troubleshoot, simple to restore. Had I been in their position, what would I have done? I could have left the article at it, but I've made it an habit to never say something "n...