Quantum Blue Technology LLC

    California

    U.S.A.

     

    Phone:  (858) 837-2160  (USA)
    Email:  info@QuantumBlueTechnology.com       
    Web:  www.QuantumBlueTechnology.com

   

 

Home Up Contact

 

 

Detailed  Resume

This section provides a detailed description of my work experience.

 

   PROFESSIONAL EXPERIENCE:   Adobe PDF icon  Detailed Resume in PDF Format                Get Acrobat Reader Web logo 

 

RESIDENCY:

 

US Citizen

 

UNIVERSITY:

Bachelor of Science Degree - Computer Science Major

University of the Witwatersrand, Johannesburg, South Africa

 

EXPERIENCE:

 

 

I have over 28 years of software system design, development and management experience in real-time computer systems (embedded, PC and mainframe) developing software for engineering and medical environments.  I am familiar with reading and understanding electronic circuit schematic  diagrams, have excellent engineering writing skills and fully document my work.  I operate efficiently either as an individual or as part of a team and can develop software projects at my own office / software lab or at a customer site.

 

I am currently looking for short term or long term contract or full-time employment as a Software Engineer.

 

Mainframes:

and Minicomputers  

Burroughs B6800, B4800

DEC PDP11/73

Data General Nova IV

MicroProcessors:

IBM PC

PowerPC (MPC8349EA)

ARM7

MicroControllers:

Microchip PIC 18C658, 18F8720, 16F877 

Zilog eZ80F91 Acclaim! and Z8 Encore!

TI TMS320C6712

SGS Thomson ST20 

Motorola 68EN360, 68302 and 68HC05JB4 

Intel 8051

Hardware Interfaces:

I2C, SPI, Ethernet, ARINC, CAN, RS232, USB, HDLC, GPIB (IEEE 488)

Operating Systems:

Microsoft Windows, 

VxWorks (BSP, Device Drivers), 

ThreadX (BSP, Device Drivers), NetX

pSOS+ (BSP, Device Drivers),

Limited UNIX/Linux and QNX experience

Protocols:

MPEG-2, Open TV

ISDN BRI (Basic Rate Interface)

Developed USB State Machine

Developed IRIG-B, IRIG-E Time Code State Machines

Developed protocols for RS232, Ethernet Client/Server Interfaces

Software Tools:

Zilog IDE, C compiler, ZPAK II Ethernet Emulator

Microchip MPLAB IDE, ICD2, ICE-2000 and C18 compiler

CCS C Compiler

Texas Instruments Composer Studio IDE

Borland C++ Builder Professional Edition IDE, Pascal, Assembler

Microtec Research C and Assembler

Intel PL/M-51, ASM51; IAR C

Burroughs TSL, BPL, COBOL and Symbolic Assembler

Visual Source Safe, CMS, PVCS, RCS Software Version Controls

Microsoft Word, FrontPage, Visio

Data Flow Diagrams

Program Design Language (Structured English)

Hardware Tools:

Various In Circuit Emulators

CanBus CanAnalyzer, Condor ARINC, USB Chief 

Various Serial and Logic Analyzers 

Analog / Digital Oscilloscopes

Multi-Meters and Soldering Stations

 

 

DETAILED EXPERIENCE:

April'09 - Present   Senior Software Engineer, Covidien, Carlsbad, San Diego  

I am currently a member of the Platform team developing device drivers and test utilities for a medical ventilator.  I have continued the development design of the FPGA SPI driver I created earlier while employed as a contractor by this company and have now expanded the protocol to incorporate additional board types and the transfer of both sensor, command and calibration data.  This work has involved gaining an understanding of the entire ventilator system.  I have written Software Requirement Specifications (SRS) and Software Design Specifications (SDS) for this FPGA driver, as well as for a test utility which will be used to verify the operation of each board type.  I supervise software contract engineers who are developing driver code for the FPGA SPI interface and for the test utility.  I researched various medical international specifications regarding software design with regard to risk management and mitigation after which I created a summarized report and recommendations on the subject.  I created a Bootloader design document which details the PowerPC bootup procedure with regards to the development product’s hardware implementation.  The Eclipse Integrated Development Environment was used interfaced with the GNU C compiler and assembler for the PowerPC.  BDI3000 JTAG Debugger.  Freescale PowerPC processor (MPC8349EA).  Clearcase version control.

 

Nov'03 - April 09    Software Engineer, Quantum Blue Technology LLC (Owner)  

I completed a second contract with MLS Technologies (2 months) assigned to Covidien after which they offered me a permanent position.

I completed a short-term contract with a company based in the Los Angeles area.  I was tasked to assist with the debugging of a medical product.  I also implemented and tested software that I had previously developed for this same company.  The software was developed to work on a PIC 18F67J50 processor and to communicate with a NAND memory device and wireless and USB interfaces.  This work was performed both at the client’s site and also from my home office. I have my own computer lab with oscilloscope, power supply, multimeter, soldering station, six networked PC computer systems and laser printer.  I have enhanced the NAND memory interface driver, developed Hamming Error Correcting Code and also provided an API interface to perform on-board FAT16 file operations.  I also wrote a timing analysis document to determine the product’s overall system capabilities.  The Microchip MPLAB IDE, ICD2 and C18 compiler were used.

I recently completed a software contract with MLS Technologies (4 months) located in Poway California.  I was assigned to work as a software contractor for a medical company.  At this company I developed software drivers and board support programs for the PowerPC processor (MPC8349EA).  These programs included the modification of the ThreadX operating system and the NetX Ethernet driver to cater for instruction and data cache operation, additional modifications to the Ethernet driver to also detect LAN connection status, initial development of the product bootloader implementation along with initial development of an FPGA Driver Application Program Interface which would handle multiple SPI inter-processor communication channels.  These designs included the development and testing of PowerPC C and assembler code as well as the writing of the associated design and implementation documents (Microsoft Word).  The Eclipse Integrated Development Environment was used interfaced with the GNU C and assembler for the PowerPC.   BDI3000 JTAG Debugger.  Clearcase version control.   

On a previous project I used Borland C++ Builder Professional Edition IDE to develop a Client / Server Point-Of-Sale (POS) Business Application which permitted up to 100 networked PC computer systems to operate as point of sale cash register terminals providing Inventory, Point-Of-Sale (cash and account sale transactions) and Accounts Receivable functions.  I developed a distributed database environment which allowed the client POS cash register terminals to continue processing customer sale transactions even if the network and/or the server PC system were to fail. When the network and server were operational, changes to the server database were automatically distributed to the client PC systems to keep their respective databases current.  Calendar Indexed file directory structures were developed to create database data files which provided fast report generation and data file update features not generally available on other similar systems.  I also wrote a windows printer driver to handle ESC/POS printers.  This project has been completed, is fully documented and a demo version was created which can be downloaded from the company website and installed on a customer’s PC.  I also developed the company website using Microsoft FrontPage.

Another project I worked on also utilized Borland’s C++ Builder Professional Edition IDE to develop PC GUI interface screens to analyze digital signal waveforms using DSP (Digital Signal Processing) and Neural Network processing.  Multithreading driver software was developed to control multiple RS232 channels (one for a remote keypad, display LEDs and another to obtain atmospheric weather information from environmental sensors (ie. temperature, humidity, barometric pressure, etc.)).  A GPIB driver interface was also developed to control a Digital Oscilloscope.  Graphical analysis routines were created to illustrate Neural Network learning and testing graphs as well as displaying the FFT spectrum results.  Development systems (test boards, IDE, C compiler, Ethernet emulator) for the Zilog eZ80F91 Acclaim! and Z8 Encore! microprocessors were obtained and I developed code for Built-In Test routines to aid product testing during manufacture. I have also developed Client / Server software protocols for communication between the PC and the embedded systems.

 

Aug'02 - Oct'03   L3 Communications  "Ruggedized Command & Control Solutions"   10770 Wateridge Circle, San Diego, CA 92121

I was hired by L3 to initially complete the Ruggedized LCD Display Panel - the work of which I had originally developed while employed by QuEST Engineering.  I continued the project by writing the code for the four Micro Controllers (C programming language).  The four source code sets were built, fully debugged after which system integration was completed.  I used the CanBus CanAnalyzer and Condor ARINC Analyzer to monitor the respective communication interfaces and to inject various test messages into the system.  The development environment was a Pentium PC (Win 2000) using the Microchip C18 C compiler (Microchip MPLAB IDE and CodeWright Editor) and PVCS version control.  The Microchip ICE2000 In-Circuit Emulator was used to assist debugging.  My system specification documents and code design received excellent reviews from heads of Software and QA departments.

I was then assigned to work on the MobileVU SPI (System Power Interface) control card which was used to power a ruggedized display and computer system used in law enforcement applications (eg. police vehicles).  The SPI MicroController (Microchip 16F877) performed POST/BIT tests, controlled the power to the computer system, the LCD display and an auxiliary device. The SPI could power the various outputs in a user-selected order, power down or restore power to the display as required by the user (or user selected time period) and perform a UPS-style graceful shutdown of the entire system if the selected operating time was exceeded, or if requested by the user, or if the vehicle battery voltage dropped below some preset value.  Various system conditions (eg. battery voltage, BIT test status) were also displayed on a row of LEDs.

I developed the software system design specifications for the SPI control card and also wrote and tested the C source code (CCS C compiler, Microchip MPLAB IDE).  The Microchip ICD2 In-Circuit Debugger was used to assist in debugging and to program the MicroController.

My final task at L3 was to develop software for the Driver's Vision Enhancer (DVE) upgrade project.  The DVE is a product used to display external RS170/PAL video from a standard video camera or from a FLIR device (Forward Looking Infra-Red).  Various product components were reaching the end of their production life and the hardware was upgraded to utilize a new  MicroController (Microchip 18F8720) and new video (Philips SAA7118) and LCD interfaces (ADE3300).  The DVE MicroController performed POST, utilized an I2C interface to configure the video and LCD interfaces (approximately 800 registers combined), monitored the front panel controls and controlled the video and LCD interface to display the selected video input channel and processed RS232 OSD (On Screen Display) messages (alphanumeric characters to be displayed, cursor control commands - move/get cursor position, clear line/screen).  I developed the software system design specifications and also wrote and tested the C source code (Microchip C18 C compiler, Microchip MPLAB IDE, CodeWright Editor, Microchip 18F8720 Micro Controller). The Microchip ICE2000 In-Circuit Emulator was used to assist in debugging.  The Microchip ICD2 In-Circuit Debugger was used to program the MicroController.

 

July'2000 - June' 02    QuEST Engineering Services and Technology, Spring Valley, CA

I developed test software for a classifier card which utilizes the Texas Instrument TMS320C6712 Digital Signal Processor.  The test software, controlled via an RS-232 terminal interface,  exercises the DSP interfaces as well as other various peripherals (eg. multimedia card interface, Flash memory,   SEROCCO-M serial communications controller).  The code has been developed and is ready for the test phase.

I was then sub-contracted to Hughes Network Systems as a software engineer.  There I was tasked with assisting the software team developing the Thuraya hand-held satellite phone.  My work included enhancement modifications to the Software Environment (a suite of wrapper functions used to create a system software / operating system independent interface - the wrapper functions were layered on top of the VxWorks Operating System) - these modifications included broadcast capability for tasks with no queues, queue spying speed improvements, and research into possible timer speed enhancements.  I also improved the execution speed of the VxWorks serial interface drivers and debugged / modified the Inter-Processor Communications Channel for the determination / detection of failure conditions and the dropping of non-important message types when communication throughput approached its upper limit.  I also assisted with sleep enhancements for the reduction of the phone's overall power usage.  I have written profiler code which was used to detect and monitor the various tasks which ran between successive IDLE task executions - this permitted the determination of the tasks which required the most processor time and to ensure that the watchdog timeout would not elapse.  I also developed a system to monitor various task health conditions and to report on suspended or invalid tasks.  My experience was also used in overall debugging of the final product and I assisted the various team members as and when required.  Two ARM7 processors were used in this project.

I developed software system design specifications for a Ruggedized LCD Display Panel which was internally controlled by four circuit cards (Switch Encoder, Display Controller, Video Interface and Power Supply).  Each card utilized a PIC 18C658 MicroController.  The Switch Encoder performed POST / BIT / I-BIT (Power-On Self Test, continuous Built-In Test and Initiated-Built-In Test) and keypad scanning.  The Display Controller performed POST / BIT / I-BIT, automatic / manual LCD backlight brightness control (pulse width modulation), monitored the LCD and LCD Backlight temperatures,  monitored the LCD backlight and ambient brightness conditions, stored / retrieved system settings to / from non-volatile EEPROM memory, controlled the LCD and LCD Backlight heaters and monitored / controlled system warm start / cold start conditions.  The Video Interface performed POST / BIT / I-BIT, displayed various test screens, displayed selected video channel (or displayed an error message if no video was detected), displayed OSD (On Screen Display) alphanumeric text and output various ARINC messages to external computer systems.  The transmitted ARINC messages were continually monitored to ensure validity.  The Video Interface processed received ARINC messages which allowed remote computers to force the unit to perform I-IBIT tests.  The remote computer could also abort active I-BIT tests.  The power supply card performed POST / BIT / I-BIT, controlled internal fans (dependant upon the internal temperature), continuously monitored various power supply voltages (resetted any erroneous power supplies), and detected system shutdown / power fail conditions (under these conditions, the Power Supply MicroController would interrupt the Display Controller MicroController in order to initiate the saving of system settings to EEPROM.   All cards reported their status information to the other cards via the CanBus.

The design documents I developed included the User's Interface, Programming Environment Methodology, System Architecture, Software Development (one for each MicroController card) and Protocol (ARINC and CAN bus) Specifications.  I later wrote Test Specifications for each individual circuit card and for the entire unit.

My employer (Quest Engineering) and I were then offered permanent positions at L3 where we completed this project.

 

Dec'99 - June'2000      Self Employment - Software Contractor

USB Monitor Board - I worked as a software contractor for Quest Engineering.

My task in this project was to develop software for a Motorola 68HC05JB4 microcontroller which monitored and controlled various devices.  After reviewing the product specification and schematic, the microcontroller documentation, the various controller interface specifications and the USB Specification (Universal Serial Bus), I then developed a software system specification which documented the various processor tasks which would be implemented along with the actual USB protocol messages.  I then wrote the code in C utilizing the COSMIC "C" compiler and tested the monitor board system using a Motorola emulator and a CATC USB Chief Bus and Protocol Analyzer.

Quest Engineering then offered me a permanent position.

 

Dec'98 - Nov'99   Senior Engineer, Information Systems Laboratories, San Diego, CA

My principal task was that of system architect.  I was the software lead of a team of engineers subcontracted to another company in order to enhance an NMR (Nuclear Magnetic Resonance) device which could detect explosive compounds.  An engineering team comprised mostly of physicists and chemists had designed the current hardware and software for this device.  The system design documentation which was available was minimal at best and written from a purely scientific viewpoint.  I reversed engineered the existing design and developed a set of system design documents to describe each of the new sub-systems in detail.  Our own program development team along with development teams from the main company and an additional sub-contractor utilized these documents.  I also designed and supervised the development of the GUI (Graphic User Interface) Windows-like program (Photon IDE and QNX Operating System (UNIX-like) running on a PC Pentium platform) which controlled the entire system.

 

Aug'97 - Dec'98   Project Manager, Integrated Systems - Design Center, San Diego, CA.

Designed and implemented code to provide debugger commands on the ST20 development platform using their command language feature.   Modified this code to execute as a C++ class definition.   This task involved traveling to Bristol, UK in order to complete the implementation of the project.

Managed a software project consisting of up to eight team members.  The project involved the porting of the pSOS+ operating system to the NEC V830 processor.

Developed project requirement and software functional specifications for a satellite set top box.  Also researched the digital security encryption/decryption processes and wrote development specifications.  Final task on this project was to implement the OpenTV command suite for the MPEG decoder.

Enhanced a menu system for a Bang & Olufsen high-end Audio/Visual system.

 

Sept'96 - July'97 Snr Software Engineer, Stellcom Technologies, San Diego, CA.

Worked as a consultant for Stellcom Technologies and was assigned to Dr. Design (which was later taken over by Integrated Systems).

Reviewed a Satellite TV DSS IRD (set top box receiver) design and developed improvements to the OSD (On Screen Display) user interface.  Created various software project documents - design methodologies (structured top down design - HLD, LLD, data flow diagrams, program design language (structured English), coding standards, data dictionary and module description).  Taught the design methodologies to a customer's development team.   VSS version control.

Designed and implemented code to mimic the MTOS operating system on a pSOS+ Power PC environment (ie. wrapper functions).  Created development documentation defining the MTOS operating system wrapper function calls.  Wrote/compiled/tested  the wrapper function code.  Wrote test code to verify the operation of each wrapper function.  (Documents in MS WORD Ver7.0a, code written in C for UNIX).

Designed / implemented disassembler for M32R pSOS+ port.  Developed code source flow utility to analyze a group of "C" code source files and generate function calling / called trees.  Developed a program design package which takes structured English constructs and generates a cross-reference listing. 

Created user operation documents for each project.  Both utilities were written using Microsoft Visual C/C++ Ver 4.0 (Win'95 DOS window command line environment).  

Integrated Systems then offered me a permanent position.

 

Jan'96 - Aug '96    Senior Software Engineer,  Metacomp Inc., San Diego, CA.

Researched various ISDN PPP (Point-to-Point protocol) RFC's and developed a document logically identifying the various steps required to implement the protocol. 

Designed and implemented embedded firmware for a POTS telephone upgrade to an ISDN BRI (Basic Rate Interface) PC card.  The upgrade permitted a PC Host program to remotely control the POTS interface via API commands and included a transparent mode option which would route speech data to the PC for recording / playback purposes.  The project required gaining a detailed understanding of the BRI switch protocol used during POTS operation.

I was responsible for designing new API protocol messages and updating the related documentation.  I also wrote PC host software to exercise the new POTS features and upgraded the ISDN BRI firmware to operate in the ETSI (European) environment.  I have also been directly involved in taking the card through conformance testing.  All the firmware projects were designed to operate on a Motorola 68302 processor using the IDL interface.  The code was written in C and Assembler using a PC (Windows 3.11) platform.

 

Aug'95 - Dec'95    Senior Software Engineer,  TV/COM International, San Diego, CA.

Designed and implemented software systems for an MPEG-2 Transport Scrambler (Motorola 68EN360). Developed HLD & LLD design documents, front panel operators manual, several interface control documents (NMS, Scrambler Engine and Test Port protocol definitions), Offline and Online BIT tests, Data Flow Diagram and used Program Design Language to build code framework. Code written in Microtec Research C and Assembler, developed on PC platforms (Windows for Workgroups).  Firmware controlled system operations, front panel menu/keypad interface, RS232 asynchronous interface and Ethernet Client/Server interfaces.  Supervised the coding of certain sections of the project.  PVCS version control.

 

Nov'92 - July'95    Firmware Engineer,  GENERAL INSTRUMENTS, San Diego, CA.

Designed, implemented and maintained software systems for diagnostic test stations (Motorola 68302 & 68EN360) used in testing multichannel digital television encoder boards. Wrote system development and operational specifications. Trained manufacturing technicians in the use of test stations. Embedded control code written in Microtec Research C and Assembler, developed on PC platforms (Windows for Workgroups). Wrote drivers and control firmware for RS232 interface to operator terminal, Bar code wand interface, HDLC communications channel & GPIB interface (IEEE 488 Controller) to remotely drive an HP Powermeter / frequency counter.  PC based emulator & Microtec Powerscope debugger were used during code testing. VAX CMS version control.

Designed and implemented software systems for an MPEG-2 transport encryption multiplexer (Motorola 68EN360). Firmware controlled MPEG-2 packet generation and PID translation,  RS232 asynchronous interfaces, HDLC interface and Ethernet Client/Server interfaces.  Wrote system development and internal Ethernet protocol specifications.  Code written in Microtec Research C and Assembler, developed on PC platforms (Windows for Workgroups and Windows NT).  PVCS and RCS version control.

 

Aug'90 - Oct'92         Senior Software Design Eng., DYNAMIC INSTRUMENTS, San Diego, CA.

Designed and implemented software systems, wrote operational/remote-control protocol specifications for a multichannel audio communications recorder and an audio switch matrix, (Intel 8051 - PLM/51, ASM51).  Developed interrupt driven IBM PC RS232 & GPIB (IEEE 488) remote control packages to remotely control the recorder & switch matrix (PASCAL)   Wrote system / operational / remote-control protocol specifications for two DAT based audio recorder systems.  Created interface library to access SCSI DAT (DDS) Digital Data Storage system (IBM AT, Turbo C++).  PVCS (DOS) version control system.

 

Jan'87 - Jul'90         Software Manager, IDCO, Johannesburg, SA.

Developed software drivers and digital hardware for a small hand-held computer, (Intel 8051 embedded controller -IAR C).    Created system design and operation specification documents, developed and implemented software for an audio recorder (audio and IRIG-B time code channels), a data recorder and an intercom system which utilized continuous built-in test, (Intel 8051 - PL/M-51).  Developed RS232 test communications packages, (IBM AT -Turbo Pascal).  Supervised other company software projects, (robotic tractor, sensor calibrator, hand-held computer).  Responsible for development of project system and operational specifications.

 

Jun'85 - Dec'86    Software Development Engineer, E.L.BATEMAN, Johannesburg, SA.

Software maintenance and enhancements to a DEC PDP11/73 based process control system which communicated with Gould Programmable Logic Controllers, (RSX11M/PLUS - RPL/2).  Also wrote operator and software system specifications for graphical trending and report manager packages.

 

Aug'82 - May'85    Systems Programmer, TELKOR, Johannesburg, SA.

Embedded microcontroller programming using Intel "Blue Box" development system with In-Circuit-Emulator, (Intel 8085, Usart, Timers, PICs (Priority Interrupt Controller) - PL/M-51 & ASM51), for an interrupt driven terminal monitor program and a mimic panel three operator train number controller.  Data General Nova IV assembler programming for refrigeration holding shed control system, (responsible for dynamic variable graphics display and various alarm displays).

 

Mar'81 - Jul'82         Analyst/Programmer, NEDACOM, Johannesburg, SA.

Banking environment - designed and wrote system & online programs to execute on a Burroughs B4800 and B6800 mainframe, (TSL, BPL, COBOL & Assembler).  Programs included an online customer activated terminal system, remote printing, diskpack analysis and countrywide personnel report packages).

 

EDUCATION:

      BACHELOR of SCIENCE DEGREE in COMPUTER SCIENCE

      University of the Witwatersrand

      Johannesburg

      South Africa

 

In my final year at  university I worked in the Physics Department as a research assistant to Dr. J.A. van Wyk.  My work involved the modification and testing of software analysis programs as well as the operation of a Varian Electron Spin Resonator.  The project was funded by De Beers to study of the effect of color changes in artificially irradiated diamonds.