FRANK DAVID DUNCAN, JR
5620 N. Virginia
Chicago, IL 60659
Chicago, IL: 8/2000 - 5/2004
BS in Computer Science
Illinois Institute of Technology
Languages with >10k lines of code
>1k Lines of Code
Ruby, C++, Scala, CoffeeScript
Things to ask me about
Vim, Linux (Gentoo/Ubuntu), Unix toolchain (grep, sed, etc.)
Open Source, Git, Ansible
Web Technologies (CSS, HTML, HTTP, etc.)
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.
Open Tech Strategies
Software Developer (4/2018 - Present)
Worked on various open source web applications in different capacities, at times simultaneously:
Swapping projects and skillsets as needed by clients
Code reviews, project design, deployment, database maintenance and setup, documentation
Working with clients to formalize business requirements that could be delivered
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
Center for Connected Learning at Northwestern University, Evanston, IL
Software Developer (9/2013 - 11/2015)
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.
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:
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:
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
Primary Developer (2/2016 - Present)
CLNL is a toy implementation of NetLogo in Common Lisp.