Josh Duff
I like to work on boring-sounding business software that people use to get their jobs done.
I prefer to work as a project manager+developer, interacting directly with customers and translating business requirements into deliverables.
I've worked for employers with lots of developers that shipped buggy software slowly. I've worked on small teams that shipped great software reliably. I prefer the latter.
Previous employers
Workshop (internal communications) 2023-current
Developed an email editor to replace a third-party whitelabeled editor.
T.Rex Arms (ecommerce, fulfillment, manufacturing in the firearm accessories industry), 2020-2023
Worked primarily on the internal software that coordinated inventory, sales, fulfillment, customer service, manufacturing.
EquipmentShare (heavy construction equipment industry), 2019-2020
Developed the front-end of a payroll administration webapp. My team worked on time-tracking for truck drivers: the truckers used a mobile app to log their time for compliance and payroll purposes. I built out the front-end webapp used by company administrators.
Duff Ventures (consulting) 2017-2019
I worked as a freelancer, mostly serving clients in the publishing and customer service industries.
Cake (consumer software), 2016-2017 (remote)
With two other developers, added features and fixed bugs to get a node.js/Express/React app (a forum-based social network, now defunct) closer to shipping.
eDataSource (email marketing industry), 2013-2016 (remote)
- With a team of 3-4 developers:
- Built and maintained a distributed Java application that processes millions of emails per day, indexing the commercial email campaigns and storing the results in MySQL and ElasticSearch
- Developed a client-facing AngularJS application Email Analyst, used by email marketers to determine the effectiveness of their marketing campaigns and diagnose email deliverability problems
- Maintained Boxbe, a spam-filtering service used by 1M+ users
- Built the internal admin site used to manage the domain/brand/company taxonomy, and administrate client user accounts
ISoft Data Systems (car parts and heavy truck parts industries), 2005-2013
In roughly chronological order:
- Maintenance and feature development for an inventory/point of sale application built with C++/MySQL
- Made a minimal CRM tool for internal support use, using PHP and MySQL
- Made a time-tracking system with a PHP/MySQL back-end
- Worked with partner customers to develop an enterprise application for the heavy truck parts industry
- Made a push-based replication tool for MySQL databases
- Became lead developer/designer of legacy Windows application
- Codified standards for internal documentation in the company wiki, curating and maintaining all input
- Made an XMPP chatbot for use in company chat rooms using C++/Gloox
- Made an application for performing queries directly against Quickbooks company files
- Made a prototype for a PhoneGap-capable mobile version of parts search portal HeavyTruckParts.net with jQuery Mobile, PHP, TinyMVC
- Made a web application for enterprise inventory software, for use on mobile hardware with barcode scanners
- Made a client framework in JavaScript capable of running in Windows CE's IE6, and Safari Mobile
- Made API frameworks for the server-side in both PHP and JavaScript (using node.js)
As the sole phone support tech during my first year at ISoft:
- Handled all incoming support calls for a Windows-based application
- Maintained and added to a suite of reports built with Crystal Reports and MySQL queries
- Travelled to customer locations to perform installations and training
Open source
Larger projects
- spyfallx.com, an implementation of a popular tabletop party game
- abstract-state-router, a framework-agnostic nested state router for web applications
- susdsearch.com, an improved search site for some of my favorite reviewers
- canonreader.com, a Bible reader
An arbitrary selection of my smaller libraries
- classy-graph, an exercise in "data-ink maximization" inspired by Edward Tufte.
- sql-concat, for building SQL statements programmatically
- financial-number, for arbitrary-precision arithmetic on financial values
- regex-fun, for writing maintainable regular expressions
Plus hundreds of other JS libraries on GitHub.
Familiar Technologies
Delivered products/features using:
- JavaScript
- node.js
- AngularJS
- React
- Redux
- Svelte
- Express
- Koa
- Vue
- Java
- PHP
- C++
- Databases
- MySQL
- SQLite
- ElasticSearch
- Redis
- CircleCI