Programming

Distributed Ops for Distributed Apps

My proposal for a talk I delivered at Velocity Amsterdam, 2016. Slides are included at the bottom of the page. For the full transcript of the talk, visit https://sudarkoff.blog/p/distributed-ops-for-distributed-apps (paid subscription, free trial available). Description In the world of microservices, when things are moving fast and constantly breaking, the accepted wisdom is that teams must own the whole stack and operate their services themselves. But how much stack is “the whole stack”?
Feb 10, 2016 | 368 Words | Read more…

Scripting versus automation

This was originally shared with the engineering org of a company I worked for at the time. It’s my stream of consciousness about the type of system my team was building at the time. Reproducing here without modifications, enjoy the chaos of my unedited remblings. Team, It became clear to me in the last few days that there’s not enough clarity about what we’re trying to build. We keep talking about relatively small and specific things, but we never discuss the philosophy behind it all.
Sep 15, 2014 | 825 Words | Read more…

Key Git concepts

Understanding a few key concepts will help you make sense of how Git works and how to use it effectively. Full history With Git, every repository contains a full copy of the project history, and no repository is inherently more important than any other. Content-addressable Git stores content in files with names that are 40-hexdigit (160-bit) SHA1 hashes. This has some interesting implications. It means for example that Git will never store the same data twice within a repository because identical data would have identical SHA1 hashes and therefore be stored in the same file.
May 23, 2013 | 1439 Words | Read more…

Fitness Proportionate Disk Selection

This is a proposal I made for improving the disk selection algorithm of a distributed file storage system. Current Disk Selection Algorithm The current algorithm randomly selects a disk among the top N percent and assigns it to a given equivalence class. This strategy is suboptimal for a couple of reasons: Even when there’s a great variability of fitness values among the top N percent of the disks, the most suitable disks will have the same probability of being selected as the least suitable disks, thus leading to unbalanced placement.
May 1, 2013 | 507 Words | Read more…

Palm OS is dead

I was cleaning up the address book on my PDA the other day when I suddenly realized that Palm OS is going to die pretty soon! Yes, I think its days are counted and here’s why. Programming for the Palm OS platform has a very distinct “embedded” smell to it. Memory management is a mess, supporting different screen resolutions is a major pain in the butt, and instead of a real file system developers have to deal with this stupid notion that everything is a database.
Nov 15, 2004 | 278 Words | Read more…

Programmer's Productivity

A meditative piece in which I explore the notion of productivity as applied to the craft of a software developer (and other such crap). Yesterday I spent twelve hours hunting down a most bizarre bug. I flipped through literally thousands of lines of code, I set dozens of breakpoints only to realize that those places were being hit hundreds of times, and it is virtually impossible to debug it that way.
Dec 18, 2003 | 307 Words | Read more…