Code
I am passionate about software development. I have worked on a variety of projects, ranging from web development to artificial intelligence. I think being able to write good code is a major asset for any researcher, and I’m interested in projects where I can develop those skills further.
Programming languages
I am mainly proficient in Python, which I have been using extensively since I was in preparatory classes. Some of my first projects in Python were a program to generate Mandelbrot’s fractal and a percolation simulation.
I’ve used a lot of other languages proficiently over the years, but Python is really my native language. In most other languages I need a bit of time to get back to speed, though I can usually pick them up quickly. I would typically try to use Python for most of my projects, and fall back to Rust for performance-critical parts.
Web and mobile development
I started web development early on by learning HTML, CSS, PHP, and SQL. During my bachelor’s degree, I learned Django and a bit of React, along with a good deal of useful tools (docker, git, bash, make, etc.). When I was a software engineer at Theodo, I learned a lot more about React, as well as some AWS serverless for the backend. I also worked on a few mobile apps using React Native.
Side projects
I work on a lot of coding projects in my free time, and I try to share the more polished ones on GitHub. Here are some of my recent projects:
autograd: A tensor library with pytorch-style autograd. The idea with this project is to have a simple and efficient tensor library that can be used for educational purposes, with a Rust backend for performance and a Python frontend for ease of use. It’s heavily inspired by PyTorch and has non-abysmal performance (which is not a small feat!). I was able to train a toy neural network on MNIST with it, which is a good start.
- pdf-watermark: A CLI tool to add watermarks to PDF files in bulk. I made this because I needed it, and went the extra mile to make it a reusable tool.
- indentalog: An indented progress logger for Python, with an imperative syntax. Sometimes you want to see what part of your program is running, though you don’t want to use the debugger. If you try to use print statements, the output becomes messy quickly. Tools like
tqdm
are great for progress bars, but not for logging every function call. This tool is meant to be used in those cases, and the output will look like this: