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 10-40 developers that shipped buggy software slowly. I've worked for employers with 2-4 developers 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.
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 the node.js/Express/React app Cake 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