Steven Rivera

Junior Software Engineer

I am Computer Science graduate from the University of California, Irvine, with a specialization in Information. My passion lies in back-end development and database management systems. I possess a strong enthusiasm for learning and continuously expanding my skills.

My Resume

Projects

Python Python
Search Engine
I built a complete search engine from scratch that utilizes porter stemming, TF.IDF scoring, and HTML tag-based weighting to retrieve high relevance web pages within 300ms from a corpus of over 100,000 web pages. The search engine utilizes both an inverted index and meta-index, created during the indexing phase, to quickly search the corpus for the most relavent documents for a given query.
Go Go
Shell
I built a Unix-like shell that supports key features found in shells like Bash and Zsh. It has support for multi-command pipelines with the | operator, the ability to redirect stdin, stdout, and stderr, and support for command autocompletion by pressing the TAB character. The shell also comes with builtin commands found in other shells such as cd, echo, and history.
Python Python
Grep
I recreated the popular command line utility grep, used to search for patterns in plaintext using regular expressions. It uses a custom regex engine built from scratch that supports a subset of perl-style regular expressions. Some of the support syntax inlcude repetition operators such as *, +, and ?, range quantifiers with {n, m}, and grouping with (...). All matches are color coded in red and the text to be searched can be a file or read from stdin.
Go Go
Web Crawler
I built a concurrent web crawler capable of efficiently scraping HTML documents from the World Wide Web. The crawler performs a breadth-first search from a given start URL and utilizes goroutines to parallelize the crawling process. Scraped documents are saved as JSON files containing the URL and HTML content of webpages. The crawler can be customized to limit which domains can be crawled as well as limit the number of documents to crawl.
C++ C++
Text Editor
I developed a text editor in C++ that suports over a dozen commands such as Backspace, Delete Line, and Undo. The editor is based around a completely textual user interface that runs in a shell window such as text editors like vim. It has most of the features you would expect from a basic text editor including window resizing.
Python Python
Process Manager
I built a process and resource manager that simulates the creation and destruction of processes as well as the acquisition and release of resources. Processes are represented by a process control block which store a process's state, priority, and the resources it holds. Resources are represented by a resource control block, which store information about a resource such as availability.
Python Python
Stock Strategies
I created a program that analyzes stock data and generates a report on potentially opportune times to buy or sell a given stock. The report is generated using automated buying-and-selling strategies based on indicators such as True Range and Simple Moving Averages. The application utilizes the Alpha Vantage API to obtain current and past stock information used in the analysis.
Python Python
Columns
I recreated from scratch the match-three video game Columns, which was released by Sega in 1990. The goal of the game is too match three or more tiles of the same color in a horizontal, vertical, or diagonal line before they pile all the way to the top of the board. This was my first project that involved creating a GUI and was made using the Pygame module.
Python Python
Simultons
I created a simulator that simulates two types of simultons, predators and prey. The main type of predator is a stationary black hole which 'eats' prey it comes into contact with. Balls are the prey, which travel in a straight line and bounce off the edges of the canvas. The GUI was written using the Tkinter Library.