3 ms·
Some tools I built at my last job: 1. Pronto [0]: An "ORM" that mapped a protobuf to an object in MongoDB. The idea was to extend it to other storage backends
by gravypod 5y ago
Some tools I built at my last job:
1. Pronto [0]: An "ORM" that mapped a protobuf to an object in MongoDB. The idea was to extend it to other storage backends (RocksDB, sstable, sqlite, etc) to make it easy for a service owner to decide what access pattern they needed and easily and efficiently map a proto to it. It wasn't too slow and was very intuitive for people to use since it only exposed a LevelDB-like API (Get(key), Set(key, value), List(filter)) and it made use of some of the newer features of MongoDB's libraries to do sorts and streaming on the client side. Really lowered latency and DB size requirements.
2. bazel_compose [1]: A tool to wrap Bazel, rules_docker, ibazel, and docker-compose to give developers a fast, hermetic, and automatically rebuilding/restarting local environment for development. You could essentially go to `http://frontent-a.localhost http://frontent-a.localhost` in your browser and get routed to the right frontend.
3. branchpoke [2]: When I joined we had ~300 open branches per developer. People would hack something, push it to git, and forget about it. Some branches had critical fixes that were deployed before getting into master. Lovely startup things ;). I wrote this to send everyone a slack message once a week about 10 branches they had open that were over a month old in our monorepo. Over a few months we deleted most of the old branches.
Stuff I built at college:
1. Parking Analysis [3]: My college had an awful parking situation. I setup a cron to hit an undocumented API grab the number of spots open in the parking lots. I graphed those with a heatmap to find when our parking lot filled up around different holidays.
2. Butcher School [4]: A website used to "study" (memorize) the ARRL exam question set. It used some regex to parse the .doc file that is published by ARRL into it's json so anyone can create an updated set of questions. It also ran in local storage so you could study without internet on your laptop (like in the car on your way to Dayton). I built this for students who were having a tough time joining the Amateur Radio Club at NJIT (I was the treasurer). It's not the best tool by any means. It's just the most free (price and libre).
[0] - https://github.com/CaperAi/pronto/ https://github.com/CaperAi/pronto/
[1] - https://github.com/CaperAi/bazel_compose https://github.com/CaperAi/bazel_compose
[2] - https://github.com/CaperAi/branchpoke https://github.com/CaperAi/branchpoke
[3] - https://github.com/gravypod/NJITParking/ https://github.com/gravypod/NJITParking/
[4] - https://github.com/gravypod/ButcherSchool https://github.com/gravypod/ButcherSchool