I make and maintain software.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.nojekyll
CNAME
build.js
index.html
isoft.html
isoft.md
package.json
print.css
readme.md
style.css
template.html

readme.md

Josh Duff

me@JoshDuff.com

I've spent over a decade building desktop and web applications for various industries. I turn customer needs into technical specs and deliver software slowly and steadily over many small iterations/deliverables.

I've delivered software solutions by myself, and as a member of small teams.

I have experience with large web frameworks, but am comfortable building a toolbox out of composable libraries. I have worked with various database systems, but spend the most time with MySQL.

Previous employers

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:

  • Performed maintenance and feature development for an inventory/point of sale application built with C++/MySQL
  • Wrote a minimal CRM tool for internal support use, using PHP and MySQL
  • Wrote an AJAX-based clock-in system with a PHP/MySQL back-end
  • Worked with partner customers to develop an enterprise application, writing specifications and delivering features
  • Developed 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
  • Developed an XMPP chatbot for use in company chat rooms using C++/Gloox
  • Developed an application for performing queries directly against Quickbooks company files
  • Developed a prototype for a PhoneGap-capable mobile version of parts search portal HeavyTruckParts.net with jQuery Mobile, PHP, TinyMVC
  • Developed a web application for enterprise inventory software, for use on mobile hardware with barcode scanners
  • Developed a client framework in JavaScript capable of running in Windows CE's IE6, and Safari Mobile
  • Developed 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
For a long-form description of my time at ISoft, click here.

Open source

Larger projects

An arbitrary selection of my smaller libraries

  • sql-concat, for building SQL statements programmatically
  • financial-arithmeticator, for arbitrary-precision arithmetic on financial values
  • mannish, a mediator focused on reducing coupling between stateful modules in larger apps

For a more complete list of libraries I've published, see tehshrike.github.io.

Writings

I have written a few posts related to my software projects:

Other

  • Over a hundred packages published to npm
  • Thousands of lines of code published under an open license (tehshrike.github.io)
  • Retrospectives of projects and explanation for tech problems at joshduff.com

Familiar Technologies

Delivered products/features using:

  • JavaScript
    • node.js
    • AngularJS
    • React
    • Redux
    • Express
    • Koa
  • Java
  • PHP
  • C++
  • MySQL
  • SQLite
  • ElasticSearch
  • Redis

I'm particularly interested in the chance to work with Clojure, Elm, Elixir, or other languages focused on simplicity through pure functions.