Luke Francl
3229 Garfield Ave #3 á
Minneapolis MN 55408
look@recursion.org á
612-703-6122
Skills
Programming Languages: Java, Python, PHP, Perl, JavaScript
Java Technologies: WebSphere, Tomcat, Servlets, JSP, JNLP, JDBC,
JUnit, JavaCC, Lucene
Development Tools: Ant, CVS, Subversion, Bugzilla, CruiseControl
Databases: IBM Content Manager (CM 7 and CM 8), DB2, MySQL,
Oracle, PostgreSQL, Access
User Interface Design: HTML, CSS, Java Swing, paper prototyping
Operating Systems: AIX, Linux, Solaris, FreeBSD, Windows, Mac OS X
Writing: Published technical author, experience with
documentation, tutorials, public speaking, training
For portfolio, see: http://luke.francl.org/portfolio
Professional Experience
Stellent October
2003 Ð Present
Software Engineer
In 2003, Stellent acquired Ancept. Development on Ancept
Media Server (AMS) continued.
- Took
on more responsibility, including maintenance of the build system.
- Integrated
source control log messages with Bugzilla using a Subversion post-commit
hook written in Python.
- Streamlined
build process using a Python script to generate SQL and XML patch files
for the installer.
- Installed
CruiseControl continuous integration system for daily builds.
- Implemented
Lucene full-text search integration and synchronization with the AMS data
store.
- Re-wrote
search code using JavaCC parser generator to create search syntax similar
to Google's.
- Created
AMS build archive with historical tagged builds and automatic links to
resolved issues based on Bugzilla milestones.
Ancept November
2001 Ð October 2003
Software Engineer
As part of a small team of developers, wrote several
important components for Ancept Media Server, a web-based digital asset
management system using Java, DB2, and IBM Content Manager.
- Responsible
for major portions of asset model and persistence rewrite for Content
Manager 8.
- Implemented
content ingest "hot folders", reporting system, screens for
Swing application, experimented with integrating Lucene full-text search.
- Improved
Ant build system to run automated tests, compile JSPs, selectively compile
incompatible versions of the code, and run specified test cases.
- Wrote
migration program to move data from proprietary bug tracker to Bugzilla
with zero data loss, then administrated Bugzilla system.
- Developed
product customizations for clients and integrated custom code as
generalized product features if possible.
- Provided
maintenance coding and support for large deployed systems.
University of Minnesota Libraries June
1999 Ð May 2001
Web Programmer
- Developed
a prototype for Digital Library IMAGES (Image Metadata AGregation for
Advanced Searching) web application with normalized data model, XML
import, multi-criteria search, and display.
- Designed
and implemented PHP/MySQL-based content management system for maintaining
website content and metadata and controlling access to resources. Sitemap
and index automatically generated.
- Wrote
and documented PHP libraries and scripts for common functionality like
site-wide login, and an email script to allow users to create email forms
without server-side programming.
University of Minnesota Libraries October
1997 Ð June 1999
Web Developer
- Maintained
the main Libraries website and created custom websites for special
projects.
- Created
graphics for web UIs using Adobe Photoshop.
- Migrated
flat-HTML site to templates using Apache Server Side Includes so the
design could be changed more easily.
ACM, University of Minnesota student chapter June
2000 Ð May 2001
Vice President
Elected VP of student chapter of Association for Computer
Machinery. Organized technical presentations, handled relations with companies,
started successful book drive, and recruited students for nation-wide
programming contest. Helped update and teach Introduction to Unix classes to
incoming freshmen. Helped redesign ACM website.
North Dakota State University June
1997 Ð September 1997
Web Developer
Created websites for classroom use based on faculty
requirements for the NDSU Center for Academic Information Technology.
Projects
LIMO November
2004 Ð December 2004
Joined the pre-existing Lucene Index Monitor (LIMO) Java
open source project and added Lucene index file browsing, index search and
highlighting, query explanation, and un-stored document reconstruction.
Implemented an Ant build script to produce a WAR file for distribution. Apache
license. http://limo.sourceforge.net/
Word Unmunger November
2002 Ð March 2003
Word Unmunger is a small Python program which cleans up HTML
produced by Microsoft Office products to allow hand editing. MIT license. http://luke.francl.org/software/word-unmunger/
Eikon January
Ð February 2002
Web-based image content similarity search engine. Uses
wavelets to calculate the similarity of images downloaded from the Internet.
Eikon is an implementation of the "Fast Multiresolution Image Querying"
algorithm using Java 1.4's ImageIO library and servlets. Presented at CodeCon
2002. GPL. http://eikon.recursion.org/
Publications
Running
Individual Test Cases from Ant. Java.net, September 12, 2003
(O'Reilly/Sun).
Eikon Image Search.
February 16, 2002. Presented at CodeCon 2002 in San Francisco.
Education
Bachelor of Science
in Computer Science with a minor
in Mathematics. University of
Minnesota, May 2001.
ArsDigita Boot Camp,
an intensive two-week database-backed web application development workshop,
January 2001.