Hi, my name is Ryan Lin,
I am a Frontend Developer.

Know more

About me

Profile Image

I am mostly a front-end software developer and a student at Iowa State University, pursuing a B.S. in software engineering. My technical skills are well-rounded, with proficiency in languages like Java, JavaScript, C, C++, and HTML, and intermediate skills in Python and SQL. I have hands-on experience with frameworks and tools such as React.js, MongoDB, Node/Express.js, Git, Bash, Android Studio, and Flutter.

In my free time, I also enjoy indulging in my personal hobbies such as aquarium upkeeping and maintenance, marching band, and playing video games!

View Resume

Projects

NoteSync

Skills: Java, JavaScript, Maven

Developed the front-end of an app using Android Developer Studio, leveraging Java as the main programming language. Collaborated with other frontend and backend developers to build a successful API-driven integration with the app backend APIs. Implemented a file management system where users can create, delete, and organize documents and folders within a directory. Enabled real-time collaboration using WebSocket to allow live sharing of documents between multiple users. Provided version control capabilities to track changes made to documents over time. Performed unit and integration testing to ensure that all features of the app work as expected.

Source Code

Rogue-like Pokemon

Skills: C, C++

Planned the structure of the game, including classes to handle game logic, character stats, Pokémon attributes, and interactions. Implemented a procedural dungeon generator to create randomized maps with rooms, corridors, and obstacles. Designed algorithms for placing Pokémon, items, and trainers within the dungeon. Implemented a pathfinding algorithm using Dijkstra's algorithm to control NPC actions.

Source Code

Minesweeper

Skills: C, C++

Implemented the classic game Minesweeper in C++, replicating the core mechanics and user experience of the original game. Developed multiple difficulty levels, ranging from beginner to expert, with varying grid sizes and mine counts. Created a robust user interface, allowing players to easily interact with the game, reveal tiles, and flag potential mines. Integrated game logic to handle automatic tile revealing for empty tiles and proper handling of win and loss conditions.

Source Code