Polymath Engineer Weekly #104
Databases Wisdom, Low Performers, Attack Vectors, HNSW, EBS, SRE and Dependency Injection
Hello again.
Comic of the week
Links of the week
Things I Wished More Developers Knew About Databases
In data-heavy systems, databases are at the core of system design goals and tradeoffs. Even though it is impossible to ignore how databases work, the problems that application developers foresee and experience will often be just the tip of the iceberg. In this series, I’m sharing a few insights I specifically found useful for developers who are not specialized in this domain.
How to Effectively Manage Low Performers: The CARES Framework
As a manager, one of the most challenging tasks is to help low-performing team members improve their motivation and skill levels. It’s essential to understand that these team members are still valuable and can contribute significantly to the team’s success with the right guidance. To assist managers in this endeavor, I introduce the CARES framework — a five-step process designed to transform low performers into key contributors.
Mitigating Attack Vectors in GitHub Workflows
GitHub Actions are commonly used to automate processes in repositories, by running CI (continuous integration) tests on pull requests for example. It can also be used to make a package release process more secure just by making it automated. But, it is important to be careful to ensure that they are safe and do not expose the project to attacks. Understanding how workflows can be part of the attack surface for a GitHub project helps us understand how to prevent it.
Do you want to be the first to know about new posts? Subscribe now for FREE. Just cool content, no SPAM!
Understanding pgvector's HNSW Index Storage in Postgres
Creating a vector index with pgvector is straightforward - just run CREATE INDEX ON t USING hnsw(col vector_l2_ops). But what is actually going on under the hood as we run this and insert or modify data?
In this article, we'll take a deep dive to understand the underlying index file created by pgvector in Postgres.
Continuous reinvention: A brief history of block storage at AWS
We started with software virtualization. Until late 2017 all EC2 instances ran on the Xen hypervisor. With devices in Xen, there is a ring queue setup that allows guest instances, or domains, to share information with a privileged driver domain (dom0) for the purposes of IO and other emulated devices. The EBS client ran in dom0 as a kernel block device. If we follow an IO request from the instance, just to get off of the EC2 host there are many queues: the instance block device queue, the Xen ring, the dom0 kernel block device queue, and the EBS client network queue. In most systems, performance issues are compounding, and it’s helpful to focus on components in isolation.
"SRE" doesn't seem to mean anything useful any more
To me, a SRE is *both* a sysadmin AND a programmer, developer, whatever you want to call it. It's a logical-and, not an XOR.
By sysadmin, I mean "runs a mean Unix box, including fixing things and diving deeply when they break", and by the programmer/whatever part of it, I mean "makes stuff come into existence that wasn't there before". In particular, I expect someone to run the *right* things on those boxes, to find the actual problems and not just reboot stuff that looks squirrelly, and that they write good, solid code that's respectful of the systems and the network. They probably write programs to make the sysadmin part of the job run itself. Automation for the win.
I have created a survey to get feedback from you. It takes only 2 minutes.
Book of the week
Dependency Injection Principles, Practices, and Patterns
Have a nice week. 😉
Have you read last week's post? Check the archive.