And I build everything that comes to my imagination.
Hi, I'm Petar, a second-year Software Engineering
student at the University
of Waterloo, currently seeking winter 2026 internships.
I'm passionate about building impactful projects with Java, C, C++, Python, JavaScript,
TypeScript, React, Node.js, React Native, Expo, Firebase, C# and Unity.
Proteful is a mobile app built at the 2025 Hack404 hackathon, winning
1st place and
$1000.
It provides a real-time protest safety heatmap
with crowd-sourced hazard pins. Built with
React Native (Expo),
Firebase, and the
Google Maps SDK,
it uses a custom pathfinding algorithm
to notify and navigate users around danger zones in real time.
BoxHead is an augmented reality headset I built for the 2023 Rhythm Hacks
hackathon.
It utilizes ml5.js for object detection and JavaScript Speech Recognition, allowing the wearer to locate
any spoken object in real time. Furthermore, p5.js was
used for video recording and overlaying green boxes and text over the found items.
Snake Fight is an online multiplayer
game I developed in pure
HTML/CSS/JavaScript along with Firebase for the backend.
In this game, there are snakes controlled by opposing
players with apples spawning every time one is consumed. The game will end once a snake hits itself
or hits the
opposing snake (the last snake standing wins).
GooseHacks is a website I developed for a Hackathon I hosted in the summer of 2023. The website's objective is to provide
crucial details about the hackathon so that
participants are aware of not just what GooseHacks is but also its requirements, including how to
register and where to go for additional information.
I've been working on a Java project called Chess
A.I, which aims to create a player
(bot) who can always checkmate you at the end of the game. However, it's important to note that the
current iteration of this chess A.I bot will only
make random moves because my A.I is not fully
optimized.
VidNote was a hackathon project for HackJPS 2023 that leverages the power of
machine learning algorithms, to make educational
materials more accessible and manageable for
students with hearing disabilities, by taking in a YouTube video and then outputting key points from
the video in readable text.
Snake A.I is a game I made where you are the snake and your goal is to eat as many
apples as possible. However, there is an additional snake that uses dijkstra's algorithm
(pathfinding) to calculate the quickest root of the apple, making it incredibly difficult for your
snake to collect apples.
The Euglena robot simulates the behavior of a euglena (a single-celled organism
that
can move towards areas of bright light so that it can photosynthesize) by using photoresistors for light
detection and an L298 Motor Driver for moving towards
the light. Moreover, the program used to follow the
light was developed into an Arduino Uno.
Piano Tiles Was A Game I made in 2022, which was the first game I was able to sell
for 150 dollars, and although it was not my most advanced game
I developed, I was incredibly proud
of it since I was able to develop a 30h game in just 3 days. Furthermore, it was one of my first GUI
games that I was able to develop in java.
Cursed Pacman is a terminal based Pacman game made completely in Java.
It uses threads to constatntely clear the terminal and
draw the next frame of the game while the user can control the Pacman through the commands
[W][A][S][D] + [ENTER]. The ghost's are represented by the emoji's
👹, 🧠 and ☃️ while the Pacman is represented by the 😀 emoji.
Cavern is a Minecraft-like survival game made in Java that is played completely in the terminal. The goal of the game
is to explore, build and survive against the monsters that appear. The map is infinite and procedurally generated in order to create a new/unique
game every time you play. Cavern was also the first game that I ever developed in Java.
Side Swipe is a Java puzzle game that is
played completely through the terminal. The goal
is to move the white box and collect all the green gems around the map. This program run's multiple threads
to constantly refresh/clear the terminal every second while allowing the player to still control the
game with
commands like [W][A][S][D] + [enter].