Designed and implemented AWS-based solutions using a variety of technologies including Amazon EC2 Container Service, AWS Lambda, Elasticsearch, Kinesis and DynamoDB. Solutions coded in JVM-based languages, Python and Node JS. Integrations included Snowflake and Okta.
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. 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.
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.
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
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.
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.
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.
- Sun Certified Java Programmer
- MongoDB for Java Developers (audited)
- MongoDB for DBAs and MongoDB Advanced Deployment and Operations (audited)