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.

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 - 9/2016 )
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.