Interests
- Library Development, Backend Development, Computer Systems, Quantum Software Development, HPC, Game Development, Programming Languages
Coursework
-
Intro to Computer Science I/II: Algorithms, OOP
-
Systems Programming I/II: Assembly, Multithreading, Algorithms, Systems
- Theory of Algorithms Algorithms
-
Scientific Visualization: Graphics, Multithreading, Benchmarking
-
Data Engineering: Django, SQL
-
Quantum Computing
-
Data Visualization: D3
-
Creative Machines and Innovative Designs
-
Computer Vision: PyTorch, Various Models
-
Mathematical Foundations of Machine-Learning
-
Intro to Data Science I/II: SQL
Internships
-
Infleqtion: Quantum Software Deveopment Intern in the Compiler Team
- Focused on developing testing, linting, and formatting tools, improving the website, and quantum computing effort.
- Implemented novel measurement and classical control conversion between Pytket and Cirq expanding circuits handled by the Superstaq Compiler.
- Implemented cancelation for quantum jobs sent to different vendors reducing the cost associated with unwanted large jobs running until completion.
- Reimplemented non-deterministic algorithms to catch bad user inputs, and avoid test failing for random seeds.
- Enhanced security of the Superstaq website with password recovery, email validation, and deprecated password hash handling using Flask.
- Developed custom Pylint plugins to improve code styling consistencies and catch type errors.
- Implemented Github workflows to add integration testing to a research repository.
-
Golden Peak Media: Generative AI Intern
- Focused on recommending and implementing content categorization using AI and Machine Learning tools.
- Researched new AI tools and their applications in textual analysis, categorization, and taxonomy to recommend solutions for content categorization to executives.
- Implemented KMeans and Hierarchical clustering of content tags generated using Gensim using Python to recommend a taxonomy for all the communities hosted by the organization.
- Implemented content summarization software using NLTK and Python to automate content description for editors.
Work Experience
-
Meyer’s Group (Dr. Meyer’s Astrophysics Research Group at the University of Chicago)
- Focusing on system development for sensors to be used in the Wilkinson Microwave Anisotropy Probe satellite.
- Implemented new cross-file locks for shared memory used by sensors with Python to improve system robustness.
- Implemented system-wide sensor status check, terminate, and restart protocol to ensure sensors are alway functional while the device is in use.
- Implement safe data writing via UDP for infrared cameras to prevent network and system crashes.
- Implement system-wide sensor status check, termination, and restart protocol to ensure sensors are always functional while the device is in use.
- Design and implement a calibration system for the infrared cameras to interpret data across different ambient temperatures the device experiences during launch.
-
Biological Sciences Division at the University of Chicago: Student Data Analyst and Programmer
- Focused on automating the department's fiscal and analytical work.
- Developed multithreaded data backup software with version checks and OAuth using TKinter, Boxsdk, and Python that handles multiple folders and files simultaneously to automate manual and tedious backup processes.
- Automated department’s publication tracking with Flask web software to save more than 5 hours per week.
- Implemented web scraper with Selenium and Python to fetch 260 data points to automate manual copy-pasting.
- Automated quarterly funding analysis using Python and Openpyxl to produce styled multitab Excel sheets saving hours of manual work that is repeated each quarterly.
-
Teaching Assistant for CMSC 21400 (Creative Machines and Innovative Instrumentation)
- Interdisciplinary class on engineering solutions that use 3D printing, microprocessors, and electronics.
- Analyzed and 3D printed student designs using Fusion360 and AutoDesk.
- Debugged C++ code for the ESP32 microprocessor.
- Advised students on problem-solving approaches for engineering.
-
Memory and Perception in Schizophrenia Lab at the University of Chicago: Programming Assisntant
- Visual memory lab using Python to develop experiment tasks for subjects to complete with an EEG cap on.
- Implemented experiment tasks with Python that log user inputs and associated event codes and time stamps used for EEG data syncing for ongoing visual memory studies.
- Programmed test versions of experiment tasks for initial data collection used in successful grant applications.
-
Audio Visual Services at the University of Chicago: Student Worker
- Conducted maintenance and checks of audio-visual equipment at the college.
- Troubleshooting and reporting audio-visual equipment.
- Recommended predictive ML pipelines to identify rooms that are likely to soon have equipment malfunction.i>
Projects
Completed
-
  localgit
- A command line tool for managing multiple local git repo clones simultaneous.
- List all the repo clones found on the device.
- View the statuses and commit logs of multiple repos.
- Call pull and push on multiple repos.
- Extensively uses the `argparse` and `subprocess` libraries.
- Has appropriate exit codes for integration with other tests.
- Uses github workflow for automated release update and publishing on pypi.
-
  GuessTheWiki
- Wikipedia article title guessing web game that includes multiplayer gameplay.
- Integrated Gensim’s pretrained NLP models for semantic comparison of user input and title for scoring.
- Utilized NLTK to tokenize and rank a Wikipedia article’s scraped sentences in relative descriptiveness.
- Designed a Postgres database to store user data including usernames, encrypted passwords, and game scores.
- Designed Flask Restful Apis to get hints, score guesses, login and register users.
- Implemented online multiplayer game play using Socket.Io web sockets and NodeJS.
- Won Best Overall Award at the UChicago Winter Tech Showcase.
-
  licensepy
- Python dependency license testing/check CLI tool with recursive dependency handling.
- Existing libraries do not support all python package managers and do not have recursive dependency checks.
- Able to configure disallowed licenses for depencies to have for which the test will report a failure with an exit code 1.
- Variety of output formatting modes including grouping by license, alphabetical, and failing only.
-
 
Box Backup App
- Multithreaded Box drive backup desktop software implemented with TKinter and Boxsdk (including OAuth2 features) to automate multi folder and file back up with the use of SHA1 file hashing for version comparison.
- Uses a local server on a separate thread to host an endpoint that listens for OAuth authentication.
- Recusively backs up folders creating new files that do not exists in backup, updating files that do exist in the backup by comparing the SHA1 hash.
- Implements UI and logic directory navigation of remote Box Accounts for selecting the backup directory.
-
Gabata(Mancala)
- Tkinter based PC game of the Ethiopian Mancala ruleset.
- Implements bots of different difficulty that use heuristics for choosing best moves.
- Allows for midgame bot level changes.
- Motion animations for bot and player moves.
-
Publication Tracking
- A Flask web app automating publication tracking of authors from the Biological Sciences Department using Scopus's weekly csv output.
- Avoids storing any data for IP protection.
-
Portfolio
- Personal portfolio website with dynamic interative features implemented using JavaScript.
- Implements dynamic filtering by tags.
-
Remove Trailing White Spaces
- C program for reporting and removing trailing white spaces from files.
- Implements CL argument parsing.
- Options for verbose output detailing where the trailing white spaces were found.
In Progress
-
AmPy
- Python programming language with Amharic in addition to existing English keywords to help with programming education.
- Includes keyword translations for builtin keywords and libraries such as `os`, `os.path`, `sys`, `time`, `datetime`, `statistics` `math`, `random`, `requests`, `re`, `json`, `heapq`, and `csv`.
- Uses JsonCpp for reading keywords from original Json.
- Generates binaries containing keywords with values used for checking corruption.
- Implements recursive transpilation of imported Ampy files.
- Easy scalability for new or changing keywords.
-
Crochet-Pix
- Web app with a React frontend and a Flask backend for generating and editing pixel art for crochet patterns from images.
- Drafts include custom image analysis implementation that reduces color differences while retaining identifiable regions.
- Experimenting with different image analysis tools including `Opencv` and `Pillow` for generating simplified images from user input.
- Support for mouse and touchscreen use when drawing/editing pixel art.
- Custom `.crochet` file for storing pixel art for future use.
-
BoxIn
- Web game made with React based on a ubiqutous childhood game played in Ethiopia involving connecting dots to form player regions.
- Includes bots with different strengths developed with JavaScript.
- Implementing socket for multiplayer gameplay with multiple players.