Hello! I'm Devin, web developer and Oregonian. I love digging into the logistics of what makes things tick; whether it's high-level or the nitty-gritty, I'm always ready to design and develop functional systems.

When earning my BS of Computer Science, I primarily coded in C, but I've since swapped my focus to JavaScript. I recently finished Thinkful's Engineering Immersion Program, a rigorous, five-month endeavor to learn full-stack web development. My main technologies are React-Redux on the front end, and Node/Express with MongoDB on the backend.

In my spare time, I'm an avid player of videogames (especially labor-of-love indie games), and have regularly played Dungeons & Dragons since 2012. Periodically, I also engage in collaborative worldbuilding and storytelling exercises with friends, creating the lore and history of strange fantasy worlds.

SKILLS

MongoDB
Express
React
Node.js
  • Develop sites with React
  • Manage state with Redux
  • Create RESTful APIs with Express
  • Make databases in MongoDB
  • Create automated testing suites
  • Configure apps for CICD
  • Design mobile-first layouts
  • Work well in a team

PROJECTS

ShaveReducer

A dashboard of a user's shaving products, organizable by product type.

(React, Redux, Express, Passport, JWT, MongoDB, Mocha, Chai)

A collaboration between myself, Kyle Bowen, Jon Kim, and Rich Tom.

My time living in Portland has given me an appreciation for beards, and our teammate Kyle introduced us to the shaving enthusiast community. As he likes to put it, there are a lot of people who like to "shave like your dad," and keep detailed logs of their shaving activity.

ShaveReducer acts as a convenient way to track your shaving products and shave history. After registering and adding products to your product collection (blades, brushes, lathers, etc), you can create logs of when you've shaved. These logs include what products were used, comments on the shave, and an overall 1-5 rating. Shaves log items can also be shared to the community, so others can see what people think of certain products.

Sakura Learning

A flashcard prompt asking for the definition of the Japanese word 'watashi'

(React, Redux, Express, Passport, JWT, MongoDB)

A collaboration between myself and Kevin Tsang.

Once upon a time, I studied Japanese throughout my time in high school. I didn't learn the language much beyond that, but a part of me wants to pick it back up. In that spirit, I developed this app with my friend Kevin.

Sakura Learning is a flashcard learning app for Japanese vocabulary. It implements a spaced repetition algorithm, so the words a user struggles with will appear more often, while the words they know well will appear less often. At any time, a user can track their progress, seeing their overall accuracy and the correct/incorrect ratio for given words.

Savage Planner

Section of a character creator, showing the final stats of a character

(React, Redux, Express, Passport, JWT, MongoDB, Mocha, Chai)

My first full-stack project!

I play tabletop games like Dungeons and Dragons frequently. At the time of this app's creation, I was playing in a campaign using the game system Savage Worlds, and decided I wanted to make a character creator/tracker for it.

Savage Planner allows you to build fresh, 0XP Savage Worlds characters, then plan out your level-up choices. It also offers feedback if a given level-up choice is invalid, like if you're missing pre-requisites in your previous selections. Registered users can make many characters, which are automatically saved for future editing/reference.

CONTACT