Ronald D. Kurr
Auburn, NH
(603) 706-0925
kurron@gmail.com

Summary

I'm a software engineer with experience in JVM-based microservice development operating in AWS and Docker. I enjoy architecting solutions based on JVM languages, leveraging tools from the Spring portfolio. Mentoring others on cloud concepts and introducing new software engineering techniques is something else I enjoy.
Overstock March 2018 to December 2024
Senior Software Developer

Designed and implemented an asset management pipeline written in Java and deployed to Amazon ECS. AWS Lambda, SQS/SNS, DynamoDB, S3, Rekognition, CloudWatch, Elasticsearch and Snowflake were used to analyze and process the assets. Shopping site used the service, requiring low latency responses. Infrastructure was managed via Terraform, with test environments getting created and destroyed on-demand. AWS CloudFormation was initially trialed but the enterprise wanted to settle on something more portable. On-premises projects were written in Java using Spring Boot as well as Spring Batch, Spring for Apache Pulsar, Spring Data JPA, Spring Data JDBC and Spring Vault, with deployments to Kubernetes. Applications provided loyalty services to the shopping site, requiring low latency responses. Designed and implemented nightly batch processing systems, handling loyalty transactions from partners, using Spring Batch. Files were transferred via SFTP and processed, with a reconciliation report transferred back to the partner. On-premises applications used a combination of Oracle and PostgreSQL as persistent storage, accessed primarily via Spring Data JPA and Spring Data JDBC. Distributed caching was typically handled using Spring Data Redis. Responsible for the design and maintenance of REST APIs for synchronous processing and JSON messages for asynchronous processing, targeting Apache Pulsar. Testing was done using JUnit 5, Spring, Testcontainers and Cucumber, with reports going to the financial overwatch team for deployment approval.

Transparent Language March 2010 to March 2018
Principal Software Engineer

Architecting the switch from on-premises solutions to the Amazon cloud. Focusing on combining Amazon EC2 Container Service with a CI/CD pipeline. Helped design and implement JVM-based solutions that leveraged a variety of forward-thinking technologies, including Docker, MongoDB, RabbitMQ, Spring, REST and Hibernate. Worked on a reporting system the was faster and more accurate than its predecessor by utilizing event sourcing and Groovy. Fostered the switch to microservices-based solutions requiring experience in Docker, Consul and Terraform. Helped to incubate the continuous delivery process through prototyping and design of the tool chain. Stressed test-first coding style along with automated code inspection to maintain high code quality. Promoted the use of virtualization, including development environments which streamlined the on-boarding process. Was part of a small team that wrote internal tools based on Flex and ActionScript.

Sovereign Bank December 2008 to March 2010
Principal Software Engineer

Helped design and implement an in-house banking system based on IBM WebSphere and DB2. Focused on EJB-based services and refactoring some of the code base to be more testable. Mentored some of the team in unit and integration testing techniques including usage of TestNG, mockito and dependency injection. Was part of an exploratory project that was tasked with creating a Java based platform for scheduling and running batch processes. The solution was based on Spring, Spring Batch, Spring MVC, Quartz, Terracotta and Hibernate. Proved that assembling off-the-shelf components was more cost effective than creating an entire solution from scratch. In an effort to improve development efficiency, created a development tool set that stressed integration between the various tools and automation. The solution included Subversion, Trac, Hudson, Ant and Groovy. The resulting build system improved consistency and reduced code complexity and defects, primarily due to the automated inspection tools that ran as part of the build.

Telcordia February 2001 to December 2008
Principal Software Engineer

Helped design and implement the core of a J2EE-based OSS package for the telecommunications industry which has been shipped to over 60 customers, including high-transaction tier-one accounts. Relevant technologies included EJB, JDBC, JMS,Spring, Spring Web Services and Hibernate. Was responsible for design and implementation of automated element discovery and element provisioning, which required an understanding of graph theory, sound object-oriented design principals and testing procedures. Use of Design Patterns and automated test tools helped to simplify designs and minimize defects. Also helped create to create a WSDL-based web services hosting and consumption layer which utilized test-first design techniques to ensure high quality. System ran under BEA Weblogic and IBM WebSphere application servers talking to an Oracle database. Development was done under both Linux and Windows XP for deployment to Solaris and HP-UX. Was responsible for establishing and maintaining an internal project website to facilitate better information dispersal. Also introduced technologies into the project such as Spring, Log4J, ANT, CruiseControl, JUnit and Anthill. Have also been evaluating the applicability of Terracotta, OSGi, Maven, Java WebStart, Gradle and JBoss for use in future versions of the product

Kana Communications February 1999 to February 2001
Senior Java Engineer

Designed and implemented application server core for E-Business and E-Commerce product line. Project technologies included EJBs, Servlets, JMS, XML and Java Reflection APIs. Initial server was based on BEA's Weblogic server but design allowed for using other vendor's J2EE implementations. Initial implementation required knowledge of how the Java APIs were supposed to work and understanding the limitations of the Weblogic implementation. Guided a small team of engineers in the implementation of the server core. Development was done on PCs running Linux but deployment was done on Solaris. Participated in the porting effort to move the product over to IBM's WebSphere application server.

Cabletron 1989 to February 1999
Java Engineer/Emerging Technology Specialist/Web Specialist/Software Engineer/Project Leader

Worked as part of a team on a Java-based network discovery tool. Concentrated on database portion of the project, making use of Object Design's PSE Pro. Project technologies included JFC, RMI, Java Beans and native loading of C++ libraries via JNI.

Sought out and evaluated emerging internet technologies, primarily Java and HTML. Example technologies include Marimba's Castanet & Bongo, Object Design PSE, ObjectSpace's Voyager, JavaSoft's Java Server, JFC and Java Beans. Was a resource to various groups regarding Java and HTML technologies. Responsible for dissemination of technology information throughout the corporation. Worked as part of a team on "proof of concept" Java projects, primarily in the network management domain.

Set up a corporate web site known as the Java Resource Center onWindows NT. Required knowledge in HTML, C++, CGI, ODBC/SQL and Java. Designed and oversaw the site which was the corporate resource for Java programming and re-usability information. Developed and promoted Java programming practices, such as coding standards.

Designed and implemented an event-driven, C++ API to the VNS product. Added an object-oriented database, Object Store, to a VNS sub-system. Set up team web server on NT.

Managed a team of six engineers. Maintained and improved an event-driven, client-server C++ programming interface for Spectrum. Evaluated object-oriented designs and inspected system code. Led a team in implementing a database migration project that was vital for customers upgrading their software. Researched internationalization of the product and produced a "proof of concept" prototype. Chaired a board of eight engineers tasked to specify the C++ coding standards for the Spectrum engineering team. Contributed as part of the team to define and implement code inspection process.

Responsible for designing and implementing the database sub-system for Spectrum using C++/Unix. Designed and implemented event and alarm sub-systems. Designed and maintained various database tools intended for system administrators of the product. Contributed as part of the team implementing the installation sub-system.

General Electric: Metering Division 1987 to 1989
Software Contractor

Responsible for designing and implementing data acquisition sub-system of electrical metering product. Worked on a graphical sub-system that displayed processed data in the form of pie charts and graphs. The system was designed using object-oriented techniques. Designed and implemented installation sub-system. Required understanding and implementing customer supplied requirements. Wrote technical documentation which included a tutorial on use of the system.

Education

Bachelor of Science in Computer Science/Computer Electronics with a minor in Management from Keene State College, 1987

Certifications

  • Sun Certified Java Programmer
  • MongoDB for Java Developers (audited)
  • MongoDB for DBAs and MongoDB Advanced Deployment and Operations (audited)