A strong-willed individual with over 10,000 hours of experience in software engineering.
Passionate learner, dedicated leader, and driven engineer with a deep love for technology and people.
PythonTutor
PythonTutor is a guided learning platform that helps instructors teach Python through a sandboxed, constraint-based environment. Built with Django and RestrictedPython, it provides real-time code execution, instant feedback, and instructor-defined constraints to help students learn by doing. The project emphasizes educational clarity: guiding learners toward correct solutions while reinforcing best practices in coding and logical thinking.
- Developed a Django-based system that lets instructors create Python assignments with testable constraints and instant code evaluation.
- Implemented a sandboxed environment using
RestrictedPythonto securely run and test user code. - Added interactive features such as hint requests, local code saving, error highlighting, and multi-tab support.
- Focused on usability and clarity to help students understand instructor expectations and reach correct solutions faster.
- Planned enhancements include auto-grading, improved usability, and AI-driven tutor integration.
- Built a browser-based Python IDE using HTML, CSS, and JavaScript with a Django backend.
- Developed features for live code execution, error feedback, and multi-tab project management.
- Designed an interface for instructors to create prompts and automatic grading tools for educational use.
- Focused on maintainable, modular architecture and intuitive UI/UX for learners.
Final Report.docx (PDF embed)
VERAPAK
________ _______________
___ __/__________________________________ ____/__ /________ __
__ / _ _ \_ __ \_ ___/ __ \_ ___/_ /_ __ /_ __ \_ | /| / /
_ / / __/ / / /(__ )/ /_/ / / _ __/ _ / / /_/ /_ |/ |/ /
/_/ \___//_/ /_//____/ \____//_/ /_/ /_/ \____/____/|__/
__ __ _____ _____ _
\ \ / / | __ \ /\ | __ \ /\ | |
\ \ / /__| |__) | / \ | |__) / \ | | __
\ \/ / _ \ _ / / /\ \ | ___/ /\ \ | |/ /
\ / __/ | \ \/ ____ \| | / ____ \| <
\/ \___|_| \__/ \___| /_/ \___|\_\
Alias: verapak == python /src/VERAPAK
Call 'verapak' for usage
verapak:latest
Refutation-based Adversarial Robustness Verification of Deep Neural Networks
- Improved the safety and robustness of numerous and diverse AI models by up to 99.96%
- Discovered flaws in the soundness of two state-of-the-art Deep Neural Network verification tools.
- Used modern AI tools, standards, and deployment techniques.
Work towards publication is in progress.
Hustle Web App
A web app built to connect workers with people that need yard work done. This could include lawn mowing, leaf raking, or snowblowing.
- Created design requirements to customer specifications.
- Used use-case and activity diagrams to ensure all team members stayed in sync.
- Used Agile software development principles.
- Held weekly stand-up meetings
Built in a team of 4 in a series of sprints.Course project. The professor acted as the customer, with a specific goal in mind. All design requirements had to be cleared by him.
Use Case & Activity Diagrams.pptx (PDF embed)
Final Presentation.pptx (PDF embed)
Traffic Simulation
Completed for class Algorithms Under Uncertainty
README.md (HTML embed)
Traffic

The plot, when run, simulates traffic.
The colors represent the number of vehicles on the road (albeit with no respect to the length of the road segment),
as a percentage of the maximum-count road segment.
Hover events
Roads
Hover over roads to see their weights (the time in minutes it takes to travel across the node when no traffic is present)

Intersections
Hover over intersections to see their latitude/longitude, and the number of vehicles currently queueing at that intersection.
They also show an icon representing their type (🚦: Traffic Light, 🛑: Stop Sign, ◯: Roundabout )



Stop signs will also show which sides have stop signs.
EW indicates that North-South traffic is free-flowing, while East-West traffic must stop.
NS similarly indicates that East-West traffic is free-flowing, while North-South traffic must stop.
Generators
Hover over generators to see how much traffic is generated from that direction at that intersection.

Logic
Roads
Road weight increases depending on how many cars are on it following the equation:
Intersections
🛑 Stop Signs (All-way)
Stop signs allow one car from one direction every 2 seconds, plus all cars that do not collide with it.
For example, if it’s the North-bound traffic’s turn, then the first North-bound car can go.
If it turns left, then the East-bound car can go if it is turning right, the South-bound car can go if it is turning left, and the West-bound car can go if it is turning right.
If it goes straight, then the East-bound car can go if it is turning right, the South-bound car can go if it is going straight (if the East-bound car didn’t turn right) or turning right, and the West-bound car cannot go.
Etcetera.
Stop sign logic
Scenario 1: Left turn
Allowed:
- EB right
- SB left
- WB right
✓ ✓
↓ SB ↑
@←← ↘ ╰←←←✓
EB ↖ ↘ WB
✓→→→╮ ↖ →→✓
↓ NB ↑
✓ @
Scenario 2: Straight
Allowed:
- SB right
- EB right
OR
- SB straight
✓ @ ✓ @
↓ SB ↑ ↓ SB ↑
✓←←←╯ ↑ ←X ← ↓ ↑ ←X
EB ↑ WB EB ↓ ↑ WB
✓→→→╮ ↑ →X X→ ↓ ↑ →
↓ NB ↑ ↓ NB ↑
✓ @ ✓ @
Scenario 3: Right
3a: EB right
Allowed:
- SB right
- WB right
OR
- WB straight
X
↓ SB ↑ ↓ SB ↑
←←←╯ ╰←←← ←←←←←←←←←←←←
EB WB EB WB
#→→→╮ ╭→→→@ #→→→╮ ╭→→→@
↓ NB ↑ ↓ NB ↑
# @ # @
3b: EB left
Allowed:
- SB right
- WB left
✓ #
↓ SB ↑
✓←←←╯ ↗ ←✓
EB ↗ ↙ WB
#→→ ↙ ╭→→→@
↓ NB ↑
✓ @
🛑 Stop Signs (Tributary)
Stop signs can allow one car from tributaries every 2 seconds, while all cars from the primary roads continue through.
Cars are only allowed to continue through the intersection if they take an action that is not going to collide with present through-traffic.
🚦 Traffic Lights
Traffic lights have phases that can contain the following parts for each direction: left turns, right turns, straights, and left yields.
Right yields are always assumed to be on.
No phase can contain phase parts that collide with one another.
These phases are rotated through by the active PhaseController.
◯ Roundabouts
Roundabouts let one car through from each direction every 2 seconds.
Generators
Generators generate, on average (using a normal distribution), the given number of cars per minute.
Vehicles’ destinations may be any intersection. Each intersection has a weight, increasing the odds of being selected as a destination.
Run Options
python w/ env
- Open a Windows Command Prompt
- Yes…it unfortunately has to be Windows, unless you want to make your own env that matches what I used
- Run
env\Scripts\activate - Run
python app.py - Open
localhost:8050
Visual Studio
- Open
Traffic.sln - Press
Start Without Debugging(or useCtrl+F5) - Open
localhost:8050
USU Graph Analysis
This research project aimed to explore the relationships between various academic units at Utah State University (USU) through graph analysis. By creating a graph representation of USU's colleges, departments, programs, and courses, the study sought to understand the interconnections and similarities between these entities. The research employed various similarity scoring methods and community analysis techniques, such as the Jaccard coefficient, SimRank, and the Louvain algorithm, to determine how programs, particularly the Computer Science department, are related within the university's structure. The findings offered insights into whether Computer Science should be placed in the College of Science or Engineering and provided general guidance on program switching and minors for students. The project highlighted the importance of data quality and graph structure in educational data analysis.
- Conducted graph analysis on academic programs at Utah State University to explore interconnections between colleges, departments, and courses.
- Developed a comprehensive data model using NetworkX to visualize and analyze relationships across 8 colleges, 52 departments, and 647 academic programs.
- Utilized Jaccard, SimRank, and Panther similarity algorithms to measure and compare the academic similarity of programs within USU.
- Implemented community detection algorithms (e.g., Louvain) to identify clusters of closely related academic programs.
- Performed web scraping and data extraction using Python to collect program, course, and enrollment data from university systems.
- Presented findings that informed discussions on the optimal placement of the Computer Science department within university colleges.
- Collaborated with the USU Registrar’s Office to obtain and validate academic data while ensuring FERPA compliance.
- Generated insights on program similarities that support academic advising and curriculum development.
Analyzed academic relationships at Utah State University using graph theory to assess program connections and department placements.
- Conducted graph analysis of USU’s academic structure.
- Developed data models with NetworkX.
- Applied similarity algorithms to compare programs.
- Used community detection to identify related clusters.
- Scraped and extracted data using Python.
- Presented findings on department placement.
- Ensured data compliance with FERPA.
- Provided insights for academic advising.
Abstract:
This study shows the similarity between programs, departments, and colleges at Utah State University. With the data collected from the university’s website, connections were made between the different programs and departments. Data was collected through the university’s website and registrar. After the data was obtained and preprocessed a graph with all of the departments and associated programs and courses was created. It analyzes the similarity between programs, majors, and minors at USU using a variety of algorithms like Jaccard, SimRank, and Panther Similarity, and Common Neighbor Centrality as well as the Louvain algorithm. Computer Science is used as an example, and is shown to easily fit into either the College of Engineering or the College of Science quite easily.
Presentation.pptx (PDF embed)
Final Report.docx (PDF embed)
Minecraft Compiler
Building a datapack involves a lot of loops, custom data objects, and gimmicks. But if we treat Minecraft commands as a set of assembly instructions, we can compile down to it just like any other CPU architecture.
- Created a lexer and parser for a custom, fully featured programming language.
- Writing the semantic engine to compile a normal programming language into efficient Minecraft commands.
- Balanced the needs of maintainability, usability, and efficiency in compiling.