48 S Eureka Ave
Columbus, OH 43204
Phone: (562) 743-1807
Living in Columbus OH (updated 12 January 2022)
Currently available for work
Experienced telecommuter AND able to relocate worldwide
davidihnen@gmail.com
Software Development
Project Team Lead |
DatabasesMongoDB |
Front EndAJAX/JQuery |
System support AWS (Amazon Web Services) |
Senior Cloud Developer then Team Lead |
Jan 2022 to Jan 2024 |
Rocket Partners Remote work for Circle K
Altria Project Team lead
Estanqueros As tech lead I guide and review a remote team (most of the team was in europe!) architecting and documenting the integration, and reviewing code and writing tickets to meet the requirements. The whole project was on a painfully tight schedule. I brought it very close to delivery to prod. This was a data integration project. It integrates with four apis from two eternal sources and four more apis from internal sources. Each integration needed to be separately controllable and troubleshootable and measured for SLO. This enabled the delivery of dynamic promotional content to customers through the injection of highly valuable discounts from several different point of sale scenarios.
Retail Marketing Systems Developer
Lift This is a system that manages about 20,000 physical endpoints internationally generating over 100 million in annual revenue. It is managed through a custom CMS to configure interactions between the point of sale, shopper, cashier, and system reporting to deliver and account for marketing and activate context relevant upsell opportunities. Prime purpose is the mission critical live handling of loyalty logins and distribution of loyalty benefits.
I did extensive work maintining this Java 1.6 application. Its deployed on 20,000 hardware and virtual machine hosts across the world. Notably added the first real junit testing procedures and support to a legacy system. Encouraged and helped team to expand test coverage as applicable.Lift system websocket/event upgrade proposal Designed and created a proof of concept of managing the Lift systems through a persistent socket connection over RabbitMQ, to enable rapid testing, deployment, updates, and reporting that in the current system can take up to 20 minutes before the system will call home to get instructions. This was never prioritized by the business to proceed, but would have smoothed the lives of all of the operators, programmers, and configurers - basically the entire backend team.
Lift system runtime upgrade proposal Designed and proofed the upgrade of the 1.6 runtime to 1.8 - this never was prioritized by the business to proceed, but would have greatly smoothed the interaction of the developers with this legacy codebase.
Lift system tooling and helpers Created tooling to ease the management and access for troubleshooting developers - multiple 6-8 step procedures reduced to single commands. Among them was extraction of configuration structures for local testing, and access to the shell based connection to many end systems for interactive troubleshooting,
Code quality and versioning advocacy As a legacy codebase, the past practices for versioning and code quality were, honestly disgraceful. Continually improved and advocated for better handling with git, better pipelines, better proof and tests. This is a passion.
New Data Center Migration Designed and implimented a new global configuration mechanism in the Lift system. Externalizes configuration that was once compiled into the artifacts. Enables quick and smooth transition of any one instance from one configuration to another.
POS Emulator More work maintining a derivative Java 1.6 application. It is deployed as a development and testing tool on about 100 hardware hosts within the corporate offices, to stand in for actual point of sale systems to activate the desired actions in afformentioned Lift. Engaged in user experience interviews on this application to guide improvements.
Napper A Java 8 shard-deployed application on amazon ECS providing direct support for field endpoints AND the CMS. This is an abstract capability to provide configured and secured connectivity to our heterogeneous backend data stores. Some modules also serve as middleware to transform data structures. As a core component of the overall system gained a deep understanding to enable reconfiguring, enhancing, and analyzing it.
CMS Portal An angular app deployed with a support container on amazon ECS. This is a fairly complicated content management system that provides access to a fully user permission controlled system to manipulate the data types that drive the system. There are a large number of people in various roles at the client which interact with this system daily from operational state monitoring of the deployed systems, to the marketing sales staff, to the actual advertisement creation, and on to the quality assurance staff.
Campaign Planner An embedded capability that uses transforms in Napper, front end programming, and acces sto the back end data sources to provide targeted capabilities that enable the marketing team to create sales proposals driven by actual experienced interactions and traffic in the applications. I helped program middleware components within the Napper.
Indexer A Java 8 lambda-deployed application on amazon. This is a hard problem - cache invalidation specifically. It exists as a direct consequence of a filter-based approach to configuration in which any change to any data structure requires the reconsideration of all applicable filters to determine if there is a change in state. I have extensively analyzed this function, targeted areas for improvement, and created extensive visual documentation.
VPN maintenance Leveraged my background in networking to support the VPN implementation, and upskill devops and other engineers on the particulars of this networking related configurations for the server and the related routes among the private networks of aws.
On-Site Work Although the job is almost entirely telecommute, I have welcomed the opportunity to spend various days onsite with both the client and the team to improve communications through side-conversations and fact-to-face interactions that are always a challenge remotely.
Consultant Programmer |
May 2020 to Jan 2022 |
Omni Federal Remote work at Air Force Kessel Run
Senior Application Developer
Scout The scout team's role is to provide geoinformatics support for the other teams at Kessel Run. Many of the Air Operations Center applications which are developed at kessel run display maps in them. Scout helps provide expertise, documentation, support, and additional helpful features for the mapping interfaces within their applications. Scout operates as an agile team under a kanban work pattern with weekly increment planning and retro rituals. Paired programming and TDD are the name of the game. Actively participated in support both in chat and pairing.
geo-jumpstart A Typescript application usually used in React applications, I have helped architect and construct a significant stack of features providing various tools for our clients. High notes include complex geodesic styling logic, extent displays, alternate map projections, and openlayers driven html overlays that position based on the feature on the map behind them.
geo-former Geo-former is a java application which collects events from the kessel run event providers and makes the geographic aspects of the events available to the application teams as layers on demand through the geoserver. Here I worked with managing event assembled state business rules, data transforms, and postgres interfacing through both hibernate and flyway with jdbcTemplate
doc-site A documentation-and-demo site showcasing the capabilities of geo-jumpstart and geo-former in conjuction with geoserver, this pivotal cloud foundry deployed site provides examples and support to drive the adoption of our features within the organization. Updates and maintenance of example code, adding tests of example code, editing content and design.
coordinate converter Coordinate converter is a java application that wraps an official C language library that provides the capability of translating between the various grid and coordinate systems the various military systems use, with an audited and proven level of accuracy. I worked with bridging the C application to the Java application.
pipeline integration Refined, troubleshooted, upgraded, and maintained both concourse and migration to gitlab-ci pipeline configurations
Pivotal Cloud Foundry Configuration and integration with pivotal cloud foundry resources mostly through concourse. Became familiar with troubleshooting tiles and configuration interactions within the PCF space.
OpenAuth Integration Both geo-former and doc-site are required to provide oauth integration with a new version of their local system federation. Integrated and configured the applications to
Consultant Programmer |
October 2019 to April 2020 |
Mainz Brady Group On-site work at Nike in Beaverton, OR
Senior Java Developer
Financial systems Maintenance, feature, and integration work in java spring boot microservices for financial transaction transformation and enrichment. API definitions, qma rules, refactoring, updating depdency versions, consolidation of code, much work with jackson, json, functional constructs, quality code focus. Javascript lambdas, cloudformation templates, cloudwatch alerts, and other AWS support. Nike Jenkins Pipeline Library, configuration and execution of both lambda, sam, and ec2 flows.
Open Authentication Lambda In support of new integrations with the financial transaction system, creating a lambda and pipeline that provides oauth token validation
Application Architect |
June 2018 to Present (Quiescent since February 2020) |
Cleantech Athletics Remote side work over internet
Application Architect for Lighting Control System
Cloud migration Moved existing implementation from expensive on-site hosting to cheaper cloud based hosting
SSL certificates Set up automatic lets-encrypt certificate renewal system for cloud hosted operations.
Secure Backend Management Upgrade an entirely open MQTT infrastructure to a secure, key-and-encryption based system using client certificates, elliptical keys, and custom protocols to coordinate a javascript node.js based microservice operations to make a fault and disaster resilient system capable of being recovered from only archived configs, source code and a secret
Client site subsystem control Replace an existing extremely limited go code system with a program that permits non-interactive factory-default configuration to configured operation recovery, vpn networking, encrypted communications, and the presentation of the frontend panel control to the user for fallback and use without the central infrastructure required to support it.
Frontend panel control Configuration administration and end user control panel using React, communicating with secure MQTT and websockets to provide live interaction with the microservices, asynchronous offline-capable configurability of end systems. (this part of the system was architected but in development when I went quiescent on this project)
Senior Perl Programmer |
June 2019 to October 2019 |
Cypress HCM Telecommute work for CBS
Perl Application Programmer
AWS Migration for Fantasy Sports A large legacy perl application with many business rules needed to be migrated and adapted to be moved onto cloud based services.
Consultant Programmer |
September 2018 to June 2019 |
Mainz Brady Group On-site work at Nike in Beaverton, OR
Application and Devops software expert
backend Store athletes (associates) for Nike are able to use a mobile application called Assist In Cloud to help the customers check out quickly in the stores without using registers. There are a complex of microservices which provide the backend support for these systems. Quality is imperative due to the customer facing nature of the application we are supporting. This test based system uses gherkin to describe the integration test suites. We are on the front edge of migrating the services to a more flexible AWS account arrangement.
Retailcart - EC2 based java service Java based service. Uses dynamodb for persistence. Moving types between libraries, improving tests, adding features for new integrations. Authorization with JWT.
AWS Lambdas - steps and transforms Mostly using node version 8.10, building lambdas and step functions. SAM templates with api gateway connecting to lambdas and using dynamodb for persistance. Authorization with JWT
Software Craftsman |
February 2016 to August 2018 |
Pillar Technology On-site work in Columbus, OH
Polyglot Application and Devops software expert
Auction site redevelopment A high value application manages realtime auctions for business customers. But it is old in infrastructure and web compatibility. We are tasked with building a modern replacement using Kotlin-JVM and Angular 6 with agile process, continual integration, and test based development. We are communicating with REST and websockets, building microservices, working with an event based architecture (probably ActiveMQ). Goals include strangling out the old 11G database entirely, providing unified search services, and maintaining the five nines uptime history of the previous production application.
Loop Console development Enjoyed working to extend and develop a React/Redux single page app providing a configuration front end and integrating with the rear api based testing system. Extensive work with React components and Redux state maintenance
Data transfer in support of machine learning for reals Helped architect, design, and implement the security and data flows of a data ETL and pooling strategy. We used aws cloudformation templates and python scripting to securely manage encryption keys, transform the data, and make it available for analysis. Deep dive into AWS services. We implemented scaling policies, extensively used cloudformation templates, interfaced with dynamodb and lambdas. We worked extensively with AWS networking within EC2, gateways, routes, security groups, subnets, vpcs and parameter store. We set up our own openvpn server in each stack to allow connection to the vpc by client. The analysis system used EMR clusters that had their own set of challenges. We worked through a thick compliment of IAM roles and policies that control access to everything. Naturally S3 buckets were used extensively, and we handled dead letter queue matters with SNS and SQS. Mainly, Scripting was accomplished in Python and configuration was in cloudformation templates.
Developer operations (3 months) For a retail client, refactored build system constructing Oracle ATG deploys to stacks for Docker Swarm in Jenkins pipeline DSL consisting of Weblogic, Endeca, Oracle, Apache, and graylog components. Extensive work converting to multi-stage dockerfiles and increasing the speed and efficiency of the builds.
Internal API integrations(2 weeks) Developed proof of concept code in Javascript as research proving the availability of various data types. Work has included ADP, GoogleAPI (Group Mailing List Admin, Drive), AWS (S3, KMS, IAM, SSM), JustSift, and augmenting existing internal software systems to provide data through APIs.
Data transfer in support of machine learning(1 month) In support of a machine learning project, built proof of concept code as research proving the viablity of accomplishing data transfer and subsequent transformation processing through use of python code and AWS Lambda functions responding to SNS published messages from S3 file creation events. Began creation and refining of a CodeDeploy and CloudFormation configuration for managing the cloud-run part of the entire project. This was my introduction to Python
Organizational agile transformation(14 months) Participated in and supported training and communication of understanding to the management and employees on-site to bring them to an understanding of how to organize and work iteratively to effectively reach their goals.
Development and Operations Hadoop(14 months) In an big data petabyte-scale architecture utilizing Zookeeper, Hadoop, Spark, and Kafka, created, maintained, and organized Jenkins jobs via JenkinsDSL, PipelineDSL, and support software modules in Ruby. Primary goals were automation and smoothing of the process of creating and rebuilding Clusters in the support of a specific application.
Ecommerce Java application maintenance(4 months) Used test based and pair programming techniques to analyze, improve, and add functionality to an existing Java application. Legacy code base going back over a decade, still including patterns from older versions of Java. Added tests, extensive analysis of the application data flows to research performance issues. Used custom tools to alter system configuration.
Network vpn Found ways to improve the vpn connection speed between work site and client. Improved performance measuably by targeted readjustments.
Perl Consultant |
October 2014 to February 2016 |
Catapult Staffing at Kroger On-site work in Cincinnati, OH
Infrastructure software architect and lead
Team lead Supervised three different contractors brought on board at various times. An exciting opportunity during which I learned much I did not previously know about selecting and leading people.
Operations development Integrated Stash, TeamCity, Artifactory, and IBM BigFix (via api) into the architecture to provide storage, rpm compilation, rpm distribution, and endpoint configuration management - to replace the existing cobbled together puppet system.
Distnet Module Augmented and module-ified an existing old-style perl utility script to use the underlying mechanism as an integrated module in other applications.
Design and plan TSCCS Project Did extensive planning, documentation, and architecture work to create an infrastructure management utility that meets the needs of the group. Recommended the need for and assisted with the interview and hiring three additional programmer resources.
Freemind Groovy In support of my planning and project management tasks, scripted some utilities in the Groovy scripting language to operate with in the Freemind application.
Columbus Mutual Housing Collective |
June 2012 to Present |
Personal Project
Manager, Dreamer, Organizer, Funder
Business Plan and Pitching Developed a preliminary business plan to gain assistance with capital and pitched it to a startup incubator centered around my employer. Was referred to a foundation which has not yet turned any fruition.
Units 4+5 Acquisition, October 2017 Extensively negotiated with existing landowner over the terms to purchase a two unit 1920 house in the neighborhood with two current renters.
Units 2-3 Acquisition, Oct 2016 After attempting to buy two other properties that did not pan out, finally came to an agreement to buy a duplex inheriting a tenant. Treated property for bed bugs. Had air conditioner and electrical issues repaired.
Units 1 Acquisition, May 2012 Found a HUD house asking $10K. Repaired plumbing. Treated floors to eliminate animal urine scent. Stripped water damaged floors out. Repaired rotted floor beams. Replaced floor. Gutted to studs, rewired, reinsulated. Non-structural wall building. Added hookups for washing machine. Replaced knob and tube. Added half bath. Roughed in and installed two pocket doors. Installed windows.Replaced roof deck. Installed steel roof.
Replay Project |
October 2008 to Present |
Personal Project
Application architect
Business Plan and Pitching Developed a preliminary business plan and pitched it to a startup incubator centered around my employer. Was accepted for next stages.
Perl Workshop Presentation Went to Swiss Perl Workshop (around August 28th 2015) in Olten, Switzerland to assist with preparing and presenting about Replay with a coworker from Cargotel. Interest was mild, potential confirmed.
Cargotel asynchronous systems Cargotel had a need to enable some new asynchronous processes. Implimented and tested portions of my ongoing project and deployed them in support of Cargotel's asynchronous processing. The system has so far enabled near-time creation of large documents, handling acknowledgements and status updates for remote mobile clients, and accounting reports for API usage billing.
Perl Programmer |
March 2014 to Present (quiescent since October 2014) |
CargoTel, Inc Remote work from Columbus, OH for Baltimore, MD
Maintenance programmer and operations technician
AWS Server Migration Set up a new system image for their application using AWS EC2, Postgres RDS, Cloudwatch for stats collection, IAM for user management, SQS for message queuing, SES for application email sending, and Elasticache to stand in for the previous memcached utilization. Tested and modified application to be compatible with the new environment.
Enable new CreateOrder API module Wrote extensive test program to prove correct operation of internal API for new customer. Modified configuration of application and fixed flawed application logic to show correct results.
Web service pricing reports Support new business model with data collection and related reports.
API performance Troubleshoot a customer's usage of an API that is loading down the system, see about making it more efficient.
Zoho integration Integrate a product called zoho support, used for customer interactions, with our internal project system. Involved event flow design, collaboration with coworker, and exploring and working with several different APIS. First production use of my Replay framework idea.
Perl Programmer |
October 2013 to February 2014 |
Career Strategies, Inc for RentPath Remote work from Columbus, OH for Santa Monica, CA Consulted in support of rent.com's web application
CentOS Perl Migration Created and compiled a set of local::lib perl modules for a new platform. Modified make and deployment scripts to support new deployment username/account permissions requirements. Helped integrate new puppet and nagios configurations with new platform.
Featured rotation logic Altered application for a new data source to handle business rules for featured properties. Coordinated with front end programmers and fully communicated api requirements.
SignIn API logic Implimented new business rules for a class of signins delegated to an alternative authorization source
Inter-data center image transport Researched feasibility of temporarily synchronizing images between two data centers, but insufficient bandwidth was available
Image cleanup Wrote scripts to seek filesystems, parse filenames, and look up the status of images in the system, with the goal of finding which can be deleted
Rating-Review system simulator Created prototype simulated rating and review data delivery to enable front end development before back end data sources were available
Application Configuration instrumentation Created an api and data structure definition along with a nagios style check script to enable the alert systems to monitor the state of the application's configuration in relation to the systems it supports.
Application out-call instrumentation Augmented application with statsd data output to etsy-statsd integrated with a graphite server. Enabled per-operation and per-timepoint granular performance monitoring on the level of distinct bind parameter sets for all service calls both DB and REST
Senior Application Developer |
November 2011 to August 2013 |
Manta Media Columbus, OH Joined the Manta family to leverage my experience for their growing systems to expand their service based architecture.
Member Service Consulted and assisted with the member service project, integrating tests and re-factoring the design to greatly improve testability. Patterns such as dependency insertion were critical
Test Automation System Given free head to create and advocate an automatic testing framework, researched and built prototype of the test system. Continued advocating with coworkers to use test based development.
Node Library Repository Prototype To support the proposed automated testing and integration system, configured a CouchDB and set up replication with the node.js repositories, the only way to do a fully featured private package archive setup in the node package manager space.
JSON Schema System Designed a scheme by which the inter-system integrations in our service based architecture would be regulated and controlled by contracts formally declared in JSON-Schema files.
RabbitMQ event design Designed a master envelope event type which encapsulates our more arbitrary types to make it possible to more generally handle all events based on common characteristics while still allowing expansion and well defined subtypes.
Token library Node.JS Security concerns led to the need for a Token to validate that the browser generating an event was not spoofing another account. Created a simple shared secret hashed scheme to provide and validate tokens delivered by systems onto the event relay.
JSON Schema Perl library Created logic whereby a JSON-Schema declared data structure could be used to create objects in our in-house custom meta object system dynamically and recursively.
RabbitMQ Perl library Created layers to greatly simplify subscription to and transmission of events to our RabbitMQ based event bus for the Perl portion of our applications.
RabbitMQ Node.JS library Created layers to greatly simplify subscription to and transmission of events to our RabbitMQ based event bus for the node.js portions of our applications.
Token library Perl Replicated the node.js business rules for the security token generation and validation into the Perl portion of our application.
Event Relay service Built a Node.js service facing our client browsers allowing AJAX calls to send events onto the event system bus.
Sharing service Assisted with the integration of custom and remote libraries to create a RabbitMQ facing and reacting service to encapsulate a series of business rules that permitted integration and validation with other systems.
Live 500 error console Instrumented the code to transmit events on 500 errors. Created a live updating dynamic web application utilizing node.js, express, jQuery, and websockets to provide a push-based real-time tool for monitoring and analyzing 500 errors generated by the application
Memory leak profiling Utilized tools like Devel::Cycle to locate egregious memory leaks in our Perl application to great success. Created further code to identify precise memory locations that are leaking, but was unable to uncover further details.
Memory usage live metrics Instrumented the code to transmit events containing detailed memory usage on a request by request basis to enable dynamic analysis. Made plans to create a live updating dynamic web application to provide a push-based real-time tool for monitoring memory leaks in our web application. Made plans to plug in some kind of heuristical analyzer linked to versions deployed for early alert to memory leak problems.
DB Queries live metrics Instrumented the code to transmit events containing detailed database latency, query, and data transfer usage on a query by query basis to enable dynamic analysis. Made plans to create a live updating dynamic web application to provide a push-based real-time tool for monitoring memory leaks in our web application. Made plans to plug in some kind of heuristical analyzer linked to versions deployed for early alert to query and database problems.
Perl Programmer |
November 2010 to November 2011 |
Tek Systems Boca Raton, FL. Traveled to the land of warm winters to contribute to an old Perl application. When springtime came around, converted to full-time Telecommute and continued working from more northerly climes.
Windows VPS Integration Responsible for front-end template modifications and back-end integration programming in support of a product configuration module. Created integration objects for the new remote system. Wrote extensive tests targeting 100% code coverage statistics. Represented team in meetings with project management to clarify requirements and answer questions.
Zimbra Integration Part of a team working on a high priority integration between the order provision billing system with the new Zimbra mail system. Rewrote the prototype library into a normalized, object oriented interface. Used exceptions for error handling and encapsulated session establishment in the session object accessors. Wrote extensive tests to verify rewrite maintains original functionality.
Javascript Programmer |
June 2010 to November 2010 |
Xylo Technologies Rochester, MN. Traveled to the land of the Mayo clinic and formal work dress to contribute to javascript application development.
Mitochondrial Biobank Responsible for front-end javascript and back-end SAS programming in support of an AJAX data storage and retrieval application. Changed data transport logic to utilize JSON. Abstrated repeating application memes into modules. Joined existing team in meetings with client users to clarify requirements and answer questions.
Programmer Analyst |
August 2009 to April 2010 |
Amazon Seattle, WA. Returned to Amazon to work in the global financial systems group again. Used knowledge of the existing systems to research subledger problems. Developed transaction testing framework. Analyzed, configured and tested another fate system integration.
PPCL Cleanup Responsible for researching troubled transactions in a subledger. Built a tool for analyzing subledger entries against a flexible set of modules to classify problems. Enhanced and tweaked performance of the test system. Wrote modules for the test system.
FATE Integration for Gift Certificate Systems messages Stepped into the project after the initial work was done to carry the integration work through validation and integration tests. A new set of requirements forced heavy modifications to the business rules. Built 247 test cases in the new testing framework and resolved the failures, including modifications of the WSDL definitions and and C++ support code modifications.
Programmer |
December 2008 to July 2009 |
Norchem Laboratories Flagstaff, AZ. Web Programming. Joined Norchem to work on a Web2.0 style Perl and Javascript based application with a small group of programmers.
Codename Sentry As programmer, not only responsible for fixing known bugs, but also designing, implementing , and modifying critical and core parts of the information management system as the specification iteratively evolves. Of particular interest was the intensive use of the DBIx::Class module for the model access layer.
Programmer Analyst |
April 2008 to November, 2008 |
Amazon Seattle, WA. Returned to Amazon to work in the global financial systems group. Acquired in depth knowledge of the existing systems by working trouble tickets. Analyzed, configured and tested the results of changes to the system
Merchants @ Canada Responsible for altering the financial systems configuration to accommodate the requirements of a new revenue source. Created extensive test cases to verify operation. Worked with accountants to verify behavior was as desired.
FATE Integration for Component Reversal Of Workflow project Working with a team of engineers, reverse engineered existing logic, and analyzed requirements. Implimented and tested configuration and code changes for a new event type within the FATE accounting event system, involving database store, XSD/WSDL type definition creation, and support of C++ support code modifications.
Business Rule Unit Tests Stepped up and created a Perl based unit testing framework for the internal business rule configuration language. Defined and refined tests, created reports for validation of results. Augmented existing C++ unit test code to output results interactively in JSON form, both reducing time required to run tests, and allowing the automation of result analysis.
Perl Programmer |
January 2008 to April 2008 |
Harrah's Entertainment Las Vegas, NV. Assisted with creation, modification, and debugging of monitoring, utility, and reporting scripts for a soon to be deployed AIX based management system. Worked as a telecommuter at remote site, participating in daily phone conference meetings. I utilized test based development, AIX, Apache, Oracle, and Perl. Harrahs has an extensive change management bureaucracy I needed to work within.
Web Reports Design Designed a support infrastructure to store and present historical reports. Four segment architecture involving collector, and separate terminal, HTML, and RSS display functionality
Unzipper Utility Created utility to extract from windows created zip files on AIX systems. Design and usage documentation required.
Green Screen Report Utilized test based development to create the first phase of the web reports design. Pleased with how easy it was to debug, ensure results and test alternatives with automated test harness in place. Design and usage documentation extensive.
Monitor augmentation Modified the second generation of a monitoring program of dubious lineage to add functionality. Abstracted existing functions into pieces to utilize in new features. Changed logging mechanism to be useful both now and in the future. Design and usage documentation part of project.
PHP Programmer |
June 2007 to November 2007 |
SellingSource.com Las Vegas, NV. Web programming. I was part of a PHP programming team for a successful web marketing firm. I utilized CVS, Linux, Apache, MySQL, and PHP
PHP Maintenance Worked as part of a team of programmers to fix bugs in PHP and MySQL queries in coordination with the QA department. Consulted on impact of changes and worked to improve the design of the application.
Code Merge Merged complex code changes between CVS branches. Developed abstraction layer to assist with the transition and addition of the new feature.
New Features Designed and implemented an appropriate solution providing greater levels of interaction than previously available in the application. Utilized AJAX and JSON extensively, developed new classes and extended the existing PHP framework to add functionality. Given free reign to attack new features.
XSLT/Java Programmer |
October 2006 to June 2007 |
Amazon Seattle, WA. As a member of the digital systems development team I utilized Perforce, Linux, XSLT, Perl, S3, and Java.
XSLT Transforms Assisted in the creation of a complex ant and xslt stylesheet based document processing system complete with java extensions.
Operations Support Programmed Perl and Expect primarily in support of operations, providing data mining, reports, and executing data reconciliation script. Interfaced with the Amazon S3 system extensively.
Java Programming Developed support library class structures for the new transform system, providing listing and retrieval facilities for FTP as well as Zip and gzipped tar files.
Xpath Programming Created complex XPath 2.0 expressions. Utilized regular expressions, tokenizing, substrings, indexes, and joins.
Communications Became progressively more involved in engineering planning within the group. Lent my expertise on the system to technical integration managers. Served as technical consultant on many phone calls with customers. Cross trained group members on my specific part of the system.
Senior Programmer |
May 2005 to September 2006 |
Streamray, Inc. Las Vegas, NV. Web programming. I was the senior local programmer for a leading adult entertainment broker. I utilized CVS, Linux, Apache, MSSQL, MySQL, and Perl
MSSQL to MySQL database migration Responsible for building and testing the database migration scripts designed to move the data store for the entire system to mySQL from Microsoft SQL Server. Developed a modular framework to describe the data transformation between the disparate systems.
Maintenance programming Continually responsible for maintenance programming per projects and specifications as site features are added, removed, and refined. Used bugzilla to track bugs. Worked with QA and management personnel frequently.
Develop promotion method Assisted with the design and did the implementation on a new method of ordering available models.
Refactor complex code Requirement was to take a complex, tangled, confusing piece of code and re-factor it. Unexpected performance issues intrinsic to the system architecture forced a partial rewrite. 2257 Auditor Tool Tasked with replacing the existing auditing tool developed some time ago. Specifications were primarily speed of use and response. Consulted with the end users and devised a user interface for the solution. Implemented in Perl CGI with extensive use of AJAX, DHTML and CSS. Learned and extensively utilized objects within javascript.
Independent Consulting |
June 2004 to May 2005 |
Color Climax Diekirch, Luxemborg. (telecommute) Responsible for ongoing maintenance and improvements on a high quality adult entertainment site. Implemented entirely new site design to use primarily static storage. Reengineered MySQL database for abstraction requirements. Extensive use of mod_perl and Server Side Includes.
Megagames Inc. Vancouver, Canada. (telecommute) Part time maintenance and programming in a legacy Perl CGI scripting environment. Prototyped a custom database and feature integrated login system with Postgres.
A Reality Technologies Los Angeles, California. (on site) Full time support of A Reality's operations, Migrating web sites between Microsoft and Open Source, Working with Ecommerce transaction and shopping cart systems backed with MySQL. Automated the programmatic creation of PDF files.
Systems Programmer |
June 2002 to April 2004 |
Python International Las Vegas, NV. Web Programming. I was the sole programmer for a niche adult entertainment producer. I utilized Win2000, Access, Linux, Apache, Postgres, and Perl
Content Management Interface Programmed and tested a custom content management interface, allowing non-technical users to upload and configure content for display on a variety of sites without direct config file manipulation.
Ikonboard Upgrade Updated, fixed bugs, and migrated to new Ikonboard software backed by Postgres.
Phoenix Linux Data Center Installed and configured multi-server network system of content providing and secure ecommerce servers under Linux and Apache with Postgres database. Developed mod_perl apache module to track access patterns.
Las Vegas Data Center Installed and configured multi-server network system of content providing secure ecommerce servers under Win2000 and IIS5.
Ecommerce System Initially supporting a VB/Access solution developed and migrated to a Perl based shopping cart and site presentation and management system.
Content sites Supported access control details, tracking of user activity (with firewall integration for abuse), and Access Database.
Reporting Javascript - Created Postgres database interfacing reporting scripts.
Newsgroup Browser System XML - Utilizing XSLT version 1.1, designed and implemented a complex, heavily recursive multi document stylesheet to generate the content pages. Developed support scripts and database.
Software Engineer |
January 1999 to February 2002 |
Secure Resolutions (antivirus software startup) Integration Engineer. Responsible for helping specify and design servers and networks for the project. Built web based integration system with Perlscript, IIS, and MSSQL.
Network Associates (McAfee team) Software Engineer. Created Perl scripts, objects, and testing routines in support of the services and hardware offered.
Integra Telecom Programmer. Provided scripting talents within the office, integrating with Oracle and filtering data. Troubleshooted Expect script for telecom equipment interfacing.
MyCIO, Inc. Development Engineer. Wrote test plan and functional spec for email processing module of planned product. Programmed QMail system. Assisted with build system maintenance.
Network Administrator |
August 1996 to November 1999 |
Cisco Systems, Inc. San Jose, CA. Worked as network administrator in the development laboratory support group. I utilized Networking and Solaris knowledge, Perl, and Postgres
Solaris Workstation installation and maintenance Installed and maintained Solaris 2.5 workstations on SunSparc 20 through Ultra 2 hardware. Developed scripts to speed tasks. Supported engineers with configuration, setup, and troubleshooting of the workstations. Developed a script system to backup workstations to a central server.
NSMBU Building 1 Floor 2 Development Lab Support Network Designed and implemented 1500 node switched network to support lab development equipment. Three 5509 switches, redundant supervisors, RSMs, and power.
OIBU Israel Development Lab Support Network Designed and implemented a 150 node network to support the lab development equipment. Single 5500 switch, no redundancy.
OIBU Ottawa Development Lab Support Network Designed and implemented a 700 node switched network to support lab development equipment. Catalyst 5500 switch with redundant RSM's and supervisors supported Catalyst 1924 switches.
OIBU Building N Lab Web pages Programmed an extensive lab address management CGI Perl web application with a flat text file back end. Programmed training data storage/retrieval CGI Perl web application. Programmed CGI Perl script to track calibration information for lab test equipment.
OIBU Building N Development Lab Support Network Took over and documented the existing lab network supported by Cisco 7513's. Migrated slow hub based network to hybrid switched and routed network without interrupting services. Alpha tested 8 port fast ethernet cards for the Cisco 12000 router, documenting a significant number of bugs.
OIBU Building 16 Lab Network Design Designed a large lab support network for 5500 network nodes. Executed phase 1: basic connectivity, switched infrastructure. Later phases involved moving to a redundantly routed infrastructure.
Jamestown Community College majoring in Computer Technology - 1992-1994
Courses in Solaris 2.x - Administration and NIS+ Administration - 1996-1997
Courses in Windows NT - TCP/IP and Installing NT - 1998
Courses at Cisco - Advanced Router Configuration, Installing, SNA Config, and Internetwork Troubleshooting - 1997-1998