This page is about what I like to do in a non-professional capacity as a programmer.
There’s a separate page for recruiters.
Teaching Computer Science
I’m happy to teach (and preach) programming and Computer Science. There are few conditions though:
- You need to be San Francisco Bay Area so that we can meet up at least once.
- You will need to work around my schedule.
- I will teach on my own terms; don’t try to bribe or pay me.
- I prefer teaching individuals, but groups of up to 3 people might be OK.
What I can (Probably) Teach
- Object-oriented programming.
- Some functional programming.
- Python, Java, and C.
- Some C++, Matlab, SQL.
- Basics of a Unix-like system (such as macOS or Linux).
- Version control systems (git and Mercurial).
Open Source Work
You can send me an email if you think I can contribute to an open source project.
Past Open Source Work
- Watchman: I worked on improving Unicode support for Watchman across Windows, macOS, and Linux, as well as for creating a Python 3 + asyncio client for Watchman.
- go-octokit: This is a Golang wrapper around the GitHub APIs. I worked on it as a part of Facebook Open Academy and Cornell’s course in Open-Source Software Engineering.
- cuautograde: A collection of utilities that helped me automate grading of some parts of programming assignments for the courses that I was a TA for.
- pyuiutils: A few utilities that made using OpenCV, NumPy, and tkinter together a bit easier for me when I was creating a few projects for a course on Computer Vision as a TA.
- P4FPGA: I fixed a few bugs in the compiler toolchain while trying to set it up for my Masters research work.
- Aegis: This was a toy password manager written for a class project at Cornell. Not for any serious use.
I have a new blog here, if you’re interested.