We provide IT Staff Augmentation Services!

Senior Software Developer Resume

3.00/5 (Submit Your Rating)

Chicago, IL

SUMMARY

  • Chicago based Senior Software Architect and Developer with over 28 years developing leading edge software. Focusing primarily on JVM languages (Java, Groovy, Scala) and server - side JavaScript with Node.js.
  • Expert in developing highly distributed systems and heavily multi-threaded/concurrent applications. Skilled in functional decomposition and writing understandable, testable, reusable code.
  • Experienced with both large and small teams working as team-member, team lead, or mentor. Loves “whiteboarding” with others.

TECHNICAL SKILLS

Languages: Java, Groovy, JavaScript, Scala, C++, SQL, Python

Operating Systems/Environments: Mac OS X, Linux, Windows

Databases: Oracle, SQL Server, MongoDB, MySQL

Frameworks/APIs: D3.js, AngularJs, Grails, Swing, Spring (Boot, Data, MVC, Batch), Hibernate, Ibatis/Mybatis, SOLR, Drools

Application Servers: NodeJS, gServ, Play Framework, Apache Tomcat, JBoss

Testing: Spock Framework, Junit, Selenium, Geb, Jasmine, Nightwatch.js

Tools: Eclipse, WebStorm, Yeoman, Grunt, Bower, IntelliJ Idea, Bamboo, Hudson/Jenkins, Enterprise Architect, Gradle, Maven, Ant, Git, Mercurial

Other: Functional Programming, Docker, TCP/IP, REST, SCRUM, Concurrency

PROFESSIONAL EXPERIENCE

Confidential, Chicago, IL

Senior Software Developer

  • Created customer-facing REST-based services using gServ and Spring Boot. Implemented Swagger for Spring Boot services. Used MongoDB, Cassandra and Oracle for storage. Apps written in Groovy, Java and JavaScript (Node JS). Worked with other developers to create microservices architecture prototype which centralized configuration, discovery and log file management. Replaced monolithic application features with micro-services and client-side templating.
  • Created an application that initializes, configures, and acquires data from proprietary IP based devices at various sites.
  • Created sales data processing system using Groovy and Spring Data Mongo. Data was parsed and written to MongoDB. Used Aggregation Pipeline to ‘rollup’ data for hourly/daily/monthly reports. Stored file in an Amazon S3 bucket prior to processing. Processor also handles retries and determines which requests can be retried. Assisted with development of video processing system written in Scala with Akka using OpenCV.
  • Introduced various concepts to the team including: Fault Tolerance, Promises, and Pure Functions.

Confidential, Chicago, IL

Senior Software Engineer

Worked to improve code-base that had become unmanageable containing modules written in C#, Java, and Ruby. Added user-requested features. Introduced Node.js platform to team for use in DevOps support applications. Re-factored many modules reducing the code size by an average of 30%. Created customer-facing REST based services in C# and Java using ServiceStack and Jersey respectively. Created a queue processor in Java to read requests sent to an Amazon SQS queue, transform the request for the service and send request to service. Processor also handles retries and determines which requests can be retried. Also, converted Ant projects to Maven and maintained TeamCity Continuous Integration build scripts.

Confidential, Chicago, IL

Senior Software Engineer

  • Introduced better log file analysis by creating a Log4j Appender that writes to MongoDb. This appender was written in Groovy using GMongo Library to access MongoDB.
  • Created web app management system using Groovy. This is a console application and is based on a legacy Tcl program. This application manages all web server instances as well as the services and applications that run on those servers. Functionality includes: installing WASCE or Geronimo, install necessary scripts, deploying instances based on predefined templates, deploying apps to server instances, start/restart instances and add services to instances. All artifacts for deployment are located in an enterprise Nexxus/Maven repository. Used maven library to retrieve all deployable artifacts from repository. Implemented framework for console based JVM apps. Groovy CliBuilder was used to validate/parse the command-line arguments. Created progress indicator for long running tasks. Multiple hosts may be configured sequentially or in parallel. Bash remote commands were used to issue commands to the target hosts.

Confidential, Chicago, IL

Senior Software Developer and Mentor

Added new features to an existing GWT 1.7 based E-Commerce Application. Written entirely in Java using Hibernate and the Spring Framework Application communicates with inventory and invoicing systems via JMS/ActiveMQ. Environment utilized the Scrum methodology. Also, mentored junior developer through pair-programming.

Confidential, Chicago, IL

Software Designer and Developer

  • Performed various upgrades of a legacy J2EE Web Application written primarily in Java and Groovy.
  • Created month-end processing module written in Groovy using Spring Batch.
  • Implemented new search module based on SOLR/Lucene. Created fork/join pools using GPars to index fixed-size datasets from the database in parallel. Used the Jersey Framework and Groovy to create a REST application for use directly by our UI which consists of Dojo widgets. Used Dojo EnhancedGrid as primary UI element. The UI also includes facet boxes to display the facets for the most recent search.
  • Worked on a POC for Drools implementation of a Rating Engine and POC for using Scala concurrency for Earnings module.
  • Lastly, created a Feature Configuration module to manage features configured by certain clients.

Environment: Java 1.6, Groovy 1.8, SOLR, Lucene, Scala 2.8, Spock Testing Framework with JUnit

Confidential, Chicago, IL

Chief Architect / Lead Developer

  • Creating applications for mobile devices. Mobile applications written using Java ME CDC and the CrEme JVM

Environment: Java/J2EE, JAX-B, AJAX, Struts 2, Hibernate, Spring, WebSphere, MS SQL 2000, Oracle, LDAP, stored procedures

Confidential, Chicago, IL

Software Designer and Developer

  • Designed and implemented calculation modules for the Rate Calculation Engine which was responsible for calculating insurance premiums and rates. The system consists was written entirely in Java/J2EE and consists of two parts: a Web App and a Web Service. My main focus was the development of the web service called The Rate Calculation Engine (RCE) which was divided into modules - each module was an implementation of an actuarial formula or set of such formulae. The RCE was sensitive to date of calculation as well as other criteria so Spring was used to select and instantiate the proper modules based on request details. The request also carried overridden values that are set by the user and not calculated but are use in subsequent calculations. JAX-B was used to manage and create business classes based on XSD definitions and to create enumerations. Hibernate was also used to access Oracle and MS SQL databases. We read factors from a SQL Server Database using the calculation date and other criteria. These resulting values were used in the RCE.
  • Also, implemented status pages using AJAX/Javascript to check the progress of background processing (mainly loading data from the mainframe) and to immediately update the screen to reflect the change if any. Authentication was run against an LDAP server (NDS) using JNDI to verify user credentials.

Environment: Java/J2EE, JAX-B, AJAX, Struts 2, Hibernate, Spring, WebSphere, MS SQL 2000, Oracle, LDAP, stored procedures

Confidential, Chicago, IL

Applications Architect

  • Responsible for design of liquidity management system based around the Confidential Streaming Platform. Also responsible for defining the current and future architecture. The application is a real-time analytical system - highly distributed across many nodes and handles the complex processing of high volumes of data - up to 1000 messages per minute. Most nodes communicate via Websphere MQ and adapters -other tightly coupled nodes used XML RPC, or sockets to communicate via a proprietary protocol. The application was modeled as transactions (state-machines) processed by a series of processing pipelines where changes in transaction state may cause transactions to be processed by different pipelines. State/Processing definitions are defined by an in-house workflow mechanism.
  • Personal responsibilities included:
  • Redesigned automated payment module to add functionality and to increase throughput.
  • Application included the following:
  • Replacing per-event full table scans and polling with continuous queries via Confidential publish/subscribe API. Introducing additional states to facilitate an alternate processing order. Allowing for user scripting in Python via Jython.
  • Rewrote the liquidity assessment program which evaluates a financial institution’s liquidity with respect to the activity on their accounts. This program builds in-memory tables to keep track of account liquidity and uses a mutex per table to lock them for updates from the data source. Authentication for installation done via client's Naming Server using the LDAP interface. Module was written in C++. It uses sockets to receive and respond to requests and runs on Linux and Solaris.
  • Designed and implemented a financial message testing tool. This tool was written in Java using FreeMarker and the IBM Websphere MQ SDK. This application acted as a stub for external systems which were not actually available for testing. Based on the specification, the application sends and responds to messages such as SWIFT, FIX and T2. The responses are configurable via FreeMarker template. Program dynamically loads message handling components so that it would be extensible without code modification.
  • Designed and maintained application written in Java using Spring JMS to handle messages. The program handled closing and end -of-day balances from institution branches and was responsible for setting opening balances for the next day. Updated authentication process from cleartext to encrypted passwords and RSA keys. Some encryption done using the Bouncy Castle encryption library.

Environment: Java/J2EE, WebSphere MQ, JNDI, financial messaging (SWIFT, FIX, T2, etc.), Python/Jython, Eclipse, Java 5, gnu c++, Visual C++ 2005, Enterprise Architect, Ant, SVN

Confidential, Chicago, IL

Software Designer and Developer

  • Added additional functionality to existing high-visibility application. Functionality included the redesign of the data access layer, redesign of the data model and the addition of new screens including a drag-n-drop based contract creation screen. This application was written entirely in Java and was web-based running on Websphere using the Struts framework. Implemented the Data Access Object pattern, using Hibernate, as the data access layer to access Oracle and MS SQL databases. Also, used Novell's Directory Services, via LDAP, for authentication and authorization. JSP along with servlets were used as the UI Layer. The Struts Validation framework was used for form validation.
  • Implemented a drag-n-drop based editor using DHTML(JavaScript, DOM, CSS) with AJAX. Ajax was used to update the screen in response to drag/drop events. Applied proprietary processing rules to determine where items were to be placed on the screen and which items could be dragged. The business layer as created using the Business Objects pattern. The business objects were responsible for the application functionality including rules processing.

Environment: Java/J2EE, JAX-B, JNDI, AJAX, Struts 2, Hibernate, Spring, WebSphere, MS SQL 2000, Oracle, LDAP, stored procedures

Confidential, Schaumburg, IL

Quality Tools Consultant

Implemented tools which assist in assessing quality metrics. Based on the CMM work at Carnegie Mellon. Implemented Common Error Tracking Tool for tracking errors that may common across projects and a Continuous Organizational Improvement Tracking tool for tracking ideas which may lead to development projects. All tools written in ASP and JavaScript and are for in-house use only. Source control and defect tracking done with ClearCase and ClearQuest, respectively.

Confidential, Warrenville, IL

Java Developer/Integrator

Implemented major release of truck maintenance software. This multi-tiered system consists of: (1) VB 6 client portion communicating, (2) Java Servlet running on Tomcat 5, (3) RMI Server and (4) Mainframe. VB Client communicates via XML over HTTP, with Servlet. Servlet communicates via RMI to RMI Server. Servlet communicates via JMS/WebSphere MQ with Mainframe. Initially implemented MDBs to process requests. Later, due to MQ issues, designed and implemented JMS/MQ subsystem with fault-tolerance and fail-over. Used multi-threading to handle asynchronous communication. Designed and implemented logging subsystem in VB and in Java for real-time transaction reporting. Developed test plans and use cases for testing. Also implemented Web Service in Java using WASP for Java and C#.NET Web Service client for proof of concept project. All modeling done in UML via Poseidon.

Environment: Java 1.4.2, Tomcat, Visual Basic 6, WASP Server for Java, DotNET 1.1, JMS, and WebSphere MQ

Confidential, Chicago, IL

Chief Architect / Lead Developer

  • Designed and developed web-based Inventory and User Management System. The system is built on the MS.Net 1.1 Architecture. Created various Custom Controls for authentication as well as displaying product and user information. All classes and scripting is written in C#. Used MyOdbc driver to access MySQL database via ODBC.
  • System allows the merchant to add/update products, add/update customer information, manage newsletters, stream announcements and collect customer feedback about news letters or products. System is integrated with PayPal’s shopping cart software and allows online purchases via PayPal.

Confidential, Chicago, IL

Senior Developer/Mentor

Confidential

Team Leader

  • Designed service-based web site for job recruitment and job searching.

Confidential

Technical Lead/OO Mentor

  • Mentored customer development team in Object Oriented Design techniques including
  • bject modeling and design in a J2EE environment. Taught various process concepts of Rational Unified Process, SCRUM, and eXtreme Programming as well as applicability of each. Also, taught various design patterns and their uses.

Confidential, Chicago, IL

Chief Architect / Lead Developer

  • Designed and developed Java Framework (SWAN) for implementing Bean Managed Persistence Entity EJBs.
  • Created an abstract Java Bean (SqlRow) that can be extended to provide persistence, validation and search capabilities to EJBs. SqlRow is responsible for creating the SQL required for persistence. SqlRow uses JAXP/DOM to create XML documents from its properties.
  • Created an Object to Relational Mapping System to allow a Bean to Inherit Properties of another Bean at the Persistent Store level.
  • Developed a generic Collection class (SqlRowList) that allows sorting and searching of EJBs. SqlRowList also provides interfaces such as TableModel, TreeModel, and ListModel so that EJBs can automatically be plugged into Swing GUI Components.
  • Also, created generic Lookup Table and Bean Cache objects for use with frequently used beans.
  • Tested use of MySQL, Access and Oracle.

Confidential, Chicago, IL

Java Development Manager

  • 1) Developed a functionally limited Auction Engine Prototype in Visual C++ using ISAPI and .ASP.
  • 2) Managed the construction of a real-time on-line Auction Engine. Designed and directed the implementation of an Auction Engine similar to EBay for use on the Internet. The team consisted of 3 developers.
  • Engine was designed and modeled using UML and written entirely in Java. Implemented various business objects such as Auction, Offering, and Bid and features such as Automatic Bidding and Auction Event Email Notification.
  • Implemented daily activity archiving using XML via DOM.
  • Designed and helped implement a Swing application for Auction Administration.
  • Implemented password security using Java Cryptography Extensions.
  • Assisted in the creation of test plans from use-cases.
  • Used MySQL Database for testing and Oracle 8 for production.

Confidential, Chicago, IL

Object Modeling/Design/Implementation Consultant

  • Maintained and enhanced Java/Swing based trade analysis application. Redesigned business data model to better integrate with KL Group’s HiGrid Component and the EJB Specification.
  • Wrote wrappers for the HiGrid components specific to business needs. These components were modeled using the Model-View-Controller pattern.
  • Created an EJB layer using the Sun Reference Implementation to implement the business logic.
  • Designed and integrated an XML based user preferences component to allow users to customize their view of the data.
  • Maintained TIBCO Rendezvous message handlers that respond to the lending and borrowing of stocks. Encapsulated them into a message-driven bean.

Environment: Java 1.3, J2EE, Xerces Parser Database Sybase IDE Borland JBuilder 3.5 Editor Visual Slick Edit Debugger Bug Seeker.

We'd love your feedback!