Tejas Narayanan

Tejas Narayanan

Resume | GitHub | LinkedIn | Email

Hi! I am a senior at Stanford University studying computer science (systems and machine learning) and psychology (minor). I've worked on AI research, created mobile apps, and competed in programming competitions.

In my free time, I love to take pictures of space, edit videos, and solve the Rubik's cube.

Check out my:
projects | experience | research | coursework | astrophotography


Projects


3DOVE

3DOVE: 3D Object Viewer

A bare-metal 3D object viewer for the Raspberry Pi.

3DOVE is a 3D object viewer that runs on a bare-metal Raspberry Pi (no operating system or standard libraries). Featuring optimized triangle rendering using z-buffers, directional lighting, moving around the model, and loading any .obj file from the file system.

Created for the Stanford CS107E final project.

Test

Oratory

Speech memorization made easy.

Oratory is an Android application that makes speech memorization a breeze. After saying your speech into the microphone, Oratory uses string matching algorithms to tell you what words were missed, added, and misspoken.

Won 2nd place at Los Altos Hacks II (2017)

Test

Bibliofly

The future of the library is on your phone.

Bibliofly is an Android application that allows users to browse, place holds on, and check out library books all from their phone.

Won 3rd nationally at the FBLA National Conference (2018)

Won 2nd runner-up in the Congressional App Challenge in district CA-17 (2018)

Course Portal

Course Portal

A one-stop shop for managing coursework and notes.

Course Portal helps students organize their notes and coursework. Quickly create Markdown notes using templates, add upcoming assignments and tests, and quickly join online classes with dedicated buttons for video call links.

Course Portal is built using NodeJS, Electron and JavaScript, so it runs like a native app. It can run on macOS, Windows, and Linux.


Experience


Citadel

Software Engineer Intern

Citadel, June 2023 - August 2023

I developed an end-to-end Python/C++ service to read raw trading position data, enrich the data, and publish it to a new trading view. I parallelized column enrichment and data queries using batch Kafka consumption and multithreading to achieve an 8x processing speedup.

I designed a generalizable system for defining and parsing custom column filters that can be used across all trading views. I worked with traders to design the view and columns for their use cases, and I deployed the new service and view to production.

Bloomberg

Software Engineer Intern

Bloomberg, June 2022 - August 2022

I worked on optimizing the performance of an Apache Kafka pipe that received real-time trade data. I prevented lag spikes from occurring when the pipe received high volumes of trades that it had to write to a Cassandra database.

I achieved a speed improvement of 2,200x under maximum load, and deployed my changes to internal production.

Ford Motor Company

Research Engineering Intern

Ford Greenfield Labs, June 2021 - September 2021

I implemented a reinforcement learning-based adaptive data selection pipeline for computer vision (CV) tasks using OpenAI Gym, PyTorch, and Python. I trained a Neural Data Filter (NDF) to learn which data to keep at which stages of task model training, then used the NDF to dynamically filter training data during task model training. Finally, I ran models on production datasets using GPU clusters and improved task model accuracy by 27%.

Stanford ACMLab

Stanford ACMLab

September 2020 - Present

I worked with a team to build a convolutional neural network (CNN) using Python and PyTorch to predict average income based on satellite imagery.

Our model achieved the highest accuracy among teams in the Open division for the Fall 2020 project.

Stanford Student Robotics

Stanford Student Robotics

September 2020 - Present

I am helping create a simulation using Python and Pygame to model a boat navigating an ocean with moving obstacles and currents. I also developed an algorithm to autonomously steer the boat to various waypoints while avoiding obstacles. The algorithm uses Voronoi graphs and shortest-path algorithms to efficiently plan a path to its target.

The ultimate goal is to sent a small boat to the ocean surrounding Palau to autonomously take measurements of coral reefs.


Research


Sixteen Pixels is (Almost) All You Need

Sixteen Pixels is (Almost) All You Need: Crafting Parameterized Image Uncrumpling Models

Maximilian Du*, Niveditha Iyer*, Tejas Narayanan*

We created an algorithm that takes in a crumpled image and outputs its uncrumpled form. We tried many different methods, but found that an adversarial PatchGAN approach with small patch sizes worked best, both empirically and subjectively.

This work was a winning Stanford CS 231N final project in Spring 2022.

Ghostwriter

Ghostwriter: Deep Learning and Dynamic Programming for Generating Lyrics from Music

Niveditha Iyer*, Tejas Narayanan*, Kiran Bhat*

We created multiple deep learning language models to generate lyrics for inputted music data. Our approaches ranged from completely non-neural methods (e.g. naive Knapsack) to fully-open text generation via language models (e.g. T5 fine-tuned on lyric generation), as well as hybrid approaches (e.g. Knapsack+GPT).

This work was a winning Stanford CS 224N final project in Winter 2023.

GPPO

Gaussian Process Policy Optimization (GPPO)

Ashish Rao*, Bidipta Sarkar*, Tejas Narayanan*

We created a reinforcement learning (RL) algorithm that is comparable to, and at times can outperform, current RL algorithms when tested on numerous benchmarks. The algorithm uses a Gaussian process (GP) to learn the approximate reward function, then make updates to the policy based on the GP's estimates.

GPPO won the following awards, under the working title Novel Reinforcement Learning Methods in Collaborative Environments:

  • 3rd award at the 2019 International Science and Engineering Fair (ISEF) in the Robotics and Intelligent Machines category
  • Grand award at the Silicon Valley Science Fair (SCVSEFA)
  • Intel Excellence in Computer Science Award at the Silicon Valley Science Fair
  • ACM recognition at the Silicon Valley Science Fair

Coursework


Computer Science

CS 149 Parallel Computing

EE 180 Digital Systems Architecture

CS 143 Compilers

CS 144 Networking

CS 137A Principles of Robot Autonomy

CS 161 Algorithms

CS 111 Operating Systems

CS 107E Computer Systems from the Ground Up

CS 106B Programming Abstractions in C++

Algorithms 4-course specialization on Coursera offered by Stanford; view certification

Artificial Intelligence

CS 224N Natural Language Processing with Deep Learning

CS 231N Deep Learning for Computer Vision

CS 229 Machine Learning

CS 224W Machine Learning with Graphs

CS 229S Systems for Machine Learning

Deep Learning 5-course specialization on Coursera offered by deeplearning.ai; view certification

Psychology

PSYCH 45 Learning and Memory

PSYCH 60 Developmental Psychology

PSYCH 50 Cognitive Neuroscience

PSYCH 118F Literature and the Brain

PSYCH 236 Mind Reading with Movies and Neuroimaging

PSYCH 1 Introduction to Psychology

Other

ENGLISH 91 Creative Nonfiction

GEOPHYS 54N The Space Mission to Europa

FILMEDIA 50Q The Video Essay

THINK 66 Design That Understands Us

ARTSTUDI 171 Introduction to Photography