Verified Expert in Engineering
Git, Vim Text Editor, MacOS, Linux
The most amazing...
...project I've worked on was a multi-threaded, front-end data manager using WebWorkers, WebSockets, and Ajax to smoothly fetch, alter, and display data.
Freelance React Front-end Developer
House So Green (via Toptal)
- Created a React application for finding green-built homes.
- Queried and mutated information from the backend using GraphQL with React Apollo.
- Created a set of complex forms for editing information about homes, certifications, and other related data, including uploading photos.
- Implemented an interface for efficiently searching through thousands of homes and displaying paginated results with an interactive map display.
- Translated Sketch files provided by a designer to a responsive web design that works well with mobile and desktop browsers, using a combination of styled components and Bootstrap.
Freelance Front-end Developer
SeatCrawler (via Toptal)
- Built a prototype in Ember.js for visualizing ticketing data on custom and interactive venue maps using MapBox.
- Converted large GeoJSON maps to smaller vector tiles in Node.js and cached them on AWS in order to limit the amount of data transfer and speed up rendering.
- Created a Node.js-based API using LoopBack to serve data cached in MongoDB.
- Ported the mapping portions to standalone React-based components to be used in a larger application.
- Optimized the map viewer for better controls on touch-enabled devices.
Wirestorm Technology Inc. (via Toptal)
- Converted InVision and Photoshop designs to an interactive, responsive, pixel-perfect user experience.
- Incorporated user feedback from bi-weekly demos and daily standups.
- Created detailed documentation describing API endpoints required for both our internal application and for fetching data from external providers.
- Ensured support for the web application to be used in all major browsers as well as IE 11 and as a Microsoft Outlook add-in.
Senior Software Engineer - Theatrical Domestic
- Set up an automated pipeline for continuous integration and deployment.
- Optimized the performance of the production virtual machines through the allocation of resources and software.
- Improved the client experience by providing new technologies quickly.
- Upgraded a set of reports to show data visually using AmCharts and Google Maps.
Software Engineer - Theatrical International
- Upgraded the website to a Single Page App, using cutting-edge web technologies.
- Developed a subsystem to track and display film interest prior to release.
- Led the team transitioning data and reports from the French market into our system.
- Practiced Agile, test-driven development in a Linux environment.
- Created a set of charts and graphs to visually compare historical data across multiple sets of films.
Peer Educator | Tutor
Academic Success Center, Oregon State University
- Tutored three different students in the programming languages Haskell and Prolog.
- Wrote sample problems and gave advice to prepare students for upcoming tests.
- Guided students through lecture slides, homework, examples, and practice exams.
Management Information Systems Intern
- Designed a web-based help desk using ColdFusion and various web design standards.
- Implemented a Microsoft Access-based database system for electronic change orders.
- Provided general technical support with the Information Technology department.
House So Greenhttps://app.housesogreen.com
I wrote the front-end for this site using React. The data is managed using Apollo GraphQL. A designer had provided mockups of the design in Sketch, which I then incorporated into the site using a combination of SCSS, Styled Components, and Bootstrap.
We came up with DataWorker and open-sourced it. It let us stream data in using web workers so that the main thread doesn't get blocked when large amounts of data are coming in. We could then also sort the data in that separate thread and only request the small chunks we wanted to render a bit at a time. It allows you to stream through WebSockets or Ajax, and we kept the documentation up to date.
I recently updated the documentation's UI from Bootstrap 2 to Material Design.
International Box Office Essentialshttps://iboe.com
Ye Olde Shoppehttps://github.com/redbmk/angular-academy-shop
Logins are managed through Firebase using Google accounts for authentication. The store has the concept of three distinct roles for accounts, with varying permissions: users, managers, and admins.
Users can view products and add them to their shopping cart. The shopping cart allows users to edit the items and quantities of their order before checking out. Stripe's test mode is used during checkout to mock payments. Users can view their past orders and their status, and can also edit their profile picture, name, billing, and shipping addresses. All accounts are considered to be a user.
Managers have the ability to add new products and edit existing products, as well as view orders and update their status.
Admins can also add or edit products, as well as delete existing products. They may also view or delete existing orders. Admins also have the ability to view and edit other users.
Auto Repair Shophttps://github.com/redbmk/auto-repair-shop
In the repair shop, users can view repairs assigned to them and can comment on repairs. They also have the ability to mark a repair as completed which then needs to be approved by a manager. By default, all repairs are shown on screen, but there is a set of filters to find repairs by a date range, a time range, and whether the repair is completed or not. All filters are optional.
Only a manager may create, edit, or delete repairs, and assign them to other users or mark them as approved. They may also add and delete users, or add or revoke manager permissions for another user. Managers also have a special filter to view repairs assigned to a specific user.
All of the data is updated in real time. For example, if a manager is viewing completed tickets, then a user marks one of their tickets as complete and that ticket will immediately show up on the manager's screen.
Bootstrap 3, Knockout (Knockout.js), Ember.js, QUnit, Durandal, Angular, React Native, Bootstrap, MUI (Material UI), Express.js, Loopback, Aurelia, Redux
Mapbox GL, Turf.js, Node.js, jQuery, Firebase Web SDK, React Final Form, Flexbox, React Router, Moment.js, Lodash, Reselect, React, Immutable.js, Material Design Lite, Google Maps, Recompose, Leaflet, Reactstrap, RxJS, Chai, HTML5 Web Workers
Git, Vim Text Editor, React Apollo, Jira, Mocha, Emacs, Adobe ColdFusion, Sequelize, Eclipse IDE, Jenkins
Mapbox, Linux, Firebase, MacOS, Amazon Web Services (AWS), Docker, Heroku, Oracle, iOS
PostgreSQL, Firebase Realtime Database, MySQL, Google Cloud SQL, NoSQL, MongoDB, Vertica, Redis
Single-page Applications (SPA), Front-end Development, Firebase Hosting, Styled-components, AmCharts, Mapbox Styling, Semantic UI, CSS Grid, SEO Content, SEO Audits, Google Material Design
Test-driven Development (TDD)
Bachelor's Degree in Computer Science
Oregon State University - Corvallis, OR, USA