Raj Kane: Portfolio

Programming Portfolio

Outdoorly – a startup providing a prosales platform for outdoor gear that I worked for remotely. I developed the merchant dashboard to give admin users the ability to manage their products, stores, and brands. I owned a React and TypeScript codebase utilizing Apollo with GraphQL to query and mutate data.


Publications

Basis Reduction in Lattice Cryptography (Source) – an undergraduate honors thesis at Colby College that develops an understanding of lattices and their use in cryptography. It examines how various basis reduction algorithms can reduce lattice bases to solve the Shortest Vector Problem and the Closest Vector Problem. In particular, I implemented the LLL Algorithm in Python (Source).


Miscellaneous

Acoustigif (Source) – a very simple Bash script that uses ffmpeg to combine a GIF and an MP3 into an MP4. I use this script for making my DJ mix videos that I upload to YouTube.

Bennyfreeland.github.io – a personal website I set up for my friend Ben Freeland to display his drone footage, particularly customizing Markdown, CSS, and HTML on top of an existing Jekyll theme.

AES (Source) – a C++ implementation of the cipher and inverse cipher specified in the Advanced Encryption Standard (AES) with ECB, CBC, OFB, and CTR modes of operation.

Secret Santa Generator (Source) – a web applet for friend groups to generate Secret Santa assignments. Most other generators are awful, requiring account creation or being otherwise bloated. I built this generator with plain HTML/CSS/JavaScript to do what is necessary and nothing more.

HDocs (Source): a collaborative rich-text editing desktop application. Users can create, view, edit, and share documents. I built this application with JavaScript and the MERN stack (MongoDB, Express, React, NodeJS) along with Electron and Socket.IO.

Elgamal-elliptic (Source) – a Python implementation of the Elgamal public-key cryptosystem on an elliptic curve.

Note: The cryptosystem implementations listed above are learning experiences and should NOT be used in practice.