FRANK DAVID DUNCAN, JR
3822 W. Altgeld, Apt. #1
Chicago, IL 60647
frank@kank.net
(773) 727-3247

Education


Chicago, IL: 8/2000 - 5/2004
BS in Computer Science
Illinois Institute of Technology

Relevant Skills


Languages with >10k lines of code
Java, Common Lisp, JavaScript, PHP, Shell Script
Languages with >1k Lines of Code Ruby, Python, C++, Scala, CoffeeScript
Things to ask me about
Vim, Linux (Gentoo/Ubuntu), Unix toolchain (grep, sed, etc.)
Maven, Agile, Subversion, Git, AccuRev, Rails, Tomcat, Spring
Web Technologies (CSS, HTML, HTTP, etc.)

Work Experience


Katherine Anne Confections, Chicago, IL

Founder and CTO ( 9/2006 - Present )
Designed and implemented http://katherine-anne.com. Created custom financial software tailor-made to the business process including various day-to-day operations of business such as printing forms, managing a customer database, automated shipping, automatic reconciliation with bank accounts, order management, and invoicing. Created the graphic and layout design while adhering to internet usability principles.

Vanderbilt University

Software Developer ( 7/2016 - 7/2017 )
Developed collabsnap: a prototype addition to SNAP! to allow for collaborative work. Details included:
  • Writing simple in memory database and servlets to handle state
  • Creating SNAP! blocks to connect to server
  • Writing examples that showcased new features
Url: https://github.com/frankduncan/collabsnap
Skills Used: Java, Javascript, SNAP!

Center for Connected Learning at Northwestern University, Evanston, IL

Software Developer ( 9/2013 - 11/2015 )
Developing a NetLogo to JavaScript compiler, as well as maintaining legacy NetLogo implementation. Work includes:
  • Writing the compiler in Scala.
  • Writing NetLogo models to gain a better understanding of the language.
  • Creating extensive tests to check for correctness of compiler.
  • Writing the NetLogo engine in CoffeeScript.
  • Open sourcing software on github at github.com/NetLogo under the username frankduncan.
Skills Used: Scala, Coffeescript, JavaScript, Continuous Integration, Service Level Testing.

The Karn Group, Chicago, IL

Jack of all Trades ( 5/2009 - 6/2013 )
One of three developers delivering financial compliance services in an ASP model. Responsibilities include:
  • Creating, and open sourcing, custom Common Lisp to HTML/JavaScript/CSS framework for quick development.
  • Working directly with external clients to map out functionality.
  • Specifying requirements for, installing, deploying, and maintaining hardware at a local datacenter.
  • Designing application user interface in concert with client needs.
  • Architecting data models into multiple backends including Mysql, Postgres, Tokyo Cabinet, and custom solutions.
  • Developing entire applications from database schemas to HTML.
  • Supporting and maintaining production applications.
Skills Used: All aspects of the project lifecycle, from initial design, through testing, deployment, and maintenance.

Orbitz WorldWide, Chicago, IL

Senior Software Engineer: Internal Tools ( 3/2008 - 5/2009 )
Developed and administered tools for internal technical customers. Responsibilities included:
  • Administered Atlassian Jira, Atlassian Confluence, AccuRev, RPM repository.
  • Developed in-house tools for handling transitive dependency management and releasing software.
  • Extended third party tools such as Jira, Confluence, and Ant for customized use by Orbitz employees.
Skills Used: Ruby, Rails, Python, Java, Maven, Common Lisp, and Ant.
Senior Software Engineer: Transaction Services ( 4/2005 - 3/2008 )
Developed software for Orbitz backend tier. Projects included:
  • Provided Production Support for multiple high traffic sites.
  • Architected and wrote the redesign for the switching layer for the air vertical.
  • Built tool sets for developers to search site logs, drive controlled transactions, and manage the release process.
  • Migrated the merchant processing module to a dynamic plugin architecture.
  • Wrote a backend module for Orbitz For Business's hired-car module using SOAP as communication via AXIS.
Skills Used: Junit, Spring, Jboss, Tomcat, JDBC, Beanshell, and Ant.

Ribstone Systems, Chicago, IL

Application Programmer ( 3/2004 - 4/2005 )
Created internal PHP applications for Managing Sales and Orders
Application Tester ( 6/2003 - 4/2005 )
Tested releases of Java-based company products.
Systems Programmer ( 12/2003 - 3/2004 )
Created scripts for automated custom Linux installations.
Customer Support and Training ( 3/2004 - 4/2005 )
Visited client sites to provide company product training.

Unisys, Roseville, MN

Co-op software tester ( 5/2002 - 8/2002 )
Co-op software developer ( 6/2001 - 12/2001 )

Open Source Projects


CLNL ( http://github.com/frankduncan/clnl )

Primary Developer ( 2/2016 - Present )
CLNL is a toy implementation of NetLogo in Common Lisp.

Nekthuth: Connection with a Lisp ( http://nekthuth.com )

Primary Developer ( 7/2008 - 12/2009 )
Nekthuth is the combination of a vim plugin and a Common Lisp library which enables vim users to start up or connect to a CL interpreter inside vim, and do interesting things with it. It uses Vimscript, Python, and Common Lisp communicating over tcp to create a full development environment within a vim instance.