Solution Architect & Senior Software Engineer Agile Resume
Atlanta, GA
PROFESSIONAL PROFILE:
A talented software architect, object - oriented designer, senior full-stack software engineer, user interaction designer, team lead, and mentor, with diverse experience in requirements, analysis, design, implementation, delivery, and support, gained in a multitude of vertical markets. A highly motivated self-starter, offering the ability to meet tight deadlines while maintaining top quality. Eager and highly motivated to master new technologies and gain new skills.
AREAS OF EXPERTISE
Languages: Java, JavaScript, TypeScript, SQL, C/C++, Python, UML
Process: Agile, Stakeholder Collaboration, Sprint, Scrum, Kanban, Spiral Development, Design-First Approach, Code-First Approach, API-First Approach, Cross-Team Collaboration, Proof-of-Concept, Prototyping, Risk Management, Rapid Application Development, Rational Unified Process
Analysis and Specification: Behavior: Functional Requirements with Use-Cases, User Stories, or Scenarios Quality Attributes: Non-Functional Requirements and System Constraints
Software Development: Software Architecture, SOLID Object-Oriented Design, Design Patterns, Test-Driven Clean Code, Automated: Build, Test, Integration, and Frequent Behavior-Driven Delivery of a Stable Working System
Code, Review, Refactor, and Tune: Eclipse, Mylyn, WebStorm, Git, Bitbucket, Subversion, GitHub, Perforce, CVS, Yeoman, JavaDoc, ESDoc, JsDoc, ESLint, JSHint, PMD, FindBugs, Sonar, Crucible, JVM Toolset, VisualVM, JMeter, Profiling, JVM Garbage Collection
Build, Continuous Integration & Delivery: Maven, Nexus, Artifactory, Ant, NPM, Bower, Grunt, Gulp, Less, Sass, Bamboo, Jenkins, CruiseControl, GitLab, Docker, Webpack
Development Support, Collaboration, and Review: JIRA, Confluence, FishEye, VersionOne
Front-End: HTML5, CSS3, JSP, JSTL, Spring (MVC, Web-Security), Angular(JS), jQuery, Ajax, jQuery-UI, Bootstrap, JSF, RichFaces, Struts, GWT, Handlebars, D3, Section 508, Google-Maps, Normalize.css, Modernizr.js, html5-boilerplate, Font-Awesome, GlyphIcons
Server-Side: SOA, REST, JSON, JAX-RS, Web Services, SOAP, WSDL, JAX-WS, XML, XSD, XPath, XSL, XSLT, JAXB, Apache Axis, NodeJS, Express, nconf, Winston, Helmet, Nunjucks, Socket.io, Morgan, Apigee, Open API/Swagger, JBoss RESTEasy, Jackson, GSON, JEE (EJB, JMS, JMX, JNDI), Spring (AOP, Boot, IoC, Microservices, REST, Security, JMS), FreeMarker, CDI, Bean-Validation, JavaMail, CORBA
Back-End: Oracle, MySQL (and MariaDB), MongoDB, PostgreSQL, SQL Server, DB2, Apache Cassandra, Teradata, Sybase, JDBC, JTA, JPA, Hibernate, MyBatis, Ehcache, Mongoose, Sequelize, Spring (JDBC, JPA, Transaction-Management), SQL Query Optimization
Test: JUnit, DbUnit, TestNG, SoapUI, Selenium, Spring-Test, Arquillian, Mockito, EasyMock, jMock, Cucumber, Gherkin, Karma, Sinon, Mocha, Chai, Istanbul, Jasmine, FitNesse, Targeted Debugging and Root Cause Analysis
Platform: JVM, J2EE/JEE, JBoss, Tomcat, WebSphere, WebLogic, NodeJS / V8, AWS, WebSphere-MQ, MQ-Series, Linux, Solaris, AIX, HP-UX, Windows
PROFESSIONAL EXPERIENCE:
Solution Architect & Senior Software Engineer Agile
Confidential, Atlanta, GA
Responsibilities:
- Architect, design, implement, and deliver a core business functionality API:
- Establish an API-First approach using: Apigee and Swagger to define and manage the API, implement the corresponding REST endpoints with: NodeJS, ES6, Express with HelmetJS security, and adopt a 12 Factor App microservices approach to partition and streamline DevOps service delivery. MongoDB is the primary data store, Mongoose and Sequelize provide data mapping and persistent data access, Nconf handles all service configuration settings, Winston and Morgan furnish asynchronous and low latency logging facilities, the Nunjucks engine provides high-performance JavaScript template processing, and the deployment encompasses Amazon Web Services (AWS) as well as internal data center hosting.
- Architect, design, implement, and deliver a web-based API access, control, and management dashboard:
- Java, Spring (AOP, IoC, JMS, Spring-Boot, Spring-MVC, and Spring-Security), Java Portlets (JSR-286), Angular4, HTML5, CSS3, JavaScript, Modernizr, jQuery, Bootstrap, and jQuery-UI.
- Implement core Java domain objects using: Apache Commons Collections and Apache Commons Lang.
The DevOps stack includes: Git, NPM, Yeoman, Maven, Nexus, Sublime-Text, WebStorm, ESDoc, ESLint, PMD, Postman, Karma, Sinon, Mocha, Chai, Istanbul, Webpack, Sentry.io, Eclipse, Spring Tool Suite, Sass, JavaDoc, JUnit, DBUnit, Mockito, Bower, JSDoc, JSHint, Jasmine, Docker, Docker-Compose, Jenkins, JIRA, and Confluence.
Senior Software Development Engineer Agile
Confidential, MD
Responsibilities:
- Create REST services that deliver JSON, both internal foundation services and those for external consumption.
- Consume external system services, which primarily deliver XML over SOAP, and span a variety of delivery model architectures: Enterprise Application Integration (EAI), Software as a Service (SaaS), Enterprise Message Bus (ESB), and Request-Reply Messages.
- Map data elements using XPath and XQuery.
- Publish APIs in Apigee.
- Implement event stream oriented log output, format log entries for consumption by Splunk, and roll log output events up into a near real-time service status dashboard.
- Lead adoption of a more mature software development approach in order to consistently produce high quality, enterprise class services:
- Introduce software architecture: stakeholder elaboration of quality attributes, the 4+1 View Model and its focus on stakeholder concerns, and architectural review as a precursor to detailed design.
- In corporate software architecture, design, and related UML diagrams as standard phases and deliverables in the software development lifecycle.
- Review the existing catalog of APIs, identify and quantify numerous inconsistencies, and introduce API standards and practices designed to produce consistent and cohesive APIs.
- Complete a detailed review of sprint handling, identify a number of routinely assigned tasks that are not represented within sprints, and adjust sprint planning and sprint tracking to fully represent the work performed.
- Represent the SOA team on an integration platform migration task force, which ushered retirement of the existing TIBCO EMS integration backbone, and championed the adoption of a new Mulesoft ESB integration backbone.
Senior JavaScript Software Engineer Agile
Confidential, McLean, VA
Responsibilities:
- Create the JavaScript Constants module that standardizes commonly used values and provides generic functions that allow values to be added to any target object as properties (character constants, word constants, numeric constants, binary bitmask values, parameter validation error messages).
- Create the JavaScript ConstructionUtils module that provides: object construction constants, a set of object descriptor creation functions that covers standard descriptor attributes (Configurable, Enumerable, Writable, and Value), a DescriptorDecorator constructor that adds application-specific handling to standard object descriptors, functions to define object properties, functions to traverse simple property names (single-entry property name) and complex property names (multiple-entry, dot-separated property names), functions to perform multiple levels of prototype extension inheritance, functions to perform object mix-in inheritance (include single-reference and multiple-reference mix-ins), and functions that provide a work-around for the absence of constructor.name property support in IE browsers.
- Create the JavaScript ObjectUtils module that provides: object property and parameter handling constants, a Property constructor that simplifies property definition, a property builder facility that allows inline fluent-style property definition, a set of functions that perform property-related actions on PropertyHolder objects, a set of .toString support functions, similar to the Java capabilities provided by the Apache Commons Lang3 ToStringBuilder, a set of custom errors, arranged into an inheritance hierarchy, that includes: RuntimeError, IllegalParameterError, InvalidReferenceError, and that includes standardized stack-trace and error message generation that functions correctly across all browsers, defines a Validator object, along with a set of supporting functions, that performs input parameter validation, including type verification across many JavaScript built-in types (Array, Boolean, Date, Error, Function, Number, Object, String), detailed object descriptor validation, functions to perform Enumerable property validation, object-key property validation, owned property validation, and prototype-chain property validation, functions that perform undefined and null reference checks, empty String checks (undefined, null, or length of zero), blank String checks (undefined, null, length of zero, or whitespace-only), defines an ArguableContext constructor, along with supporting functions, that automates the handling and validation related to passing an inline object-literal to constructor functions, and a set of functions that supports the definition and validation of properties organized into groups.
- Create the JavaScript AssetUtils module that provides: a standardized set of website asset types, defines a set of related constants, a set of functions that perform asset type lookup by file extension(s), a set of functions that perform asset type lookup by mime type(s), and a set of functions that perform display value conversions for asset types that have been organized into pre-defined categories.
- Create the JavaScript ContentUtils module that provides: web content related constants, functions that standardize and simplify content-generation and html tag construction, a Contractual object that allows for the definition of: constraints, invariants, preconditions, and postconditions, a set of constructors and supporting functions that focus on Handlebars template usage, functions that standardize and simplify Handlebars boolean condition handling, definition of Handlebars helper functions, definition of Handlebars block helpers, that defines a TemplateController object, which performs up-front Handlebars template compilation and compiled template caching, a set of decorator constructors and supporting functions that standardize and simplify using input parameters as Handlebar template context values, and defines constructors and functions that allow Handlebars templates to fit into a simple workflow facility.
- Create the JavaScript SearchUtils module that provides: a set of search related constants and a set of object constructors and supporting functions that standardize and simplify integration with the Google Search Appliance (GSA).
- Create the SearchResults AEM component, which provides standard handling of search results that are returned by the GSA and includes JavaScript coding, jQuery coding, Handlebars templates, helper functions, and a Handlebars block-helper function, Apache Sling scripting, HTML5 content generation, CSS3 style rule usage, Bootstrap component usage, and Java coding.
- Review the Java codebase, correct defects, and perform code cleanup throughout: identify and correct Section 508 violations, remove unused imports, remove unused members, remove unused local variables within functions, refactor code to add type-specific collection access, refactor code to correct unsafe type casts, refactor numerous String literal and numeric literal values to constant values, add many .toString implementations, and update method signatures to mark input parameters final throughout.
- The work improves the quality of the code, provides the ability to perform more detailed debug logging, and greatly reduces the volume of compiler warning messages across the project.
- Perform a detailed review of the Appraiser Unique Identifier Developer Guide that includes all document content and Java coding examples. The review identifies: spelling errors, grammar errors, punctuation errors, capitalization errors, document structure inconsistencies, document formatting inconsistencies, errors in Java coding examples, and Java code formatting issues.
Senior Full-Stack Software Engineer Agile
Confidential, Towson, MD
Responsibilities:
- Navigate the VersionOne Agile Development Lifecycle Management (ADLM) platform to review user story feature descriptions, develop and deliver new features, and include new JUnit test cases that run during automated continuous integration.
- Navigate VersionOne and JIRA to identify issues with a high level of schedule delay risk, that require follow-up research or detailed root cause analysis: issues classified as potential but unconfirmed problems, issues that behave inconsistently, issues that produce inconsistent results, issues that occur Intermittently, or issues that are impossible to reproduce.
- Navigate VersionOne and JIRA to identify vaguely defined issues, review related requirements, compare and contrast similar function points, clarify requirements as needed, and either: certify correct, consistent functional behavior and mark the issue resolved or create a new functional defect and provide a detailed issue description.
- Troubleshoot functional defects across all layers of the technology stack (including: CSS3, DOM, HTML, JavaScript, Section 508 compliance, jQuery, Java, Spring-Core, Spring-MVC, and SQL for Oracle and Teradata databases), inspect the underlying code, perform root-cause analysis, implement code correction(s), add supporting JUnit test cases, run unit testing, and debug as needed.
- Refactor to maintain or improve code quality, review all changes with other senior team members, and complete any suggested code improvements.
- Note unexpected and inconsistent build processing, review the Maven POM, uncover several Maven plugins incorrectly declared as dependencies, analyze the resulting Maven dependency model, catalog JAR secondary dependency problems that cause major dependency problems, and provide POM corrections to resolve the issues.
Senior Software Engineer Agile
Confidential, San Francisco, CA
Responsibilities:
- Develop a web-based portal for healthcare participants / recipients, healthcare management organizations, and primary care physicians:
- The system architecture is based on: Java, JEE, the Java Expression Language, JavaMail, Java Validation, WebLogic AS, and includes general usage of: Apache Commons Lang3, Apache Commons Logging, Jackson, and Spring.
- Development employs: Maven, Git, JUnit, DbUnit, Derby, and Spring-Test for automated testing.
- The presentation layer technology stack is based on: HTML5, CSS3, JavaScript, JSP, JSTL, Java Portlets 2.0 (JSR-286), and leverages: Spring-MVC, Spring-Web-Security, GWT, jQuery, Bootstrap, jQuery-UI, jQuery Data Tables, jQuery Mask, jQuery Validate, Modernizr.js, Normalize.css, Font-Awesome, and GlyphIcons Halflings.
- The application layer technology stack includes: Spring and Spring-Security.
- The persistence layer technology stack is based on: JDBC, JPA, MariaDB, and includes: Apache Commons DBCP, Hibernate, Spring-Data, Spring-Data-JPA, and Spring-JDBC.
UI/UX Designer & Senior Software Engineer Agile
Confidential, Timonium, MD
Responsibilities:
- Participate in daily scrum meetings or conference calls as a senior member of the agile team.
- Design and create: the project-level Maven POM and an Ant-Maven adapter script that allows the project to be Maven-based while also supporting integration into standard corporate build activity via Bamboo and Ant.
- Learn the Apache Wicket framework from scratch and apply Wicket to create the Section 508 compliant web interface of the Reporting Self-Service application.
- Select jQuery as the primary JavaScript framework for the project and Bootstrap as the primary CSS component and secondary JavaScript library for the project. Select supporting jQuery and Bootstrap plugin components that satisfy specific project needs and detailed user interface scenarios.
- Design and build the presentation layer: all HTML-based Wicket components, CSS stylesheets, Section 508 compliant content, and a core JavaScript library which defines: a closure based namespace, standard data transfer components, and which standardizes the integration and usage of jQuery, Bootstrap, and related plugins.
- Design and build the application layer: all Java-based Wicket components, a custom set of form submission validation components that provides an adapter layer between the Wicket Validation Framework and Bootstrap, jQuery, and project-specific components (using the GoF Adapter Design Pattern), a façade layer between the Wicket Java components and all supporting service layer components (using the GoF Façade Design Pattern), user interface Java domain objects, and Java-based command components (using the GoF Command Design Pattern).
- Perform extensive unit testing, provide primary AWS WebLogic AS hot-deployment to support high-frequency continuous integration testing, and complete root cause analysis and defect correction.
Senior Software Engineer & Solution Architect Agile
Confidential, Annapolis, MD
Responsibilities:
- Redesign and implement a new version of the WorldCue World Map, a Google Maps based JavaScript application that displays: airports, client-owned assets, embassies, employee locations (home, long-term assignment, work), hospitals, travelers (by current itinerary or date-based trip history), alerts (informational, warning, critical), security assessment ratings by category (civil unrest, crime, geopolitical, kidnapping, security, terrorism) or by political designation (region, country, city). The implementation incorporates: Java, JavaScript, JSP, JSTL, Ajax, jQuery, JSON, KML, Oracle, and is continuously integrated using: Maven, Nexus, and Subversion. The new design establishes a clear separations between: client side display, Ajax based data transmission, server-side content generation, back-end data retrieval, and adds multiple options for deployment, including production environment hot deployment, which set a new minimum time-to-deploy benchmark for Confidential applications.
- Implement iJET’s Critical Trac Mobile API, pioneer RESTful endpoint microservice delivery, and establish the first mobile device (Android, Blackberry, iPhone) access to cornerstone business processes and data, security services, configuration services, user profile services, user travel plan services, intelligence services, and user status services. The implementation is anchored on: EJB, Java, JavaBeans, JAXB, JAX-RS, JPA, JSP, Servlets, and incorporates: geocoding, reverse geocoding, JSON and XML data transfer, Oracle RDBMS, MongoDB, and is continuously integrated using: Maven, Nexus, and Subversion. REST endpoints are defined using: JBoss RESTEasy, Jersey, and NodeJS with the Express framework.
- Re-architect, redesign, refactor, and tune the Critical Contact subsystem, which performs one-way and request-reply asynchronous messaging over multiple protocols (SMTP, POP3, SMS), using multiple content types (email, text message, voice, electronic reader message delivery), incorporates the ability to send response-requested messages to one or more recipients, accommodating one or more questions, and optional response value restriction (numeric, multiple choice, ad-hoc text, etc.). The implementation leverages: Java and JEE on the server-side, an Apache Cassandra back-end data store, performs data interchange using JSON and XML, and the front-end incorporates JavaScript, jQuery, Java Portlets 2.0 (JSR-286), uses GWT to provide a dynamic, responsive, interactive user interface, and includes Apache FreeMarker template processing.
- Capitalize on the opportunity to perform in-depth Critical Contact performance testing, quantify performance metrics, identify and verify the existence of grave performance shortcomings under load, and elevate performance optimization to the Priority-1 level. Test, tabulate, and troubleshoot the subsystem, to forge a deeper understanding of garbage collection activity. Pilot a JVM tuning effort, achieve incremental improvements, and master JVM tuning in order to meet strict non-functional latency and throughput requirements. JVM tuning delved into: ParNew eden generation, Concurrent Mark & Sweep old generation, thread task optimization, G1 comparison testing, and also included Linux memory and I/O handling adjustments.
Solution Architect
Confidential, Woodlawn, MD
Responsibilities:
- Design a new business process to: acquire CMS nursing home facility data, provide a way for nursing home facility staff to register with the system, and provide flexibility that allows nursing home staff to report staffing data easily and correctly. The additional staffing data will be used to perform more detailed nursing home quality measures analysis and provide more accurate ratings on the CMS Nursing Home Compare website.
- Lead business process modeling and requirements gathering sessions with key CMS stakeholders, create a system business process model, and write the system Requirements Document.
- Meet with nursing home staff to: explain the draft staffing data gathering business process, gather technical requirements, assess the technical capabilities of nursing home facilities, and answer technical questions.
- Architect and design a CMS hosted JEE web application that allows nursing home facilities to perform payroll-based nursing home staffing data submission. The design incorporates: Section 508 compliance, a multi-tiered layered architecture that utilizes the Struts framework, Servlets, JSP, and JavaScript input validation in the Presentation Layer, Java domain objects, EJBs, JMS queues, and WebSphere MQ infrastructure in the Application Layer, and JEE data sources, XML encoded data payloads, and an Oracle RDBMS in the Data Layer.
- Architect and design an initial proof-of-concept implementation using open source tools and hosted outside of CMS on WebLogic AS that allows a small group of CMS selected nursing home facilities to: register with the system, submit preliminary staffing data, provide feedback, submit suggestions, and to request support or ask questions.
- Write the System Design Document and Interface Control Document to define a detailed design of the system and establish a standard data integration exchange process.
Application Architect & Lead Software Engineer
Confidential, Atlanta, GA
Responsibilities:
- Architect an internal JEE web application that provides mortgage evaluation tools to internal staff, including: mortgage default analysis calculations and projections, mortgage pool risk analysis, and supporting graphing and trend projection tools.
- Lead the development effort, provide architecture oversight, perform design reviews, and deliver a project goal overview to a five-member development team.
- Create all general domain objects and business domain objects in Java, along with supporting EJB session bean interfaces that support the use cases associated with the domain objects.
- Complete code reviews, team design sessions, and assist developers throughout the project.
- Serve as lead developer on a second project, based in Virginia, focused on multiple fast-turnaround JEE design solutions, which includes multiple fast-turnaround coding efforts.
- Architect, design, and create a Java multi-threaded batch-processing application that correlates a large volume of email data in order to identify individuals and organizations that are active in, or interested in, a specific topic area.
- The first processing phase performs data staging: incoming email data is validated and scrubbed using the Java Regular Expression package, serialized to XML, transformed into relational model form using Hibernate, and persisted in an Oracle database.
- The second phase of processing uses the open source Compass platform/server (which runs Lucene internally and has subsequently become ElasticSearch) to map, index, and sub-index email data: subject line, message body (reduced to a set of topics), sender address, and recipient addresses. The final phase of high-throughput low-latency processing dynamically constructs thread-safe queues, loads data to in-memory structures, and concurrently generates and sends follow-up emails (meeting strict non-functional performance constraints).
- Design and implement several stateless web services to allow improved application integration across multiple application systems, running on WebLogic AS, that support a common business process.
Solution Architect & Lead Software Engineer
Confidential, Ellicott City, MD
Responsibilities:
- Design and supervise the installation of a streamlined internal version of the CMS 3-Zone hosting environment to support CMS JEE application development.
- Provide training and support for a mainframe development team as they make the transition to Java, JEE, and object-oriented software development.
- Architect a solution to migrate the existing CMS Automated Plan Payment Systems (APPS) from the M204 mainframe platform to a standard CMS 3-Zone Architecture application, establish Section 508 development guidelines, specify the developer desktop configuration, and define the software development infrastructure (such as source code control) for the migration effort.
- Meet with various CMS stakeholders to: share preliminary information about the APPS migration project, confirm system compliance with CMS development and deployment standards, and ensure that all interested parties are comfortable with the proposed software architecture and design.
- Lead technical sessions with CMS stakeholders and present the migration project approach and architecture, including presentation of the architecture and design during the CMS Preliminary Design Review.
- Participate in day-to-day Java coding, taking ownership in key areas, to ensure adherence to the architecture and design, establish high quality code examples for development team reference, review and verify Section 508 compliance, track project progress, and proactively manage project risk.