- Extensive software development experience, 15 years Java development
- Broad experience designing and implementing distributed applications, including user interfaces, services and data modeling
- Varied industry experience including medical, finance, advertising, banking, telecom, aerospace, consulting, energy, GIS, R&D, subscription television and entertainment
- Passionate about software development
- Values customer needs and desires
- Broad experience which translates into quick understanding
- Values design consistency, proper separation of concerns, meaningful naming, and simplicity/clarity/intuitiveness of design
- Strong verbal and written communication skills, effectively addressing both technical and non - technical audiences
- Independent worker who takes initiative and is resourceful in solving problems
- Experience with requirements, design, development, reviews, documentation and testing
- Extensive experience with design patterns
- Skilled at refactoring
- Enjoys challenging problems that require ingenuity to solve
- Designs for reliability, maintainability, ability to monitor, extensibility, reusability, scalability, responsiveness, testability and user delight
- Thinks in terms of the big picture, making sure all areas get addressed
- Likes to consider how to make thing better and/or avoid repeating undesired outcomes
- Designs and codes quickly
- Raises “sanity check” questions when appropriate to confirm that the implications of the work requested are acceptable
- Team player, helping where needed
- Appreciative of others’ strengths
- Likes to answer questions
- Likes to mentor (if the opportunity arises)
- Likes to work through ideas with colleagues (loves good ideas regardless of their source)
- “Comes clean” when he’s wrong or has messed up
Technologies: Confluence, Git, IntelliJ IDEA, Jenkins, Java, Komodo, Linux, Maven, Postman, REST, Scrum, Spock, Spring Boot, SLF4J, Source Tree, Swagger
- Develops REST microservices using Spring Boot in support of Confidential ’s Instant Connect and Sameday Booking website features.
- Participates in Scrum ceremonies.
- Developed a tool for removing temporary test data.
Technologies: Docker, DockerHub, GDAL, Git, IntelliJ IDEA, Jenkins, Java, Linux, Log4j, Maven, Nginx, Postman, Rally, REST, Selenium, SLF4J, Source Tree, Spock, Spring Boot, SpringFox, Swagger
- Developed REST microservices using Spring Boot in support of Confidential (GIS), preparing it for sale on the AWS Marketplace.
- Wrote components for ingesting geographic map data from various formats.
- Researched how to install GDAL on our docker images (it involved building C++ libraries).
- Converted microservices to use Spring Boot, added global error handling, modified existing services to make them thread safe.
Technologies: Agile, Artifactory, BDD, Cucumber, ElectricFlow, Gherkin, Gira, Git, Groovy, IntelliJ IDEA, Jenkins, Jolokia, Java, JUnit, Linux, Log4j, Maven, Postman, Rally, REST, SLF4J, Source Tree, Spock, Spring Boot, SpringFox, Selenium, SLF4J, Splunk, Swagger
- Worked on a SCRUM team developing REST microservices using Spring Boot in support of a commercial SMS messaging api (to send text messages).
- Put together team’s Cucumber test framework for automated acceptance and integration tests. One of its characteristics was it assured complete restoration of any server settings temporarily changed during test execution via Jolokia.
- Helped set up automated and scheduled execution of test suites in lab environments via ElectricFlow.
- Wrote extensive unit tests using Spock. (We typically had very close to 100% test coverage.)
- Participated in grooming, sprint planning, code reviews and demos.
- In a three month timeframe, singlehandedly developed a web-based application for one of the research laboratories that allows scientists to upload and later retrieve research data.
- The app ingests spreadsheets and CSV files, parses them, archives them, and stores their data in an unstructured database (i.e. NoSQL).
- The data is then searchable on any field present in the data and/or any metadata entered by the user at the time of upload. Search results can be exported in spreadsheet form and originally ingested data files are also downloadable.
- The app is targeted for use within the government and academic research communities.
- Beyond development, addressed security audit findings, prepared documentation and assisted with test and production deployments.
- Participated in daily stand-up meetings and sprint planning.
Technologies: Agile, Cayenne, CloudBees, Confluence, Git, GitHub, Hazelcast, IntelliJ IDEA, Jenkins, Java, Jira, JMS, JUnit, Linux, Log4j, Maven, Mockito, Mule, ORM, PowerMock, Postgres/PostgeSQL, REST, Scrum, SOAP, Source Tree, Spring, SQL, Tomcat, XML, XSD, Unix, WSDL
- Worked on web services team modifying and expanding Comcast AdDelivery, an application used to distribute television and radio ads to media outlets.
- Helped redesign and implement the architecture to accommodate server clustering with fail-over. This involved disabling the ORM layer’s data caching, using Hazelcast to share any additional cached state between server nodes, and putting in place mechanisms to re-start abandoned workflow tasks.
- Mentored junior developers, participated in code reviews and provided training on “Writing Code for Confidential .” Our team’s collective code quality increased rapidly (including my own… we all benefitted).
- Helped introduce unit tests to the project.
- Conducted functional tests and troubleshot issues.
- Participated in Scrum team activities including stand ups, grooming, planning and customer demos.
- Provided content for the team’s wiki, including product release notes.
Technologies: Agile, CloudBees, Confluence, Java, Guice, Git, GWT, IntelliJ IDEA, Jenkins, Java, Jira, JUnit, JSON, Log4j, Maven, Mockito, ORM, PowerMock, Postgres/PostgeSQL, REST, Scrum, Spring, Spring Security, XML, Tomcat
- Worked on a team maintaining and enhancing software used to facilitate group collaboration exercises.
- Wrote code to integrate the product with SiteMinder single sign-on authentication using Spring Security. Required some tricky design to overcome inherent incompatibilitie s with the application’s existing authentication functionality.
- Worked bug tickets.
- Agile/Scrum team participation.
- Worked on a team maintaining and enhancing customer service web applications used by bankers and 24-hour call center personnel.
- Wrote user interface software using JSP, Struts, JSTL, Spring MVC, jQuery and Dojo.
- Revamped a large application to use CSS styling so it could support multiple branding.
- Agile/Scrum team participation.
- Responded to production support tickets.
- Wrote a utility for conducting sophisticated searches of application logs (including zipped archives) over multiple production servers, making it easier to research production issues.
- Wrote user interface software using Struts and SWT.
- Was the “owner” of a merchant website with 200,000 registered users, attending meetings, reviewing/approving requirements, providing LOEs, developing code, coordinating monthly deployments and providing production support.
- Interfaced regularly and closely with business owners to provide rapid turn-around on site enhancements to address business needs as well as defect repair.
- Cleaned up application logging to make failures easier to diagnose and added failure notification via e-mail.
- Expanded internationalization functionality.
- Made software changes to address PCI (Payment Card Industry) audit findings (a security audit).
- Created the team’s code review standards.
- Created an extensive wiki to document the team’s supported products, technologies and tools, development process, development environment setup, production support procedures, troubleshooting notes, and general administration topics.
- Worked on a large project to develop distributed software for the company’s call center and business operations.
- Wrote complex Ajax-enabled user interfaces using Oracle’s 11g ADF framework, an extension of Java Server Faces.
- Among other things, developed many of the application's very specialized Search pages. This included developing a flexible, extendable framework for executing searches of 80+ database tables, filtered on any combination of 100+ user selectable fields, using user selectable comparison operators (the inventory of which was configurable per field), and generating extremely complex SQL queries on-the-fly, including lengthy joins based upon the fields in the filter and the fields in the result set.
- Wrote code to create reports using JasperReports.
- Wrote use case and design documents, as well as coordinated efforts with QA and user experience personnel.
- Wrote UI tests using Selenium as well as code to seed test data.
Technologies: Ant, Axis, IntelliJ IDEA, Java, JDOM, JUnit, Log4j, Maven, SAX, SOAP, XML, XSD, XSL
- Developed software for processing incoming customer data from Dish’s business partners (e.g. AT&T and Sprint)
- Facilitated analysis and definition of business rules with business staff, documented them with flow charts and implemented corresponding changes to the workflow logic.
- Wrote extensive unit tests.
- Wrote a DAO layer to interface with WebMethods SOAP services.
- Redesigned to eliminate excessive memory usage that had been associated with processing large files.
- Redesigned to have processing results logged into XML documents, providing much more information for failure analysis than had been the case prior.
- Wrote XSL transforms to present processing results in multiple “user-friendly” web pages, as well as flat files to serve as input for further processing outside the system.
- Refactored to make application configuration easier as well as in corporate standard design patterns.
- Implemented various UI features on a commercial SWT/JFace application for generating patient care instructions for hospital staff.
- Refactored to make error handling consistent and reliable and helped the web services team do the same.
- Refactored to in corporate standard design patterns.
Technical Lead and Senior Developer
- Led a team that developed a web-based application for the engineering staff to calculate physical characteristics of aircrafts the company planned to manufacture including mass, center of gravity and inertia.
- Played a key role in defining the technical requirements of the system (which was no minor task).
- Created HTML prototypes.
- Developed the UI using Struts and JSP.
- Developed backend using POJOs with JDBC.
Technologies: Ant, EJB, IntelliJ IDEA, Java, JDBC, JDOM, Log4j, SOAP, SWT, XML, XSD, SQL, Tomcat
- Singlehandedly developed the scanner software used throughout Gulfstream’s production line.
- Backend communication occurred via SOAP, JDBC and EJB. The UI was written in SWT.
- Developed a generic engine for recognizing and processing transactions defined by a series of bar code scans.
Technologies: IntelliJ IDEA, Java, SAX
- Singlehandedly developed a tool to identify and document variances between aircraft designs (necessary to fulfill FCC auditing requirements).
- It was basically a sophisticated system for doing deltas between enormous XML files containing bill of material data using a SAX parser.
Technical Lead and Senior Developer
Technologies: EasyMock, EJB, IntelliJ IDEA, Hibernate, Java, JUnit, JDBC, Log4j, Spring, XSL, UML
- Led a team of four developers creating workflow components for order processing.
- Used a workflow architecture that used database-stored workflow rules and instantiated workflow activities and DAOs via Spring.
- Analyzed business requirements and produced a design to fulfill them, including flow diagrams as well as class diagrams.
- Produced detailed design for the team that included business objects, DAOs, EJB and Hibernate components, and decoupled existing workflow activity components from DAO components.
- Worked with architects to make error handling more consistent by offloading it to the workflow engine rather than individual activity components.
- Wrote unit tests using JUnit and EasyMock.
Technologies: DOM, Magik, HTML, REST, SAX, SOAP, XMI, XML, XSD, XSL, UML, WSDL
- Worked on a team implementing a commercial application server, the Confidential Internet Application Server, for hosting Confidential GIS applications. This product is used by utility companies and municipalities around the world.
- Designed, implemented, unit tested and documented various server sub-systems.
- Collaboratively tackled many complex design and architectural issues.
- Prepared requirements and design artifacts.
- Wrote an implementation of the Open GIS Consortium’s (OGC) standard Web Feature Service (WFS), which interprets arbitrarily complex spatial queries received from external systems.
- Implemented many of the web services (SOAP and Rest) for the sample GIS application that shipped with the product. This included mapping classes to XML schemas using XMI. Used SAX and DOM parsers for some of the translation work.
- Wrote components for handling incoming and outgoing HTTP messages, including header creation and interpretation, message chunking, generating response codes, as well as client language matching functionality.
- Designed and implemented the application server’s authentication and authorization functionality.
- Helped develop a framework for handling the unmarshaling of requests and marshaling of responses using configurable chains of components to support various transport protocols and request schemas using the chain of responsibility design pattern.
- Designed and implemented a sophisticated, extensible component for writing and reading application configuration settings to and from physically disparate sources, as well as disparate types of sources using disparate nomenclatures. The component allowed sets of configuration data to “inherit” settings from one another. Implemented an XML file plug-in for it. Developed an adapter to allow it to be backward compatible with code from previous releases. Developed components for dynamically generating default configuration files. This was a very complex piece of software due to the complexity of its requirements.
- Initiated and performed miscellaneous tasks including refactoring and organizing very large sections of the code base, working build issues, and incorporating patch code into the main code base.
Technical Lead and Senior Developer
Technologies: Ant, ClearCase, IntelliJ IDEA, IoC, i18n, Java, JUnit, Log4j, Servlets, Swing, XML, Tomcat, UML
- Led small development team supporting a commercial Java Swing-based GIS application used by utility companies (similar to MapQuest or Google maps, but with expanded capabilities in the area of searching, navigation and printing). The application was comprised of plug-in modules assembled at runtime based upon an XML configuration.
- Development work included writing a number of user interface components, business layer components, and backend components containing JDBC and XML-based marshaling code.
- Prepared formal architectural documentation, design requirements documentation, and detailed design documentation.
- Assisted with reducing requirements scope.
- Advised user interface designers regarding issues of technical feasibility.
- Tackled design issues related to decoupled components (by designing a message bus).
- Tackled design issues related to multi-threading and connection pooling.
- Wrote code to accommodate internationalization.
- Wrote Ant build scripts.
- Wrote JUnit unit tests.
- Helped create product installation documentation for Microsoft IIS, Apache, Tomcat and WebSphere servers.
- Tracked down and repaired defects in a poorly designed, officially unsupported (yet strategically important), client application written in Java. Interfaced with engineers at Florida Power and Light, a major customer, to help them resolve issues they were encountering.
- Prepared project plan estimates for development.
- Conducted development team status meetings.
- Represented development team in status meetings with management.
- Conducted design sessions.
- Served as source control system administrator (ClearCase) for the development team.
Technologies: Applets, Java, J2EE/Enterprise Java, EJB, Orion, Perforce, Swing
- Developer on applet-based business analysis software.
- Wrote Swing client components.
- Wrote EJB components.