Tommy Ly
Computer Science Student | Software Developer
About Me
Hello! I'm Tommy Ly, a dedicated computer science student at the University of Texas at Austin, driven by a passion for turning ideas into tangible solutions through coding. My journey in computer science has been an exploration of diverse domains, from game development to web development and data science.
I believe in the power of technology to transform lives, and I am committed to honing my skills to contribute meaningfully to this transformative field. As I progress through my academic journey, I am constantly seeking new challenges and opportunities to expand my knowledge and expertise.
Outside of academics, I am an active member of various clubs and organizations, including Freetail Hackers, Electronic Game Developers Society, and UTCS Competitive Programming Club. These experiences not only enrich my learning but also allow me to collaborate with peers who share my enthusiasm for technology.
With a solid foundation in languages such as Python, C, C++, and Java, as well as experience with technologies like Git, Godot Engine, and data science tools, I am equipped to tackle complex problems and bring innovative ideas to life.
Driven by a desire to make a positive impact, I have undertaken internships, such as my role as an Electric Vehicle Customer Solutions Intern at Ford Motor Company, where I identified and addressed customer issues, demonstrating my ability to apply my skills in real-world settings. As I look towards the future,
I am excited about the endless possibilities that lie ahead in the world of computer science. Whether it's developing captivating games, building intuitive web applications, or delving into the depths of data analysis, I am eager to continue my journey of learning, growth, and innovation.
Featured Projects
Last Card Standing
Project Overview
Last Card Standing is a dynamic, web-based multiplayer card game that brings together players from around the world in a thrilling competition of strategy and skill. This project leverages a
comprehensive set of modern technologies to deliver an engaging and seamless gaming experience. I created this project in order to learn more about networking and gameplay mechanics.
Tech Stack
- HTML, CSS, JavaScript: These core web technologies form the foundation of the game's frontend, ensuring a responsive and interactive user interface.
- Socket.IO: Utilized for real-time, bidirectional communication between the server and clients, enabling smooth and instant gameplay interactions.
- Express.js and Node.js: The backend is powered by Express.js, a flexible Node.js web application framework, which facilitates efficient server-side processing and handling of game logic.
- MySQL: This relational database management system is employed to manage player data, game states, and high scores, ensuring data integrity and quick retrieval.
Key Achievements
- Player Engagement: Last Card Standing has successfully attracted a robust player base, with over 100 active players engaging with the game in a single day. This high level of activity is a testament to the game's compelling design and smooth performance.
- User Engagement Rate: The game boasts an impressive user engagement rate exceeding 80%. This indicates that players not only visit but actively participate in and enjoy the gaming experience, reflecting the project's success in capturing and retaining user interest.
Features
- Real-Time Multiplayer: Thanks to Socket.IO, players can enjoy real-time interactions, making the gameplay lively and competitive.
- Intuitive UI/UX: The user interface is designed to be intuitive and visually appealing, ensuring players can easily navigate and enjoy the game.
- Robust Backend: The combination of Express.js and Node.js provides a stable and scalable backend, capable of handling multiple concurrent players without compromising performance.
- Secure and Efficient Data Management: With MySQL, player data and game states are securely stored and efficiently managed, providing a reliable gaming experience.
View Project
3D Adventure Game (Castle Climbers)
Project Overview
Castle Climbers, uses a wide range of devices and tools to create an imaginative and fun gaming experience.
The Godot game engine, with its cross-platform support and intuitive interface, served as the foundation for
game development, enabling seamless integration of art assets, audio files, and code modules. Version control software such as Git, along with collaborative platforms like GitHub, played a crucial role in
managing project files, tracking changes, and facilitating collaboration among team members. Overall, the combination of powerful hardware, versatile software tools, and effective project management
techniques contributed to the successful creation of Castle Climber 3D and its immersive gameplay experience. This was created in a group environment that taught me pair programming
and communicating with teammates on specific issues
Tech Stack
- High-Performance and Detail: A completely 3D rendered game, physics simulations, and real-time gameplay.
- Godot Game Engine: With its cross-platform support and intuitive interface, it served as the foundation for game development, enabling seamless integration of art assets, audio files, and code modules.
- Version Control: Git and GitHub played crucial roles in managing project files, tracking changes, and facilitating collaboration among team members.
Key Achievements
- Immersive Gameplay: Castle Climbers provides an immersive experience with detailed environments, dynamic lighting, and realistic physics, enhancing the player's sense of adventure.
- Multiplayer Support: The game can be played by multiple players, thanks to the Godot game engine, ensuring a wide reach and accessibility for players with friends.
Features
- Real-Time Gameplay: The game offers real-time gameplay with smooth performance, thanks to the powerful hardware and optimized game engine.
- Intuitive UI/UX: Designed with user experience in mind, the interface is intuitive and visually appealing, allowing players to easily navigate the game world.
- Collaborative Development: Utilizing Git and GitHub, the development process was highly collaborative, ensuring efficient project management and quality control.
View Project
Load Balancer for Web Application in Google Cloud Platform
Project Overview
The Load Balancer for Web Application project leverages the robust capabilities of Google Cloud Platform (GCP) to create a scalable and reliable infrastructure for
distributing traffic across multiple servers. This project ensures high availability and optimal performance for the web application, handling increased traffic efficiently and
maintaining seamless user experience. I created this project in order to learn more about Google Cloud Platform andd understanding
network traffic between servers!
Tech Stack
- Google Cloud Platform (GCP): Utilized for its powerful cloud services, providing the foundation for virtual machines, backend services, and load balancing.
- Compute Engine: Deployed multiple virtual machine (VM) instances to host the web application, ensuring redundancy and scalability.
- HTTP(S) Load Balancer: Configured to distribute incoming traffic evenly across the VM instances, enhancing reliability and performance.
Key Achievements
- High Availability: The load balancer ensures continuous availability of the web application by automatically distributing traffic and handling server failures gracefully.
- Scalability: Easily scaled the infrastructure by adding or removing VM instances based on traffic demands, facilitated by GCP's flexible and scalable services.
- Improved Performance: Achieved optimal performance through efficient traffic distribution and real-time health monitoring, minimizing downtime and maximizing user satisfaction.
- Health Checks: Implemented to monitor the health of VM instances, ensuring that traffic is only directed to healthy servers.
Features
- Efficient Traffic Distribution: The load balancer distributes incoming traffic across multiple VM instances, preventing any single server from becoming a bottleneck.
- Automatic Failover: In case of server failures, the load balancer automatically reroutes traffic to healthy instances, ensuring uninterrupted service.
- Secure Connections: Configured SSL certificates for HTTPS traffic, securing data transmission and enhancing user trust.
- Real-Time Monitoring: Integrated health checks and monitoring tools to keep track of server performance and availability, enabling proactive maintenance and issue resolution.
Contact
Feel free to reach out to me via email at tommyly471@gmail.com or connect with me on LinkedIn. You can also check out my projects on GitHub.