Software: Spring, RestFul Web Services, SOAP, Threads, Struts 1 & 2, J2EE, Servlets, JSP, SQL, NoSQL Datastore, server side and client side programming using SOAP, REST, JMS, Spring MVC, Spring, Hibernate, JMS
Languages: JAVA,C++, C, C#, XML, PL/SQL, RDBMS, SQL, Perl 5, CGI
Frameworks: Jersey 2 JAX 2 Impl, Jackson 2 (JSON & XML), Spring 4, AngularJS MVC, Spring MVC, JPA, JMS (Apache Camel)
Case Tools: Maven 3, ANT 9, Eclipse, Visual Developers Studio, Quality Center, PVCS, CVS
Internet: Sockets, SMTP, POP3, MIME, FTP redirection
O/Systems: UNIX (Linux, Solaris, HP - UX, IRIX), DOS, Windows, Android native app development, IOS native app development, Mobile Web Development
Specialties: Automation system development, Simulation system development, Quantitative Programming, Mathematical algorithm development Process
Methodologies: Requirements Analysis, Requirements Development, System DesignSoftware Detailed Design, Software Development, Software Implementation, OOP, Software Testing and Evaluation, Operations and Maintenance, ISO 12007, EIA-632, CMM/CMMI
Confidential, Mclean, VA
Environment: Java, LDAP, Spring, Spring MVC, REST Web Services, Jersey 2, Jackson 2, Hibernate, JMS, AngularJS
- Working on enhancements to certificate (encryption) processing software.
- Leading a team that maintained and enhanced a public key infrastructure system.
- Wrote a search application for certificates in a public key encryption system.
- Performed threat analysis and mitigated issues that were found.
- Worked on key parts of a framework that ingested cyber threat data and sent it to different places for different types of analysis, including but not limited to threat scoring for heuristics, an analytics engine for analysis, a brain engine for pattern recognition, etc.
Technologies leveraged were: Java, Spring, JMS, Apache Camel, Spring MVC, Angular JS, Hibernate, Jersey 2, Jackson 2
Confidential, Vienna, VA
Senior Software Architect
- Took a multifunctional prototype which was the quintessential definition of a “Legacy” system and turned it into something extremely useful complete with new functionalities and bug fixes, before it was finally sunset’ted in lieu of a newly written First Generation Enterprise quality implementation of the Confidential Pilot.
- Maintained and updated a Legacy prototype running on Google App Engine, of an Confidential Pilot.
- Worked on an agile team to migrate the entire application from Google App Engine onto Confidential ’s Infrastructure As A Service platform which allowed us to use standard open source technologies without being hamstrung by the minds behind the Google App Engine.
- Used SAML, Encryption, Oauth…..Interfaced with Google, Facebook, AOL and Verizon as Identity Providers.
- Interfaced with Confidential ’s verification services, exposed as web services.
- The name of the software is: Attribute ExChange Network….AXN
- Documented the current design, Maintained the current design. Modified the design.
- Implemented new functionalities as well as maintaining certain kegacy design decisions.
- Served as Technical Lead on a team of developers.
Confidential, Arlington, VA
Environment: Java, J2EE, Spring, Spring MVC, Soap and RESTful Web Services, Android APK development, IOS, PhoneGap, Cordova, Xcode, LDAP
- Customized mobile banking applications for retail commercial banks using the Clairmail/Monitise platform for mobile web based banking applications as well as Android Smart Client banking applications.
- Lots of Web Service debugging, code reading, and design modifications.
- Also perform mobile customizations for an IOS SmartClient suitable to run on the Iphone and the Ipod Touch.
- Assist in writing training documentation designed to help junior developers get up to speed on our processes and work product, quickly and effectively.
- Mentor more junior developers by providing time honed advice where necessary and also helping to solve tough challenges as they arise.
- Installed a full service test management system to service 3 separate projects across both the federal and the financial services practices.
- Designed and implemented a Spring MVC based Selenium test management system that stored Selenium tests and executed them by translating the tests into java commands at run time and storing the results in Testopia by way of the Testopia XMLRPC API.
- Also served as a technical lead on a project designed to implement workflows for a government agency using Confidential and build out a user interface by which to manage those workflows.
- Designed an automated test Architecture to be used to test the software produced on the Confidential project.
Confidential, Rockville, MD
Environment: Java, J2EE, Spring MVC
- SWE enablement included infusing the sensors with geospatial data, and creating a middleware that would allow them to publish their sensor data to make it available for subscribers through client software.
- My responsibilities include writing a Concept of operations, a software requirements specification, a system architecture and other documents as required by the contract.
- I work closely with the customer, Project Management team (I am the systems engineer on that team) and the Engineering team to maintain team cohesion and project progress and while advocating for the Customer.
Confidential, Sterling, VA
Senior Software Engineer
Environment: Java, J2EE, Jboss, Hibernate, EJB, JSP, etc.
- Worked on a team to fix a J2EE replacement of a php implementation of a DNS management portal serving many hundreds of customers with extremely high volume websites and highly distributed web architectures.
- The J2EE implementation was written over a 2 year span with almost no oversight and as such was not ready to replace the php system that was currently serving their clients.
- My job was to assist in slowly migrating the Smart Client front end coupled with a very poorly designed J2EE back end, to a more standard model view controller 2 architecture and ultimately to a spring implementation.
- The environment was an agile development environment complete with daily scrum’s and bi-weekly sprints.
- We developed from user stories and had a very well managed development environment that utilized code reviews and other activities to ensure a highly effective software development and delivery process.
- The key technologies used were Java, Eclipse, Oracle, SQL, Jboss, EJB’s, tomcat, Servlets, JSP, and SmartClient just to name a few.
Confidential, Rockville, MD
Senior Software Engineer
Environment: JAVA, Struts2, Hibernate, JSP
- Served as the test lead (1 lead and 3 testers for this project) for the company’s flagship cobranded product for the 2007 and 2008 Consumer Electronics Show in Las Vegas Nevada.
- The product was a media player that utilized spatial navigation to navigate an exceedingly large amount of media metadata metadata (60,000 mp3 files, 10,000 video files, and 50,000 photos). The testing was mostly manual and the test plan, cases and execution information was maintained in Quality Center.
- Wrote release notes for the executive staff. Used Excel to chart the progress of the application across test cycles, bug migration, and test execution statistics.
- These were a part of the reports submitted to the executive staff as well.
- I took over the maintenance of the company’s automated test suite, written mostly in Python with parts in Java and C++. The product being tested was the company’s media player that worked with a Freespace remote that served as a pointer based remote used to spatially navigate reams of media metadata (60,000 mp3 files, 10,000 video files, and 50,000 photos). The product being tested was coded in C++ and ran on a sigma board against the Linux operating system. The test software ran on Windows and connected to the board via Java with the actual test cases written in Python. The connection between python and java was via jython. The product had a debug server component to which Java actually connected. That component was the test window into the code. All the coding and test runs were done using Eclipse.
- I designed a new automated test framework when the decision was made to retire the debug server which handled all of the actions necessary to design, develop and execute test cases. All mouse actions and visual feedback were governed by the debug server so the new framework had to replicate all of this but in a much more restricted environment. The design included writing a low bandwidth mouse driver and other test utility executables designed to return the application to its initial state.
- I wrote a sound comparison component in Java to test the systems audio playback application.
- The tests would generate mouse clicks to navigate to a particular mp3 file and play it. The screens were recorded by the java software that read the framegrabber.
- The sound was recorded by the java sound api. The screens were compared using an image comparison algorithm based on an error vector. The recorded sounds (mp3’s) were compared with the known mp3 files using an algorithm based on Fourier analysis of the expected and actual mp3 ‘signals’.
- I used Struts 2 running on Tomcat 6 to design and implement a web application that would allow developers to give the automated test software the ip address of the sigma board running the application and then to choose which tests they wanted to execute.
- This allowed the programmers to test their changes prior to actually checking the code into source control.
- I integrated Autohotkey into the automated test framework as a means by which to test the company’s latest software product on Windows. The product is a browser named Kylo. My job was essentially to integrate tools by which to automate the testing of the product, into our existing framework. I reused most of the back end utility code. For the mouse clicks and screen captures though, I used Autohotkey. I designed and built out a Java Swing application to manage the entire Kylo testing process. Once the system was ready, the testers on the test team used it to record tests, tune tests (timing issues between clicks and screen renderings existed that had to be mitigated), build test suites, and execute tests and suites, and tune the test comparison standards.
Confidential, Washington, DC
Lead Programmer Analyst
Environment: JAVA, Struts, Hibernate
- Design and implement a software lifecycle for managing a distributed software system transitioned to government.
- Act as a technical lead on the project, and project manager as the situation's needs dictate.
- Perform maintenance/enhancements/new development as the customer dictates.
- Technologies used are Java, J2EE (Struts 2, Model-2,JDBC,JSP,JDK 6, Hibernate, Jakarta Commons etc, XDM, Extensive use of XML and code generation tools).
Confidential, Washington, DC
Senior Software Engineer
Environment: JAVA, Struts, Hibernate, Oracle, SQL Server, etc
- As part of the QA team, I was in charge of writing an API Testing Harness in Java to Validate and verify the company’s public API.
- The api consists of about 450 classes.
- Coded the system in it’s entirety.
- The system was built to test a product that used several java related technologies.
- Stand alone harness, Servlets, JDBC, Struts, etc. Started a push to move towards adopting a standard component model.
- Worked on high risk company projects that involved ddl changes (SQL Server and Oracle), stored procedure changes (SQL Server and Oracle) changes, and extensive code changes to regular framework code as well as struts implementation code, user interface code (JSP) and changes to resource bundles.
- Wrote a standards guide for the companys SDLC process.
- Assisted in writing a performance standards guide for the companys SDLC process.
- Designed and implemented an IT infrastructure benchmarking application.
- Used C++, JAVA(Servlets, JDBC), XML and ORACLE.
- System had an html front end and used tcp/ip to connect to a C++ mathematical modeling engine suite to provide analysis based on the data provided. Primary means of representing the models and the data was XML.
- Interprocess communications was done via tcp/ip and the interprocess language was XML.
- Wrote Statistical modeling software (C++) to compute the statistics of customers IT profiles.
- Provides IT candidate assessments for offshore ventures
Senior Software Consultant
- Redesigned the software substratum to take advantage of the benefits of the J2EE architecture.
- Served as the Architectural Project Manager for the development of a loan servicing system.
- Defined a Common Architectural Framework to be used to develop the loan servicing system and all the new development efforts going forward.
- Implemented a development methodology that allowed the company to realize savings in time and costs by reusing software. The company had at least four different development shops (three domestic and one international) that needed to be managed from a central location, headquarters.
- Implemented basic frameworks that worked on top of the common architecture framework to prove concepts to upper level managers.
- Designed of an integrated framework to support holistic business solution. The company did not have much of a lifecycle concept in place, so I put one in place for them. I had a team of four of the companies employees working with me to define software and architecture needs of the development staff, define the configuration management architecture using their tool (Starteam later to be changed to Clearcase), define QA procedures, code freeze procedures, code deployment procedures and trouble reporting procedures.
- Specified the technology domain, which addresses the hardware, system software, and communications components, used to support a common architecture framework.
- Designed several business objects as a working model for the companies employees. Represented these objects as database tables, J2EE Entities and XML Objects (XmlSchema). The system used XSL to render the XML objects using an html representation.
- Redesigned the software substratum (built in ansi C) to take advantage of the benefits of the J2EE architecture.
- Designed business components to model the Confidential conceptual domain (jobs, resumes,jobseekers,etc.).
- Redesigned the architecture that governed how the job information was acquired from the customers and stored in the database.
- Redesigned the architecture that governed how the resume information was acquired from the job seeker and stored in the database.
- Worked on a team to decide the viability of outsourcing the search features of our resume and jobs database.
- Helped to build a team of mid to senior level java/c++ developers.