Michael Allan

647-436-4521    http://zelea.com/    mike@zelea.com

Software engineer. Expert in collaborative and social media, document processing, graphical user interfaces, concurrent programming, distributed systems, and device management and control.

Languages: Java,  Perl,  Lisp,  C / C++,  x86 assembly
User Interface: Swing,  AWT,  2D Graphics API
Document Processing: XML,  XHTML,  StAX,  DOM,  SAX,  CSS,  JavaScript
Web Interface: Apache httpd,  Tomcat,  servlets,  JSP,  JSF,  Wicket
Communications: RMI,  CORBA,  SNMP,  JavaMail
Database: SQL,  JDBC,  PostgreSQL,  XQuery,  eXist
OS Platforms: Gentoo Linux,  X Window,  MS Windows
Development Tools: command line,  screenpager,  Emacs
Mercurial,  Darcs,  CVS,  unionfs,  JUnit

EXPERIENCE

Project Votorola Software Engineer 2007 - 08 hide details…

Designed an open electoral system, and grounded it in social theory.
. Sketched the design of an open legislature, using recombinant text as the collaborative compositional medium, and a delegate cascade as the voting mechanism. http://zelea.com/project/textbender/d/overview.xht#Law-Making
. Designed an open electoral system based on a delegate cascade, with voter rolls backed by a neighbourhood trust network. Sketched its social connections in the light of Habermas's theory of communicative action. http://zelea.com/project/votorola/a/design.xht http://zelea.com/project/votorola/d/overview.xht
. Coded an alpha implementation of the system. A beta is now almost ready. http://zelea.com/project/votorola/a/ — Java, JavaMail, XML, StAX, JDBC, PostgreSQL, Tomcat, Wicket, OpenID, Google Maps API, Java Scripting API, JavaScript, Perl

Alpha Laboratories Software Engineer, Programmer 2002 - 03, 05 - 08 hide details…

Developed a graphical scheduler for a medical information system.
. Appraised the existing implementation of the appointment/resource scheduler and recommended that it be replaced.
. Designed the database structure. Coded object-relational mappings. Scripted build procedures. — Java, SQL, JDataStore, Perl
. Coded the user interface to requirements (visually appealing, intuitive, interactive) based on custom Swing components, AWT layouts, and event frameworks. http://zelea.com/_/resume/scheduler/screen-shot.xht — Java, Swing, 2D Graphics API
. Delivered a demonstration build in 7 weeks, meeting the first deadline.
. Designed grammars to govern structure of day-plans and recurrence patterns. Wrote DTDs. Coded day-planning and auto-scheduling facilities. http://zelea.com/_/resume/scheduler/screen-shot/own.xht — XML, DOM, Java, Swing, 2D Graphics API
. Designed a macrocomponent framework for assembly of the system's modules, and coded examples for other module developers to follow. — Java, JavaBeans
. Delivered a functional build of the scheduler to meet a deadline for a validation test by the Ministry of Health, which we passed. http://www.health.gov.on.ca/···/clinic_manag_sys.html
Maintained Scheduler and other system modules. Optimized and enhanced the system to meet customer requirements.
. Reviewed performance demands of users, and recommended an optimization stategy. Pinpointed hotspots and other bottlenecks in the runtime code. Reworked database queries, object-relational mappings, and GUI for speed. — Java, NetBeans Profiler, SQL, JDataStore, Swing
. Upgraded label printing capability. Added support for dot-matrix/tractor-fed printers. — Java, Print Service API, Communications API, Swing
. Re-designed elements of workflow for document/image scanning, and beta-coded the modifications into the existing UI. — Java, Swing
. Developed a search tool with real-time, interactive filtering, to quickly look up patients and bookable resources. Added clipboard copy and paste of bookings. Coded other, minor GUI modifications to user requirements. — Java, Swing
. Added a zoom facility for user control of timetable scaling. It accepts GUI and keyboard controls, and projects a heads-up display on the screen for user feedback. — Java, Swing
. Scheduler remains in use today.

Project Textbender Software Engineer, Researcher 2001 - 02, 04 - 07 hide details…

Discovered recombinant text, a collaborative medium based on evolutionary genetics.
. Researched the underlying theory of recombinant text. Mapped its connections with other fields. Outlined its application areas and use cases. http://zelea.com/project/textbender/d/overview.xht
. Planned and administered the project. Set up Web site, discussion group, and revision control system. Scripted and documented the build procedures. http://zelea.com/project/textbender ···/a/b — Mercurial, Darcs, darcsweb, CVS, Apache httpd, unionfs, rsync, Python, Perl
. Designed an XHTML based genetic code, and wrote a modular DTD for it. Coded various document filters and processors. http://zelea.com/project/textbender/d/gene — XML, XHTML, Java, DOM
. Developed a population modeling and simulation kit to experiment with ideas for complex-wide recombinant text. Coded reference simulators. — Java, XML, DOM
Coded support libraries and middleware. Coded development tools.
. Coded general purpose libraries for the project. http://zelea.com/project/textbender/g ···/o — Java, Swing/AWT
. Developed Rhinohide, a Java implementation of the W3C DOM, layered over a Web browser's native JavaScript. http://zelea.com/project/textbender/o/rhinohide/description.xht — Java, JavaScript, LiveConnect, DOM, XML
. Scripted screenpager, a screen-wise pager for multi-screen X workstations. http://zelea.com/project/screenpager/introduction.html — Perl, X Window, EWMH
. Coded minor corrections and improvements to wmctrl, a command-line interface for X window managers. http://zelea.com/project/wmctrl — C, X Window, EWMH
. Scripted cascade-pilot, a screen-wise window cascader. http://zelea.com/system/host/obsidian/usr/local/bin/cascade-pilot — Perl, X Window, EWMH
Developed a peer-to-peer protoype (1) of simplex-wide recombinant text.
. Designed a framework for assembling modular applications of the system from macrocomponents modelled on the JAR format, and using BeanContextServices as the interface binder. — Java, JavaBeans, XML, UML
. Developed a peer-to-peer overlay, based on densely interconnected networking (DIN). Coded a discrete event simulator, and ran simulations to test and refine the DIN reference model. Coded genetic search and publish facilities on top of DIN. — Java, XML, dom4j, RMI, JavaBeans, UML, Perl
. Coded an RMI implementation of the peer-to-peer networking engine. It incorporated a thread pool and call-backs for asynchronous messages over synchronous RMI. — Java, RMI, JavaBeans
. Designed PIP, a framework for volatile naming in peer-to-peer networks. Coded an FTP implementation of the PIP binding component. Coded an HTTP lookup component to match. — Java, JavaBeans, FTP, HTTP, UML
. Coded a standard and JNLP launch components to provide assembled applications with a launch interface; logging configuration; dedicated class loaders for components; and separate threads for start-up. — Java, Web Start/JNLP
. Developed a user interface for writing recombinant texts in XHTML. Coded custom Swing components and AWT layouts: a diagonal scroll bar for the population space; a quadrant layout; an overlay layout; chromographs for genotype comparison; and a custom-painted JTree. Coded multi-threaded procedures: lazy reconstruction of remote XML artifacts; background parsing of large documents; and handlers for call-backs from remote servers and local processes. http://zelea.com/project/textbender/d/_/simplex-wide-obsolete/0.0.0.14-edge-overview.html — Java, Swing, 2D Graphics API, XML, dom4j, XHTML, JavaBeans
Developed a client-server prototype (2) of simplex-wide recombinant text.
. Coded a Web library. Coded a RESTful Web service for querying the gene pool. — Java, Servlets, PostgreSQL, XML, DOM, SAX, XPath, XSLT, XQuery
. Coded Web components to implement a thin UI on the client side, for demonstation and test purposes. Wrote end-user documentation. Packaged server and client components together as a reference Web application. Deployed it to a demo server. — Java, Servlets, JSP, JSTL, JSF, Tomcat, XHTML, CSS, XML
. Coded a thick graphical toolset for the client side. Packaged it for flexible deployment and launch (Web Start, applet, or command-line). — Java, Swing/AWT, Web Start, Servlets, XML, DOM, SAX
. Coded a textbender interface for Emacs. Wrote end-user documentation. Packaged tools and other components into a reference desktop toolkit. http://zelea.com/project/textbender/d/_/simplex-wide-obsolete/0.0.7-emacs-demo.xht — Java, XML, SAX, Emacs Lisp
. Coded JNLP Jaxe, a Web launch version of the Jaxe XML editor. Coded a textbender interface for Jaxe. http://zelea.com/project/jaxe http://zelea.com/project/textbender/d/_/simplex-wide-obsolete/0.1.1-jaxe-demo.xht — Java, Swing, XML, XHTML, Web Start/JNLP
Developed a peer-to-peer protoype (3) of paired-regions recombinant text.
. Conceived of the paired-regions mode of transfer, as an alternative to simplex-wide. Protoyped it as a server-less Web application that piggy-backs on existing Web infrastructure. http://zelea.com/project/textbender/d/overview.xht#Paired-Regions ···/textbender/a ···/a/r
. Coded the desk daemon, a communication hub for recombinant tools on the user's workstation. http://zelea.com/project/textbender/a/r/desk — Java, RMI, Web Start/JNLP,
. Coded the page daemon, a recombinant toolset for use in a Web browser. It is implemented as a kind of ‘user applet’, that is injected into each page of recombinant text. http://zelea.com/project/textbender/a/r/page — Java, Plug-In, JavaScript, RMI, Swing/AWT
. Coded a linear undo/redo facility for modifiable Web pages, based on navigation history. http://zelea.com/project/textbender/a/r/page/navdo — Java
. Coded the various tools, features and facilities of the writer's toolset. http://zelea.com/project/textbender/a/u — Java, XML, DOM, RMI, Perl
. Assembled a Web-launch demonstration of the finished prototype. http://zelea.com/var/cache/textbender-demo/textbender/a/b/demo/instructions.xht
. A beta would be within sight (pending a design review by users), but my work has now shifted to the context of project Votorola, for which textbender's toolset is unsuitable.

MatchMedia Networks Software Engineer 2006 hide details…

Designed systems for remote management of video devices.
. Analyzed requirements for remote administration, control and monitoring of a network of video devices.
. Sketched a system architectural plan. Wrote use cases. Developed protoypes. It now serves as a reference architecture, and a possible candidate for implementation. — technical details confidential

Daleen Technologies Software Consultant 2000, 01 hide details…

Swing expert in an enterprise resource management project.
. Debugged and coded modifications to the graphical user interface of a Web catalogue application, part of a larger suite. — Java, Swing, MKS Source Integrity, Track Integrity
. Administered the project while the team leader was on holiday.
. Evaluated an automated tool for testing the user interface. Wrote recommendations for Quality Assurance department. — SilkTest, Java, Swing
. Drafted a report on incorporating a Web authoring tool in the application. — HTML, XML, UML

Priam Controls Software Engineer, Principal 1998 - 2000 hide details…

Designed a framework for distributed macrocomponents.
. Designed the core frameworks of an architecture for distributed, modular systems based on the assembly and integration of CORBA macrocomponents. — CORBA, CosNaming, UML
. Coded a node server component to provide system nodes with integrity, identity, and support for CORBA interconnections. — Java, CORBA, CosNaming
. Scripted an example node launch program. — Perl
Developed a distributed system to manage and control highway signs and signals.
. Designed a framework of distributed components for management and control based on SNMP and NTCIP protocols. — CORBA, CosNaming, NTCIP, SNMP, BER, UML
. Scripted procedures to build code; pre-process and assemble documents; compile and reconcile work schedules; maintain mailing lists; and integrate and publish the results to the Web. — Perl
. Coded paired implementations of device proxy and control proxy components for Class B communication. Coded an SNMP/HDLC stack, including BER data encoding and serial and parallel physical layers. Tested against validation tools. — Java, CORBA, CosNaming, SNMP, HDLC, Communications API / EIA-232 / IEEE 1284, ViewComm, ASN.1, BER
. Coded paired implementations of device and device proxy extension components for dynamic message signs. — Java, CORBA, CosNaming, SNMP, ViewComm, ASN.1, MIB
. Designed a presentation framework for user interface components. — Java, CORBA, CosNaming, UML
. Designed a microcomponent standard for customizing views by composition. Coded a bean class loader for code isolation in presentation clients. — Java, JavaBeans, Swing
. Coded a presentation client for 2D plan views, such as maps and diagrams. — Java, Swing, 2D Graphics API, JavaBeans, CORBA, CosNaming
. Coded a presentation client for hierarchical/sequential views. — Java, Swing, JavaBeans, CORBA, CosNaming
. Coded presentation components for particular types of NTCIP communication channels and devices. — Java, Swing, JavaBeans, CORBA, CosNaming
Installed and maintained a legacy system on contract.
. Oversaw configuration of traffic management plans, and layout of user interface.
. Installed and configured a traffic management system on site at Baltimore Harbour Tunnel. — QNX 4, ViewComm

T-S Display Systems Software Engineer, Programmer 1995 - 98 hide details…

Developed firmware for a new line of graphical sign controllers. Maintained firmware for other devices.
. Developed mainboard firmware, to control fibreoptic lamps and shutter subdevices on bus and serial links; to interface with user via local control console; handle run-time faults; and communicate with the central management application. — C++, 8086 assembly Paradigm Locate, ViewComm, Softaid ICE, NEC V40/8086
. Coded graphical and command-line tools to automate tests of compliance with real-time deadlines, and to maintain and configure the controller. — C++, DOS, ViewComm
. Delivered a production build of the new firmware for factory testing by the State of Florida. Conducted software portion of the acceptance test, which we passed.
. Installed on site, the controllers ran flawlessly for years, without requiring a firmware upgrade
. Debugged and modified firmware for a new line of signal controllers under acceptance testing at Hong Kong's new airport. — C, NEC V40/8086, Paradigm Locate, ViewComm, Softaid ICE/8086
. Maintained CTask, a DOS multi-tasking kernel adapted from open source. — 8086 assembly, C, DOS, Periscope/80486, ViewComm
Maintained applications for the remote management of roadside devices, and developed support tools.
. Developed a graphical and command-line tool to test and demonstrate a lane delineator for roadways. — C++, DOS, ViewComm
. Coded device call-back in a sign management system for Williamsburg Bridge, New York. — C, QNX 2, Quantum C, ViewComm
. Supported customers and field technicians, particularly with serial/dial-up communications to roadside devices. — C++, C, DOS, Hayes AT, ViewComm
. Coded Z-Modem file transfer. — C++, C, 8086 assembly, DOS, ViewComm
. Modified a controller configuration and diagnostic tool, adding support for a new device and communication protocol. — C++, C, DOS, ViewComm
. Researched problem of device and protocol extension in management systems. Prototyped frameworks and components of a large-grained component architecture. — Java, AWT, CORBA, CosNaming, NTCIP, SNMP, ViewComm, ASN.1, MIB

CAREER HISTORY

2007.8 - 2008.5* Software Engineer Project Votorola, Toronto
2007.8 - 2008.5* Software Engineer Alpha Laboratories, Toronto
2006.6 - 2007.8 Software Engineer, Researcher Project Textbender, Toronto
2006.6* Software Engineer MatchMedia Networks, Toronto
2006.2 - 2006.11* Software Engineer Alpha Laboratories, Toronto
2006.1 - 2006.3* Software Engineer MatchMedia Networks, Toronto
2005.10 - 2005.12 Software Engineer Alpha Laboratories, Toronto
2004.1 - 2005.10 Software Engineer, Researcher Project Textbender, Toronto
2002.9 - 2003.12 Programmer Alpha Laboratories, Toronto
2001.2 - 2002.9 Software Engineer, Researcher Project Textbender, Toronto
2000.11 - 2001.2 Software Consultant Daleen Technologies, Toronto
2000.7 - 2000.10* Software Engineer, Principal Priam Controls, Toronto
2000.6 - 2000.8* Software Consultant Daleen Technologies, Toronto
1998.8 - 2000.6 Software Engineer, Principal Priam Controls, Toronto
1997.3 - 1998.8 Software Engineer T-S Display Systems, Bolton
1995.2 - 1997.3 Programmer T-S Display Systems, Bolton

* overlapping periods

EDUCATION

University of Guelph, Guelph, Ontario, 1992. Bachelor of Science, Biological Sciences.

Ryerson Polytechnic University, Toronto, 1995. Certificate in Computer Programming (Computer Applications).