Victor Farazdagi

Victor Farazdagi

Shallow musings on software engineering

10 Feb 2026

On Subtyping and Variance in Rust

Subtyping and variance can be tricky concepts. This post provides a concise overview of how Rust’s lifetime-based subtyping works, and how variance governs the propagation of subtyping through type constructors.
07 Apr 2024

Typestate pattern in Rust

The typestate pattern is a powerful tool for enforcing the correctness of an object state and the validity of its state transitions. It allows to control the initial state of an object, its input and output types, shared data across states, and the methods available in each state. All these invariants are enforced by the type system, at compile time.
01 Jul 2020

SoK: Attestation Aggregation Algorithms

In order to increase profitability, attestations must be aggregated in a way to cover as many individual attestors as possible. Let’s explore the ways to do such an aggregation.
15 Dec 2018

Practice Problem: Sparse Subgraph

Yet another NP-Completeness practice problem. This time from Graph Theory.
14 Dec 2018

Practice Problem: Almost-SAT

If you are reviewing Theory of Computation, here is a nice and simple example of NP-Completeness proof.