EXPERIENCE
|
SureLogic, Inc., Pittsburgh, PA
|
January 2007 - December 2007
|
Software Engineer
|
- SureLogic is a start-up company commercializing Carnegie Mellon's Fluid research project. The Fluid project produced developer tools, integrated with the Eclipse IDE, that helped assure aspects (e.g. concurrency) of Java applications were implemented correctly.
- Was a key member of the engineering team working on transitioning the research software to a commercial application.
- Helped develop a typed AST implementation for the application's analyses.
- Rewrote analyses to take advantage of the new typed AST implementation.
- Developed a multithread-capable task framework using Java's Executors with support for inter-task dependencies.
- Helped develop a database schema for storage of analysis results.
- Created and maintained an Apache Ant-based automated build and test system.
- Developed Ant tasks to improve the build system.
- Built JUnit test cases to test the Eclipse plugins.
- Developed an ANTLR grammar to parse custom annotations.
- Analyzed Java projects for concurrency errors using the Fluid tool.
- Developed with, and for, Eclipse 3.2 and 3.3.
-
|
Carnegie Mellon University, Pittsburgh, PA
|
September 2005 - August 2006
|
Software Engineer Graduate Student
|
- This was the main project of the Master of Software Engineering program. The client was L3 Integrated Systems Division.
- Was one of 5 students working on the project.
- Developed a discrete-event simulator that simulated multiple, independent, intelligent robots as they searched for rescue beacons.
- Used the commercial network simulator OPNET to simulate communication.
- Developed processes for many aspects of the project including: meetings, documentation, design, testing, implementation, task tracking, estimating, and risk management.
- Used the ACDM development process to guide development.
- Used a Quality Attribute Workshop to help enumerate quality attribute concerns.
- Used a Software Risk Evaluation to help identify risks and develop mitigation strategies.
- Estimated tasks with Wideband Delphi.
- Tracked progress with Earned Value Tracking (EVT).
- Used Test-driven development and pair programming during implementation.
- Wrote framework classes in Visual C++.
- Created unit, integration, and system tests with CxxTest.
- Developed a continuous integration build system using CruiseControl, NAnt, and CxxTest.
- Served as the Team Lead, Chief Architect, and Support Engineer during different phases of the project.
-
|
Rochester Institute of Technology, Rochester, NY
|
January 2000 - December 2006
|
Lead Software Developer
|
- The C-Print Pro software provides aid to deaf and hard-of-hearing students in the classroom. It allows the C-Print captionist to capture the lecture by utilizing an abbreviation system that the software automatically expands.
- Designed and developed the C-Print Pro transcription software in Java.
- Developed the application around a server-client architecture.
- Used TCP/IP to communicate between the server and clients and UDP for server discovery.
- Used Java 1.4's NIO libraries.
- Used a Hypersonic database for abbreviation-expansion lookup.
- Developed custom serialization of events to improve throughput.
- Developed a version of the client application with an Visual C++ MFC front-end for presentations.
- Integrated IBM's ViaVoice voice-recognition software.
- Used JNI to accomplish both the MFC client and integration with ViaVoice.
- Developed most parts of the Swing UI.
- Managed the development team of 3-4 developers.
- Helped to discover and define requirements.
- Helped customers troubleshoot issues.
-
|
Procter and Gamble Pharmaceuticals, Norwich, NY
|
June 2001 - August 2001
|
Software Development Intern
|
- Developed a VB/VBA application to customize a batch record produced from a Word template via Batch Plus from AspenTech.
- Modified the Word template using queries on Batch Plus' database.
- Formatted the information and placed it within the document.
- Allowed the user to dynamically change some sections of the document depending on the requirements of the chemical process.
- Created a Python application to look up Material Safety Data Sheets (MSDS).
- Utilized any number of user-defined web sites.
- User could download and save the MSDS's in HTML format.
- Designed the GUI with Tkinter libraries.
-
|
Rogue Wave Software, Corvallis, OR
|
June 2000 - August 2000
|
Software Development Intern
|
- Wrote test suites and example programs for multiple network library packages in C++.
- Debugged and ported those same packages to Solaris 2.6 and 8.
-
|