Hi there 👋

Welcome to the personal blog of Kevin Sookocheff. I love to teach, speak, and write about distributed systems, cloud computing, architecture, and systems engineering.

Fixing display flicker for Dell monitors on Apple Silicon

If you have a Dell monitor and an M-series chip from Apple, you may have encountered flickering issues with your monitor which — at times — can render it completely unusable. The issue appears to be fairly widespread and can affect a number of Dell model and Apple silicon chip combinations, and has been acknowledged by Dell. The flicker is caused by the monitors LCD panel’s Image Compensation Algorithm (ICA) function repeatedly turning On and Off. The YCbCr Video generated from the Macs is at 17Gray level, it fluctuates between 15Gary and 17Gary. Hence it is repeatedly turning On and Off, the ICA which has a threshold setting of 16Gray. ...

April 24, 2025 · 1 min · Kevin Sookocheff

Cryptography for the Everyday Developer: Measuring Security in Bits

This is the fifth article in a series on Cryptography for the Everyday Developer. Follow along to learn the basics of modern cryptography and encryption. When discussing encryption, you’ll often hear talk about the strength of a security system as measured in “bits.” For example, systems might advertise their strength as having 128-bits or 256-bits. But what exactly does security measured in bits mean? Let’s demystify this common yet sometimes misunderstood concept. ...

March 20, 2025 · 2 min · Kevin Sookocheff

Cryptography for the Everyday Developer: Modular Arithmetic

This is the fourth article in a series on Cryptography for the Everyday Developer. Follow along to learn the basics of modern cryptography and encryption. Modular arithmetic is the foundation for asymmetric cryptography like RSA, elliptic curves, or Diffie-Hellman — all of them rely on the properties of modular arithmetic to guarantee security and secrecy. Since modular arithmetic is so important to cryptography, it pays to understand how it works. This post will help us along the journey by demystifying modular arithmetic, explaining how it works, and why it matters for cryptography. ...

March 17, 2025 · 9 min · Kevin Sookocheff

Cryptography for the Everyday Developer: Random Number Generators

This is the third article in a series on Cryptography for the Everyday Developer. Follow along to learn the basics of modern cryptography and encryption. Without randomness, cryptography would be impossible because all operations would become predictable and therefore insecure. — Jean-Philippe Aumasson, Serious Cryptography The cryptographic strength of most systems lies in their ability to generate random numbers that cannot be easily guessed or reproduced, making it difficult for adversaries to crack the encryption or predict the output. Unfortunately for us, computers and the software that they run are very predictable. As long as they are given the same inputs each time, they’ll always come up with the same outputs. This is very good for reliability, but not so good for cryptography where randomness and unpredictability are required for secure operation. ...

February 14, 2025 · 5 min · Kevin Sookocheff

Cryptography for the Everyday Developer: Security Goals

This is the second article in a series on Cryptography for the Everyday Developer. Follow along to learn the basics of modern cryptography and encryption. A cipher is only useful if it is secure. What makes a cipher secure? Let’s remember the use case for classical ciphers — keeping messages confidential. Caesar’s cipher and Vigenère’s cipher both suffer from a similar flaw, which makes them insecure and unusable for secure communication. For both ciphers, the flaw is obvious — these ciphers allow an attacker to learn how the cipher works by inspecting the ciphertext itself. This allows an eavesdropper can decrypt the message given only the ciphertext. A secure cipher, on the other hand, is one where it is not possible to learn anything about the plaintext or the cipher’s behaviour even by inspecting numerous plaintext or ciphertext messages. ...

January 28, 2025 · 3 min · Kevin Sookocheff

Cryptography for the Everyday Developer: Encryption Basics with Classical Ciphers

This is the first article in a series on Cryptography for the Everyday Developer. Follow along to learn the basics of modern cryptography and encryption. The best way to begin learning about encryption is by example. And thankfully, there exist many examples of encryption throughout history that we can draw from. One of the earliest well-known examples of encryption is the Caesar Cipher, and we will begin there. The Caesar cipher is one of the oldest and simplest forms of encryption. It works by shifting each letter in your message a fixed number of positions down the alphabet. For example, with a shift of 3: ...

January 22, 2025 · 5 min · Kevin Sookocheff

Clustering a DSM Using Simulated Annealing

In this blog post, we will explore how to use simulated annealing to cluster a Design Structure Matrix (DSM). We will also discuss how this approach differs from the implementation developed by Ronnie Thebeau as part of his master’s thesis. What is a Design Structure Matrix (DSM)? A Design Structure Matrix (DSM) is a compact, matrix representation of a system or project. It is used to model the relationships between elements in a system, such as tasks in a project or components in a product. Each row and column in the matrix represents an element, and the cells indicate the presence and strength of relationships between elements. ...

January 10, 2025 · 7 min · Kevin Sookocheff

In the Cloud, Cost is Everything

At AWS re:Invent 2023, Amazon CTO Werner Vogels delivered a talk on the laws of frugal architecture. While I initially filed away those insights to review later, a year of cloud architecture experience crystallized a fundamental truth: in cloud computing, cost isn’t just a financial consideration — it is a first-class architectural concern through which we should design and optimize our systems. Cloud providers charge for every conceivable resource: servers, API calls, data transfer, and computational milliseconds. But cost is more than just a line item on a monthly bill, it is a powerful forcing function that drives better architectural decisions. ...

December 17, 2024 · 3 min · Kevin Sookocheff

The Developers Guide to FIPS 140 Compliance

If you work with US government entities or corporations in regulated markets the subject of FIPS compliance may come up, especially in the context of FedRAMP authorization. FIPS 140-2 and FIPS 140-3 are a set of cryptographic standards that your application may need to adhere to dictating the appropriate ciphers or cryptographic functions that are in use. It can take a lot of effort to run a completely FIPS compliant architecture, but for application developers, the bottom line is that any code that uses cryptographic operations to secure customer data must use FIPS certified cryptographic libraries. ...

June 6, 2024 · 8 min · Kevin Sookocheff
Stylized Rubix Cube

Near infinite scaling with the scale cube and cell-based architecture

Most new applications are built as a single codebase and deployed as a monolith until product-market fit or the need for additional scale is required. Such monolithic applications are easy to write and maintain, and allow you to iterate quickly when there are a smaller number of users and the traffic is low. However, as traffic increases you will need to scale the application to handle the increase in load. One framework for scaling is the “Scale Cube” describe by AKF partners. ...

May 28, 2024 · 6 min · Kevin Sookocheff