Post Job Free
Sign in

Engineer Software

Location:
United States
Posted:
March 27, 2014

Contact this candidate

Resume:

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.



Contact this candidate