about:drewcsillag

Jan 21, 2022 - 3 minute read - crypto ethereum bitcoin

On Blockchain, Crypto, stablecoins, NFTs, etc.

I get asked about blockchain, crypto, NFTs, and such every once in a while, and rather than counting on my memory to remember the whole thing, I decided to just do a quick write up.

My general thesis is this: the only things that really work for decentralization AND blockchain are things that themselves emanate from that blockchain. For example, bitcoins emanating from the bitcoin blockchain. Anything that the blockchain manages that doesn’t itself emanate from the blockchain requires some form of trust, auditing, and/or lawyers and strong contract law, otherwise it’s just garbage in/garbage out. If you need trust, auditing, lawyers, etc. there are simpler and cheaper ways than blockchain to manage the data.

Jan 15, 2022 - 1 minute read - programming

I Was on a Podcast

I had spoken to a recruiter, Harrison Edney, at some point a while ago, and we had a really great conversation. He mentioned he wanted to start a podcast, and wanted me to be the first guest. I was like: “Sure, why not?”

So we did, and the result is here which I don’t remember when we had the actual conversation, but it was posted on September 30, 2021.

Nov 14, 2021 - 4 minute read - programming

Yes, Programming is Hard

I saw the article in Communications of the ACM “What Does Saying That ‘Programming Is Hard’ Really Say, and About Whom?” and as a twenty-six year veteran of the profession, I thought “of course programming is hard! Duh!” I then spoke with a friend where after a bit said “Do they mean like writing? Writing isn’t hard, but writing a book is”.

So in a sense, no programming isn’t intrinsically hard I guess, but in practice it is. In practice the problem is ill defined and incomplete, the constraints will not be fully understood, tooling may not exist, or at least be unknown to you, systems will be buggy.

Nov 7, 2021 - 15 minute read - staff engineering gtd productivity

Managing Information as a Superpower

Many common archetypes of staff engineer involve a moderate to large scope of influence. One of the things I’ve come to realize, is in order to keep on top of things, and be even more effective is better management of information that comes to you. For me, the way I manage information has become a superpower.

The scope of my last three positions has involved large scopes – up to about sixty people. My current position had started in the low forties, and in a mere ten months has ballooned to sixty or so. I also manage a team of three. My scope will probably grow to around eighty by end of next year – though we have hired another staff engineer who hopefully will be able to take a chunk of this. The question becomes: how can you even begin to keep track of everything going on in an org of ten-plus teams working on who knows how many projects?

Aug 2, 2021 - 13 minute read - programming

Fun With Combinations

A co-worker recently gave a talk on shuffle sharding and the thought came to me: we know that that for n things taken k at a time you have nCk, and what that evaluates to; given n and k. How do we map a number between 1 and nCk to a unique set of selections, and vice versa, given the set of selections, can you get back to the original number?

Mar 21, 2021 - 9 minute read - leadership

Influence Without Authority

As you get more experience in being a software engineer, the trajectory that companies I have worked for look for you to be able to expand your scope. Something they will call out as a way to accomplish this is the term “influence without authority”, which is just a really fancy set of words that mean “persuasive”.

I’ve had good soft skills for a while, but if you asked me what exactly it was I was doing, I’d have had a hard time explaining what it was. Some time ago, I started thinking about what exactly it was I was doing, and have been digging into them ever since, and hope to write more frequently about how they apply in a business context. When I started thinking about influence without authority, and made the link to persuasion, my first thought was: how is persuasion distinct from manipulation - one is considered good; the other, bad. The best way I can think of to distinguish them is simply this: would the other person be pissed off at you for doing what you did? 

Feb 28, 2021 - 7 minute read - debugging logs sqlite

Log Analysis Using SQLite

It all started because I suck at the log searching tool I’ll call <LST>¹. Mostly because I used it a little, but not enough to warrant me really digging in and learning it for real and internalizing its search syntax.

Between me struggling with the tool, and that it would be multiple seconds between query and seeing results, I was getting really frustrated trying to diagnose issues with the services I was working on. Somewhere, I had seen a post about using SQLite for log analysis and I thought that seemed like an unusual but interesting idea, so I decided to give it a spin to see if it worked.

Feb 20, 2021 - 11 minute read - programming

Lies You Find In Code

When working in a code base that’s been around for a while, you will find lies in the code. These lies are usually not put there by nefarious actors, so there’s no conspiracy, or secret cabal. But either by engineers who don’t realize what they’ve done, or more commonly by code evolution, these things happen. 

These lies are the unaccounted time sucks when working in a code base, as people working on it have to dig deeper, search for things that don’t exist, maintain code that doesn’t need to exist, or worse make incorrect assumptions about the state of the world as they work through and around them. So it’s good to be aware of them and fix them when you see them.

Jun 14, 2020 - 14 minute read - quantum mechanics

Crackpot Post: Breaking Bell's Inequality?

This is very much a crackpot post. I’m not an SME in the area which I’m writing, so I’m totally unqualified to write on the subject and certainly wrong. But as I was digging into quantum stuff, I had thoughts. I did math. I even plotted a few things.

Sometimes something seems all mysterious and astounding. Then you learn how it works, and it’s really disappointing. For me, magic tricks often have been that way. Well, this past year I learned how machine learning works, and that was interesting, but somewhat unsatisfying, but fine. Quantum mechanics had been on my list for years, and I decided to learn more about it, now I wonder why people describe it in such odd ways when it needn’t be, such that I can’t think of a time where learning about science has made me angry.