Bruce's Portfolio

Welcome to my portfolio site. Here are my projects, skills, and ways to get in touch.

Start Here

Professional Experience

Peek

Backend engineer supporting Elixir and legacy Ruby services

Ninecount

Backend for Wink application

  • Investigated and fixed root issue affecting over 500,000 users involved in core chat functionality that had plagued the system for over 2 months.
  • Led effort to add first (unit) tests into an undocumented and untested Node.js backend API.
  • Discovered client was using the backend API incorrectly causing bugs degrading the end user experience and documented a proposed solution around "random chat" functionality for both client and backend.
  • Led effort to add first unit tests inside first Golang application repositories.
  • Developed feature around storing and fetching metadata using DynamoDB via Golang lambda function to help improve long-tail retention.

DockYard

Software Consulting Projects

  • Successfully and quickly delivered 3 client projects with well-tested and easy-to-maintain features using Elixir/Phoenix, LiveView, and GraphQL. Clients ranged from a small startup to enterprise-level clients.
  • Took the lead on repairing a distributed Jaeger tracing system by teaching myself enough Kubernetes and Ansible for debugging purposes to enable team to more easily troubleshoot issues.

VS

Versus Platform (API)

  • Development: Implementing backend API features written in Elixir using the JSON-RPC 2.0 specification. Writing controller tests that exercise the system which although originally built around a GenServer architecture, now uses Mnesia. Contributed bug fixes and simple front-end features written in React.
  • Deployment: Also learned Terraform and how to deploy production releases to Google Cloud.

Hallmark

Digital Platform

Implementing a microservice architecture slated to serve as the backend platform for Hallmark's e-cards and streaming movies services. The team built more than a dozen Elixir / Phoenix REST-ful microservices hosted on AWS with a PostgreSQL database and deployed via Docker. Due to a company-wide mandate, we are now rewriting it in Golang via the Beego framework with a MySQL database. Highlights include work on a minimalist prototype of an autocomplete suggestion feature(s) with Elasticsearch and using metaprogramming to reduce the amount of boilerplate used to build a nested CRUD hierarchy feature.

Fullscreen

Platform Integrations

Built backend OAuth provider in Rails 5 and worked with 3rd party developers to integrate it with their search influencer platform to make it easier to connect influencers and company brands; resulted in a high value contract with a major automaker and over 2M+ worth of new business opportunities

Worked with 3rd party developers to integrate Fullscreen's influencer onboarding platform for new influencers with a 3rd party search platform. Dove into an Angular 1.x codebase I was not familiar with to setup the backend integration between the OAuth provider, influencer onboarding platform, and 3rd party search platform.

Elixir/Phoenix Reporting Application

Learned the Elixir/Phoenix basics and led effort to put the first internal application in production using Elixir. It emails a weekly CSV report of video metrics to business users. Completed on schedule while at RubyConf 2016.

Movie Trailer Reporting Application

Led effort to bring down the average web dyno worker by 50% (from ~1GB to ~512MB) through the use of raw SQL queries and Handlebars templating so the business users could have 6000+ videos associated with each movie they were tracking. Took over the maintenance and addition of new features on a Rails 5.0.x application from a former coworker. Features developed included: simple search with Postgres, edit CSV reporting features by adding new columns via raw SQL, auto-assigning video categories on a bulk addition.

Campaign Interest

Led an effort to integrate a campaign interest form using Google Apps scripting and took over tickets from former front end developer to make changes on the UI with a React / Redux workflow with a codebase I was unfamiliar with.

2017 Fullscreen Hackathon

Joined a team of 2 senior PHP developers to build a Wordpress plugin. Learned enough PHP/Wordpress to add a Tiny-MCE editor and modify the plugin CSS styling for our demonstration day. This plugin will actually be used to help clients with their own merchandise easily sell their own merchandise from their Wordpress site via our company API.

Loot Crate

Sidekiq Monitoring Station

Built a Sidekiq PRO monitoring station secured with github oauth to monitor our background workers for 2-3 production applications on Heroku. The idea is to prevent having to create special admin users on each production application for the sole purpose of monitoring Sidekiq workers.

Logistics Automation

Logistics Automation: Implemented an automated way to provide the logistics and operations team updated shipping manifests when a new product line was added so that other programmers would not have to touch the codebase to make this happen. Used metaprogramming and SQL to do so.

2nd place Hackathon Winner

Part of a team that came in 2nd place in an internal weekend company hackathon. The app was a web app that used HTML5 geolocation to help people locate scavenger hunt items. I wrote the portion using HTML5/Javascript that interfaced with the Mapbox API and backend API to add and remove treasure markers off the map.

Retention Projects

Worked on a team charged with a mission to retain customers at Loot Crate. Here's a snapshot of things I did:

  • Performed some basic debugging on the fly during a marketing refer-a-friend program launch so our team could track the performance of its campaign using Optimizely while the main developer responsible was away on vacation.
  • Wrote some basic SQL queries to ferret out subscriber counts and for use in internal metrics for the marketing team I’m on.
  • Wrote modular API library that interfaces with 3rd party API service to calculate taxes for our Ruby off Rails (Grape) API
  • Towards the end of my tenure, I worked on implementing an automated way to provide our logistics and operations team updated shipping manifests when a new product line was added so that other programmers would not have to touch the codebase to make this happen. Used metaprogramming and SQL to do so.

USC

Clinical Studies Directory

Built a REST-ful services API for an Elasticsearch powered directory of clinical trials for the University of Southern California Keck School of Medicine, with an average response time of roughly 100 milliseconds across an average of 6000 to 8000 daily requests (as of September 2015) built in Rails 4.2. I also implemented some front-end design tweaks on the searchable view side using Sass / CSS. Click the title link to see the directory whose data is being pulled from the API.

Datanexus

Implemented an automated progress report survey system to allow primary investigators (researchers) to report how NIH grant awarded funds helped their research, enabling a tighter feedback loop for organizational efficiency and budget allocation built with Rails 4.2.

Time Tracking

Working on a Rails 3.2 legacy codebase to allow statistical research consultants to track their time and billing on client work. It uses AJAX and jQuery to allow real-time updates of the relevant numbers on the client facing user interface.

Clinical Trials Gadget

Managing the deployment and implementing minor bug fixes of a social media type "gadget" on a linkedin-like platform specifically built for researchers to highlight their clinical trials.

Side Projects

*side projects range from 50-100% finished and/or are under active development*

BinaryWebPark

A development blog focusing on Elixir, Ruby on Rails, JavaScript, and other assorted web development topics. Updated semi-regularly.

Page-Specific JavaScript with LiveView and Webpack: A cross-linked post to the DockYard engineering blog where I explore how to use webpack when working with LiveView to conditionally load JavaScript assets for specific pages and, in doing so, help keep the size of app.js down...

One of my posts, Testing Elasticsearch In Your Rails 4 Application was featured in Ruby Weekly #233

rustcmdpev

My first Rust package: A command-line Rust PostgreSQL query visualizer.

nested_filter

My first Elixir package: Providing Map#drop functionality for nested maps (by key or value).

RSocialize

This is a ruby on rails gem that enables easy installation of the sharrre jQuery plugin. It provides a simple way to add social media buttons to your rails application. No more digging through APIs or copying and pasting code from developer docs just to install social media buttons for your rails application. This was the first gem I wrote when I was learning Ruby.

Ruby Asteroids Clone

An asteroids clone that I wrote in one weekend to explore the Gosu gaming library. The code is pretty horrible but the game is playable and I learned what you can ship when you have a tight deadline and don't engage in scope creep.

AceMusicTeacher

One of my first start to finish web applications written in Ruby on Rails 3. I wrote the backend with some minimal front end implementation. Currently rewriting it in Elixir/Phoenix so I've removed the link to it (it was also crashing due to an outdated dependency).

Experiments

*experiments are typically exploratory code spikes; they are little things I do to explore new technology*

Go Stress Test

A small playground to explore concurrency in Golang vs Elixir

Framework Snake

A playground for exploring JavaScript - JavaScript snake with various JavaScript frameworks

Concurrent Tree

A playground to test concepts I'm learning in Elixir - OTP, supervision, and ets.

Supervision Tutorial

A playground to explore Supervision strategies in Elixir - Dynamic, One For One, Rest For All.

rails_backbone_wizard

An example step-by-step wizard application showing you how to incorporate backbonejs, jstree, and rails 4.

padrino_superhero_todo

A todo app built on Padrino.rb with Angular to explore Padrino and Angular.

Leaderboard SPA

A leaderboard single page application written using Angular on the front-end to handle client side routing and CRUD interactions and a Rails 4 API on the backend to store the data.

Conference Talks

Rebuilding ESpec

Gave a talk entitled Rebuilding ESpec at "The Big Elixir" conference in November 2019

Rebuilding a BDD Testing Framework

Gave a talk entitled Rebuilding a BDD Testing Framework (ESpec) at the "Empex LA 2019" conference in February 2019

Skills

Elixir

Ruby

Go

JavaScript

Sass

Rails

Python

React

Docker

Vim

Git

Communication

Empathy

Music