Gabe Hargrave Software Engineer


About Me

Hello! My name is Gabe, and I am a software engineer. I love building things, and I love seeing the things I build come to life and help users get their tasks done better, faster, and more enjoyably.

I enjoy working on teams with a strong sense of growth and continuous improvement, as I believe everyone always has something to teach, regardless of position or experience level. I am comfortable both as an individual contributor and in more tech leadership-focused roles—different teams have different needs, and I'm happy to fulfill whatever role brings the most value.

While you peruse, you might enjoy listening to some music that I have written over the years—it will help you get the full experience:

Contact

Feel free to reach out if you have any questions, comments, concerns, insights, revelations, or whatever. You can find a multitude of ways to contact me below:


Skills

  • JavaScript/TypeScript (advanced)
  • Frontend web development (React/Redux, NextJS, Svelte/Kit, Vue, jQuery)
  • Mobile-first responsive UI development
  • CSS pre-processors and frameworks (Sass, Tailwind, Styled Components, Bootstrap)
  • Backend web development (Node, Django, Rails)
  • Database management (PostgreSQL, MySQL, Firebase)
  • Game Development (C#/Unity, Godot, Lua, Java)
  • Python, C#, Ruby, Java, PHP (proficient)

Experience

Lead Software Engineer @ Vacasa

08/2022 to Present
Overseeing frontend development for 2 teams maintaining 3 products
  • Led a new team in launching Guestworks, a brand new product to help the company expand into previously untouched markets
  • Continued development on internal field tools, focusing on reducing operational costs for housekeeping teams across the company
  • Heavy focus on onboarding/mentoring engineers, and helping promote growth and career development
  • Deep collaboration with product & design to help plan feature roadmaps and timelines

Senior Software Engineer @ Vacasa

09/2020 to 08/2022
Senior frontend engineer building housekeeping scheduling and management tools
  • Returned to previous position after Vacasa recovered during the pandemic—see below for full details.

Senior Frontend Engineer @ Deliverr

04/2020 to 09/2020
Senior frontend engineer working on 2-day shipping fulfillment platform
  • Joined existing frontend team to help resolve bugs, refactor, and expand legacy code
  • Led knowledge-share sessions to help establish a culture of maintainable, testable code
  • Backend development with Node + TypeScript
  • Technologies used: React/Redux (TypeScript), styling with Emotion & Tailwind, Node

Senior Software Engineer @ Vacasa

10/2018 to 04/2020
Senior frontend engineer building housekeeping scheduling and management tools
  • Collaborated with UX and Product to set quarterly plans and ensure technical feasibility
  • Led frontend dev team in building two greenfield apps for scheduling and managing housekeeping teams around the world
  • Acted as a guiding voice for setting development standards, choosing tooling & libraries, and helping maintain an effective team culture
  • Led cross-team instructional sessions to share solutions to common problems
  • Developed and executed a technical interview process specific to the team’s requirements
  • Provided mentoring and guidance for other engineers and interns
  • Technologies used: React/Redux (TypeScript), styling with Sass & Emotion, PWA, Jest, TestCafe, Django + JSON:API

Frontend Engineer @ Opal

08/2017 to 10/2018
Frontend engineer on Opal, a marketing collaboration platform
  • Worked with functional team to plan, build, and maintain features in our part of the app
  • Collaborated on documentation both before and after feature releases
  • Backend development with Ruby on Rails
  • Technologies used: React/Redux, Mocha/Chai, CoffeeScript, Sass, Rails, Vagrant, PostgreSQL

Frontend Engineer @ West Corporation

04/2015 to 08/2017
Frontend engineer on IER, an event registration e-commerce platform
  • Led team in rebuilding existing frontend jQuery/Knockout codebase with AngularJS 1.x
  • Provided support, bug-fixes, and custom builds for both internal and external clients
  • Managed Git/BitBucket repositories to ensure compliance with code style guidelines and keep all custom builds in sync with fixes and new features
  • Assisted backend team in mitigating bugs in C#/ASP.NET codebase
  • Technologies used: AngularJS 1.x, Sass, Bootstrap, Liquid templating engine, Grunt

Lead Game & Web Developer @ We Did It Games

01/2011 to 03/2015
Lead game and web developer for game development team
  • Released one game developed with Unity/C#, and two games developed with Flash/ActionScript 3
  • Designed, built, and maintained company website, Wordpress blog, and press-kit
  • Developed custom WordPress theme and custom high scores API (PHP & MySQL)

Education

A.A.S in Computer Information Systems

Portland Community College — Portland, OR

A.S. in Recording Arts

Full Sail University — Winter Park, FL


Projects, Experiments, and Other Such Nonsense

A handful of miscellaneous side projects I have built here and there. Time and energy to work on this kind of stuff outside of work is generally fairly limited, but I do my best to stay up-to-date on all the fun new shiny things out there, try to learn new stuff, and apply said stuff in a project somewhere.

The links here should all be working to the best of my knowledge, but don't hold it against me if you come across any broken links or anything. The Internet is hard.

Also: be sure to check out my GitHub profile for many more various projects and experiments!

My Website (yes, this one!)

The very website you are looking at!

Writing this gives me a strange sense of recursion, but yes, it's the source for the website you are looking at right this very second.

Rebuilt from scratch in 2023 using SvelteKit because I wanted an excuse to finally see what all the fuss is about. If you want to contrast and compare Svelte/Kit and React, I am now prepared to do so!

The previous version is also linked below—it was built with React, but is otherwise mostly identical from a content standpoint.

Related links (external):

React Simple Select

A fairly small-ish implementation of a select-like component in React

An experiment to try and build a "select-like" component in React. Inspired by react-select, but with the goal of having a simpler, more flexible API.

I was hoping to build a suitable replacement that my team could swap in for react-select, but as it turns out, it's pretty hard to build and maintain a feature-rich accessible select component. Who knew? A good learning exercise nonetheless.

Related links (external):

React Magic List

A virtualized list component for React

A minimal implementation of a React virtualized list component. I built this as part of a demo for a learning session I led to demonstrate the value of virtualized lists.

Related links (external):

Velcrostrip

A general-use React UI component library

An experiment at making a general-use component library for React, inspired by early versions of Shoelace CSS.

There are only a few components here, but the ones that are there are pretty nice. The loaders in particular were fun to work with.

Related links (external):

Gargame

An experiment to write an HTML5/Canvas game engine in TypeScript

I have used quite a few different game engines over the years, both in JS/TS land and elsewhere, and there are always a few things I dislike about each of them.

The main goals here were keeping the engine as simple as possible and minimizing external dependencies—all of course, while pursuing the pipe dream of creating "the game engine of my dreams" (whatever that means).

This was fun to work on, but ultimately way too much time and effort to ever get it to a production-ready state.

Related links (external):

Space Junk [Game]

A puzzle-action-matching game set in space! What's not to love?

This was the last game We Did It Games made before we came to the unspoken conclusion that we didn't really have time to work on games anymore. The design was kept extremely minimal for these reasons, but it still turned out to be a pretty fun game.

The final game was built with Unity 5 (C#), and the original prototype was made in GameMaker. It only took us a month or two total to put all of this together--remember, kids: keep your projects realistically small, and you might actually finish them!

Watch the Space Junk launch trailer here! Then follow the link below to download your own copy!

Related links (external):

© 2024 Gabe Hargrave