Hey there, I’m Ethan, a computer science major at UCI. My experience consists of both formal education and many years of self-taught, passionate learning. I pay close attention to user experience and believe that attention to detail makes software enjoyable to use.
Skills and Languages
No JavaScript? No problem. You can still click each icon to learn more!
TypeScript
I used TypeScript while creating the frontend and backend code for my hackathon judging platform, HackEval. The frontend code controls the fluid user interface, and the backend code handles database interactions, authentication, and route management.
JavaScript
I have the most experience with JavaScript and use it to create most of my projects. JavaScript is at the core of developing interactive web apps, and I learned it over the years by creating everything from my first big project to a full web-based code editor.
HTML
As another building block of the web, HTML is a vital skill and makes up many sites I’ve developed. I’ve used HTML to develop several websites and frontends, including the GameChanger Project Website and the Treasure Hacks Hackathon Website.
CSS
CSS is another introductory language to the web, and I’ve learned many of the ins and outs of the language. I have used it to style many apps and websites such as the Treasure Hacks Hackathon Site and a personal Hopscotch-related website.
SCSS
Sass CSS (SCSS) is a more robust stylesheet language that has allowed me to construct larger stylesheets for more complex layouts like those found in the Treasure Hacks Organization Website and the fully-featured Web Editor for Hopscotch.
Git
Learning git is one of the most important skills in software development. Through my internship with Hopscotch, I used git collaboratively and learned commands like rebase and cherry-pick. This then led me to write GitHub 101 & 201 for those new to version control.
PostgreSQL
While I was familiar with NoSQL databases, I chose to use PostgreSQL for my hackathon judging platform since it is a robust RDBMS. Due to the many relations needed for the app, I’ve written several nested queries and migrations to return the proper data.
MongoDB
In addition to learning SQL, I’ve experimented and used document-based databases like MongoDB. Using both replica sets and change streams together with websockets allowed me to mod Hopscotch and create a realtime multiplayer system.
Node.js
I’ve used Node.js for a variety of projects. I got started with Node.js when I wanted to build an API for a collection of Hopscotch Tools I made. Once familiar with routing, I moved on to writing backend apps like the Treasure Hacks Discord Bot as well as full stack apps.
Python
I learned Python through creating several small command-line apps, and I used it to extend the base application in a workshop I helped to prepare. Python was used to create backend logic like interacting with webhooks to notify users and editing items in a personal list.
Ruby on Rails
Through interning with Hopscotch, I was quickly able to get a hold of the language’s syntax and behavior. Since one of their backend applications was written in Ruby, I learned the language so I could add features that the web editor needed to achieve full functionality.
Jest
Through both formal education and internships, I’ve accustomed myself to writing unit tests with Jest. I’ve used it to write tests for APIs, web app behavior, and Discord bots as it ensures that code I write or review is reliable and behaves as expected.
I’m always eager to build the next app that creates new and interesting experiences. Feel free to check out the rest of my projects or contact me [email protected] if you have an opportunity!