Objective
Staff Software Engineer position where I can impact people positively, and also get work done.Â
Summary
Twenty-two years core Java. Server-side and front-end. Three years Kotlin
I follow mature personal development disciplines. TDD, XP, fail-fast, quality-first, simple and reliable
Agile and XP adept, with a talent for solid design, smart process, and intelligent code (re-use, optimization, simplicity)
Extensive knowledge and experience with patterns, API design, framework technology
Habitually exceeds expectations
Recent Tools and Technology Experience
Java, Kotlin, Spring Boot, Reactive, RSocket, Docker, K8s
  Â
IntelliJ IDEA, git, maven, gradle, JIRA, Jenkins
Â
Agile, XP, GCP, AWS, BigQuery
Professional Experience
Wise
Lead Engineer
Lead Engineer
06/22 - 04/23
Standard Java and Spring Boot application development around:
North American Money Movement Team
Backend services handling money transfers and more.
TaxBit integration to provide 1099-k
North American Wise Account Team
Tax ID verification and providing interest on balances.
Battle.net - Platform and franchise websites
The three most-recent years:
Educating various teams in Kotlin, Spring Boot and Reactive development
Guiding design, architecture and implementations
Acting as an individual contributor on these projects as well
Technical lead on player-chat read, stream, delegate, profanity-filter, metrics-reduction microservice cluster (Details)
Provided education across Battle.net on:
Git - Developed and taught a course: "Practically Understanding Git" (especially during onboarding)
Spring / Spring Boot - 10-hour course on Spring Cloud Netflix, as well as several smaller courses on various topics
Kotlin - Gave on-the-job help for Java developers learning Kotlin
Technical lead on the API behind discovering nearby Fireside Gatherings (geo-location service for Hearthstone) (Details)
Various roles across Battle.net apps and libraries involving:
API-related: REST, RPC, Protobuf, JSON, RSocket, WebSocket
Datastore-related: BigQuery, Hadoop, Oracle, Postgres, MySQL, H2, Redis, Hazelcast, MongoDB, Cassandra, Hibernate, JPA
GameStop's Cloud Gaming Division SpawnLabs' IP: Streaming video games to thin-clients.
Building the backend services (which support cloud gaming) and the Android client (end-user application).
Designed and wrote a "Dynamic Firewall Service." Modified iptables in response to REST calls in order to pass traffic between clients and the cloud gaming nodes. (Details)
Primary developer on Android client for "Gamestick" product -- an HDMI dongle which streams video/audio via Wi-Fi and receives Bluetooth game controller inputs, sending them to the cloud game node. UI includes game catalog browsing, searching, etc. (Details)
Wrote a service to check for, download and install android application updates from GameStop servers.(Details)
Agile leader, trainer, coach.
UTV True Games publishing platform
Architected the portal for UTV Ignition's gaming, publishing and social network site. (Details)
Designed an SSO solution for our platform, supporting multiple-user-agent authentication. (Details)
Designed and built a REST service as a client - our service received auth requests, and then as a client, forwarded them to Gamigo's auth service. (Details)
Best qualified, I volunteered to meet a critical company need and engineered automated deployment for the client-side artifacts build pipeline (patches and installers). (Details)
Using a Spring LDAP library, wrote a utility to migrate users to a new instance. (Details)
Gods and Heroes player-character platform
The platform is a set of server software, web applications, messaging, and databases which runs along side (and in contact with) the game server. It provides authentication, in-game chat, forums, petition, social connection, heartbeat monitoring, and other services for the players/characters.
As the first Java developer hire at startup Heatwave, I needed to understand the product acquisition they had made from Perpetual Entertainment, perform an external installation (Details), and prepare the platform for the Gods and Heroes production phase by arranging a development and deployment pipeline.
Hoover's website - Company Team
Agile/scrum development of vertical "company" feature slice of Hoover's business intelligence website. Included Spring configuration, jsp and template editing, and service call to custom query. (Details)
Adaptation of company data queries into a JasperReports pdf document.
Cisco Systems, Inc.
Java Developer (Contract position)
Java Developer (Contract position)
12/09 - 01/10
Adaptive Security Device Manager (ASDM)
Create/modify UI controls on the Cisco thick-client ASDM to support new "external ping" feature for troubleshooting Adaptive Security Appliance (ASA) connectivity issues.
"Voyant" Lifetime Financial Planning Application Suite
I was part of a 4 to 6 person team that designed and implemented a distributed-environment lifetime financial planning application. www.PlanWithVoyant.com
I designed and built several components of the thick-client Swing product suite, including charts, wizards, reports, recommendations, financial model calculations, and simulations. (Details)
I was responsible for all of the extensive chart rendering and interaction architecture. It had to be not only performant and feature attractive visuals, but also deal with multiple threads and ui component interactions.
I implemented the look & feel of the rich client app, including interactive fading popup notifications, custom glossy-buttons, and semi-transparent floating panels showing details from underlying data model. (Details)
I built the portion of the Spring/Hibernate server-side account management code which allowed users to periodically update their investment balances and view their plan progress (called "Snapshot").
GTECH Corporation
Software Developer (Contract position)
Software Developer (Contract position)
04/05 - 02/06
Enterprise Series Interactive "NetWin" Online Lottery framework
Solely responsible for new architecture design for latest release of Enterprise Series Interactive (ESI) J2ME and SMS "channels" to the core framework. Channel modules were built for each of the various protocols through which users interacted with ESI (http being the 3rd channel). Each module must transform its activities to interface with the ESI Command API. For J2ME, a client-side library was used. For SMS, a phone-number-to-session mapper, as well as a server-side http router to direct SMS text messages.
Designed and wrote the framework for instantiating and accessing application aspect objects. The objects (like DAO, system settings, and a bean factory) are created through reflection, as described in xml configuration.
Primarily responsible for developing project structure and modularity, and establishing segment interfaces. Played leading role in the formation of our .ear products and developer environment.
Designed and created the build framework, executed by CruiseControl for continuous integration. The build performed all the work in automation, getting source from vcs, constructing over a dozen separate J2EE modules into the various binaries, loading schema and sample data, starting JBoss, executing unit and functional tests, and publishing results.
Blue Fish Development Group
Software Developer
Software Developer
12/04 - 04/05
Knowledge Base of oil industry studyable entities
Documentum-based knowledge base with a web front-end built with JSP and javascript.
Without using Struts, we nevertheless used MVC principles. I designed and wrote our view components which collected relational data (entities related to each other), which was not immediately available on model objects.
Implemented a complex conversation between an applet allowing a drag&drop of documents to be uploaded and the server, which must detect version and name conflicts and respond to the applet with valid options. The applet then offers a dialog to the user.
Rocksteady Network Sharing Application (RNSA), AAA Web Application, Ant Build Designer
Responsible for building an Authentication, Authorization and Accounting (AAA) system to act as the backend authority for a network provisioning device (RNSA). The Onboard AAA was a Struts-based web app on Tomcat, using Radius protocol for external communication and interfacing with a JNDI database (in this case, file/directory structure). This system was declared critical for product sales through the rest of the year by the Vice President of Sales. (Details)
Re-designed the product build from bash shell scripts to Ant. The build consists of a dozen nested build descriptors and produces a full Redhat distribution along with several main applications in Java, C, and Perl.
Utilized several XP principles in a 7-engineer team, while creating an application to shape bandwidth and provide dynamic, client-specific access to a network. Code Standard set by me. Used Continuous Integration, TDD (in some cases), and Design Improvement. We wrote a full suite (>95% coverage) of unit and functional tests and kept it at 100% success.
Wrote an IntelliJ IDEA plugin to integrate the Subversion version control system. The plugin uses a Swing UI, is full-featured and operates across code branches. (Details)
Time-Critical Target Functionality (TCTF) UI Framework, Intelligent Preparation of the Battlespace Registration (IPBREG)
Designed and developed core components for a Framework used in all company Java projects. The TCTF framework included heavily customized Java Swing components (DesktopManager, InternalFrames, JDesktopPanes) for a consistent Look&Feel and functionality for all TCTF sub-projects.
Instructed company developers on JUnit, Test-Driven Development, and Java threading concepts. (Details)
Improved existing framework components and sub-projects, and provided several developer tools and utilities.
Created specialized Swing UI fields which displayed several different values, such as Lat/Lng coordinates, Speed, Distance, Bearing, etc. They each listened to an external, graphical map API, to display specified precision, delimiters and units based on user selections within the map. (Details)
Designed/developed the IPB Registration project - a sub-project of IPB (itself a sub-project of TCTF). It provided a means for intelligence officers to "subscribe" to tactical information updates of a specified nature inside an area designated on a map displayed by an external library. Saved subscription data to a Sybase database with a Spatial Query Server (SQS) wrapper to handle the map area shapes. (Details)
Solutions development in XP environment, Business Process Manager (BPM), FrameWare Tutorial
Began as a Technical Writer; promoted to Developer due to interest and technical potential.
Filled a variety of roles including software design and development, project management, and training.
Developer for BPM. BPM was a "decisioning engine" allowing configuration of componentized process flows at runtime. Using dynamic class-loading, a database repository to contain classes, and Java Messaging Service (JMS) as its primary external interface, it would allow non-technical personnel to assemble and alter a workflow application at runtime. I was involved in coding "decision components," UI elements, bug fixing, error-handling (Details), and creating demo scenarios with the components.
Managed and co-authored the documentation / tutorial for OOP's second-generation framework technology. It was considered the model documentation work at netdecisions for content, layout and design. Formatted in html, it covers forty chapters, includes use of JavaScript, and integrated with Borland's JBuilder 4.0 IDE.