Patrick Philips available

Patrick Philips

Consultant Embedded Systems Engineer/Architect

Profileimage by Patrick Philips Consultant Embedded Systems Engineer/Architect from Bethany
  • L0A 1A0 Bethany Freelancer in
  • Graduation: BSc. (Hons) Computer Science.
  • Hourly-/Daily rates: not provided
  • Languages: English (Native or Bilingual) | French (Elementary)
  • Last update: 16.01.2017
Profileimage by Patrick Philips Consultant Embedded Systems Engineer/Architect from Bethany

Embedded and Real-Time systems design / development / analysis techniques including parallel processing development methods.
System Architecture and modelling: UML, MDA/MDD, DSM.
Mission critical systems.
Software Security
Mult-Processor system and multi-core SoC system development.
RTOS experience : VxWorks; PSOS; ThreadX; iRMX; Unix(Solaris); Green Hills Integrity.
Embedded Linux; Nucleus; QNX; TI SPOX DSP RTOS.
Device Driver and b.s.p. development.
FPGA interface/architecture design and programming using VHDL and Verilog.

Operating systems and development environments used:
MS Windows/Windows NT development (including VC++, MFC\'s and WIN32 API).
Unix and Linux (including embedded Linux).
Full software development cycle.
Use of various structured techniques for software implementation and architectural development:-
System Analysis, Architecture and Modelling: Sparx Enterprise Architect tools.
Model Driven Development, Domain Specific Modelling (DSM).
UML (Unified Modelling Language), Object Oriented Analysis & Design.
IBM Rational Rose Real Time Model Driven Development tools.
Experienced with concepts and use of Design Patterns and reusable OO software.
Yourdan systems analysis and design.
Formal methods of algorithm design and analysis.
Artificial Intelligence (knowledge based and neural nets).
High level programming language experience :-
VHDL& Verilog.
Low level programming language experience :-
ARM Architecture and assembler.
X86 assembler (MASM, Intel and other assemblers.)
Power PC MPC860/8260/750/405 assembler.
68XXX Motorola assembler.
68HC11 Motorola assembler.
PIC assembler.
6502 assembler.
PIC series of MCU\'s assembler.
IDT RC32355 MIPS processor.
TI DSP 30xxx assembler.


AM2D Software Systems Consulting
Consultant Systems Architect/Engineer.

Toronto Stock Exchange (TSX)


Position: Embedded Real Time Solutions Architect.
Member of senior technical executive staff.
Responsible for architectural definition, design and development of system acceleration project. These are multi-server, multiprocessor based systems comprising of multi-core processors integrated with FPGA's providing “hardware” acceleration offloading from the server main processors.
Network acceleration through NIC offload engines.
Design and development of extremely low latency trading systems.
High availability, fault tolerant, fail-over system behaviour.
Responsibilities include:
System architectural design, development and documentation.
Requirements acquisition and analysis.
Prototype proof-of-concept (POC) development and analysis. C++ and assembler.
Tool design development using Java and C/C++.
Linux driver proof-of-concept development.
FPGA architecture development.
FPGA Verilog code development.
System performance profiling and analysis
Project progress control.
Ensure system architectural integrity is maintained.

Research In Motion (RIM)
Position: Operating System Services Lead.
Embedded systems Project/Team lead for the RIM proprietary platform operating system.
Responsible for architectural and code development of system real-time operating services.
Lead engineer for operating system services group responsible for OS services team.
Coordination of development between embedded OS, DSP and wireless groups.
Multi-core (SoC)/Multi-Processor ARM based platform.
Development and evolution of RIM’s proprietary operating system.
C/C++ and assembler development.
ARM, Xscale, MSA DSP and Tensilica processing cores used.
Evaluation of QNX operating system.

Silicon Optix

Position: Senior Software Architect Group Leader.
Lead software architect developing embedded software architecture for very high performance parallel element, SoC image processing IC.
Analysis and modelling of system requirements to produce system architecture for embedded platform on the IC.
Project Lead for an architecture and engineering development group.
Risk analysis at all project stages.
Requirements gathering, analysis and specification generation.
Develop and produce system design documents.
Developed architecture for embedded system platform.
Produce a verifiable system model.
Produce initial implementation from model to validate and verify performance and functional requirements are being satisfied. Implementation language C/C++, with hard real-time constraints coded in assembly language.
Interface to ASIC blocks within IC.
Flexible, re-usable Plug-in capable architecture.
Domain Specific Modelling for video systems domain.
IBM Rational Rose Real Time Model Driven Development Tool used for UML model development.
Clear Case and Clear Quest used for source and configuration control/management.
Requisite Pro used for requirements management.
Produce requirements documents and specifications for architecture.
Liaison with contracted 3rd. party developed software group.
Act as mentor to other engineers and provide direction for software development process/QA.

Harris Corp.
Position: Principal Embedded Systems Engineer.
Embedded systems lead for broadcast equipment department.
Lead for embedded work on X75 broadcast equipment.
Responsibilities included project control, design/development ( architecture/detailed design/code).
VxWorks RTOS used on PPC860 based platform.
Requirements / specification generation and documentation.
C/C++ used for implementation language.
CVS used for configuration management.
XILINX FPGA’s used to provide image processing functionality.
Linux 2.6.x also used.
GNU toolchain.
Project Scheduling
Resource allocation

Banner Engineering

Position: Principal Software Development Engineer/Lead
Design/development/lead for machine vision systems development.
Real-time embedded systems development for machine vision/robotic systems used in industrial and production environments.
Requirements analysis.
Architecture development and re-structure.
System profiling.
Operating system: VxWorks for embedded application. MS Windows used for GUI.
Rational UML for system modeling.
C/C++ and assembler for code development.
Source safe used for version management.
Schedule planning
Development tool assessment/selection
Resource allocation.
Lead engineer for projects, performing technical and project control duties; scheduling, mentoring, risk analysis etc.
Microsoft Project used for scheduling etc.

Cymer Inc.
San Diego

Position : Senior Lead Software Engineer.
Design/development of real-time embedded software systems for silicon wafer fabrication lasers.
Project lead for small teams of two to four engineers.
Microsoft Project used for scheduling etc.
Requirements analysis
Architectural development, analysis and support.
System Profiling and analysis.
UML. Rational Rose tools used.
Code design/development (C/C++)
Mentoring of junior Engineers.
The system was a multi-processor distributed real-time system based on the Force Power PC 680/690 boards running under the Green Hills Integrity RTOS.
RT Linux
Device Driver and b.s.p development.
CAN bus used for peripheral module communications.
Development simulation environment WindowsNT/2000
Rational Rose UML used as modelling tool
Development language used C/C++.
Extensive use of CORBA (Vertel real-time ORB eORB).
True Change and True Track were used for configuration management.

Optical Solutions, Inc.
Position: Senior Software Engineer.
Design and development of software for fiber-optic broad band telecommunications system.
Development environment used C++/C, and assembler for Motorola MPC860/8260 PowerQUICC and the IDT RC32355 MIPS processor.
Distributed multi-processor environment.
Both the GNU and Green Hills development environments were used.
The position involved responsibility for complete cycle development of device drivers for custom “on-board” devices , Ethernet (physical and link layer) drivers, plus TCP/IP layers.
Design of Common Architecture/Framework for Device Driver development.
Lead for driver framework development.
UML (GDPro Toolset) was used as the design methodology.
Call processing stack design and implementation.
Interface drivers to Xilinx FPGA’s providing virtual circuit call processing connection mapping.
Definition of CPU-FPGA interfaces and communication protocols.
System simulation was developed under the Windows NT O/S.
RTOS environment consisted of VxWorks, PSOS and ThreadX.
ICE and remote debugging tools used.
Clearcase and Clearquest were used for configuration management.

Guidant Corporation
St. Paul


Position: Senior Software Engineer within the Independent Software Verification
Responsible for analysis, design and implementation of high integrity software used in the verification of the functional behaviour of heart pacemaker and medical instrumentation software systems.
Development carried out on VxWorks and PC Windows platforms.

Responsibilities include :-
Object Oriented Software systems analysis and design using UML. (Rational CASE tools and GDPro used).
Requirements analysis.
Implementation using C++
Real Time systems development (VxWorks).
Development of reusable OO software components.
Research on application of CORBA for heterogeneous development environment.

Syntron Inc. (Parent company of Syntron Europe below).

Postion: Project lead/Principal Software Engineer.
Design and development of seismic data acquisition equipment.
Hands on technical lead/manager position responsible directly to Vice President of Land systems
Position requirements were to provide software systems analysis, design, programming and technical lead for development projects:
Full life cycle development.
Progress analysis
Purchase of CASE and other software tools.
Overseeing of sub-contractors.
Requirements capture and analysis.
Software systems architecture analysis and design using OMT and UML; Rational Rose CASE tools used.
Programming in C++.
Analysis and prototyping for system port to VxWorks operating system.
Evaluation of Linux operating system.
Responsible for two engineers and two technicicans.
Microsoft Project used for project management, scheduling etc.
The system being developed was a Real-Time G.P.S. (Global Positioning System) tracking management and control system for seismic survey teams. Motorola 68K based system.
DSP component utilized LSI TI30/TI40xxx based DSP’s.
U.M.L. (Unified Modelling Language) was the design methodology used.
Implementation was in Microsoft Visual C++.
MFC based control and GUI development using OLE to link to the Mapinfo GIS engine.
Rogue Wave software tools used.
Platform was a Pentium II based PC using the Windows NT operating system communicating with distributed real-time modules.
A requirement of the system was that a fully OO approach was used taking advantage of software Design Patterns and code reuse in order to aid future development and maintenance.
The system was multithreaded and Unicode compliant to facilitate messaging systems being multilingual.

Principal Software Engineer
Syntron Europe Ltd.
United Kingdom / Paris France.

Syntron Europe Ltd.

Institut Français du Pétrole
Position: Principal Software Engineer and PRU (Portable Recording Unit) technical project lead for Syntron Europe.
Employed by Syntron Europe as Principal Software Engineer / Technical Lead for PRU I and PRU II projects. This was a joint international development project between Syntron Inc U.S.A. , Institut Français du Petrol, Paris France and Syntron Europe Ltd, England UK.
I was resident in Paris for two years until the completion of of the PRU I project; a 'ruggedised' PC suitable for real-time seismic data acquisition in extreme inaccessible environments where a portable PC has to be carried in by hand in order to acquire data.
I subsequently returned to the UK where I worked on the PRU II system, and as part of the PolySeis (Unix Solaris based acquisition system) development team.
PRU II was a real-time multiprocessor, multitasking seismic recording system utilising the X86 Pentium CPU on the ( then Intel now Radisys) MultiBusII bus architecture. The iRMX RTOS was used in conjunction with the Windows NT operating system.

Responsibilities included :-
Software system architecture analysis and design.
System real-time analysis.
DSP software development on the TI 30xxx series. TI SPOX DSP RTOS used.
FPGA design/programming (using VHDL), interface definition and communication protocols.
Definition and implementation of real-time test procedures.
Programming (C, C++, X86 and DSP TI30xxx assembler)
Research into use of AI neural nets and pattern recognition for evaluating seismic data.
Project management for Syntron UK and USA.
Responsible for coordination and liaison between engineering teams working in France and Britain.

PolySeis is a VME bus architecture using the Solaris Unix operating system.
Responsibilities included :-
System analysis and design (OMT).
Architecture design.
Implementation in C++.
Device Driver development for Unix Solaris environment.
Ethernet and TCP/IP communications development.

FEB 1994 to AUG 1994 Self employed contract Software Engineer.
Software development for Windows 386 PC based automatic test equipment (ATE).
Design utilised the IEEE 488 bus to test embedded PC boards being installed into aircraft for GEC Marconi.
Responsible for full software development life-cycle:-
Requirements, system analysis and design using Yourdan modelling.
Implementation was in C and assembler.
PLD design/programming.
Test procedures and implementation.
Design of product specific software for the PIC16C84 series MCU's.
Design of PC and PSION Organiser software to enable PSION Organiser to be used as field data acquisition device. Data to be downloaded to PC via serial link for subsequent data analysis on product lifetimes, usage and failure modes.
Development environment was on PC under Windows and MSDOS using Microsoft Visual C++ MASM assembler, and PSION Organiser proprietary programming language.

Senior Systems Development Engineer
NewPort Instruments Ltd.
United Kingdom.
Position: Senior Systems Development Engineer involved in design and development of software and hardware for military and commercial Real-Time battery power management systems.
Work involved evaluating and verifying current mathematical models of battery behaviour: analysing system requirements, software design, implementation and test of completed systems: customer liaison and project management.
Applications included mission critical systems such as military command vehicles, military bomb disposal robot, nuclear plant UPS battery backup control, and portable battery power management.
Development was implemented on the Motorola 68H705B Microcontroller.
Application of rule based knowledge system to intelligently control charging and power distribution.
Responsible for a team of two engineers and two technicians.

Control Systems Engineer / Lead
Consultants for British Nuclear Fuels Ltd. (BNFL) U.K.
Position: Control Systems Engineer/Project Lead.
Projects involved the following:-
Responsible for a team of three engineers.
Report and analysis of the THORP receipt and storage facility at BNFL Sellafielf UK. This involved an in depth analysis on the condition, suitability and safety of the existing hardware and software systems (Real-Time and mission critical) in use on the site which is a repository for incoming nuclear waste prior to processing. The analysis was to also recommend future design/development policy and strategy in order to update the systems and improve system maintenance in the future.
Systems examined included:-
386 processing systems networked over fibre optic link.
DEC PDP11 system.
Kent PLC control system.
PC(DOS and Windows) based control stations.
Other work for BNFL included :-
Instrument and control design for radiological detection and alarm equipment. Process control software. All phases included design specification and documentation preparation.
Technical analysis/evaluation of radio based Remote Operated Vehicle (hardware and software) used for decommissioning of hazardous areas.
Other work for WS Atkins included :-
Design of communications interface software to enable field acquired data to be downloaded to PC with FoxPro database used for subsequent analysis. C and X86 assembler used.
Design analysis of a 'Care Line' system to be installed for elderly sheltered accommodation. This involved analysis of current systems, production of report and recommendations for future development and expansion. System was based around a UNIX platform communicating over a small LAN to PC's which were interfaced via modems to on site alarms and Telecommunication equipment.

Ducker Engineering Ltd.
Position: Senior Control Systems Engineer.
Process control equipment.
Responsible for the companies Control Systems Department. This included all software and hardware development.
Duties involved :-
Project lead.
Software and hardware design for process control including conveying and handling systems, measurement of speed, humidity, temperature, position, PID control etc.
Micro-controllers, M68000,and X86 based systems. iRMX RTOS used.
PLC development (Mitsubishi and Allen-Bradley).
Responsible for a team of three engineers and three technicians.


Position: Design Engineer.
Hardware (analogue and digital) and software design for embedded MCU equipment in domestic appliances.
Motorola range of MCU's were used.