Resume
Last updated: 5/15/2012Email:
PROFESSIONAL SUMMARY
- 6 years professional software development experience.
- Experience with core JavaSE, including the Collections API, threads, generics, reflection, Java IO classes, autoboxing, JDBC, and garbage collection.
- Experience with JavaEE, including JSPs, Servlets, Web Services (SOAP and REST), and Tomcat.
- Experience with Java web framework technologies, such as GWT and Spring.
- Experience with XML technologies such as XSD, XSLT, and XPath.
- Experience with PHP developing dynamic websites.
- Knowledge of software engineering concepts such as object-oriented design, loose coupling, MVC, and unit testing.
- Experience using software development tools such as Eclipse, Netbeans, Subversion, Git, Ant, and Maven.
- Experience with technical writing: http://mikeangstadt.name/blog
TECHNOLOGIES
Java
JavaEE 5.0, JavaSE 6.0, JSP, Servlets, Swing, JUnit,
Spring, Hibernate, GWT, MyBatis, Log4J, Velocity, Tomcat, Mule, Restlet, iText, JMS
Web
HTML, CSS, Javascript, Ajax, YUI, JSON, SOAP, XML/XSD/XPath, HealthVault, RESTful web services, Amazon S3, Google Analytics
PHP
PHP 5, Zend Framework, PHPUnit
Software
Eclipse, Netbeans, Subversion, Git, Ant, Maven
Databases
MySQL, Oracle, SQL Server
Operating Systems
Windows, Linux, Mac OS X
EDUCATION / CERTIFICATIONS
Certifications
Bachelor of Science in Computer Science, Minor in Mathematics (May 2006)
Shippensburg University (Shippensburg, PA)
- GPA: 3.8/4.0, summa cum laude
- Honors Program
- Study abroad (Leicester, England)
WORK EXPERIENCE
Software Developer, Penn Mutual (Horsham, PA)
June 2011 - present
Penn Mutual is a life insurance company.
-
Cyberlife Upgrade
- Description: The company's installation of Cyberlife (a software suite used in the life insurance industry) was being upgraded to a newer version. I modified certain internal web services to make them compatible with this new version.
- Technologies: JavaSE, JavaEE, MyBatis, Maven, Mule, Restlet, JUnit, XML, XSLT, ACORD, JMS
- Responsibilities/Accomplishments:
- Added Maven support to existing projects.
- Added functionality to parse and generate large ACORD XML documents (up to ~200MB in size).
- Added unit tests to the application, helping to ensure that the application worked as intended and that future changes would not break existing functionality.
- Added documentation to each project, describing how to build and use each application.
- Upgrade was a success.
-
E-App
- Description: E-App is a web service that generates annuity insurance applications, populating them with customer information. It chooses a template file (PDF) based on the customer's state of residence, then populates that template with the customer information from the ACORD document.
- Technologies: JavaSE, JavaEE, Maven, Spring, Jersey, JUnit, XML, ACORD, iText
- Responsibilities/Accomplishments:
- Refactored existing project to make it more RESTful and thread-safe.
- Added unit tests and improved existing ones.
- Redesigned the web service to support different kinds of application templates.
- Wrote the logic to support a new application template.
- Went live without problems.
-
Core Services Test Framework
- Description: This web application allows the user to run tests against a collection of internal web services. The user records a collection of tests, which are saved in a "test suite". The test suite can then be played back at a later time to check the web service for correctness.
- Technologies: JavaSE, JavaEE, Maven, Spring, GWT, JUnit, XML, ACORD
- Responsibilities/Accomplishments:
- Created command-line interface (in addition to the GUI) for the test framework.
- Contributed bug report to GWT project.
- Frequently gave demos to management during development.
Software Developer, LifeShield Security (Yardley, PA)
December 2010 - May 2011
LifeShield Security is a startup that sells home security systems. The systems are designed to allow the customer to install them him or herself without any professional help.
-
Electronic Contracts
- Description: When customers sign up for service, they must first sign a contract. Because their hardware cannot be shipped until the contract is signed, this ability to sign the contract online means that the customers can receive their hardware in the mail more quickly.
- Technologies: PHP, JavaSE 6, Velocity, MyBatis, JDBC, SQL, JUnit, PHPUnit, Amazon S3
- Responsibilities/Accomplishments:
- Generated a customized contract for each customer using a templating mechanism.
- Wrote unit tests to test this customization code.
- Used the MVC pattern to separate presentation logic from application logic.
- Used the Data Access Object pattern to decouple the database code from the rest of the application.
- Wrote backend scripts that performed maintenance tasks on the contract data using MyBatis and JDBC.
- Designed functionality that uploaded copies of the generated contracts to Amazon S3 for secure storage.
- Deployed to production with minimal problems.
-
Contract Queue
- Description: When customers sign up with LifeShield either online or over the phone, sales representatives must run a credit check to help determine whether or not the customers will be able to make their payments. The Contract Queue assigns each customer to an available sales representative to perform the credit check, and records whether or not the customer passed.
- Technologies: PHP, PHPUnit, YUI, SQL, REST, XML, Ajax
- Responsibilities/Accomplishments:
- Used the MVC pattern to separate presentation logic from application logic.
- Used the Data Access Object pattern to decouple the database code from the rest of the application.
- Designed the UI using AJAX.
- Designed RESTful XML web service for handling AJAX requests.
- Implemented a locking mechanism in PHP to prevent more than one sales representative from viewing the same customer at the same time.
-
Partner Activation Portal
- Description: When customers activate their LifeShield system online, they must enter personal information, such as their name, address, and phone number. The Partner Activation Portal allows retail stores who sell LifeShield hardware to collect this information from customers directly and then upload this information to LifeShield's servers. The customers then do not have to re-enter their personal information when registering their system online.
- Technologies: PHP, PHPUnit, SQL, REST, XML, XSD
- Responsibilities/Accomplishments:
- Designed a web service that supported HTML form and XML requests.
- Created XML schemas for the XML requests.
- Redesigned the existing portal to display the customer's previously gathered information.
-
Google Analytics Tool
- Description: This tool extracted Google Analytics data into a spreadsheet for reporting purposes.
- Technologies: JavaSE, Google Analytics Java API
- Responsibilities/Accomplishments:
- Created a command-line interface for running the tool.
- Designed a configuration file for defining what data to retrieve.
- Successfully used by the team with minimal issues.
Software Developer, MEDecision (Wayne, PA)
August 2009 - June 2010
MEDecision specializes in writing software for the medical industry. They focus on designing software for the provider (insurance companies) and for the patient (person receiving care).
- InFrame
- Description: InFrame stores the personal health records (PHRs) of individual patients, including the patients' medications, lab results, and medical images. It supports many of the IHE and HL7 healthcare industry standards.
- Technologies: JavaEE, JavaSE, Tomcat, Servlets, JUnit, Ibatis, Maven, PHP, Zend Framework, XML, HTML, CSS, Javascript, Ajax, HealthVault Java API
- Responsibilities/Accomplishments:
- Integrated the application with Microsoft HealthVault, allowing users to link their InFrame accounts to their HealthVault accounts.
- Wrote technical documentation describing the HealthVault integration functionality.
- Attended a healthcare conference with other team members to help configure the application for demoing.
- Xebra
- Description: Xebra is a suite of applications that provide support for DICOM studies (medical images). It consists of a server for hosting the DICOM studies and a client for viewing them. Both are used in conjunction with the InFrame application.
- Technologies: JavaSE, Tomcat, Servlets, JUnit, Maven, XML, DICOM, SOAP, HealthVault Java API
- Responsibilities/Accomplishments:
- Added support for DICOM KOS files to make the client more compatible with other DICOM servers.
- Added support for the IHE XDS-I.b Retrieve Imaging Document Set (RAD-69) transaction, using a WSDL provided by IHE.
- Wrote unit tests for the RAD-69 web service.
- RAD-69 web service passed a standardization test administered by IHE.
- Added the ability to upload DICOM images to the user's HealthVault account.
- Worked closely with the Microsoft HealthVault development team to gain the knowledge necessary to perform the HealthVault integration.
- HealthVault functionality was demoed at multiple healthcare conferences with zero technical issues encountered.
- Wrote technical documentation describing how the HealthVault functionality worked and how to configure it.
- Contributed bug fixes to the open source HealthVault Java Library project.
Software Developer, JBISoft (Fairfax, VA)
October 2008 - March 2009
JBISoft is a company that does contract work for the federal government.
- Event Management Framework
- Description: EMF ingests and intelligently indexes data from various sources, such as RSS feeds and email accounts, and allows the user to search over the data. It provides a mapping feature that plots the location of a particular data item on a geographical map.
- Technologies: JavaEE, Tomcat, Servlets, JSP, JUnit, Dojo, OpenLayers, XML, XSD, XSLT, SOAP, HTML, CSS, Javascript
- Responsibilities:
- Improved the UI front-end using the Dojo Javascript framework.
- Added functionality that ingested data from a SOAP web service.
- Helped to better integrate the application with the OpenLayers Javascript mapping framework.
- Wrote technical documentation describing how the web service operated.
- Attended daily Scrum meetings.
Consultant, Platinum Solutions (Reston, VA)
July 2007 - September 2008
Platinum Solutions was a consulting firm located in the Washington, DC area that did contract work for the federal government. It was recently acquired by SRA.
- People Project Portal
- Description: The goal of this project was to provide the management with a tool that could effectively assign employees to projects within the company. It also recorded financial data such as contract information and employee billable rates.
- Technologies: JavaEE, Tomcat, JSP, JUnit, Spring, Hibernate, MySQL, HTML, CSS, Javascript
- Responsibilities:
- Designed entire application from scratch.
- Made use of the Spring MVC framework, along with Hibernate for object-relational mapping.
- Made use of Hibernate utilities that allowed for database schema generation using only the Hibernate POJO classes.
- Used the above database schema generation for unit testing the application.
- Infragard Membership Application
- Description: Infragard is an organization which allows the private sector and the FBI to share information in order to help prevent cyber attacks against the United States. This application was used to sign up new members and record membership information.
- Technologies: JavaEE, Tomcat, JSP, Spring, Hibernate, Struts, Expresso, HTML, CSS, Javascript
- Responsibilities:
- Developed functionality that allowed regional Infragard groups to report on their yearly activities.
- Developed an email alerting mechanism which automatically contacted regional groups when they did not submit paperwork on time.
- Systematic Entomology Laboratory Identification System
- Description: SELIS is used by biologists to record the identifications of insects collected by U.S.D.A. inspectors at ports of entry around the country. The biologists determine whether or not the insects are dangerous, alerting the authorities if they pose a threat to the country's well being.
- Technologies: Java EE, J2EE, Tomcat, JSP, JUnit, Struts, Expresso, HTML, CSS, Javascript, SQL
- Responsibilities:
- Worked mostly independently from start to finish.
- Wrote unit tests for testing specially-formatted, plain text messages that the application used to communicate with other servers.
- Engaged in frequent communication with the client to ensure the requirements were being met.
- Traveled to the client site to deploy the completed application.
- Wrote SQL code that migrated the database to the new version of the application.
- Wrote documentation for the client, describing how to use the new features of the new version.
- Wrote technical documentation describing the changes made in the new version, how to configure the application, and how the server environment was configured.
Application Programmer, Stanley Associates (Kearnysville, WV)
August 2006 - July 2007
- Marine Information for Safety and Law Enforcement
- Description: MISLE is an application used to store information on Coast Guard ships as well as information related to Coast Guard law enforcement.
- Technologies: Visual Basic 6.0, Microsoft Word macros
- Responsibilities:
- Worked on code used to generate Word documents for the purposes of collecting fines and holding court hearings.
- Attended daily Scrum meetings, which kept the team up to speed on the project's progress.
- Created a Microsoft Infopath form allowing team members to submit Scrum meeting notes to a Sharepoint server.
College Internships
June 2003 - May 2006
-
Support Desk Intern, Pennsylvania State Employees Credit Union (Harrisburg, PA)
Solved technical problems of customers and employees, monitored banking servers. -
Software Development Intern, Advanced Automation Associates (Exton, PA)
Developed factory automation software using Visual Basic 6.0, SQL Server.
All original content (C) Copyright 2012 Michael Angstadt