Post Job Free

Resume

Sign in

Software Engineer Manager

Location:
Philadelphia, PA
Posted:
June 29, 2017

Contact this candidate

Resume:

David MacRae

Sewell NJ *****

Phone 215-***-****

ac02lg@r.postjobfree.com

SUMMARY:

Design, implementation and maintenance of large code bases over the full SDLC

Architectural and component interface design

Proven ability to deliver production systems on schedule

Expert understanding of C++11/14 using the STL, Boost, MFC, and ATL class libraries

Other languages: C, Java, C#, VB, Javascript, Python, Lua, UNIX scripting, assembler

Extensive multithreading, multiprocessing and networking experience

Deep low-level knowledge of Windows, including Win32, COM, DLLs, and kernel

Real-time embedded applications working with naked hardware, QNIX and Linux

Team player, experience in management of small groups.

Service and client applications in both Windows and Linux

Telephony applications using TCP/IP, VOIP and SIP

Experienced with Agile development, Jira, and assorted source code control systems

SKILLS:

O/S: 32/64bit Windows, UNIX LINUX/Solaris/AIX

Languages: C/C++, VB, VBA, C#, Java, Shell scripts, various assemblers, Javascript

Device drivers: Win32, UNIX, DOS

Application Frameworks: MFC, ATL, .NET, STL, Boost, XSD, XML, SQL, HTML, Tibco, STS, Maven

O/S APIs: Win32, UNIX, COM, CLR, DCOM, DirectX, Sockets, OpenGL, XWindows

EXPERIENCE:

Note: all my development work since 1992 has been in C++ with occasional exceptions explicitly noted

South Jersey Bridge Club, Cherry Hill NJ 4/16-Present

Manager (administration, finance and game director)

Implemented a new teaching program to get new members

Added a popular supper club game

FreedomPay, Radnor PA 6/15-4/16

Software Engineer (contractor)

FreedomPay makes software to connect merchants to banks for credit card payment

Built a TCP/IP interface to Oracle Opera for hotel and resort management

Supports thousands of simultaneous terminals

Written in C#.Net using WCF

American Contract Bridge League, Horn Lake MS 3/14-3/15

Software Engineer (contractor)

The ACBL is the North American headquarters for duplicate bridge players

Built a Windows app interfacing with a legacy PASCAL program to score games. Written in C++ and C#.

Built an XML generator which shows the contents of game files.

Included various ancillary functions such as Windows services, FTP, unzipping, etc.

SiriusXM, Laurenceville, NJ 6/12-11/13

Software Engineer (contractor)

SiriusXM builds streaming radio from satellite and over Internet.

Built a TCP/IP relay to fetch metadata from a variety of sources and send it downstream for Internet radio

Triveni Digital, Princeton Junction, NJ 6/12-4/13

Triveni builds software to monitor digital image streams for cable companies.

Worked on drivers for low-level software that interfaces with the image streaming hardware.

Ported some of it from Windows to LINUX.

Barclays Capital, NewYork, NY 9/11-5/12

Software Engineer in Derivative Pricing (contractor)

Barclays Capital is the investment bank arm of Barclays Bank. This group prices derivatives.

Worked on communications between an instrument-pricing server and a client application, server-side in Java and the client side in C++.

Client side uses COM to provide data to Excel apps written in VBA and an internal functional language.

Made modifications to the pricing server job management software in Java.

Developed facilities in Java for automatic comparison of the output of various pricing engines.

IPC, Fairfield CT 10/10-6/11

Software Engineer in Telephony Applications (contractor)

IPC builds specialized intelligent phone systems for use by financial traders

Built a SIP (internet telephony) server interfacing with MS Communicator using sockets,STL, XML and HTML.

Interfaced with the phone system using SQL, Tibrv and Winsockets.

Wrote a multithreaded diagnostic program using SQL and sockets.

Windows/GUI development using WinAPI, MFC and STL.

Extensive use of Windows APIs to connect to Internet Explorer and to control its operation, transparently changing operation based on the version of IE installed.

Maintained server-side communications using TIBCO.

Bloomberg, New York, New York 12/09-10/10

Software Engineer in Equities Estimates (contractor)

Bloomberg builds high-speed terminals for use in financial systems, especially trading

Re-wrote an app written in Javascript and C++, achieving speed improvements of two orders of magnitude.

UI development in Javascript

Re-designed a data base information retrieval service doubling throughput.

Extensive database work using STL and proprietary data bases.

C++ applications developed using GCC, GDB and Eclipse

JAI Pulnix, San Jose, California 5/07-9/09

Senior Software Engineer / Team Leader (contractor)

JAI is a manufacturer of specialized cameras for machine vision and ORT (Open Road Tolling) applications

Designed and implemented a library of OCR and template matching functions for use in automatic license plate reading applications, currently used around the world.

Innovative driver-like design makes extensions and maintenance easy.

Implemented as a set of co-operating DLLs loaded as required.

Written in Portable C++, running on 32 and 64 bit Windows, Linux and embedded systems.

Multi-threaded for speed.

Designed/implemented teaching and testing tools for use in localizing the library to a given set of license plates. Written in C#/Winforms with VBA and Matlab.

Implemented applications and system software in C on smart cameras running LINUX.

Most development in VS2005/8 with some cross-platform work in Linux using GCC and Eclipse.Xiris Automation Inc., Burlington, ON 6/92-12/06

FLIR Systems Inc., Seattle WA (companies inter-related)

Software Manager

Xiris is a machine vision company building for automatic inspection of part in the automotive, electronics and DVD industries. FLIR builds high-res Infrared cameras.

Designed and implemented the world’s first VBX machine vision library, written in C++

Completely re-designed the library to move to ActiveX, MFC and Win32

Managed a group of 4 engineers and provided architectural specifications for the entire project

Designed specialized machine vision algorithms for automotive and CD/DVD inspection.

Migrated the algorithmic code from MFC to ATL/COM, thus creating a client/server architecture with multithreading/multiprocessing support and OS independence.

Several real-time applications requiring multi-threading, multi-processing and networking.

Embedded applications in Windows NT/2000 for real-time industrial automation.

Wrote extensive template libraries to support COM

Designed, maintained and wrote hundreds of thousands of lines of lean code

Designed and implemented several GUIs built on the toolkit using MFC, ATL and VB

All code developed in various versions of Visual C++, especially VC6.

Optimized the toolkit using MMX and SSSE.

Wrote a Windows NT driver

Noesis, Montreal, QC 10/88-6/92

Noesis made imaging software and applications used on UNIX systems.

Engineering Director

Managed a group of 4-6 engineers

Interactive Image processing package primarily for bio-medical applications

Extensive customer support work

The Package was written using X/Motif under UNIX. My main programming task was to write an interface layer to allow a Motif app to run under Win32 unchanged.

Wrote an interpreter in C as to be used as a macro language for the package. The language interpreted was very similar to Javascript.

Eicon Networking, Montreal, QC 5/88-10/88

Eicon builds networking system. This group was making a Postscript printer

Software Engineer

Embedded work using Motorola 68000 to make a Postscript printer

Worked on the fonts and image engine

Completely re-designed the image engine, gaining 30 times speed improvement

Matrox Electronics, Montreal, QC 10/81-5/88

Matrox builds special-purpose graphics and imaging hardware

Software Engineer

Product Manager

Embedded programming for assorted target systems on x86

DOS drivers written in 8088 assembler

UNIX driver for a frame grabber

3 years as Product Manager in Marketing for imaging products

Wrote Machine Vision libraries for various board-level products

Extensive design work in OpenGL to create a Silicon Graphics graphics workstation

Philips, Montreal, QC 7/80-10/81

This division built Word Processors on Z8080 systems

Software Engineer

Maintained a compiler, making extensive modifications

Wrote a linker for a Z80 Macro assembler

System ‘guru’ for a pair of VAXes running BSD 4.2 UNIX

EDUCATION:

Université du Québec à Montréal 1981

BSC in Math/Computer Science



Contact this candidate