PROFESSIONAL SUMMARY

Application Architect with broad experience in software design and development using high and low-level languages. Possesses excellent knowledge of architecture, design patterns, software development methodologies, mobile and web technologies, and usability. Strong algorithms background with a detailed understanding of multithreading and multiprogramming. More than twenty-five years of experience in systems development.

WORK HISTORY

Staff Software Engineer 2016 to Present

Climate LLC | Creve Coeur, MO

Led our team's Clojure programming language learning by organizing a learning plan, referencing best practices, helpful learning guides, and participating in weekly exercise demonstrations.

We reimagined the Climate FieldView™ image generation pipeline with the team as several focused microservices connected via queues. This architecture enabled the necessary scaling, throughput, and robustness to generate millions of daily field health images.

Created Splunk dashboards for each image generation service and an overall executive dashboard to track daily statistics and monitor health.

As a member of the Geospatial Engineering team, together, we created a scalable geospatial satellite ingestion pipeline.

Implemented an improved Climate FieldView™ scouting map with the science team using the provided statistical algorithm. The results were verified using truth data provided by the science team. The outcome is a scouting map that more accurately identifies field health issues.

Experience with ingesting RapidEye-3A, Sentinel-2, Landsat-8, and DEIMOS-1 satellite imagery for use with top-of-atmosphere algorithms.

Application Architect 2005 to 2016

Aclara | Hazelwood, MO

Provided technology direction, architecture, and algorithm implementation for fault detection and localization project using Scala, Apache Spark Streaming, and GraphX. Produced basic descriptive statistics utilizing R and RStudio.

Presented future architecture direction to the largest client.

Created the basis for a unified user experience across four separate platforms, consisting of a third-party partnership and a series of single-page applications. The effort included a working proof of concept, requirements definition, usability discussions, framework selection, code reuse, and developer training.

Provided architecture support for Synergize RF Electric. Support included design reviews, XML handling, screen design, mock-ups, and integration with the unified user experience platform.

Assisted the Test Automation team by addressing user interface testing using Selenium, WatiN, and WCF integration testing using Visual Studio Unit Testing Framework.

Added MultiSpeak web service support to the Meter Data Management (MDM) platform enabling enterprise application integration with Customer Information System (CIS) vendors.

Collaborated with Data Architecture to increase scalability and reduce maintenance of the Advanced Metering Infrastructure (AMI) data load by creating a design to redistribute processing responsibilities and remove the need for dynamic SQL.

Led a team to research, design, and implement a service-oriented architecture supporting a Meter Data Management (MDM) platform. This architecture formed the basis for a consolidated user interface and business-to-business exchanges. Responsibilities included providing designs, technical oversight, design and code reviews, process and development guidelines, and increasing developer productivity.

Developed a highly scalable JEE system providing AMI over existing power lines using Two-Way Automatic Communication System (TWACS) technology and performed as subject matter expert for the user interface, billing, data import, and export. Developed a system monitoring application providing visibility into system execution. The application evolved as runtime aspects were understood and offered continuous feedback for future system optimizations.

Integrated load control functionality shedding electrical load for short intervals, thereby significantly reducing electricity requirements during peak usage.

Consultant 2004 to 2005

Belcan Corporation | Chesterfield, MO

Nestlé Purina

Developed printer drivers supporting SATO and Intermec label printers. The drivers supported robust connection handling, error handling, status information, and printing using each printer’s specific programming language. Label printing occurred using Programmable Logic Controller (PLC) register events accessed through an OPC Server.

Implemented a custom Java native launcher by leveraging C code shipped with the JDK. The native launcher enabled users to seamlessly use Java applications within the Windows 2000 environment and simplified deployment of the client applications.

Consultant 2002 to 2004

Ciber, Inc. | St. Louis, MO

Express Scripts, Inc.

Performed as a senior-level development team member adding dependent and multiple coverage functionality to the On-Line Pharmacy Benefits Management System. Dependent functionality enabled dependents to manage pharmacy benefits and control access to benefits information among family members. Multiple coverage functionality allows members to manage multiple pharmacy benefits for a single member.

Performed as lead developer on a formulary project creating a high-performance web application to enable browsing and searching formularies.

Software Engineer 2000 to 2002

Object Computing, Inc. | St. Louis, MO

National Information Solutions Cooperative

Developed a three-tier, generic billing system using Java/Swing, JBoss, and Oracle. The project involved rapid prototyping, developing custom data-bound GUI components, designing frameworks, mentoring employees, and evaluating usability.

Boeing

Developed a web-based Interactive Electronic Technical Manual (IETM) for helicopter diagnosis and repair. The project involved meeting stringent performance, deployment, and internationalization goals, specifically Korean. Other aspects involved mentoring employees and evaluating usability.

Programmer Analyst 1996 to 2000

Practice Patterns Science, Inc. | Maryland Heights, MO

Developed a multiprogramming project to load, index, analyze and export clinical data warehouses up to 0.5TB in size. Created a Java/Swing client-server application to submit and monitor these loads.

Education

Bachelor of Science | Computer Science/Mathematics-Systems 1996

Southeast Missouri State University, Cape Girardeau MO

Certifications

  • Scrum Alliance Certified ScrumMaster®
  • Sun Certified Programmer for the Java 2 Platform

Personal Projects

Daily Grind

iOS app assists with time reporting by tracking time spent on daily tasks. Numerous projects are supported, and each project may have several tasks. Time is recorded by simply selecting tasks. Generating a report creates a nicely formatted email detailing the time spent on each project's tasks. All images are original and created in Photoshop.

gForces

No matter the type of vehicle, such as a car, motorcycle, boat, plane, or bicycle, this iOS app lets you track your route, measure your speed, and exert all forces on your body. Once you have finished recording a route, you can view the route on a map and your relative speeds and other marked points of interest. If you want to analyze further or map the data, you can export the data in either JSON or CSV formats.

Skills

Operating Systems

iOS; macOS, OS X Server; Linux; FreeBSD, AIX, Tru64 UNIX, HP-UX, Solaris, Cygwin; Windows, MS-DOS; AmigaOS

Languages

Clojure, Scala, Swift, Java, JavaScript, Python, Objective-C, C, C#/.NET, SQL, Pro*C/C++, Ruby, Haskell, Regular Expressions, R, C++, XSL, XSLT, Object Pascal, Pascal, Icon, Modula-2, IPL, CORBA, Applescript; JSON, Markdown, HTML, CSS, XML, XML Schema, SOAP

Databases

Oracle, DB2, SQL Azure, SQL Server, SQLite, MySQL, PostgreSQL, DynamoDB, HSQLDB, MS Access

Software

IntelliJ IDEA, Xcode, Microsoft Visual Studio, ReSharper, SoapUI, Eclipse, RStudio, AgitarOne, NetBeans, WSAD, JBuilder, Together, Delphi, TextMate, vi, Visual SlickEdit, XMLSpy; Enterprise Architect, JUDE, Rational Rose; JProbe, Purify; Syncsort; Leiningen, Conda, Homebrew, Stack, RVM, rbenv, SBT, Maven, Ant, make; Git, Mercurial, Subversion, CVS, TFS, ClearCase, StarTeam, Microsoft Visual SourceSafe, PVCS; Jenkins; JIRA, ClearQuest; Splunk; Docker, VirtualBox, Vagrant; IIS, Weblogic, WebSphere, Oracle Application Server, JBoss, Apache, Tomcat, APEX, JacORB, orb2; SQL Developer, SQL*Plus, TOAD, pgAdmin, AQT; MS Office, iWork, Google Docs, Google Sheets, Google Slides; QGIS; Photoshop, Lightroom, Painter, Blender; Kepware Products, ICONICS OPC Simulator

Techniques

Microservices, Service Oriented Architecture, Web Services, Single Page Applications, DevOps, CI/CD, Test Driven Development, Unit Testing, Refactoring, Design Patterns, Scrum, Agile Software Development, Unified Software Development Process, UML

Frameworks

iOS SDK, AWS, Boto, Log4J, SLF4J, Core Data, Core Location, Clojure Test, ScalaMock, ScalaTest, RSpec, Apache Spark, YARN, jQuery, jQuery UI, Backbone, Underscore, Bootstrap, Font Awesome, Jekyll, Bundler, DataTables, ODP.NET, JDBC, Common.Logging, log4net, Microsoft Unit Test Framework, Rhino Mocks, JUnit, Selenium, WatiN, Coded UI, Azure, WCF, Spring.NET, LINQ, ASP.NET MVC, JSON4S, Highcharts, Swing, Spring, Guice, Wicket, JSF, JSP, JSTL, GWT, Struts, Tiles, Servlets, Servlet Filters, NIO, Generics, Annotations, Hibernate, Apache Commons, JFreeChart, Batik, JEE, JNDI, JAXP, JDOM, Xalan, Xerces, JAAS, MultiSpeak