Danshu Sharma
Welcome to Danshu’s corner on the World Wide Web!
This tiny website is my way of putting a flag on the internet. It has some links to the code I've written, a link to my blog (still working on actually writing said blog post), and my contact info.
About Me
I'm a Computer Science student at Drexel (graduating 2025), a programmer, a computer enthusiast, and a homeserver enjoyer. I enjoy writing commandline programs/tools to make life easier, and I also have an interest in systems programming and infrastructure as code.
My most recent experience was at Monetate as a Software Engineering Co-Op. Previously, I was a Software Development Co-Op at Susquehanna International Group and a Computational Modeling Engineer Co-Op at Montai before that.
Outside of work, I enjoy reading in the Speculative Fiction genre (currently reading The Stormlight Archives), playing cricket, watching movies, and ocassionaly baking.
Projects
Here's some of the main projects that I've been working on:
-
TheSeptaTimes: Information about SEPTA trains, right in your terminal
This project was born because of my desire to not leave the terminal to check for the next train going home (I commute to campus). It was originally written in Python but I've fallen for the rewrite it in rust meme.
tst
has been an absolute breeze to work with in rust. The first party tooling is phenomenal, and I'm using cargo-dist to automatically build and distribute binaries for linux, mac, and windows.It can show the next trains going from one station to another, next arrivals at any given train station, and info on the current status of your train. Though I personally use
tst
to show the next two trains home on my status bar.While most of the commands in
tst
come from the public septa API, I've also created Septum to augmenttst
with endpoints that the public api doesn't provide.Septum
probably deserves its own blurb of text but I don't feel like adding another section. It scrapes pages, transforms data from undocumented endpoints used by septa (the network inspector tool in your browser is an incredible tool), and serves it all very nicely using FastAPI. Its deployed behind a reverse proxy using nginx, and has rate limiting because I can't afford a beefy VPS (I act as if I have users other than my friends). -
Tilde: An opinionated, yet hassle-free homeserver deployment
As I started to grow as a programmer, the need to host my own infrastructure grew as well. What started with Jellyfin on an old laptop, eventually grew into a dedicated server build with IaC to go with it.
Written with the help of Pyinfra, Tilde is an effort towards reproducible homeserver deployments for my friends and I. It manages the installation of core packages, installing docker, deploying services via docker-compose, setting up DDNS, and setting up a wireguard tunnel so I can access my services from anywhere.
DDNS has historically to be quite annoying to set up and DDNS update clients never felt good enough. To fix that, I also built ZenDNS so that managing DDNS would be as simple as a cron job. Cooked up with simplicity and serenity in mind, ZenDNS does exactly what I want. It has support for Cloudflare, Namecheap, and DuckDNS. It's pretty neat I'd say.
All in all, Tilde is a starting point that I wish I had when I first got started. It's extremely hackable and I hope I can continue to maintain it for a very long time.
Honorable Mentions
Here's another set of tinkering efforts that haven't been a focus, but worthwhile nonetheless:
-
dotconfig
: My config files, well intentioned and shaped with love. -
lovesay
: Cowsay, but full of love. -
SpotiFetch
: A pretty and colorful fetch tool for your Spotify data. -
kolorz
: A rust library for printing colored text to the terminal
Contact
-
e-mail:
contact (AT) danshu (DOT) co
- full resume and details available by request