Computing, Math and Beauty

About me

Hello, I am VinothKumar Raman. I live in Chennai, India. I have over 15 years of experience building software systems. Particularly large data systems. I am very interested in functional programming languages and type systems. I began a PhD at Chennai Mathematical Institute focusing on the same area but had to discontinue due to time constraints. I have a Masters in Software Engineering from Coimbatore Institute of Technology.

I have a ton of experience in Scala, Java, JavaScript and Typescript.

I have worked on small personal and professional projects Haskell, Purescript, Rust, Zig, Julia, Elixir and Python

vinothkumarramanb at gmail dot com

Personal projects

Chess engine

A work in progress chess engine implementation to understand Data oriented design. There is a beautiful documentation on stockfish here, which I am using to build.

Zig utilities

  • zig-timestamp - A utility that represents UTC timestamp (excluding leap seconds for simplicity). Allows us to get weekday, month, parse dates etc.
  • zig-rocksdb - An incomplete wrapper over RocksDB in zig.

I wrote both these utilities while trying to do a proof of concept implementation of algo trading system at work.

Stonks

notebook-like UI backed by Apache derby to query and analyze stock ticks. Added few cool aggregation functions on derby to do linear regression. Also added a vector data type. Originally wanted to use duckdb, but it was very unstable at that time. If I were to do this now, that would be my choice of Database.

Zerodha.jl

Fascinated by Julia's performance with type-stable functions. I aimed to build the first version of the algo trading platform at Quantman with Julia. Built an api client for Zerodha stock broker's api in Julia. Later for other reasons stuck to JVM.

Statistically

Small library to do Ordinary Least Squares and Dickey fuller's (ADF, CADF too) stationary timeseries analysis in Nodejs. This was used at my work to analyse timeseries of stock symbols to see if they have enough correlation to do pair trading.

Godel

A proof checker based on Calculus of constructions. The idea was to have math books which can run on browser but help you to prove things using the proof checker. I've built the initial proof checker working based on a paper by Simon Peyton Jones.

Galois

Idea was to emit metrics as monoid representations into Kafka topic per key. They are consolidated into rocksdb databases which can be queried per key. There were lot of metrics (aggregations) that are supported from averages, histogram, approximate unique counts (hyperloglog), approximate percentiles (qdigest).

bubblewrap

Built an async crawler library used at work to crawl the web for e-commerce product pages. It's tailored to internal use, so adapting it externally might require effort.

amoeba

A small utility to directly map case classes to configs in Typesafe config (HOCON). I think these days there are better ways to do this.

Hindley

An implementation of type inference algorithm by for Simply Typed Lambda Calculus.

brainsuck

A brainfuck interpreter in C.