I am a software engineer with a wide range of experience working in everything from experimental neuroscience to NASA satellite image processing to global investment banking software.
Java, Spring, SQL, Python, Apache Spark, Oracle Coherence, Drools, Perl, vim, Unix, C/C++, .NET
Galatea Associates LLC, Somerville, MA
Galatea is a mid-sized financial software consulting firm that works with large broker-dealers on a variety of mission-critical systems. I am a senior software engineer with experience on several of our clients’ middle- and back-office applications.
Data Analytics Platform, January 2017 - Present
I work on an application which provides views and reports of trader positions, such as daily balance sheets, attribution data, and sources and uses information. The data is housed in a database, is loaded into a Java-based Apache Spark application, and then retrieved via Spark SQL.
- Perform and managed platform upgrade from Spark 1.6 to Spark 2.1 ensuring continuity of use and no unexpected change in behavior
- Provide stabilization and productionizing of application, including automating releases and restarts and implementing application monitoring and alerting
- Acts as a senior consulting resource for both Galatea and client team members
- Ensures a good relationship with the client to foster future work
Real-time Messaging System, May 2016 - January 2017
To meet a new application requirement, I designed, implemented, and deployed a real-time, rules-driven messaging system based on JMS, Drools, and MongoDB. Users can subscribe to chat, email, or web-based alerts for various events (i.e., corporate actions, large account changes, etc.)
- Drove the project through the entire software development lifecycle from requirements gathering to production release
- Performed proofs-of-concept for several new technologies and programming approaches which allowed the project to be a standard for future applications, including functional programming, more advanced use of Spring, and new approaches to automating deployment
Global Real-Time Position Keepers, April 2012 - May 2016
I have worked on two position-keeping projects. These provide a real-time in-memory record of the bank’s current inventory. Positions are gathered from various upstream sources via SQL, file processing, messages (IBM MQ), and REST queries to other applications. After normalizing the positions, they are made available for querying and real-time calculations. The first was based on Java and Coherence, and the second was built with Java and GemFire, as well as a front-end built using C# .NET that deployed to a user’s machine for a customizable interface to the position keeping system.
- Oversaw and was the key developer on the move to production for the 2.0 version of the application, which included ensuring continuity for existing users, on-boarding new users, adapting software to production query loads, and globalization of the application
- Maintained, expanded, and improved RESTful web services, core storage and query functionality, test infrastructure, and data sources
- Managed another developer while we implemented fixes and features for .NET UI
- Worked on the development of a calculation layer, which did pre-defined calculations on inventory in real-time
- Provided senior technical guidance for global project teams, participated in architectural discussions and decisions, and acted as a key technical advisor
Sigma Space Corporation, Lanham, MD
Sigma Space Corporation is a NASA contractor specializing in large-scale data management, data distribution, and data analysis systems for satellite imagery.
Senior Software Engineer, January 2011 - April 2012
As a senior software engineer, I worked on all aspects of data production, archive, and distribution systems for NASA Earth imaging instruments, including development, maintenance, and testing.
- Quickly debugged errors in production system using a PostgreSQL database, logs, and analysis scripts
- Collaborated with scientists and Operations group to ensure validity of data and make appropriate corrections
- Created Perl scripts for the Operations group to simplify and automate production tracking reports
- Worked with the Configuration Management team to version, baseline, and install image processing software packages and libraries
- Updated existing documentation to use more collaborative and user-friendly wiki pages
McGovern Institute for Brain Research, MIT, Cambridge, MA
The Gabrieli and Graybiel labs, in the MIT McGovern Institute for Brain Research, focus their research on various aspects of cognitive neuroscience.
Programmer, March 2008 - March 2011
I was a programmer and general technical resource for the lab researchers and staff.
- Designed and implemented applications (GUI and back-end) in MATLAB to control physical elements of rodent test chambers and integrate with electrophysiology recording hardware
- Built a database using PostgreSQL to help track and facilitate access to experimental recordings and analyses
- Created realistic training tasks using Unreal Tournament for a DARPA-funded experiment to help improve soldier navigation and object tracking
- Maintained, expanded, and ran C++ software package for real-time processing of functional MRI brain images used in neuroscience research
- Developed stimulus presentation code for auditory attenuation, smoking inhibition, and image recognition experiments using MATLAB and Psychtoolbox
The MathWorks, Inc., Natick MA
The MathWorks is a software company specializing in mathematical computing, simulating, and code generation software.
Software Engineer, October 2006 - February 2008
As a member of the Aerospace Toolbox team, I worked with other development team members on design specifications, feature decisions, and code reviews, as well as collaborated with Quality Engineering team to perform build testing and ensure code coverage.
- Developed new features in MATLAB and Simulink for the Aerospace Toolbox and Aerospace Blockset, including object-based animation methods and EGM96 gravity model functionality
- Created and implemented refactoring and enhancement plans for the Signal Builder block
- Analyzed and corrected customer-reported issues and worked with Documentation group for software updates and bug fixes
Application Support Engineer, January 2004 - October 2006
- Specialized in support of the Simulink control, simulation, and design automation products
- Collaborated with Advanced Support Group and various development teams on long-term customer support interactions
- Performed group leader duties, including being a senior technical resource for others on support, providing notes and additional help on e-mail questions, handling complex responses and ensuring continuing work flow and resolution of cases
- Acted as support member of xPC Target development team, handling user questions about hardware-in-the-loop simulation and real-time rapid control prototyping
NLX Corporation, Sterling, VA
NLX Corporation was a company specializing in airplane simulators. They developed and built commercial and military simulation hardware and software.
Summer Intern, May 2001 - August 2002
- Aided flight software engineers in full-motion flight simulator development and testing in C under Linux
- Designed, developed, and tested code for avionics components
- Analyzed flight data for development of simulator aural and motion systems
MS, Aerospace Engineering, Virginia Tech, December 2003
BS, Aerospace Engineering, Minor in Mathematics, Virginia Tech, May 2002