Shahan
Nedadahandeh

A curious builder and learner

Hi

I'm a passionate computer science student who loves building and tinkering with new things!

I'm deeply involved in various initiaitves at Waterloo:
- I'm a tech lead at UW Blueprint, where we build tech for non-profits.
- I'm a software developer at Watonomous, building simulations for our self driving car stack, using UE4 (Carla), ROS, Docker, and building 3D assets using NeRF's.
- I'm the web development lead of University of Waterloo's CS Club. I've lead our team to build various tools and services for students using React, Typescript, PostgresSQL, NodeJS, and more. Some projects I led include our class profile , automatic membership verification and more. As the team lead, I designed the architecture of our systems, setup automatic CI and deployment using Docker and Kubernetes, screened resumes, conducted over 10 technical interviews, mentored new developers and more.

I've worked at Faire, a highly successful YCombinator backed startup, both as a FE and BE Engineer. As a FE engineer I built a series of post order communications using React and Typescript that currently get used over 2.16 million times per month and increased confirmed dollars ordered by $200,000 per month (evidenced through an A/B test). I also lead multiple large scale changes and created various tooling that save hours of toil every month. As a BE engineer I led a multi-team project involving FE, BE, mobile, and external vendors from scoping to release, which is currently active on every new sign up at Faire. I wrote an article about this internship and what I built on Faire's technical blog!

I really enjoy staying active, especially by playing tennis, let me know if you're ever up for a match! When it comes to music, my taste involves a lot of different era's, especially classical music, Jazz, and Billy Joel. More than just listening, I love to play piano, and sometimes dabble in composing my own pieces as well!

Notable Projects

GaussianEditor

A 3D Gaussian splatting editor that allows users to remove, move and recolor splats. The website features two custom made splats. Click the link to check it out, it's pretty cool!

NCraft

A 3D voxel game made with my own game-engine with pure C++ and OpenGl. For this project I did not use any external libraries or tools and I made it just using OpenGl and C++, as my goal was to learn more about the inner workings of a game engine. I learned much about all the complexities of computer graphics including rendering, optimising and more. This engine/game has features such as optimised batching, perlin noise world generation, block breaking and placing, lighting, trees, inventory and more.

Evolutionary Simulator

An implementation of an evolutionary learning algorithm and neural network along with a captivating GUI, completely from scratch in C++, which has learned to play the game Snake.

GlMath

A math education platform, inspired by Khan Academy made with the MERN tech stack, where teachers can post math lessons for students from all around the world to access. While making this I made several important design choices which was guided by my goal for the math content to be as reliable as possible. The actual math content is hosted on GitHub Pages (which is highly reliable) in JSON, the teacher edits the content through an admin login page, which automatically saves their changes by committing to GitHub. This way, once a lesson is published, it will always be available forever, even if my backend server (hosted on Heroku) goes down. Some other interesting features are image uploading using amazon S3, and an interactive WYSIWYG latex editing for entering equations in the lessons.

VideoGit

A command line tool, that makes beautiful, animated coding videos from a projects git commit history. You can install VideoGit with "pip install VideoGit". VideoGit simulates the process of your coding, and makes a video which you can share. This project uses git diff's and goes one by one through the commit history. It was made with python, and uses a rust tool called silicon for image creation, and ffmpeg for creating the videos.

Langtons Ant

A simulation of "Langtons Ant", a math cellular simulation similar to Conways Game of life. Made completely with java swing with my custom game rendering engine.

NedaChat

A fully functional, realtime chatting service, built with MongoDb, NodeJs, Express, SocketIO and React. Features groups chats, instant messaging using web sockets and many other features.

NedaType

A touch typing training tool, which has unique mechanics to help you improve your accuracy and speed. This project was made with the javascript library React. Click here to go to NedaType.

NAnim

A custom made animation library made in python. This project was inspired by 3b1b's animation library, and this was made from scratch without help from any other animation libraries. This project is on pip and you can even install it on any computer with "pip install nanim". I made this project to learn more about python and the details of animation and video rendering.

Sine Neural Network

A neural network that emulates the sine graph, made using Keras, Numpy and of course python. This network is practically useless, but I made it to learn more about Keras, and it was the first network I made without any outside help, just Keras Documentation.

PlanNow

A time management todo list tool made with the MERN tech stack (MongoDb, Express, React, NodeJs) and hosted on amazon AWS.

ShahansMandelbrot

An interactive simulation of the mandelbrot set, made with Java swing. This project like many of my other java projects uses a custom java swing game renderer I have made.

Skills

Languages
  • C++

    Some of my biggest projects were completed in C++, including my 3D voxel game and game engine which was made with just C++ and OpenGl (NCraft) and my evolutionary simulator.

  • TypeScript

    I have have over 5 years of experience building projects professionally with TypeScript. I have extensive experience working both on the FE and BE, and have even led development teams using TypeScript.

  • C#

    I have mainly used C# for my numerous projects with the Unity Editor, which I have been using for over 6 years. I have even published a game, PopperBopper, on the app store and google play store.

  • Python

    I love using Python, and have used it in projects such as VideoGit, a tool that converts git commit history to a timelapse video, and an animation library I made: nanim .

Libraries and Frameworks
  • React

    I have extensive experience using both personally and professionally. Some of my interesting personal projects include NedaType, my unique type training tool, or my realtime messaging service, NedaChat

  • OpenGl

    I learned to use OpenGl for my two 3D rendering engines and games, JShahanCraft and NCraft , where I remade a version of minecraft, in Java/C++ with an OpenGl.

  • Unity

    I have been using the Unity engine for many years and I have numerous different projects with it, such as PopperBopper. After making my own 3D game engine with just OpenGl (my project, made without unity or any other engine: NCraft), I really appreciated how amazing unity is, providing such amazing features for free.

  • SQL / NoSQL

    I have experience working databases with SQL and various ORM's in different languages including TypeORM, Prisma, Hibernate and more.

  • NodeJS

    I have extensive experience using NodeJS to building both REST and GraphQL backend API's. I've used libraries such as Express, NestJS, SocketIO, and much more.

  • ServerOps/AWS/Docker

    I have many years of experience deploying and maintaining web apps on various tech stacks and on different platforms such as AWS, DigitalOcean , and on premise servers. I've had figure out the maze which is AWS and setup automated deployment pipelines involving EC2, ECS, ECR, Load balancers, Cloudfront, S3, IAM, Amplify and much more. I've also used open source deployment tools such as Drone.