About:

Varun Gandhi is associated with writing, compilers, software engineering, and minutiae.

Website:

Specializations:

Subscribe to RSS:
The author reflects on a bug encountered while working on the scip-python indexer at Sourcegraph, analyzing its causes and implications. They discuss the importance of understanding the context of bugs, the limitations of counterf...
This blog post discusses the use of assertions in programming, particularly for long-lived software projects. It covers the author's personal experiences with assertions across various codebases, including their history, practical...
The blog post critiques the superficiality of many programming discussions and literature, emphasizing the need for deeper theoretical frameworks in program design. It contrasts the file deletion behaviors of Windows and Unix syst...
The blog post presents a hypothetical conversation between two programming language designers, Emmett and Pratik, discussing the benefits and drawbacks of effect systems in programming languages. They explore various aspects such ...
A group of six programmers, all experienced in a dynamically typed programming language, debate the merits and functionalities of statically typed programming languages during their lunch breaks. They express various opinions on t...
The text discusses three different notions of software complexity by Rich Hickey, John Ousterhout, and Zach Tellman. Hickey defines simplicity as having oneness and contrasts it with 'easy'. Ousterhout defines complexity as anythi...
The text discusses the importance of learning how to judge outcomes in unfamiliar contexts as a core skill for leaders. It provides examples of outcome judgement in interactions with LLMs, as a tech lead, and as a founder. The aut...
The text is an epic treatise on error models for systems programming languages, targeting practitioners interested in programming language design. It discusses the importance of error handling in programming languages, the need fo...
The text discusses the characteristics of optimizers in compiler and database development, including contingent criticality, limited control, limited testability, and limited visibility. It also highlights the need for optimizers ...
The author reflects on their time working at Apple on the Swift team, discussing their experiences with the job offer, open source projects, benchmarking, partnering with HBCUs, and pay intransparency. They share negative experien...
The text is a reflection on the author's experience at the final Strange Loop conference, including their personal history and the impact the event had on their career. The author shares their thoughts on the presentations, the pe...
The text discusses the author's experience with UBSan flags and a dynamic type error inside Clang while working on a C++ project. The author details the process of identifying and resolving the issue, including the use of various ...
The text discusses why Zig-style generics are not well-suited for most languages. It explains the limitations and pitfalls of Zig's compilation scheme for generics and how it differs from other languages. The author emphasizes tha...
The author shares their experience working with Go for 6 months, highlighting both positive and negative aspects of the language. They discuss the impact of fast compile times, built-in profiling support, and default optimization ...
The text discusses the importance of user research in programming language development, particularly in the context of compilers. It highlights the different potential users of a compiler, their needs, and how those needs affect c...
The text discusses the problems with poorly run meetings and proposes the 'Not Rocket Science Rule of Meetings' which suggests that planned meetings of three or more people should be accompanied by shared, written, and persistent ...
The text discusses the concept of scope sets and their application in name resolution for programming languages. It explains the concept of scope sets, their application in resolving names, and their benefits in modeling common ru...
Nelson Elhage published a newsletter post Tagged unions are overrated, describing problems with tagged unions and pattern matching in existing languages. He argues that tagged unions are overrated for implementing language ASTs an...

0Don't Snark

2020-09-01

The text discusses the issue of snarky remarks in written communication, particularly in programming communities. It explains why people snark, the negative impact of snark, and how to avoid being snarky. The author provides three...
This is a guide for beginners to Haskell, providing recommendations for learning resources, getting help, setting up the environment, using libraries, and writing code. The author emphasizes the importance of simplicity and popula...
The text discusses the concept of principled ad-hoc polymorphism in Haskell, exploring the tradeoffs and design space options. It delves into coherence, canonicity, and problems with demanding canonicity. It also highlights proble...
The text discusses the experience of writing a compiler in Haskell, highlighting the benefits and challenges of using the language. It covers various aspects of Haskell, including its functional nature, type checking, pattern matc...

0Language Zoo

2017-12-01

The text discusses the evolution of languages used by biobots, from speech to the creation of new languages for issuing tasks to widgets. It explores the societal impact of the new languages, the emergence of a zoo of languages, a...

0Many Numbers

2016-11-01

A mathematician encounters numbers 0, 1, 2, and ω, and offers them hot chocolate and a place to stay. More numbers keep arriving, and she runs out of food and space. She writes down the numbers and their relationships, and draws b...