Welcome! My name is Gobind Puniani.

I'm interested in accelerating technological advancement for the benefit of humanity.

About Me

Profile Image

I am an early career machine learning research engineer, and I am actively seeking full-time employment opportunities in AI (Machine Learning, Deep Learning, Data Science), Quantitative Research/Analysis, Algorithm Development, and Product Management.

In my most recent role, I served as the founding ML research scientist for a Khosla Ventures-backed startup working on foundation-level AI systems. Before that role, I worked on ML algorithms for day trading as part of a fintech startup. During my undergraduate degree programs, I worked as a TA for data science and math courses, and I also completed multiple internships in data science, software development, and product management. My scientific research experience includes projects in artificial neural networks and astrophysics.

I graduated from Dominican University of California in May 2022, where I studied Applied Computer Science with a concentration in Data Science. Before this degree, I obtained a Bachelor of Science in Applied Mathematics with a minor in Physics from the Smittcamp Family Honors College at California State University, Fresno. I graduated Magna Cum Laude with University Honors from there in May 2020.

View Resume

Projects

Exploring the Role of Activation Functions in Deep Learning

My Senior Capstone Project at Fresno State investigated activation functions in deep neural networks. Typically, activation functions are overlooked when designing and modifying neural network models, but we wanted to better understand how they can affect the performance of neural networks. Initially, we ran experiments with image classification tasks, in which we tested five different activation functions (ReLU, Swish, Mish, TAct, and mTAct) on a variety of models in addition to tuning several hyperparameters (number of epochs, learning rate, etc.).

Unfortunately, there was no clear, definitive pattern between any particular activation function and accuracy of the model. After I graduated, we decided to pursue other tasks within deep learning to test these activation functions. As of now, I have two extensions to my capstone project: one involving Natural Language Processing (NLP), and one involving Graph Neural Networks (GNNs). The NLP extension tests the activation functions on a sentiment analysis task with movie review data, while the GNN extension tests the activation functions on a molecular odor classification task (in which the molecules are represented as graphs). We hope to find definitive patterns between activation functions and the accuracy of the model before we publish our results.

Stack: Python, PyTorch, CUDA, Bash

Deep Learning GIF

Image Source: https://analyticsindiamag.com/wp-content/uploads/2018/12/nural-network-banner.gif

StreamingGuide

StreamingGuide is "TV Guide" for streaming services. It is a web application that allows users to search and browse titles on all major streaming platforms. Users can see titles that are arriving soon and leaving soon on these streaming platforms, and all titles that are leaving soon include an expiration date. Each title page includes additional information, such as release year, synopsis, as well as a trailer link. Users can search across all platforms and use filters such as release year, runtime, and IMDb rating. Additionally, users can browse through Netflix's full global catalog of titles so that they can circumvent regional restrictions with a VPN. This app uses a Flask backend and Bootstrap for the frontend. The data are sourced from multiple APIs (such as the IMDb API) as well as from online articles via web scraping with the Beautiful Soup library.

Stack: Flask, Beautiful Soup, Python, HTML/CSS/JavaScript, Jinja2, Bootstrap

StreamingGuide Homepage

Air3D

Air3D is a marketplace service that facilitates transactions between owners of 3D printers and clients who pay these owners to create specified products. Owners can create profiles and list products that they are willing to print and sell, and renters can browse products offered and reach out to owners to negotiate terms for a product. Additionally, renters can also provide detailed descriptions for their own bespoke products that skilled owners could create for them. This service is designed to accelerate the consumer 3D printing revolution by allowing everyone to partake in the joy of 3D printing, even those without knowledge of creating CAD files or working with 3D printers. The entire backend is based on Flask, with Flask Login for authentication and SQLAlchemy for the database. User chat is implemented with web sockets for efficiency. Clients can pay owners seamlessly and securely via the Stripe API. Web forms (such as request forms) are implemented with WTForms and Jinja2, and the frontend was designed with Bootstrap.

Stack: Flask, Flask Login, SQLAlchemy, WTForms, Socket.io, Stripe, Python, HTML/CSS/JavaScript, Jinja2, Bootstrap

Air3D Home Page

Eek Anderson Media

This web application is part of an Industry Collaboration project. The main objective for this project was to import a table of music data and create a database with a searchable, filterable UI so that our industry partner can easily search through the music he has created. This application is connected to our industry partner's landing page so that any of his prospective clients can also search his music catalog. This project is hosted on AWS EC2 with the song database stored in AWS RDS. Our industry partner has access to a simple admin panel so that he can add and update his song catalog with ease.

Stack: Django, PostgreSQL, Python, HTML/CSS/JavaScript, Jinja2, Bootstrap, AWS EC2, AWS RDS

Song Database Homepage

Prefix Tree Pokédex

This project visually showcases the genealogy of Pokémon using Prefix Trees (a.k.a. Tries). A prefix tree is a special type of tree data structure that is ideal for retrieving relevant patterns in a given set of strings. Since many Pokémon that are evolutionary variants of each other usually begin with the same few letters, we display these names as prefix trees to show related evolutionary states of some Pokémon. Specifically, we implemented the prefix tree in Python, and then we used the PyDot graph visualization library to display prefix trees consisting of Pokémon names.

Stack: Python, PyDot, JSON, unittest

Prefix Tree with several Pokémon

Star DApp

This is a custom, full-stack distributed application (DApp) for trading an NFT (ERC-721 token) that I minted. The NFT pertains to naming rights for stars officially catalogued by NASA. Users can buy and sell these naming rights on this DApp. This project was built with Truffle and will be deployed to IPFS soon.

Stack: Truffle, Ganache, Fleek, Solidity, Node.js, HTML/CSS/JavaScript, Infura, Pinata, MetaMask, IPFS, Rinkeby

Star DApp UI

Hot Potato Browser Game

This project is a simple two-player game of "Hot Potato" to be played in the browser. Two players connect to the site and input their email addresses to start the game. When the game starts, a timer (which is not visible to the players) begins counting down, and the two players pass the hot potato between each other as frequently as they desire. The object of the game is to not be in possession of the hot potato when the timer expires. When the game ends, an email is sent to the loser informing them that they lost. We use WebSockets rather than traditional HTTP requests to minimize latency and enhance the user experience.

Stack: Node.js, Socket.io, HTML/CSS/JavaScript

Hot Potato Game

Links