Godfrey Degamo
Consultant
Boston, MA
********@*****.*** - 617-***-****
WORK EXPERIENCE
Contract Software Engineer
Analogic - Peabody, MA - October 2012 to December 2013
Working with a software team to adapt existing software base to work with a new x-ray scanner. Responsibilities
included design and development of new features; extending old features; and general debugging. Worked
closely with electrical and mechanical engineers and physicists, to provide feedback, and support of our
software.
Skills: C++, perl, CAN interface protocol, lex, InstallAnywhere, Copley Motion libraries, wire-shark, TCP/IP.
boost libraries: any, format, circular, property tree, thread, variant, xpressive libraries.
Projects:
***Value Checker. Designed and implemented a domain specific language easy enough for physicist to use and
that allowed for arbitrarily complex expressions for testing various values from an (assumed) unreliable source.
Features included separating check variables to an xml file to be used in complex expression; when expression
fails against data values tested, the code flow is remembered and all variables leading up to failed expression
are printed and so are the expected values; verbose syntax checker makes it easy for non-technician to fix
their program. Used lex to translate domain language into C++.
***Installer. Wrote an installer for scan control software using InstallAnywhere. Wrote subsequent versions
in perl. Laid the framework for future extensions to the perl installer so that migrating, merging, checking
configuration data should be easier.
***Multi Keypad Feature. Extended keypad feature of the xray machine so that it could handle multiple keypads
instead of just one keypad. Primarily used C++, boost threads, and interfaced with CAN bus.
***General Maintenance/Extensions. Improved on and removed glitches to existing software. This included
finding and correcting sporadic race conditions, hanging shutdowns, memory leaks, cores, using wire shark to
debug unexpected closed connections. Also, modified Copley Motion code which is a third party library used
to control the gantry (xray ring.)
Contract Software Engineer
iRobot - Bedford, MA - September 2011 to October 2012
Responsible for designing and developing drivers for the new flagship iRobot product, RP-Vita. Worked directly
with mechanical engineers and electrical engineers to provide feedback on sensor design and also to provide
support (in the form of testing and developing test software) for trouble shooting electro/mechanical/acoustical
problems with sensors.
Skills: C++, Python, modbus serial interface protocol, aware2 robotics framework. boost libraries: any, format,
circular, property tree, thread, variant, xpressive libraries.
Projects:
***Sonar Drivers Development and Development Tools. Design, implemented, and tested sonar aware2 drivers
which gather acoustical data, convert raw readings from the sonar into range (object) hits. Sonars are the
primary source of clearing obstacles in the near-field of RP-Vita's localized space. Also, developed analysis
tools were to calibrate, and to trouble shoot acoustical, mechanical, and electrical problems.
***Pan motor driver. Design, implemented, and tested aware2 driver that actuates an electric motor which turn
RP-Vita's sensory suite 'head' and also queries the motor and position sensors to calculate the heading of the
sensor suite. Care was needed to synchronize the pan motor and sonar drivers through the modbus serial
interface in a timely manner because time stamping sensory data is critical in robotics.
***Baseboard driver. Design, implemented, and tested aware2 driver that queries the RP-Vita baseboard
hardware. The driver's tasks included gathering data from gyromometers and accelerometers and converting
them into physical quantities, sensing the RGB levels of the LED lights, and sensing the state of charge of the
RP-Vita's batteries. In addition to gathering data, the drivers then passed this data into the appropriate queues
and fielded commands from the behavioral system going to the various baseboard hardware components.
***RMT PrimeSensor (Kinect) driver. Design, and developed the PrimeSensor (e.g., Microsoft Kinect) driver
to detect when fixed obstacles have moved for the purpose of testing the reliability of the PrimeSensor and
custom made RP-Vita hardware.
Contract Software Engineer
Axeda Corporation - Foxoro, MA - March 2010 to April 2011
Principally responsible for developing micro-controller version of one of Axeda's products, for customizing base
product code to meet the needs of customers, and to train customers on the use of Axeda's products.
Skills: C, C++, Visual Studios, ASN1C, Training, Requirements Gathering and Functional Specifications.
Projects:
***Research and Development. Designed and developed Axeda wireless protocol library to fit on micro-
controller hardware of less than 4,000 bytes of RAM and using an 8-bit microprocessor. Tested to make sure
that library is bug free. System integrated new library with the hardware of one of Axeda's customers, All Traffic
Solutions.
***Medicis. Designed, developed, and tested a custom tailored solution for Medicis Pharmaceutical
Corporation, so that their Liposonix device could better communicate with Axeda base product. System
integrated solution with Liposonix device.
***Roche Pharmaceutical. Extended Axeda base product to meet the needs of various Roche Pharmaceutical
devices.
***Training and Requirements Gathering. Trained Axeda customers on the use of Axeda products. Went
on requirement gathering engagements to clarify the needs of customers. Some customers include Fujitsu
America, Medtronics, Medicis Pharmaceutical, Roche Pharmaceuticals, GE Oil and Gas, and Key Technology.
Consultant
Advent Software - Boston, MA - August 2008 to December 2009
Principally responsible for developing tools for the consulting division of Advent Software.
Skills: C#, C++, Perl, BizTalk Server, SQL Server
Projects:
***Scalability Tools. Designed and developed tools for creating, loading and timing extremely large volumes
of complex investment instruments and transactions according to client specifications. Wrote tools to measure
performance times of our software at various run stages. Mostly written in perl.
***Backup, Synchronization and Disaster Recovery Software. Designed software to support Geneva, an object
oriented database in the areas of backup, synchronization and disaster recovery. Prototyped in perl and finally
written in C++. Implemented software at various clients and trained clients on use.
***Portfolio Transaction History copying program. Designed and wrote perl/C++ software that would copy
portfolio transactions on specified security rules while preserving taxlots.
***RSL Development. Wrote RSLs (A Geneva Query Language) to find accounting errors in dividend payments
for Fidelity Investments. Data feeds would come through via biztalk, and transformed with C# functions and
stored on SQL Server.
Principal Software Engineer
Dataupia - Cambridge, MA - January 2007 to August 2008
Engineer. Principally responsible for the design, coding, and testing of the "main attraction" of Dataupia's
massively parallel processing database: The Oracle Transparency layer which allows our MPP database to
integrate seamlessly with Oracle's RDBMS without any application changes.
Skills: C, C++, Oracle stored procedures, SQL, database design, Postgres, Postgres Internals, Oracle OCI,
Oracle Net 8 internals, interpreter internals, lexx and yacc.
Projects:
***Query/Query Plan Rewriter and Data Aggregator. Helped design and implement a new 'twist' to the Postgres
interpreter by traversing, and rewriting tree to be optimized to run query in parallel across multiple blades. Must
ensure that rewritten query preserves the meaning and column geometry of the original query. Post processing
of data returned back from multiple blades. Must ensure correct data type, meaning and column geometry
with original oracle sql.
***OracleSQL to PostgresSQL translator. Extended PostgresSQL interpreter to understand Oracle-ism of the
SQL language in order to return a query tree for further rewrite.
***Oracle Net8 Interceptor. Designed and developed a program that was part C++, part Oracle, part libpq to:
Reverse engineer Oracle Net 8 protocol. Rewriting Net8 packets on the fly for the purpose of tricking instance
to talk with our Dataupia server.
***Transparency Installer. Designed, and implemented a bash, java, python, and Oracle PL/SQL that installed
the Oracle transparency layer onto the Oracle Instance by: Modifying ora files using Oracle hidden java
installer, which was reverse engineered, installing compiled libraries and programs.
***Archival Tracker. Designed and implemented a system to track record, and execute the backup of very large
computer systems for enterprise clients. The system used Oracle to store status information and schedules of
all the backups that were, are or will be done. Provided various tools to schedule, and query the system. The
system was mostly implemented in Oracle PL/SQL, OCCI, and C++, with perl used for prototyping.
Senior Software Engineer
Lumigent - Acton, MA - March 2005 to January 2007
Engineer. Have sole responsibility for Entegra 3.2 for Oracle product line. Designed and wrote in C++ new
enhancements. Redesigned the Oracle database and added new stored procedures in PL/SQL to support
enhancements. Configuration files were implemented in XML.
Senior Software Engineer
Lucent Technologies & CSG Systems - Cambridge, MA - May 2000 to July 2003
Redesigned and implemented a C datalayer to use C++ and to use Oracle's OCCI. Redesigned libraries to
use POSIX multi-threading. Designed and implemented a load balancer in Java. Designed the database and
wrote the stored procedures using Oracle and Sybase to support the balancer's backend.
Programmer
Technical Solutions of Finance - May 1998 to June 2000
Wrote a real time search engine to find arbitrage situations using C. Communications to the front end and
other search engines used tcp/ip. Loading data and configurations were done in perl and xml.
Programmer/Analyst/Tech Support
DST Belvedere - Boston, MA - May 1997 to June 1999
Sole owner of Open Performance, an accounting program that measures returns of large portfolios with assets
over a billion. Wrote the calculation engine in C. Wrote the databse interface in Oracle's PL/SQL and Sybase'
Transact-SQL. Wrote various consulting tools in perl.
Associate Software
Netsinc, Kendall Square, Cambride MA - February 1997 to May 1997
Engineer. Wrote a fax server library in C/C++ for my Java group. Gave them a hook into my libraries using
Java RMI.
Systems Programmer/Junior Analyst
Dana Farber Cancer Institute - Boston, MA - 1994 to 1996
Assisted Senior Analyst. Wrote an accounting system in C and perl. Wrote a backup system in C.
EDUCATION
Bachelor of Arts in Mathematics
Boston University - Boston, MA
1990 to 1995
ADDITIONAL INFORMATION
TECHNICAL SKILLS SUMMARY
Languages
* 10+ years development on various unix flavors: RedHat, SuSE, Solaris.
* 10+ years of C
* 9 years multi-threading in C,C++, perl languages.
* 7 years of C++
* 7 years of perl.
* 7 years ksh, bourne shell programming
* 4 years of Java
* 2 years python
Database Implementation, Programming, Internals
* 8 years of SQL (Oracle, Sybase)
* 8 years of Oracle stored procedure programming.
* 7 years using Oracle OCI.
* 6 years database design.
* 2 years writing/maintaining sql parsers.
* 1 year writing memory managers for object oriented database, ObjectStore.
Others
* 4 years of revision control software like svn and Clearcase.
* 3 years TCP/IP Programming
* 2 years Linux driver development
* 2 years experience with lexx & yacc.