Resources Related to Talks

The Minefield Beyond Algorithms

Seminar presentation at Dept. of CSE, IIT Palakkad, 5 Feb 2025.

[Slides]

While the correctness of software has its roots in their specification and the algorithms used, there is a lot that can go wrong in the implementation side. Many a time, this is due to the peculiarities (to be polite) of programming languages, architectures, and other players including operating systems. Even a piece of code written by a seasoned developer that seems to mirror a formally proven algorithm can behave in unexpected ways due to details like this.

I plan to cover some interesting examples of things going wrong in the implementation side, with a slight detour to some hobby projects to showcase the complexities that a developer should face even to create a seemingly silly application. Roughly speaking, it will include pitfalls like undefined behaviour, some graphics-related practices like Gamma Correction, procedural drawing, test automation, and the development of a trans-compiler and wrapper libraries for custom purposes.

While there is research happening in this direction, it is out of scope of this task. Please come prepared for a less serious session.

Git: A Developer's Time Machine

An online session for Vocational Higher Secondary Schools in Kerala, 16 Jan 2025.

[Slides]

Code Generation: How the Lazy Becomes the Prolific

A talk delivered at Open Source India 2022.

Do We Know Enough About Computer Memory?

An introduction to the concepts, pitfalls and curious cases from a programmer's viewpoint. Language-specific examples/clarifications include C, Go, JavaScript and Python.

Slides.

LaTeX