University Projects
wxWidgets GUI and
Conway Game of Life
This is my university project to learn the fundamentals of GUI application and creating the Conway Game of Life. I learned how to handle event and how user inputs will trigger responses and flow control to button clicks or window resizing. I also understand layout and rendering logic of designing windows and placing controls. I also understand separating UI logic from simulation logic and keeping track of simulation states (i.e. running, paused, or reset) and making sure the GUI reflects the changes accurately.
​
When making the Conway Game of Life, I learned how a grid update based on specific rules and step into cellular automata theory. I am implementing the logic in a way that does not slow down the performance. I understand and seeing how simple rules can lead to complex and beautiful pattern. I learn more about debugging code in this project.

wxWidgets Calculator
What I learned when I was creating the wxWidgets Calculator? I learned how to design and structure a desktop GUI application using object-oriented programming in C++. I gained hands-on experience working with event-driven programming, managing button clicks, and updating the display dynamically. Through this project, I deepened my understanding of design patterns, particularly the Singleton pattern, which I used for the CalculatorProcessor to manage calculations globally. I also learned how to handle mathematical expressions, implement trigonometric functions, and integrate user input smoothly into a responsive interface.
​
One of the biggest challenges I faced was parsing and evaluating complex mathematical expressions while maintaining a clean and user-friendly interface. I initially struggled with managing the correct order of operations and handling input errors, such as dividing by zero or dealing with invalid syntax. I resolved these challenges by refining my parsing logic, directly manage and access elements within a data structure, and introducing a safety check for each case of calculation.
Debugging layout issues in wxWidgets and ensuring the UI was responsive also required patience, but I overcame them by studying documentation, reviewing examples, and using consistent testing to verify functionality. This project strengthened both my problem-solving and software development skills.

FPS Team Project
What I learned from working with a team? I learned the fundamentals and deep understanding of what Git is and why version control is essential for collaborative software development, especially in game dev where large assets are common.​
​
Working in a team inevitably brings disagreements. I learned how to professionally navigate creative differences, technical hurdles, and interpersonal conflicts to keep the project moving forward.
​
Building that FPS game with my team was a deep dive into the realities of game development. Beyond just coding, I learned the critical art of team collaboration, mastering how to integrate individual efforts into a cohesive whole, communicate effectively under pressure, and navigate creative differences to reach a shared goal. Simultaneously, I became adept at managing Git repositories, not just for tracking code, but for orchestrating complex team contributions, resolving merge conflicts, and maintaining a clean, functional codebase—essential skills for any collaborative software project.
​
I have tasted and experienced crunch time working on this game and experienced sleep deprived for a week.

