Picture of Sourish

Sourish Kundu

An ambitious creator, passionate speaker, and insightful writer

About Me

I am a 21-year-old striving to build my career around my passion for computer science & business. My favorite subfields of CS are Machine Learning, Computer Graphics, and High Performance Computing, but that doesn't mean I don't enjoy learning about other areas as well. In the professional realm, I've had the opportunity to intern at many tech companies working on various projects such as Machine Learning Systems, Natural Language Processing with chatbots, and Artificial Intelligence explainability. I have also founded my own startup in Madison, Wisconsin where I learned that the intersection of tech and business is what I want to delve deeper into.

Additionally, I love working on personal projects which allow me to apply the knowledge I have acquired in the classroom while simultaneously obtaining new experiences I did not expect, whether its creating my own homelab server or upgrading my 3-D printer. I have come to learn that building things that can benefit the lives of others is what I am passionate about. The enjoyment and pleasure gained from learning while creating is a feeling for which I am still seeking the words to describe.

I also have a blog where I write technical tutorials, about my experiences and thoughts about the broader tech industry, and about life. It's an outlet for me to express my introspective side. My only goal is to write about topics or questions that really catch my interest and share my perspective with others.

Outside of computer science, I have a vested interest in rock climbing, working out, 3-D modeling, public speaking, politics, and business. In my free time, if I am not with friends, I am either playing video games, watching TV, or listening to rap music/podcasts, alongside reading, writing, and researching topics that intrigue me in order to continue expanding my knowledge base.

Experience

I've had experience working both at big corporations and small startups.

seafare.svg
bytedance-copy.svg
aws.webp
gallify.svg
capitalone.svg
xaipient.webp
dinein.webp
leidos.svg

Skills

Languages

Python

Python

C++

C++

C

C

Java

Java

Swift

Swift

HTML

HTML

CSS

CSS

JavaScript

JavaScript

SQL

SQL

MATLAB

MATLAB

R

R


Libraries, Tools, and Frameworks

PyTorch

PyTorch

CUDA

CUDA

Tensorflow

Tensorflow

Scikit Learn

Scikit Learn

OpenGL

OpenGL

Docker

Docker

Nginx

Nginx

ARKit

ARKit

RealityKit

RealityKit

SceneKit

SceneKit

Django

Django

Flask

Flask

NumPy

NumPy

Pandas

Pandas

Matplotlib

Matplotlib

React

React

Next.js

Next.js

jQuery

jQuery

AJAX

AJAX

Postgresql

Postgresql

Bootstrap

Bootstrap

Three.js

Three.js


Other

Linux

Linux

Git/GitHub

Git/GitHub

AWS

AWS

Google Cloud

Google Cloud

Proxmox

Proxmox

Google Firebase

Google Firebase

Android App Development

Android App Development

Blender

Blender

Portfolio

Check out the projects I've worked on!

Ray Tracer from Scratch

I created a ray tracer that simulates light's behavior in the real world to create photorealistic scenes, all of which are completely generated by the computer. Similar algorithms are used by video games and movies to create more immersive experiences for the consumer. This one has global illumination, anti-aliasing, caustics, and subsurface scattering.

Languages and Tools Used

C++, OpenMP, PyBind11, Python


CUDA Accelerated Neural Network

I used NVIDIA's CUDA API to write a neural network from scratch with C++ and train it on the MNIST hand-written digit dataset. With 96% accuracy, the network was able to go from 57 seconds per epoch without GPU acceleration to a whopping 3 seconds, for a 20x speedup!

Languages and Tools Used

C++, CUDA, Nsight


AR Gallery

This is a simple iOS app that allows you to select pictures from your phone gallery and put them on your room's walls in real life! It'll size them into a beautiful picture frame to make it look like they're actually on your wall.

Languages and Tools Used

Swift, ARKit, RealityKit


Super Mario Bros Reinforcement Learning

I trained the computer to be able to beat Super Mario Bros NES using the popular Double Deep Q Learning algorithm. After optimizing the hyperparameters of the convolutional neural network and thousands of training iterations, the computer can now see the game's screen and determine which combination of buttons to press in order to make it to the end of the level.

Languages and Tools Used

Python, PyTorch


ML Algorithm Visualization Suite

This visualization suite aims to change the perception of these machine learning algorithms that are often viewed as black boxes. The user can learn about Linear Regression, Logistic Regression, or K-Means Clustering and watch each algorithm learn and adapt to the data as each iteration goes on. After placing points on the graph, click the iterate button to see how these algorithms aren't actually as confusing as they seem to be, but rather just a product of elegant mathematics and human ingenuity.

Languages and Tools Used

Python, Flask, Javascript, ChartJS, and AWS


Dine In LLC

Dine In LLC

I co-founded this startup with the hope to help small and medium sized restaurants be more competitive. Our application allows restaurants to put their menu, which is usually on paper or in a PDF, on our platform. Then customers can access it through a QR code or NFC chip, making the entire experience contactless, which is important during a pandemic. The restaurants can also update the menu in real-time, allowing them to immediately spread word of specials at certain times/dates, out-of-stock items, or changes in prices, resulting in lowered menu costs. Unfortunately, Dine In LLC is no longer active.

Languages and Tools Used

Python, Django, Javascript, and Heroku


Real Time Dining Capacity

Real Time Dining Capacity

The University of Wisconsin-Madison needed an application to track the capacity of their dining halls in realtime to ensure that students that dine there are safe due to COVID-19. This application allows the University to track the halls' capacities and any student on campus can then view the count in real-time, allowing them to make a safe decision on where to dine. UW-Madison no longer needed the application after Spring of 2021.

Languages and Tools Used

Google Firebase, Google Cloud, and Javascript


Rap Generator

I tweaked and retrained OpenAI's GPT-2 model on rap lyrics of my favorite artists. Check it out to see a curated sample of generated lyrics.

Languages and Tools Used

Python, Tensorflow


PyTutor

This application is for students taking the introductory level Python course at the University of Wisconsin-Madison. It augments their learning by requiring them to trace through Python code and guess what the next line to be executed will be. It also asks them questions about the state of the program, helping them know which parts they need to study more for class exams.

Languages and Tools Used

Python, Tensorflow


Rap Analyzer

This application takes a rap song from the user and outputs some statistics that it calculated, such as the average grade level of the lyrics, the number of swear words, adlibs, drug references, etc. It fetches the lyrics from Genius, using their API. Each song is then stored in our database, keeping track of which tracks have the highest count for each of the stats.

Languages and Tools Used

Python, Django, HTML, CSS, Javascript, and Postgres


Python to Java Translator

This application takes in Python code from the user as input, and then outputs the equivalent Java code that performs the same task. Some features that are supported are loops, conditionals, try/catch blocks, user input, and more!

Languages and Tools Used

Python, Django, HTML, CSS, and Javascript


Shotplotter

My team created this application for our high school's volleyball coach. He needed an efficient method to keep track of the opponents' shots during a match; he was initally using pen and paper, which was very tedious. Shotplotter allows the user to draw lines on the iPad—with different styles and colors representing different shot types and players—greatly streamlining the process of analyzing the opponents strengths and weaknesses.

Languages and Tools Used

Swift


Yahtzee

This Android application virtualizes the five dice from the classic game of Yahtzee. The user can lock the rolls on dice they want to keep, while rerolling the other ones.

Languages and Tools Used

Android Studio, Java