Highlighted work

Here's a collection of open and closed source projects I've worked on over the last few years. Have questions about a specific project? Email me at alex (at) enplug.

ngSegment (AngularJS) Coverage Status Star

A highly configurable module for easily adding Segment analytics to any Angular app with 96% unit test coverage.

Originally created for Enplug's customer-facing web application, it uses AngularJS best practices for flexible configuration via provider or constant auto-loading.

JavaScript AngularJS | 2015 | Github

Enplug SDK (JavaScript) Coverage Status

An Enplug app consists of two parts: Java code or website that runs on the displays, and a web page that customers can use to configure the content of their display.

The open source JavaScript SDK makes it possible for app developers to embed a configuration page for their app in Enplug's web application that customers use to manage their digital display software (similar in concept to writing apps for Facebook).

The SDK also exposes convenient APIs for the most common web application functionality (confirm boxes, loading indicators) and has 99% test coverage.

JavaScript | 2015 | Documentation & source

Enplug System Architecture

Enplug's palm-sized device makes any digital display interactive. The Enplug App Market lets businesses choose a variety of content to display ranging from the brand's live social media feeds, product videos, news feeds, weather, and more. All content and apps are easily managed online.

As founding CTO I co-architected our system in 2012, and it's come a long way since then!

Android RabbitMQ MongoDB LAMP .NET | 2012 | https://enplug.com

Enplug Web Dashboard (AngularJS)

Between 2012 and 2015 I led the design and architecture of Enplug's primary customer-facing web application. It's a large, modular enterprise AngularJS application.

In 2015 I re-architected and re-designed the application, reducing page load time from 2s to 600-800ms.

JavaScript AngularJS HTML/CSS SASS PHP Apache | 2012-2015 | https://dashboard.enplug.com

Enplug.com E-Commerce (Web)

As COO of Enplug in 2015 I overhauled our pricing strategy, and then architected and led a team in implementing an automated online order processing system for customer on-boarding via e-commerce purchases and a line-of-business (LoB) app for internal sales team orders.

The automated system greatly simplified a complex workflow for both customers and Enplug teammates. It also facilitates E2E information transfer between several disparate systems: Recurly & Braintree for payment processing, Shopify for order fulfillment, Hubspot for sales & marketing intelligence, and Enplug's core system for account creation.

PHP JavaScript HTML/CSS SASS Apache | 2015 | https://enplug.com/start

<material-inputs> (AngularJS)

AngularJS directives that make it easy to use material design in your forms. Originally created for Enplug's customer-facing AngularJS application, later spun off into a standalone library.

JavaScript AngularJS HTML/CSS SASS | 2015 | Github

Coding Everest (Web)

This is a fun side project/challenge that's a work in progress. I wanted to explore the limits of CSS3 illustration and animation by creating an animated HTML landscape artpiece of Mt. Everest without using images, SVG, or HTML5 canvas (the proper tool for this job).

HTML/CSS SASS | 2015 | http://codingeverest.io

Enplug Control (iOS)

In early 2014 I wrote the first version of Enplug's customer-facing native iOS mobile app. It lets customers control the content on their digital displays on-the-go. The app uses Core Data for caching data loaded from Enplug's JSON APIs.

Objective-C | 2014 | App store

StartupVitamins App (Enplug SDK)

StartupVitamins posters are great. So I reached out and created a partnership whereby they would provide a handful of free digital posters to Enplug customers using the StartupVitamins app for Enplug, and then wrote the app using our SDK.

PHP HTML/CSS SASS JavaScript AngularJS | 2015 | https://enplug.com/apps/startup-vitamins

Enplug Player (Android)

The Enplug Player app for Enplug's (Android) devices is responsible for showing a customer's content on their digital display. When we were first building Enplug's system in 2012, I wrote our primary client-side player application and a handful of supporting background services for logging, RPC controls, monitoring heartbeats, etc.

Data/content is transferred via a combination of JSON RESTful APIs and bi-directional sockets. The UI was originally done in XML layouts, and our team later rewrote the entire application to leverage OpenGL among many other improvements.

Java Android RabbiMQ Sockets | 2013 | https://enplug.com/features/display

PyShell & ShellCommand (Python & Android)

Enplug's Android devices are client computers that sit behind a router and/or firewall in our customer's buildings, so we couldn't SSH directly into them to debug/troubleshoot. Instead, I created an RPC-based protocol for opening interactive commandline prompts using RabbitMQ as a message broker for the real-time commands.

PyShell is the Python command line tool that runs on an engineer's computer and knows how to connect to specific Enplug devices in the field after a handshake. ShellCommand is the Android service which allows any Android app to open up a command line interface for troubleshooting, which is useful even for local development.

Python Java Android RabbitMQ Sockets | 2013 | Github

Studyboard Flashcards (iOS & OSX)

In early 2012 I co-designed/created a flashcard app for iPhones, iPads, and Macs with my future co-founder of Enplug, @zspitulski. The app used iCloud to sync flashcard data between devices and gestures for flipping cards.

Objective-C iOS OSX | 2012 | App reviews