(resume
 :name "Frank David Duncan, Jr"
 :email "frank@kank.net"
 :phone "(773) 727-3247"
 :addr1 "3822 W. Altgeld, Apt. #1"
 :addr2 "Chicago, IL 60647"
 :education (education
             :school "Illinois Institute of Technology"
             :location "Chicago, IL"
             :start (date 8 2000)
             :end (date 5 2004)
             :degree "BS in Computer Science"
             ;:majorgpa (gpa 3.44 4.0)
             ;:totalgpa (gpa 3.44 4.0)
             )
 :skills (skills
          `(("Languages with >10k lines of code" "Java, Common Lisp, JavaScript, PHP, Shell Script")
            (((invisible "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 (list
        (work
         :company "Katherine Anne Confections, Chicago, IL"
         :positions (list
                     (pos
                      :position "Founder and CTO"
                      :start (date 9 2006)
                      :description '(("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.")))))
        (work
         :company "Vanderbilt University"
         :positions (list
                      (pos
                       :position "Software Developer"
                       :start (date 7 2016)
                       :end (date 7 2017)
                       :description
                       `("Developed collabsnap: a prototype addition to SNAP! to allow for collaborative work.  Details included:"
                         (list
                          "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!"))))
        (work
         :company "Center for Connected Learning at Northwestern University, Evanston, IL"
         :positions (list
                      (pos
                       :position "Software Developer"
                       :start (date 9 2013)
                       :end (date 11 2015)
                       :description
                       `("Developing a NetLogo to JavaScript compiler, as well as maintaining legacy NetLogo implementation.  Work includes:"
                         (list
                          "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."))))

        (work
         :company "The Karn Group, Chicago, IL"
         :positions (list
                      (pos
                       :position "Jack of all Trades"
                       :start (date 5 2009)
                       :end (date 6 2013)
                       :description
                       `("One of three developers delivering financial compliance services in an ASP model.  Responsibilities include:"
                         (list
                          "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."))))

        (work
         :company "Orbitz WorldWide, Chicago, IL"
         :positions (list
                     (pos
                      :position "Senior Software Engineer: Internal Tools"
                      :start (date 3 2008)
                      :end (date 5 2009)
                      :description `("Developed and administered tools for internal technical customers.  Responsibilities included:"
                                     (list
                                      "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."))
                     (pos
                      :position "Senior Software Engineer: Transaction Services"
                      :start (date 4 2005)
                      :end (date 3 2008)
                      :description `("Developed software for Orbitz backend tier.  Projects included:"
                                     (list
                                      ("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."))))

        (work
         :company "Ribstone Systems, Chicago, IL"
         :positions (list
                     (pos
                      :position "Application Programmer"
                      :start (date 3 2004)
                      :end (date 4 2005)
                      :one-line t
                      :description `("Created internal PHP applications for Managing Sales and Orders"))
                     (pos
                      :position "Application Tester"
                      :start (date 6 2003)
                      :end (date 4 2005)
                      :one-line t
                      :description `("Tested releases of Java-based company products.")
                      )
                     (pos
                      :position "Systems Programmer"
                      :start (date 12 2003)
                      :end (date 3 2004)
                      :one-line t
                      :description `("Created scripts for automated custom Linux installations."))
                     (pos
                      :position "Customer Support and Training"
                      :start (date 3 2004)
                      :end (date 4 2005)
                      :one-line t
                      :description `("Visited client sites to provide company product training."))))

        (work
         :company "Unisys, Roseville, MN"
         :positions (list
                     (pos :position "Co-op software tester" :start (date 5 2002) :end (date 8 2002))
                     (pos :position "Co-op software developer" :start (date 6 2001) :end (date 12 2001)))))

 :oss (list
       (oss-proj
        :start (date 2 2016)
        :project "CLNL"
        :project-desc `("CLNL is a toy implementation of NetLogo in Common Lisp.")
        :project-website "http://github.com/frankduncan/clnl"
        :role "Primary Developer")
       (oss-proj
        :start (date 7 2008)
        :end (date 12 2009)
        :project "Nekthuth: Connection with a Lisp"
        :project-desc `("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.")
        :project-website "http://nekthuth.com"
        :role "Primary Developer")))