*********@***.***
Greg McPherran
SUMMARY: Software Development Professional
• Over twenty years software development experience
• Four years C# and .NET experience (mainly desktop, some web)
• Ten years embedded systems experience
• Have developed two real-time kernels from the ground up.
• Master of OO concepts
• XAML, WPF, C#, C, C++, MFC, COM, and VB experience
• Basic DB knowledge and experience
• UNIX C and shell script experience
• BSEE, cum laude, Northeastern University
SERVICES: Software Product Development and Consulting
• Project-oriented and development consultant
• Implement software solutions and determine best options based on goals
• Expert in XAML and WPF
• Kernel Development
• Embedded systems development
• Product development and strategy consulting
• Software project development, leadership, and consulting
• Emphasis on code quality for reliability, flexibility, and maintainability
• Advanced Software Developer with a track record of solving the more difficult technical
challenges on projects. Find the most practical, rapid and cost effective solutions for your
software products.
EXPERIENCE
October 2009 - Present
Kurzweil Technology: Software Development Contractor/Consultant
WPF and .NET UI Automation development adding accessibility features to book reading
software.
May 2008 – October 2009
Siemens Corp., Norwood MA
• Customized WinVNC service in C++ for use with NT embedded medical instruments
• Simplified VNC registry settings.
• Improved VNC CPU load.
• Added pipe protocol to VNC.
• UI development in C# and .NET for networked medical device management application.
• Implemented new features for new medical device and also significantly enhanced and
fixed existing problems.
• Enhanced framework view update model
• Developed custom graphics (e.g. tab dialog with path gradient in tabs)
• Photoshop Elements image creation.
• XML Serialization of configuration data
February 2007 – May 2008 Oxford Global Resources (consultant)
Video IQ, Bedford, MA
• WPF UI Development in XAML and C#
• Tree control (camera explorer) for management of video system
• Many UI controls including image display.
• AdornerLayer
Information Resources, Waltham, MA
Development in C# for an automated space planning desktop application.
The application automatically generates product item arrangements based
on item spatial information and criteria such as marketing and product
movement.
Enhanced existing code:
*Rolled in key features from previous version to new version.
*UI behavior based on retail fixture type.
*New methods to simplify operations
Added new features:
* Concisely implemented Complex UI logic based on many conditions.
* UI for configuration data for new retail fixture
* XML Serialization of new data
Principal Software Engineer
August 2006 – Feb. 2007 Carlo Gavazzi, Brockton, MA
• Shell scripts for Solaris network configuration.
• Auto generation of TCL scripts for ATE.
• IPMI configuration for Advanced Telecom Architecture (ATCA) System.
Senior Software Engineer
March 2006 – August 2006 Nortel Networks, Billerica, MA
Enhanced routing driver with proprietary enhanced feature. Development involved arp and next-hop
forwarding table management. Firewall performance investigation based on packet rerouting to firewall
blade (project cancelled) Added advanced proprietary routing feature to company's main enterprise
router.
Software Developer
October 2005 – April 2006 Precision Detectors, Bellingham, MA
Salvaged critical project. Developed molecular analysis software and a sophisticated GUI with advanced
graphing (zooming etc). Work done in C# .NET and some C++.
Principal Software Engineer
February 2005 – October 2005 Millennial Net, Burlington, MA
Established network application and protocol on a Freescale (Motorola) platform with a 2.4 GHz radio.
Developed and architecture to leverage new software techniques and further organize the software while
preserving the network node and protocol functionality. All work was done in C language with some
assembly language as appropriate.
• Developed full RTOS for use by wireless protocol.
• Developed parts of radio transmit and receive layer
• Parsed Rx packets and formed Tx packets
• Handled network exceptions such as collisions and failed responses
• Supported low power states
• Processed application device I/O.
• Developed a real-time kernel from the ground up. This is the second time I have done this in my
career and is one of my areas of expertise. The kernel is fully preemptive and provides thread
priority, sleep, semaphores, and mutex capability. We built the wireless network product on it and
it is released to production.
Entrepreneur and Software Developer
2004 – Present McPherran Software, Sharon, MA
McPherran: www.Comp-Code.net Image Format Studio (developed Circa 2006). Sole developer and
manager of WPF-based image format conversion and resizing tool. Also developed web site and
registration system.
Develop and sell Windows ® products. Development done with Visual Studio .NET, C#, C++, MFC.
Windows Forms Web GUI created in C#.
• Designed and developed Graph application supporting smooth-scrolling MDI windows and GUI
selectable graph data. Provide operations on selected data such as Average, RMS, and Fourier
transform.
• Designed and developed utilities application for OS startup management and access to and
vendor’s application uninstall to bypass corrupted Add/Remove.
• Designed and developed MFC extension class library including classes for Windows registry
access, product registration, and OS Startup management.
• Created installations for applications using InstallShield Express.
• Developed product registration algorithm for use in applications and Web. Developed password-
protected customer online registration system using C# and .NET.
• Developed and deployed web-site using Macromedia Dreamweaver ®.
• Setup software sales and delivery for internet purchase and on-line registration.
Windows and Visual Studio .NET are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
Contract Software Lead
2002 – 2004 Texas Instruments, Attleboro, MA
Developed GUI in C# .NET. Assisted in embedded systems architecture. Developed software in C for
C6711 DSP-based and PIC18-based boards.
• Windows Forms GUI in C#.
• Software project management.
• ADC sampling and acquisition software
• Serial I/O drivers for standard UNIX libs (fopen, printf, etc.)
• Modbus layer on serial layer
Software Engineer (employee and consultant)
2001 – 2002 Temptronic Sharon, MA
Embedded Systems Software in C for embedded temperature control systems. Machine GUI in Labview
• Temp and machine control PIC 17C
• Basic PID algorithms
• GUI, Serial, and Modbus (Labview)
Contractor Software Engineer (6 month contract)
Aug 2000 – Jan 2001 Fidelity Smithfield, RI
Software in VB and C++ for Financial Application Development
Software Engineer III
Aug 1999 – Jun 2000 Speedline Franklin, MA
Software in C++ for object oriented vision system for machine positioning
• VB GUI
• Vision system integrated with VB GUI via COM
• Vision system used for mechanical positioning of PCB printer
Senior Software Engineer
Jan 1999 – Aug 1999 Imaging Technology Bedford, MA
Software in C++ for Windows-based frame grabber PCI cards.
• Frame grabber configuration file parsing
• Frame acquisition and de-interlacing via FPGA DMA
Senior Software Engineer
1995 – 1999 The Foxboro Company Foxboro, MA
Software in C++/MFC
• Instrument configuration software
• Windows instrument configuration file parsing (port from PSION handheld)
• FoxAPI Windows/UNIX host configuration file parsing for auto configuration
• Control station download layer in C++ on FoxAPI
Senior Software Engineer
1992 – 1995 Medialogic Plainville, MA
Embedded Systems Software in C for 68K-based Media Interface Boards
• Analog and digital hardware control and machine set up for media tests
• Signal acquisition and analysis for magnetic media tests.
• Multi-track and operation diskette certification application.
Software Engineer
1991 – 1992 Computer Associates Westwood, MA
Software Development in C on UNIX Platform
• UNIX Database application generator in C.
• Embedded SQL (CADB)
Diagnostics Engineer
Jun 1990 – Dec 1990 Coral Network Marlboro, MA
Embedded Systems Diagnostics in C for Intel-based Ethernet Card
Contractor (3 month contract)
Mar 1990 – Jun 1990 The Foxboro Company Foxboro, MA
Embedded Systems Diagnostics in C for Intel-based Ethernet Card
Diagnostics Engineer
1988 – 1989 Xyplex Boxboro, MA
Embedded Systems Diagnostics in C for Intel-based Ethernet Card
• Ethernet card diagnostics for Intel Ethernet device
• Developed full pre-emptive kernel from the ground up (C, 68K)
• Serial port, FDC, and other device low-level
• Port of UNIX C libs for serial I/O (fopen, printf, etc.)
• Diagnostic processes for 68K-based Ethernet cards.
Software Engineer
1987 – 1988 Medialogic Plainville, MA
Embedded Systems Software in C for Embedded PDP-11-based Media Interface Board
• Analog and digital hardware control and machine set up for media tests
• Signal acquisition and analysis for magnetic media tests.
Engineer
1984 – 1987 The Foxboro Company Foxboro, MA
Embedded Systems Prototype/Diagnostics Software in Assembly for 8051 and 8086