Developer | Ruby & Rails | WA, USA
About Me
Hi, I’m John-Alvin, a Full Stack Developer specializing in Ruby on Rails. Coding truly fuels my soul, and the thrill of continuous learning is absolutely addictive! Driven and constantly seeking to deepen my knowledge, I thrive on embracing new challenges. My interest in cybersecurity, particularly devops, informs my approach to building more robust and secure applications that solve real-world problems.
I value clear communication and actively seek opportunities to share insights and connect with fellow developers. Explore my projects on GitHub and follow my programming adventures and learning experiences on my blog. Beyond professional development, my hobby in game development broadens my creative problem-solving skills.
When not coding, you’ll find me engrossed in a good book 📚 or exploring new recipes in the kitchen 🔪.
Skills
Hotwire
Kamal
Projects
Pangu Terminal
Live App
GitHub Repository
Rails 8, Hotwire, PostgreSQL, Docker, Kamal 2, DigitalOcean
- Built a seamless, "SPA-like" experience using Turbo Frames and Streams. This enables users to filter subjects and configure plans within a single modal, eliminating full-page refreshes.
- Implemented a polymorphic database structure to link user plans to both
ResonatorsandWeaponsmodels. This reduced code duplication and made the app much easier to scale. - Decoupled the UI from the database by creating a dedicated Form Object. This simplified the controller logic and made it easier to handle complex validations across multiple steps.
- Resolved N+1 query bottlenecks using eager loading using
#includesand migrated key data from JSON blobs into indexed columns to speed up dashboard load times. - Developed a custom "Guest-to-User" sync system. Users can create plans anonymously via guest_token cookies and instantly migrate their data to a Devise account upon sign-up.
- Isolated complex game calculations into standalone Service Objects. This kept the models lean and ensured the material cost logic was easy to maintain and test.
- In-development Celeste-like platformer built in Godot 4.2 using GDScript.
- Features a custom platformer physics system to achieve smooth, responsive, and precise character movement.
- Built a scene manager that listens for the signal, dynamically constructs the next level's file path, and then instantiates the new level
- Ensured transitions are robust by validating the 'player' group before firing the signal, preventing other physics bodies from triggering a level change.
- Debugged runtime issues where new scene colliders failed to load, tracing the problem back to the
CollisionPolygonShape, for compatibility with instantiation I refactored to useRectangleShapeinstead.
- Game Logic: Built a functional command-line chess game designed for one player against a computer, implemented purely in Ruby.
- Implements logic to prevent illegal moves based on piece movement rules, ensuring game integrity.
- Correctly determines and declares check and checkmate scenarios during gameplay.
- Emphasized modular class design and Single Responsibility Principle (SRP) for high code maintainability across core game objects (
Board,Pieces,Player). - Testing: Utilizes RSpec to test critical components and methods, ensuring reliability and facilitating efficient debugging.
- Built a functional single-page Task List application using React and the
useStatehook for state management. - Implements core CRUD (Create, Read, Update, Delete) functionality for tasks.
- Creation: New tasks are added via the
handleAddTaskfunction, prepending them to the list. - Update/Toggle: Tasks can be marked as complete/incomplete using
handleToggleComplete, which maps over the array to update state immutably. - Deletion: The
handleDeleteTaskfunction filters the tasks array to remove a selected item. - The architecture demonstrates component-based design, utilizing
TaskInput,TaskList, and more components to separate concerns.
- Architecture: Developed this personal portfolio website using Bridgetown for modern Static Site Generation (SSG), hosted on DigitalOcean.
- Utilized Ruby and Markdown for dynamic content injection, template rendering, and streamlined content management.
- Implemented HTML and CSS for structured layout and styling, ensuring the design is fully responsive across mobile and desktop breakpoints.
- Navigation (Mobile): Utilized JavaScript to implement a dynamic hamburger menu that toggles visibility, significantly improving navigation and user experience on mobile screens.
- Managed codebase changes and history using Git for version control.