human/
softwareengineer/
programmer/
hacker lee carmichael software engineer consulting programmer Perl Perl5 Javascript JavaScript PHP C web application developer cakephp

Resume

Professional Profile and Highlights

  • Leader of 40+ person technical organization including both software engineering and technical operations teams.
  • Full Stack Engineer - Working on Web Applications' Front end, Backend and everywhere in between while enjoying it. (in between = Data Layers, Databases, APIs). 
  • 14+ years of professional experience in Software Engineering, System Engineering and Technical Support in diverse technical environments.
  • 10+ years of professional software development experience with extensive experience in Internet technologies, including front and mid tier web development, databases and data munging
  • Technical Lead on cross functional team that increased revenue by 300% and reduced service issues by 25% in one year of existing internet storage service by stabilizing software, resolving incorrect billing invoices, adding new features and contributing to sales support materials.
  • Senior Software Lead on small team that added 6 high profile customers to existing pricing service by adapting existing infrastructure and expanding pricing formats. Often communicating with customers to define transfer formats and to clarify algorithm details to provide short turn around to enable sales to secure customer's business.
  • Integral technical member of small (3-5 person) team that designed and developed an Internet file transfer service using Perl, mod_perl, HTML::Mason, HTML/CSS and JavaScript. The service was delivered in 18 months as functionally complete using an incremental release schedule to gain Product, Marketing and customer feedback. The project required several areas of significant legacy integration and adpation to new requirements. At project delivery time, it allowed the company to migration of customers off of legacy system.

Return to top


Technical Proficiencies

The following are technologies that I have expertise and experience working with and in.

Bolded names indicate technologies I have more expertise in. This means over 4 years of professional experience and with which I've created new application or systems.

Languages

Name Description
Perl Used professionally for many years. I've written many applications, scripts and tools with it. I have to say I really like it.
Javascript Used to enhance and run web applications.
SQL I've used it in many situations for web applications, data loads, reporting and updates.
Shell Scripting (Bash, Ksh and sh). It is the backbone of unix development and productivity
PHP I've used for several commercial web applications.
Java I've done mainly maintenance and limited new development.
C Performed maintenance on existing code bases, created Perl XS interfaces and debugged Open Source software builds.
Python Toyed around with Flask and fixed some issues in existing code.

Web Technolgies

The following contains markup languages, frameworks, template and other web related technologies

Name Type Experience
HTML & CSS Language Used it for years and years and years
DancerWeb FrameworkBuild a many web applications using it.
jQuery, Bootstrap, many jQuery plugins and BackboneJavascript LibrariesI've used all for different projects. (including some other JS libs like YUI and prototype)
Template Toolkit Templating I've use this as my primary templating language for Perl web dev in the last few years
Nginx Web server/frontend Used for all new web app projects, its configured to serve static content and site infront of app servers
Apache (1.3 & 2.x) Web Server Apache 1.x used heavily, moving applications to Apache 2.x
mod_perl 1.x (2.x) Framework I've written many application that used mod_perl 1.x.
SOAPWeb ServicesSupported several clients using SOAP::Lite and used gsoap for C based client.
XMLMarkup Language Created formats and consumed lots of them in applications in the form of RSS feeds and configuration files.
CGI::ApplicationWeb FrameworkUsed for 10+ small and medium sized web applications
HTML::MasonTemplateCreated large multi-user web application with it, helped to maintain other smaller projects.
SquidProxy/Caching Server Used for a few different custom setup s.
CatalystWeb FrameworkBuilt a few toy applications
CakePHPWeb FrameworkLarge multi user application
SavantTemplating LanguageReskinned admin interface using it

Development Tools

Name Comment
SubversionFor nearly all source control
VimMain development IDE
FirebugHard to live without, I've used very often on web apps for Javascript and HTML layout debugging. I have been using Webkit's inspector more often of late.
Unix Power Tools (make, awk, cut, sed, etc..)Timeless in their usefulness
CVSHaven't used it in years but did heavily in the past
GITUsed with open source projects on github
JBuilderFor Java applets
EclispeFor Java Applets

Databases

Return to top


Employment

Director of Technology, Spark Pay, 2014-present, Capital One

I lead the Spark Pay technology teams. My teams are responsible for building and running the Spark Pay platform and working very closely with the Spark Pay mobile teams. My organization has four engineering and one devops teams. In the last year, we grew from four teams and over doubled in the number of engineers.

During the last year, Spark Pay launched a number of significant new features, including many internal changes leading to a more robust and stable platform and critical merchant features. Our technology team, myself included, is very tightly partnered with the product team to deliver critical business value.

 - Evaluate and adopt new technologies, partners and stacks both inside Capital One and outside. (including writing code and prototypes)
 - Set and execute tactical and strategic direction for Spark Pay
 - Collaborate with leadership team on direction for Small Business Technology Organization

Cofounder/Technology, 2011-present, 3Ring

Lead technology development of 3Ring (non-profit) to develop high quality instructional resources in science and web-based tools to help beginning teachers put these resources into practice. Including system architecture, coding and other fun stuff

Web/Lead/Managing Software Engineer, 2013-2014, Capital One 

Part of team that built Spark Pay web application using Perl Dancer, DBIx, Template Toolkit, jQuery, Bootstrap and Backbone. Working closely with UX Team, Business leaders and other development team members. Manage small team delegating new features and incoming issue along with internal development priorities. Integrated partners and vendor tool sets into service.

See list from ChargeSmart position below.

Principle SW Design Software Engineer, 2012-present, VeriFone

Building web application using Perl Dancer, Template Toolkit, jQuery and Bootstrap. Working closely with UX designer, Business leaders and other development team members.
See list from ChargeSmart position below.

Note: ChargeSmart was acquired by VeriFone in Jan 2012

Lead Software Engineer 2011-2012, ChargeSmart LLC

Focused on building web application using Perl Dancer, Template Toolkit and JQuery.
  • Developed custom application using Perl Dancer
  • Converted HTML/CSS mockups from designers into application templates
  • Created Perl Dancer plugins for custom business functions such as communicating with 3rd party APIs, validating custom data elements and database access.
  • Created new tests and update existing unit tests using Test::* suite and Dancer::Test
  • Enhanced UI with JQuery making AJAX calls to validate user inputs and load dynamic elements
  • Extend and update to REST API and created client API library

Lead Software Engineer 2006-2011, Thomson Reuters

Primary web application engineer in Pricing software development group. I work very closely with evaluator groups in different regions to create and refine applications and systems to help evaluators increase their productive and accuracy. The applications help evaluators manage large sets of inputs for fixed income pricing products, perform data accuracy checks verification, import and collect information to forward to external customers.

  • Technical lead for company wide technical infrastructure upgrade project. I preformed technology design, documentation, prototyping and testing. I worked to migrating several different groups web applications to new testing and production environments.
  • Project Lead on system developed that integrated Excel models with web application and back end data systems. It required creating Excel VBA Macros that would upload pricing data to web service then have user complete quality check and production load of data with authenticated web application. The project required close coordination with Reuters Pricing Desk and extensive end to end testing of application. The project increased desk productivity by reducing multiple uploads at time critical moments and allowed evaluators to immediately perform quality assurance to reduce errors caught later in the process.
  • Member of small team that built web application and back end system that generated large data sets of items that exceeded set price tolerance levels. The system provides users with an interface to selected predefined answers with autocomplete or create custom responses, admin dashboard to summarize progress and deliver results to customers. The system used YUI for web application UI elements and mod_perl for web back end performance.
  • Created many web applications (using Perl, CGI::Application, Template Toolkit and HTML/CSS/JS for specific business sectors and needs to allow evaluators to increase productivity, reduce errors and increase accountability for users.
  • Maintained a variety of software products written in Perl, Shell Scripting (ksh, sh), Java and VBA, these included Java Applets, data validation, db store, retrieval and insertion applications,
  • Created and maintained data wrangling Perl programs and shell scripts (with UNIX tools), these programs extracted data from specially formatted files, Sybase databases, and Excel spreadsheets, performed data validation, collated data sources and feed back into other databases, file or data network systems.
  • Converted Thomson Reuters web style guide and example pages into web application templates for general use by pricing group developers.
  • Defined and migrated existing applications to new shared authentication infrastructure. The system was used by web applications and client applications. Refined the system to meet SAS 70 requirements.

Software Engineer 2001-2006, Savvis Inc. (Formerly WAM!NET Inc.)

Software Engineer focused on Internet facing services that integrated closely with private network services. The majority of roles focused on web application development. The applications provided high throughput storage and transfer services to important external customers.

  • As team member for Internet file transfer application, I was responsible for object oriented web application design and development using Perl (HTML::Mason, mod_perl), JavaScript, HTML and CSS. As a result of the successful integration with a Java applet and legacy middleware system the customer base experienced a seamless application upgrade. The development of new features such as globalized file name support, a localized/customized user interface and support for a wide range of web browsers/platforms extended the usage and revenue potential. The application now supports about 500GB of data transfer per month with about 10,000 users each month.
  • In my Technical Lead role, I developed an Internet file storage application using Perl (mod_perl, CGI, HTML::Template and custom Xsubs with custom mod_perl authentication support), JavaScript, C, HTML and CSS. I worked to prioritize features and issues with Product Marketing and Operations. I designed and implemented a localized software release and an additional instance of the application running in Japan and managed the contract with Japanese business partner. In the first year of my role as Technical Lead, the Internet storage service revenue increased 300%. This was achieved by stabilizing the software, resolving incorrect billing, adding new features and enhancing sales support materials. The application stored about 1.5TB of customer data and transferred about 250GB each month at peak of life cycle.
  • Researched new technologies and created reports detailing areas to integrate with existing infrastructure. Some areas of focus included content management systems, new vendor offerings for existing services and alternative web frameworks.
  • Maintained a variety of software products/services. Products include custom FTP server and proxy software, Perl SOAP client library, C libraries and daemons and Java Applet.
  • Provided technical sales support for customer meetings, trade shows, sales proposals and built sales demonstration sites.

System Engineer 1999-2001

Responsible for installing and providing third tier support of Internet storage application. Designed system architecture, created various forms of documentation and researched technical issues. Reported bugs to development, often with patches or recommendations for resolution. Configured operating systems, servers and storage systems

  • Installed, configured and diagonased many internal and external software packages including in house web applications and raid software.
  • Compiled and configured numerous open source packages for use in services, such as Apache web server and Squid caching server.
  • Wrote database tools to provide data feeds to billing group and various reports. Some reports were used by Sales and Marketing to evaluate service usage and identify customer to target for up selling.
  • Diagnosed internetworking issues, including IP connectivity over LANs and WANs, and between UNIX, Mac and Window computers with protocols like Appletalk, NFS, FTP and CIFS


Team Lead Tier2/Major Accounts Technical Support 1997-1999

Managed team of 6-8 individuals that supported WAM!NET largest and most visible customers 24 hours/7 days a week. Prioritized technical issues and managed customer expectations and communications. Provided job performance information to Technical Support manager and training recommendations. Traveled to perform on-site hardware and software maintenance and provide customer training. Reviewed and authorized technical escalations from the Technical Services Department to System Engineering and Software Development.

Consultant and Intern, 1997-1996, Greystone

Main technical person at small computer training and consulting company. Developed client applications with MS Access 95 and 97. Installed and repaired customer LANs. Built, upgraded and repaired customer computers. Advised customers and owner on computer equipment purchases.

Return to top


Education and Training

Universities

Augsburg College, (Minneapolis, MN), 2004-2005.
Earned 6 credits toward Bachelor of Arts in Computer Science

University of Wisconsin - River Falls, (River Falls, WI), 1993-1997.
Earned 110 credits toward Bachelor of Science in Computer Science

Conferences, User Groups and such

Return to top