My Own Source



Get Modbus simulator at SourceForge.net. Fast, secure and Free Open Source software downloads

My Modbus simulator Project



Contact

Software Developer : Mission Critical Systems

  • ‘C’ and C++ developer roles which entail design, implementation and testing of a product.
  • Symbian O/S C++, C# .NET and Perl, Bash scripting experience amongst others.
  • Senior developer with vast experience in the Industrial Control Systems environment, as well as embedded RTOS, in mission-critical environments for 18 years.
  • Experienced at interfacing hardware and software to each other in a real-time environment, Linux (Embedded audio switching) and in instrument control (SCADA/HMI) for Windows.
  • Accomplished at IP networking and using a range of other interfacing media based on a solid understanding of networking protocols and media types, and using them in various client-server scenarios. Embedded experience covering USB, uC-Linux and System Testing.
  • A can-do trouble-shooter good at researching & knowledge transfer.
  • Automated Testing system configuration and design documentation.
  • Digital Electronics background and interests in hardware and high reliability computing.
The nature of my first job in a control-system environment where people rely on your code to run 24/7/365, has taught me how a solid design, simplicity, coding style and discipline directly affect defect-rate.  I’ve developed compact requirements-focused applications for Symbian mobile and micro-Linux, in the resource constrained world.  I am a C++ guru, a generalist at Embedded, and a Linux apprentice.  I can work well on my own and am completely self-motivated!  I enjoy customer interfacing and helping them achieve their goals, but I mostly love working with hardware.


Clear Com (Vitec) June 2008 – present

Clear Com design and market a complete hybrid digital intercom system.  Customers include Live Performance, Broadcasters, Military, Aerospace and Government.  Role made redundant after 3 seasons of downsizing. clearcom.com
Role
  • Maintained applications for the main 8260 PowerPC processor card.
  • uC-Linux developer (Blackfin DSP) on digital audio “stations” connected to the main processor using HDLC typically via RS485 and Ethernet (VoIP).
  • Designed and developed C# .NET GUI server component to perform configuration, control and monitoring of the processor card and stations.
Projects
  • Built a continuous-integration system using open-source projects, with local and remote builds for 3 different hardware platforms, including Subversion and Clear-case integration.
  • Built a remote-test client into to emulate human interaction to create a repeatable stress and integration-test environment.
  • Designed and implemented an Ethernet LAN auto-discovery and configuration system using TCP and UDP-broadcast communication and a Windows .NET configuration package to configure stations.
  • Process owner Unit testing, Coding standards, Wiki and Mantis bugtracker.
  • Wrote most of the OLED graphics libraries on prototype hardware for next-generation VoIP product.
Skills
  • Accomplished at using Open Source Tools: CPPUnit, N-Unit, and Cruise Control.NET.
  • Installed a MediaWiki knowledge base, and Mantis bug-tracker.
  • Toolchain: Use of a cross-compiler, bash scripting, Makefiles and CMAKE.
  • Languages: ‘C’, C++, C#, BASH, Perl.
  • Agile: Scrum and Sprint Burn-downs.
  • Working with remote teams in the USA and Canada, has taught me clearer communication and collaboration skills.

Symbian Limited (now Nokia) July 2006 – May2008

Symbian employ >1000 software engineers in the UK alone and are the developers of the high-end smart-phone RTOS that evolved from the Psion portable organizers. developer.symbian.com
Role

  • Defect fixer on USB and Bluetooth team.
  • Overnight Build-and-Test engineer.
  • Test designer to the USB project.
Projects
  • Implementing main USB stack testing suite of an on-the-go (OTG) embedded host.  This involved pairing with developers coding up a USB Host and Peripheral function for the mobile device, and then specifying, designing and implementing unit and integration tests.
  • Maintaining integration test-farm consisting of 14 PCs, and adding overnight project builds, tests and “on-target” integration run downloads and reporting.
Skills
  • Tools: ARM tool-chain and GCC, Perforce version-control. 
  • Used CodeWarrior and Eclipse IDE with Carbide.
  • Team-track web-based defect tracking.
  • Object Oriented design: Enterprise architect.
  • Bulldog (CCover) code coverage test-metric tool.
  • Languages: C++, Perl scripting, DOS scripting.
  • 18 months experience in USB, and mobile RTOS.

Adroit technologies 1992 – 2006

Adroit Technologies develop an industrial control system on the Windows platform, in Johannesburg, South Africa.  I started as a junior developer on their purely ‘C’ coding role of highly optimized drivers and progressed to team lead after 5 years.  I left Adroit to relocate to the UK, at the time I had written 2 thirds of their drivers. Adroit Technologies
Roles
  • Perform technology presentations for customer functions, trade shows and tech demos. 
  • Defect fixing on all product areas
  • Progressed to lead developer, required to incorporate new techniques and technologies.
  • Produce automated test procedures, and documentation.
  • Consult on primary company projects.
Key Projects
  • Designed and developed the second generation of their Siemens H1-Ethernet (custom packet-driver) to gather event data both asynchronously and synchronously.  The project was strategically important, with high safety requirements with the beta being a Platinum extraction plant.
    Customer: Anglo Coal and Anglo Platinum
  • Designed and developed a Siemens driver to directly access function-blocks in the process controller.  I also had to handle over 2000 events per second in real-time, then queue and complete database updates in under 100ms.  
    Customer: DeBeers Diamond mining
  • My most rewarding project was an emergency one to rebuild a mineral extraction plant after a fire.  Next generation Mitsubishi controllers had been specified, requiring a rewrite of most of the original code.  I got many happy customers in the months that followed, phoning just to tell me how reliable and fast it was.
    Customer: Anglo American
  • Designed and implemented 2 radio-telemetry drivers, one of them using Open sources.  By working closely with the customer during design and debugging debugged in parallel I used my electronics background to my advantage.
  • Designed and implemented a complete OO Re-design of all C legacy drivers to allow C++ migration.  This required formalizing the internal testing process, and creating a test program.
  • Created a code library including a multithreading pool manager for high-speed drivers to easily mitigate worker-thread creation overheads.
Skills
  • Tools: Visual Studio, SourceSafe.
  • Using Ethereal/ Wire-shark and proprietary sniffers.
  • Debugging call stack dumps in assembler.

Network Computer Services: 1991-1992

  • My first full-time work involved installing LAN and WAN for a contractor.  I ran a 2-3 man team, eventually specialized in troubleshooting networks and tackling difficult installations.
  • Installed all kinds of networks ranging from fiber-optic to RS-422 terminals.

Studies

  • 1991: I trained in formal software development, with a full-time COBOL and Data-Processing concepts course at van Zyl and Pritchard, Johannesburg. The course ended in an external examination by the CUC (Computer User Council of South Africa).
  • 1989-1990: Military service: I initially kept myself with basic radio maintenance working in the signal corps. Soon I decided that computer programming was my forte after using a base admin computer nights to write a ration-order prediction program in Pascal.
  • 1988-1989:  Studied Light Current at the Cape Town Technicon, where I steered toward the digital subjects and computer programming in Pascal.
  • 1987: High school final year, taught myself 8086(Intel) Assembler, and ‘C’. I then helped write parts of a data-capture application.

Hobbies

An electronics hobbyist, I like to build small digital playthings, and maintain an open source project here. I also read Adventure and Sci-Fi books.
My week-ends I like to spend going on outings with my 2 boys, currently 5 and 7 years old.