-
Resizing an EFI Partition on Windows 11
I’ve been having Windows Update failures (I’m on Windows Insider Beta Channel) on my SER 6 Max for about a year. Until recently, I was doing the short-term fonts delete fix (see below). Last night I did the proper fix and it was a lot easier than expected. Good preparation and testing afterward is the key to make sure EFI / bootmgr is healthy.
If you haven’t seen this issue with Windows update, you will soon:
-
AI-Powered Infrastructure Hardening: Using Gemini-CLI for GCP Security Auditing
Security auditing in the cloud often devolves into an exercise in “alert fatigue.” Traditional tools like Security Command Center or sprawling shell scripts produce massive CSV exports that are exhausting to parse and difficult to prioritize.
Enter the AI-driven approach. By using an agent like Gemini-CLI as an active “Security Co-pilot,” you can move away from static checklists toward an interactive, iterative discovery process. Gemini-CLI can ingest complex JSON outputs, understand IAM relationships contextually, and help you hunt down misconfigurations in real-time.
-
Migrating to a Monorepo from Microservices with Git Subtree
As systems grow, the “one repo per microservice” pattern can lead to significant overhead: dependency hell, fragmented CI/CD, and difficulty in cross-service refactoring. Migrating to a monorepo often becomes the logical next step for many engineering teams.
The biggest technical challenge during this migration is preserving the commit history of each individual service. You don’t want to just copy files; you want to bring the years of context, bug fixes, and development history with them.
-
Managing Windows Dotfiles with a Git Bare Repo
Managing dotfiles on Windows can be a challenge if you want to keep your home directory clean without relying on symlinks or complex management tools. A “Git Bare Repository” approach allows you to track configuration files (like
.gitconfig,.vimrc, or PowerShell profiles) directly in their original locations.The Bare Repository Concept
A bare repository is a Git repository without a working directory. By pointing the “working tree” to your home directory while keeping the “git directory” separate (e.g., in
~/.cfg), you can manage your files across the system as if they were in a single repo, without Git interfering with other files in your home folder. -
Forking Go Modules (Or Any Lib) Using Subtree
The two common patterns to forking a module are (1) forking via a separate repo or (2) vendoring, which forks all deps into the current module (or app). I recommend a third approach to forking using
git subtreeandgo mod edit -replace. It’s very similar to repo forking without the repoLet’s say you’ve made modifications to
github.com/tj/go-spin. Once preserving changes in a repo is needed, usegit subtreeto move the fork into your monorepo, or app repo -
POLP with GCP when migrating from AWS
When migrating to GCP from AWS some features are front-and-center – like projects & folders. The IAM design differences are a bit less obvious until they bite you.
In order to practice POLP (Principle of Least Privilege) on GCP , the hiearchy of IAM permissions will need to be transformed.
Whereas AWS IAM focuses on configuration mapping principles to resources & roles, GCP offers a more prominent inheritance model of Org → Folders → Projects → Resources. Moreover, many resources like service-accounts, buckets can themselves have direct IAM bindings , leading to “hidden” IAM bindings for the unininitiated.
-
Git Recombine Pattern for /etc config
Recording
/etc/config in git is a recommended way to track history and revert breaking changes. In many cases, content needs to be imported and transformed from other repositories before being deployed as/etc/config on a VM . Config changes to/etcare often made in haste during development & in emergencies. While git is helpful in recording those changes locally, often content needs to be managed on one machine and pushed to another. Or content can be in an outside repo with a different directory schema. -
Why GCP is More Usable for Developers
Teams should consider many qualities when choosing a cloud provider like AWS, GCP (Google Cloud Platform) or Microsoft Azure. Product offerings, familiarity, pricing, and usability – among others.
Compared to AWS, Google Cloud Platform (GCP) is more usable for developers due to it’s core design approach surrounding resources, projects, APIs and Identities (IAM). This project-first approach avoids common bad practices like spaghetti namespaces, excessive permissions, and accidental exposure. Moreover, GCP includes much more advanced logging & alerting tools, comparable to Splunk and Data Dog, right out of the box.
-
Fighting GCP & Firebase Cloud Client CLI and SDK Bloat
Client CLIs & SDKs for GCP, Firebase and other clouds are terribly bloated. GCP includes a python distro, firebase includes node+npm. This goes unnoticed on overpowered devboxes, but impacts your cloud bill with storage, vcpu, wall-time and transfer fees. If you are trying to downsize your VMs, you will find that the client SDK/ CLI pre-requisites will often hang your machine terminal by exausting vcpu and iops budgets. Cloud container services are often storage-limited to ram-disks–so CLI installs consume what little you have.
-
WSL2 Backup to OneDrive Cloud
WSL2 provides great disk performance, but it requires storing the files separately in a virtual disk that is not accessible by OneDrive. WSL2 can be backed up with wsl –export Debian to a VHD or TGZ, but that is a complete disk backup of 20gb or more – not scalable for hourly backups.
With this approach, we use Windows Task Scheduler to trigger
robocopyto incrementally sync directories from WSL2 to Onedrive’s native FS, so incremental copies are fast ( 1 s per 10k files), and OneDrive sync time remains negligible.