Using AI and a Low-Cost Camera to Detect Harmful Algae in Natural Water
This website is still under construction. -b background is interactive: click anywhere -d drag folders, files, and windows -l open Launchpad to view more apps/links -m contact me via Mail app below -n open Notes app below to see some of my projects -s click Play button to see what i am/was listening to -t open TextEdit app below for my about me
I'm Kiran: A quick-learning undergrad with a passion for creating and an interest in STEM research. My areas of focus are Computer Science, Mathematics, and Statistics. I'm a 4x Software Engineer Intern at Oracle Cloud during Summers 2021 – 2024. I'm currently a Research Assistant at Analytics for Cyber Defense (ACyD) Lab, where I'm investigating novel applications of post-quantum cybersecurity in order to ensure the resilience of Internet of Things (IoT) against quantum hacking.
I've been coding since I was 12, starting off with HTML, CSS, and some JavaScript in order to customize my Tumblr blog at the time. I soon became obsessed with the web design aspect of programming, creating Tumblr themes for others as a theme-maker. However, it wasn't until I took AP Computer Science in 10th grade that I learned my first real programming language: Java. After that, everything fell into place. I joined my high school's computer science club and participated in programming competitions (i.e. competitive programming) along with cybersecurity competitions (i.e. CTFs aka capture the flags). After school I'd come home and practice [competitive] programming problems from UVa Online Judge. I genuinely had no particular reason or incentive for doing so; it was all for the love of the game.
I enjoy traveling, photography (Nikon D5100 DSLR), gaming, listening to music, reading, journaling/writing, doodling, daydreaming, creating, fashion, design, skincare, watching anime, vibing with friends, programming/cybersecurity competitions (e.g. CTFs, hackathons, etc), and memes during my downtime. This blog contains some of my solutions to certain CTF puzzles/problems; it's a relic from the past as I created and contributed to it during my last 2 years of high school. During that time, I also enjoyed spending a lot of time working on statistics problems for math competitions (specifically Mu Alpha Theta, aka math honor society for high school).
On top of all that, I enjoy reading research papers and watching YouTube channels (e.g. Two Minute Papers, 3Blue1Brown, etc). If I had to name a research paper that's currently piqued my interest, it'd have to be Towards Post-Quantum Blockchain: A Review on Blockchain Cryptography Resistant to Quantum Computing Attacks by Tiago M. Fernández-Caramès and Paula Fraga-Lamas.
Here are some of my research interests:
Post-Quantum Cybersecurity | Quantum Computing | Quantum Networking |
Machine Learning | Artificial Intelligence | Internet of Things (IoT) |
Computational Linguistics | Cognitive Science | Computational Neuroscience |
Cybersecurity | Computer Graphics | Cloud Computing |
Ubiquitous Computing | Computer Networking | Robotics |
Computer Vision | Natural Language Processing | Evolutionary Computing |
Game Theory | Theory of Computation | Graph Theory |
Cryptography | Algorithms | Cryptology |
Data Mining | Distributed Computing | Data Science |
Computer Science | Mathematics | Statistics |
Discrete Mathematics | Data Structures | Software Development |
Neuroscience | Psychology | Neuromorphic Computing |
Linguistics | Etymology | Music |
World History | Anthropology | Philosophy |
Terahertz Communication |
Using AI and a Low-Cost Camera to Detect Harmful Algae in Natural Water
- Designed and developed a system that uses custom AI (i.e. computer vision) and a camera to quickly detect and identify species of harmful algae in real-time (livestream/video); i.e. object detection using convolutional neural networks (CNNs)
- Integrated various fine-tuned algae detection models (i.e. custom AI) with (1) ESP32-CAM (low-cost development board with camera, WiFi, and Bluetooth modules) attached to a Nikon microscope's eyepiece via a 3D printed lens attachment, (2) iPhone, and (3) webcam as camera options
- Lead and managed team of 3 senior computer science undergrads
- Wrote in-depth, beginner-friendly Google Colab tutorial that details the entire process of training, validating, inferencing, exporting, and deploying the custom AI model; tutorial also goes over dataset annotation, preprocessing, and augmentation
Quantum Search Algorithm
- Created
n
-qubit quantum program searching form
target(s) in an unsorted database - Resulted in quadratic speedup over classical/naïve search algorithms
Web Scraper
- Simple web scraper to download media from websites
- Supports
.pdf
generation and vertical image stacking - Useful for downloading manga, comics, etc.
Intelligent Building Information Modeling (BIM) Virtual Assistant
- Developed front-end of web app for BIM models that allows users to search models for specific elements/properties, view and inspect models in 2D and 3D, and query models via virtual assistant (Siri or Alexa)
DNS Lookup
- The goal of this project is to practice UDP socket programing and understand binary packet structures by developing a simplified DNS lookup client
- You must create your own socket
- You cannot use any existing DNS library
Web Status Monitor
- This project develops a web status monitor (simplified version of uptimerobot.com) to practice web programming and understand the web related protocols: HTTP and TLS/SSL
- Implements HTTP client socket to interact with the web server
- Doesn't use any existing HTTP client library
- Uses an existing SSL library to help implement the HTTPS client (extra credit)
Simple MPI
- This program counts the number of prime numbers between 1 to
MAX_CONST
inclusive using MPI (parallel programming) - Each process tests its share of the cases and keeps a running total
- Before it finishes, the process prints out its ID number and count of primes that it found
- Master process ends after printing the total number of primes between 1 and
MAX_CONST
inclusive and the total amount of time taken to find all the primes
BST
- Sorts all words in an input file (or from standard input) and prints the sorted words to an output file (or standard output)
- Command line arguments:
bstsort [-c] [-o output_file_name] [input_file_name]
- If
-c
is present, the program needs to compare the strings in upper case; otherwise, the case stays as read in - If
output_file_name
is given with the-o
option, the program will output the sorted words to the given output file; otherwise, the output shall be the standard output - Similarly, if the
input_file_name
is given, the program will read from the input file; otherwise, the input will be from the standard input
Simple Shell
- This program is an extension of
myshell.c
with pipelines + I/O redirection functionality >
Redirect standard output from a command to a file; if the file already exists, it will be erased and overwritten without warning>>
Append standard output from a command to a file if the file exists, else create a new one<
Redirect standard input from a file to a command|
Pass the standard output of one command to another for further processing
Endians
- Program I wrote in high school that converts a given integer to little-endian and/or big-endian
Q-SECURE: Quantum-Secure Protocol
Implementation of multi-party computation (MPC), a quantum-resistant cryptographic algorithm, with custom client-server software to securely compute the product of N
massive matrices
- Split each of
N
massive matrices into submatrices - Homomorphically encrypt the submatrices and disperse evenly among
M
Internet of Things (IoT) devices M
IoT devices calculate the product ofN
homomorphically encrypted submatrices and send the result back upon completion- Received submatrices (i.e. results) are decrypted and concatenated into a single matrix, which is the final result