Software engineer with experience building applications with a strong emphasis on clean and extensible program design.
Experience
2018 — Now
2018 — Now
Cognitive Distortion Tracker - Allows users to painlessly track and categorize cognitive distortions
• Implemented Node middleware controller architecture in the backend to store and retrieve user input from a NoSQL database to persist user information.
• Used React to dynamically and statefully set, retrieve, and display unstructured user text input and concomitant user metrics.
• Took advantage of React refs to facilitate user form input management in a clean and readable manner.
Multiplayer Asteroids - A multiplayer, low-latency take on the popular 1980’s arcade game
• Implemented Redux-like state management to anticipate, recalibrate, and update state to resolve synchronicity conflicts between two players.
• Ported WebGL vector graphing scripting framework to render 2D objects and comply with MVC-like architecture.
• Performed optimistic updates and retroactive corrections to the game state in order to simulate fluid gameplay in the presence of latency between players.
OmegaSpace - A sleek REPL & collaborative text editor
• Integrated Node Virtual Machine (VM) module to sandbox user-submitted code and prevent arbitrary code execution.
• Imported websocket library to broadcast text editor input in real time, synchronizing user state across multiple clients for real time collaboration.
• Used React to maintain modularity between text editor, code editor, and code output.
2018 — 2019
2018 — 2019
• Employed Node child processes using exec and spawn properties to instantiate and interact with Docker CLI and system terminal.
• Used Electron to configure application environment in order to support cross-platform desktop compatibility.
• Leveraged Node’s ability to access file system to emit native file information to React component lifecycle, enabling users to browse file dialogs and run Docker-compose from selected directories.
• Imported npm electron-json-storage to manage persistent user data when saving previously run Docker Compose directories to improve user experience.
• Used React to render and better facilitate control of Docker container components to maintain a clean and modular development architecture.
• Resolved translation of data from CLI to Node backend by utilizing a parsing library to traverse stdout text stream.
• Mapped Docker containers to volumes to act as persistent storage in file system, keeping Docker containers stateless while enabling the application to configure pertinent information on user machine.
• Used Docker Compose to architect multi-container applications to test responsiveness of the application.
• Improved UX by leveraging ES6 promises to render ‘loading’ component while Docker Compose architects or dismantles multi-container apps.
https://github.com/Spindocker/Spin
2013 — 2017
• Maintained cloud-hosted company website built in JavaScript, PHP, and MySQL using a content management system to develop.
• Deployed JavaScript website using FTP to remotely connect to hosting servers and update site content.