Independent Consultant |
|
6/2008 - Present |
Worked with local and remote companies to provide development and systems administration solutions.
- Led and contributed to the design and development of more than twenty-five web, mobile and desktop applications for clients across the educational, affiliate networking, elections and constituent communications, online marketing, application monitoring, healthcare, and point of sale, ... industries.
- Collaborated with business owners and non-technical project owners to understand their specific needs and develop comprehensive, scalable and reliable solutions.
- Interviewed, hired, and trained developers, systems administrators, dev-ops, and technical team leaders.
- Designed and implemented statistical analyses for complex A/B testing campaigns to optimize the performance of landing pages, multi-page forms, ...
- Built and managed dozens of Linux web, database, mail, build, ... servers, hosting varied software (Apache, NGINX, Tomcat, PostgreSQL, MySQL, MariaDB, Galera, ...) across multiple hosting and cloud providers (AWS, GCP, Rackspace, Digital Ocean, Linode, StormOnDemand/LiquidWeb, ...).
- Designed, built, and managed a complex network of replicated and geographically dispersed TB-scale PostgreSQL databases to maximize uptime in the event that a datacenter, region, ... were to become unavailable.
- Designed, built and managed WAN Galera clusters.
- Designed and developed a fault-tolerant, massively-scalable Java application running on a worldwide cluster of nodes which auto-detects issues within the cluster, redistributing work as necessary, without the need for centralized control or coordination. The cluster has run continuously without a complete outage or consequential degradation in service since its inception.
|
Clickspeed |
Director of IT |
1/2005 - 6/2008 |
Clickspeeed is a small technology-based marketing company which has grown quickly over the past several years.
When hired the company consisted of three employees with an IT department of one (me). I was brought on board
for the continued development of LeadSourcer - a lead processing engine, and XWare - a CRM loan management suite.
At our peek, we employed fifteen people, eight of which were in IT.
- Mentored, advised and aided my team with the development of new systems and maintenance of current systems.
- Optimized LeadSourcer for speed and scalability. These improvements allowed us to scale from 800 leads/day to a peak of 320,000+ leads/day. This increase in capacity allowed us to grow company revenue by 880% during my tenure, which was sufficient for us to qualify as the 7th fastest growing company in KC in 2007 (according to Ingram's Mag), 2nd fastest growing company in KC in 2008 (according to Ingram's Mag.) and the 347th fastest growing company in the nation according to Inc Magazine.
- Advised company partners on business decisions both technical and non-technical.
- Was awarded the "President's Club" twice out of an available three times.
- In December of 2007 I was offered a no-cost partnership in the company.
- Allowed to interview and choose my replacement after resigning.
|
Contractor |
|
10/2003 - 1/2005 |
US Central |
|
|
Devoted several months towards a large scale debugging of eProducts, US Central's credit union oriented
software suite.
-
Diagnosed, tracked down and fixed quite a few complicated bugs
that were present in the rather large eProducts suite (300,000+ lines).
-
A coworker and I undertook the task of rewriting the system's rule engine due
to it being a very common point of failure. Part of this rewrite was a comprehensive
set of test-cases and a full regression test of the 1.6 million+ data permutations. During
this testing we caught 25,000+ rules engine mistakes which would have slipped
through to production.
-
Created a JDBC Connection wrapping layer which logged all database connection activity including:
statements ran, prepared statements ran, when connections were created and closed, as well as
contextual information for each of these (stack trace, thread, ...). This system was used
to perform analysis on performance issues and help track down data synchronization issues.
-
Used JTest, an automated code review tool, to track down anti-patterns.
-
Developed a set of programs which searched the eProducts code base (both source and compiled class files)
to find particular anti-patterns and help point us in the direction of likely bugs.
|
|
Argus |
|
|
Aided in the development of Member Access, an interface designed to allow argus customers to present members with information pertaining to their past, present and future coverage in a fully customizable way. In particular I did the following:
- Coded a Drug and Condition dictionary. This section of Member Access allowed users to find in depth information about drugs and medical conditions. It also allowed users to find drug-drug and drug-food interactions.
- Developed an enhanced pharmacy search feature which allowed members to search in-network pharmacies based on pharmacy name and their proximity to a particular location. Included in these enhancements was the addition of maps and driving directions, which were obtained from mappoint via a SOAP based web service.
- Performed analysis, design and coding for the Drug Pricing component of member access. The purpose of Drug Pricing was to allow a user to select an in-network pharmacy and drug and then determine the price of that drug prior to actually going to the pharmacy. The majority of this work was being performed on the mainframe, which we accessed via Transaction Gateway.
- Helped track down and fix both memory and thread leaks in the argus framework which were causing system restarts every other day for Argus's larger projects(Member Access is the largest). This rather sizable task was accomplished using a load producing program i wrote, various peformance monitors and HAT, a heap analysis tool writen by sun. Since these fixes have been in place Member Access has yet to crash do to OutOfMemoryError(s) and thread usage has dropped from several thousand to a more appropriate number, considering the load, of just over a hundred.
- Created FOX (Forwards and Operations eXtension) which was essentially a retro-fitting of Struts-like ideals into Argus's in-house framework. The extension allowed for the gradual, seemless modernization of framework based apps, of which Member Access was the first.
|
|
Hallmark |
|
|
-
(Java, J2EE, Oracle, XML) Aided in overall design and performed top to bottom coding of a 3-tier communication system which was used to provide:
- A reusable/generic Print Service which can be accessed via HTTP and is used for printing various types of documents, specifically PDF.
- A method for tunneling through the firewall system and polling the Hallmark Link system to retrieve print jobs which are then relayed to the Print Service mentioned above.
- (Java, GhostScript) I was in charge of devising a suitable method for taking arbitrary PDF documents and printing them to any printer on the network. This was accomplished with the Java based Print Service commanding GhostScript, an open source PDF/PS/... rendering engine, to print the document at hand.
- (Java, XML) In the face of hundreds of complex form validation requirements I developed an XML language, with Java plug-in capabilities, to verify that the data being used was in fact valid, in a easy and customizable way.
- (Java, PDF) Aided in the coding/conceptualizing/debugging of the PDF Generators which were used to create PDF documents from various forms of input.
- (Java, MQSeries, XML) Designed, built and tested a process which connected to an MQ Series queue, using all available messages in conjunction with the PDF Generators to produce the PDFs which were the end result of the project. (While doing this I also abstracted the MQ Series process into a very simple/coder friendly library which can now be used to circumvent the more 'unpleasant' complications of MQ communication and allows the developer to focus on processing the data.)
|
|
Look and Feel New Media |
|
|
- (Java, J2EE, SQL Server) Provided estimates and developed software extensions for a variety of their software products.
|
|
|
Sprint PCS |
Software Engineer III |
8/2001 - 9/2003 |
- (Java, J2EE, XML) I was a key player in the redesign and implementation of our group's coding framework which was used as the building blocks for all of our applications.
- Received a double promotion after only 8 months of employment.
- Employed several times by several different groups to speed up 'slow' processes, queries and programs.
- (Sun) I spec'd, ordered, built, configured and maintained our testing systems.
- (Java, J2EE, Oracle, HTML, JavaScript) Acted as a technical advisor and team lead for a group of developers throughout several projects from plan to successful completion.
- In the year of 2002, not a single bug report was filed for the systems which I wrote.
- In the year of 2002 I received 5 awards; two from clients, two from management and one from upper management for excellent work.
- Setup and migrated all of our web applications from weblogic 5 to weblogic 6.
- Setup, maintained and administered our group's CVS repository.
|
|
Sprint (consultant) |
Software Engineer |
4/2001 - 7/2001 |
- Developed code for the provisioning and management of virtual connections used by Sprint ION(Integrated On-demand Network).
- Developed code for an advanced search feature used in the Connection Management Client.
- Developed XML workflow files, which outlined multi-step processes.
- Tested old and new functionality in the Connection Management Client; Diagnosing and fixing bugs when needed.
- Unit tested code using the JUnit framework.
|
|
Planning Systems Inc. |
Consultant |
7/2000 - 4/2001 |
- (Java, Swing) Developed a prototype Airspace Toolkit, which allowed airspace engineers to take prerecorded CRCT flight data and generate accurate ARTCC sector counts to aid in the redesign of airspace constraints.
- (Java, Swing) Developed a Report Logging system to be used by MITRE field sites for the addition of problem reports and their respective solutions.
- (Java, Swing) Developed a movie recorder\player which allowed users to generate movies of a CRCT run to play again at a later time.
- (Java, Swing) Developed a program which displayed the status of all components running in the CRCT system.
- (Java, Swing, MySQL) Developed a Multi-System Monitor, which allowed site admins to evaluate the status of all CRCT servers at once by examining a single window which contained data of current and past server activity.
- (Java, Swing) Developed a program that allowed users to casually transfer CRCT recorded data from one media device to another(HD-HD, DLT-HD,
).
- Performed systems administration tasks including: Maintenance of Sun Ultra machines running Solaris 2.6, maintenance of NFS.
- Monitor and analysis of an experimental program(CRCT) coded by MITRE, used by the FAA to detect future air traffic problems and then to create a plan around those problems.
|
|
K-State |
Research Assistant |
4/1999 - 8/2000 |
- (C\C++\OpenGL) Coded a flight simulator which utilized distributed computing to perform the various tasks required.
- Provided technical/mathematical support for the development of a proposal for a system called 4CAST for NASA. 4CAST was designed to aid air traffic controllers in reducing potential conflicts between aircrafts. This was accomplished by transforming real space into an artificial 3-dimensional "maneuver space" allowing air traffic controllers to see at a glance all possible conflict-avoidance maneuvers.
- (Java, Swing) Coded EAMS, a prototype ARTCC advisory display system for the distribution of airspace constraint information. That system is now used nationwide by the FAA.
- (C\C++) Bug-Fixed and extended an auction simulation which was used by Dr. Smith for trust simulations.
- (Visual Basic) Developed an upgrade to an existing system which was originally written for the Apple IIe system. This system was used to teach psychology graduate students various statistical methods, techniques and procedures.
- Performed various system administration tasks for Windows and Linux.
|
|
|