The majority of my projects, including many of those mentioned below, are hosted on GitHub. You can find their source code and more detailed descriptions there, all easily accessible from my profile on the platform.
Alternatively, you can view and/or download my resume directly from this site.
Develop to Disrupt
I won ‘Best Solo Hack’ for the first hackathon I participated in, a 48-hour online one with nearly a hundred submissions. The theme was disrupting an industry, and my submission, a language learning tool named SurgeLingo that leveraged natural language processing and PostgreSQL databases to provide learners with personalized sentences, effectivel did this with the foreign language learning industry.
- View your life anywhere from days to decades
- Color code stages of your life based on events
- Fill out stages of your life with text and images
- Set specific goals for yourself as simple cards
- View detailed statistics about your life and download your own life calendar
…and a lot more! Online Life Calendar is completely free, has over half a hundred users at the time of writing, and I hope that it is a useful tool for motivation and planning. You can view the source code at the repository here.
This is my most popular project, one that has steadily gained stars and downloads on GitHub as well as frequent questions on social media.
low-face-mode provides an entertaining alternative to constantly shutting down your computer - it simply dims and brightens the screen based on whether or not you are in the camera’s view.
- custom facial recogntion
- setting up a verified user database
- face detection
The above means that your computer will dim (using AppleScript) and brighten based on whether anyone is in the field of view. I’m planning on expanding it to shut down the computer entirely, but the current project is already in use as my most starred repo, with 70 stars and counting.
This is perhaps my favorite project, as I love visualizations and statistics. It displays a GitHub repo-esque colorbar for your directory straight from the command-line, which can be viewed as a png or svg image.
I was always greatly annoyed by the fact that the GitHub language bar that showed which languages were in a repo was only limited to GitHub, and could not be run by itself. So, I set out to recreate this as a Python package. Now with my program, you can just run
statistics from anywhere in your terminal and gain a beautiful colorbar, like the one seen above - and best of all, it’s highly customizable.
These are some features, which I trust make it even better than GitHub’s
- choose to exclude certain filetypes
- specify the depth to which the program searches from the root directory
- control how your exported image looks
- pick the limit at which files blend into
- decide the colors used and maximum number of filetypes
This even supports named files, such as a
Dockerfile or a
Cakefile. You can find out more by reading the
README.md at the repo, or even by downloading it yourself.
I’ve recently started learning Mandarin, and I’ve dabbled in French and Spanish in the past. One thing visibly apparent is that there is no program to help with passive vocabulary strengthening - and so I set out to fix this.
Wallpapers are surprisingly easy to control from Python, and Python has a beautiful, albeit not well maintained or known library,
pycairo. I used
pycairo to generate images for vocabulary relating to different languages, selectable from the command-line. You could also choose to create images relating to states or countries, and even mix and match.
The result was an ever-shifting Desktop wallpaper with a flashcard theme, one that encouraged learning visually without the added work. For example for Mandarin, this was the Chinese character, pronunciation, category, and meaning (see the images above, and click
Open in new tab to view them in a larger format. You can also visit the repository).
Although I used to play chess when I was younger, I strayed away from the royal game until the coronavirus pandemic of 2020, when more time at home and less spent commuting meant that I had to find more hobbies.
Chess was one such hobby, and I soon grew enamored with the game, often playing for hours each day and reading strategy guides or great games.
Throughout this time spent reading and exploring the chess world, I found that there was a surprising lack of software which helped chess players view their games at a glance and provided a visual representation of their play style. I realized that I had to fill that hole, and so went on to spend a few weeks coding up
plotly and API usage.
I put a lot of effort into this project, allowing players to choose their color, games file, shading, hover tips, etc., and then subsequently released it on GitHub.
I always liked having nice backgrounds for my computer, whether I was using it or not. However, the default backgrounds for Mac computers were lackluster at best, and they were often passive and uninteresting. As well as that, they grew old after some time.
So, I decided that I would write a quick Python program that would download x number of wallpaper images from Reddit each morning and set them as my custom, shifting wallpaper. Through this project, I learned about setting up bots, the
praw library, and expanded my knowledge of web scraping with
When I shared this project online, I was pleased to find that many Mac and even Windows and Linux people were using it. This encouraged me to write a detailed README.md (available as a blog post) about how to setup Reddit bots, and subsequently led to hundreds of clones and 40 stars for the repository.
I’m always open to working on new projects, and they are the best part of programming to me - solving problems through a few lines of code. It always puts a smile on my face when I see a new download or star, and I hope that I am making a small difference for the people that are using my code.
I hope that in the future I will be able to continue to find novel, interesting projects to work on, and I know that in the meantime I’ll continue to educate myself and learn as a programmer.