Learning & Teaching
I’m happy to help people improve their programming skills, provided they are willing to do the same for me. If you live in the San Francisco Bay Area and would like to spend a few hours learning and teaching programming topics (perhaps on the weekends), then feel free to email me.
Keep in Mind
- I won’t help you with projects for formal courses or professional work.
- I will not work on an “idea for an app” kind of projects with you. You must know what you want to learn as opposed to what you want to build.
- Any code that I’ll write will be under an Apache License.
What I can (probably) Teach
- General programming in Python, C, and Java.
- Using a Unix command-line effectively.
- General object-oriented programming, and functional programming (à la OCaml).
What I Want to Learn
- Writing device drivers and kernel-level code for operating systems (e.g. Linux, FreeBSD, OpenBSD, Illumos, etc).
- Compiler design and Programming Language theory.
- The internals of commonly available database engines (e.g. Postgres, MariaDB).
- Haskell-style functional programming with a highly expressive type system.
- Android and iOS development.
- ReactJS or another framework of that style.
Open Source Work
If you have a project with the standard Apache, BSD, MIT, or GPLv2 licenses, and you think I might be able to contribute to that, you can send me an email.
Past Open Source Work
- Watchman: As an intern at Facebook, I was responsible for 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.
- cuautograde: A collection of utilities that made my life a bit easier as a teaching assistant back at Cornell.
- pyuiutils: A few utilities that made the OpenCV/NumPy/tkinter a bit easier for me when I was creating a few projects for a class that I was a teaching assistant for.
- P4FPGA: I fixed a few bugs in the compiler toolchain while trying to set it up for my Masters research work.
- Aegis: A toy password manager that no one should try to use without rewriting it a fourth time.
I’m a very Amateur photographer - I have a good camera (Sony Alpha 6500), but haven’t used it much. Hopefully that will change in the next few months as I start going on hikes with it.
I’m mostly interested in photographing scenes (natural or cityscapes) as opposed to people or macro stuff. If you are someone with similar interests, I’m happy to chat - just email me!