You are on page 1of 10

Embedded Systems Software Engineer Responsibilities

Embedded systems software engineer is responsible for designing the embedded systems and installing them in machines and tools. They design and develop the software that controls the processor (micro-controllers and digital signal processors) of the machine. These systems provide functionality to the machines. The work of an embedded engineer is considered as important and challenging, since their efforts give utility to a machine. If you are keen on handling embedded systems software engineer responsibilities, then you need to be aware of the requirements, duties and career scope of this profile. Here are a few details for your assistance. An embedded system refers to a computerized system that controls the functioning of a specific machine. Every machine is built with a specific purpose. The embedded software functions like the brain of the machine and controls the tasks that the machine is designed to perform. The micro-controller is a chip that has the memory to store program data. It receives the commands, operates as per the inputted data and provides relevant results. Some popular examples of appliances that use embedded systems are digital watches, cars, robots, toys, electric appliances, etc.

Understand the client requirements and write down the software details Study the specifications provided by the clients and seek clarifications for the doubts raised Submit the price quote and the details of the time required to execute the plan Receive the client's approval for the price quote and product planning and then begin work Draft a flow chart to plan and organize the methods by which the software would deliver Translate the software requirements into software functions by coding the program Design and develop the software based on the designs approved by the review committee Install the software in the system and test for efficiency and productivity Ensure the system responds with an error message if a wrong command is typed in Debug the system to remove the anomalies and inconsistencies Upgrade the software and modify its features to meet the changing client demands Troubleshoot the system in times of system failure or breakdown Coordinate with engineers from other disciplines to develop the end product of the requisite standards Conduct meetings with the clients on monthly basis to discuss project progress Provide satisfactory answers to the client queries, suggestions and complaints Customize the software to suit the product nature, size and expected functioning

An embedded systems engineer works in liaison with other engineers. The team of engineers is responsible to deliver the end product to the client. The embedded engineer handles the software development part alone. Hence, to make sure that the entire product delivers as promised, he has to collaborate work with the electrical engineers or mechanical engineers from time to time. Embedded engineering is a field that involves interaction with other disciplines and hence, little knowledge about other engineering profiles is always an added advantage.

Candidates require bachelor's degree in computer science, electrical engineering, software development, embedded software, etc. They require exceptional programming skills and competence in using software tools. Also, the knowledge of operating systems and of the interaction between hardware/software is important for this profile. The attributes of problem solving ability, analytical skills, proactive behavior and adaptable approach are important at this position. This discipline of engineering provides scope for creative minds and posses challenges to perform quality work. The job scope for embedded engineers is bright since they find job opportunities in several fields. Both private and government organizations employ them. They find work in military units, intelligence services, manufacturing units, IT companies, science research institutes, medical research institutes, etc. Hence, since the job opportunities for embedded engineers are available in considerable numbers, it is attracting a lot of attention from young graduates. This was a quick overview of the embedded systems software engineer responsibilities, requirements and career scope. We hope this information will help all the job seekers in finding information vital to the career needs.

Resume of David Weber david@david-weber.com OBJECTIVE Technological opportunity that promotes development of current and new skills in a leadership or individual contributor role. SKILL SUMMARY Creative Software/Hardware/Firmware Engineer with broad-based experience, including extensive experience in embedded microcontroller-based system software architecture/design, team/technical leadership, multitasking embedded real-time systems, device drivers, communication protocols, medical devices, multi-axis robotic systems, electro-optic systems, control systems, safety systems, automated test and measurement systems, client/server systems, advanced web site development, on-chip ROM/bootloader development, ASIC SoC and PCB bring-up and debug, API implementation, chip/board support package development, hardware/software interaction, and use of logic analyzers and oscilloscopes. Extensive experience in process-driven software development. Excellent oral and written communications skills. Exceptional system design and documentation skills. DEVELOPMENT LANGUAGES/TOOLS/OPERATING SYSTEMS/TARGET PLATFORMS/COMMUNICATION PROTOCOLS

C C++ C# ARM Assemb ly

Green Hills Software Code Composer GCC

Linux HP-UX AIX RTOS ThreadX GHS

68360 MPC860/MPC8 66 TI TMS320C203 DSP

USB TCP/IP RS232 RS422/48 5 GPIB

TI DSP Assemb ly 68K Assemb ly HTML Perl PHP Python bash MySQL

IAR Embedded Workbenc h C++ Builder Visual Studio Rhapsody UML Subversio n Git CVS Source Safe Clear Case

Integrity pSOS Windows

ARM926 ARM968 ARM11 STMP3600 AL5300/AL535 0 HX3100 DSP ARM Cortex A8 ARM Cortex M4 Beagleboard/bon e

SPI I2C Ethernet HDLC NFC

PROFESSIONAL EXPERIENCE 04/2012 - Present - Abbott Diagnostics, Irving, TX Principal Engineer - New Product Development Firmware development for Cortex M4 controller boards. 01/2011 - 04/2012 - Avnet, Inc., McKinney, TX Team Lead - Software Application Engineering Bridging the software engineering knowledge gap between semiconductor suppliers, FAEs, and customers. Focused on Embedded ARM/Linux on Freescale, TI, Marvell, and Atmel processors. 12/08 - 01/2011 - Coherent Logix, Inc., Austin, TX Senior System Software Engineer Developing embedded Linux servers and command-line & GUI clients for JTAG-like debugger probe based on iMX31 (ARM11) processor using C, C++, and Java. System software architecture for Software Defined Radio (SDR) development platform for Coherent Logix's massively-parallel DSP architecture. Created PHP scripts to generate register access data structures and C source code enabling registers to be read by name from a command interpreter. Responsible for low-level hardware access functionality for diagnostic application, as well as components of an API library. Developed C++ client/server socket classes, SPI Flash progromming utility, C# client to test server connect/disconnects, .elf file parser/loader that loads code/data into 100 DSPs and 121 memory banks via JTAG interface, and a compressed bootloader and command interpreter for Space Station radiation experiment/test system. 06/08 - 12/08 - Qualcomm, Austin, TX

Staff Engineer C/C++ Library devleopment for VLIW DSP. Created Python scripts to populate multilib libraries. Ported various open source libraries to VLIW DSP. 10/06 - 06/08 - Alereon, Inc., Austin, TX Senior Software Engineer Developed software for Ultra-Wideband (UWB) SoC for the WiMedia and Wireless USB (WUSB) market. Responsible for on-chip ROM bootloader development for ARM968-based SoC, including WHCI protocol (over PCI Epxress), USB High Speed Device and SPI interface driver development, ROM Monitor over RS232, and SPI flash boot manager, using ARM assembly and C. Responsible for ROM RTL simulation creation, execution, and acceptance testing. Created web-based tools to auto-generate register access definitions (header files, html files, and debugger files) using PHP scripts. 7/04 - 10/06 - SigmaTel, Inc., Austin, TX Senior Embedded SW Application Engineer Responsible for development and support of a Linux board support package and corresponding web site, and an OS-less chip support package for SigmaTel's ARM926-based STMP36xx multimedia SoC. Responsible for kernel configuration, cross tool chain and root filesystem creation, bootloader development, debugger hardware evaluation and selection, and device driver development for audio input, audio output, and low-resolution ADC devices. Responsible for support of international customers, partners, and design houses. Senior System Software Engineer Designed and developed ROM startup code for STMP3XXX using ARM assembly and GHS Multi. Developed validation test code for Realtime Clock and UART blocks STMP3600 SoC. Provided demonstrations and training to SigmaTel-Korea Application Engineers and several key customers. Ported 100+ validation test cases to the GHS environment for initial STMP3600 chip bring-up. Designed and developed External Memory Interface (EMI) Hardware API for STMP3600 SDK. 8/01 - 7/04 - Emerson Process Management, Inc., Austin, TX Principal Software Engineer Lead Engineer responsible for the concept, specification, design and development of the peer-to-peer communication subsystem for a safety-certified multi-processor industrial control system utilizing the Motorola MPC866 processor, Green Hills INTEGRITY RTOS, C/C++, and Rhapsody UML. Conceived remote peer communication system using Ethernet protocol over fiber, which enabled 32 interconnected backplanes, each with up to 32 local peer bus controllers. Responsible for the evaluation of tool chains (compiler, linker, debugger, and OS), board startup and debug activities, and HDLC device driver development. Responsible for design and development of a deterministic time division multiplexing (TDM) protocol for sharing the serial communication bus. Designed and developed startup and run-time synchronization algorithms allowing 32 devices to broadcast every 50 ms. 3/99 - Present Owner - Domain-Zone.com, Southlake, TX Responsible for all aspects of company creation and management, including business, financial, and marketing plans, technical implementation, and customer support. Successfully built business to 350 web hosting customers.

Domain Registration Project Developed domain registration service to complement web hosting service. Successfully built customer base to include over 12,000 registered domain names. Web Hosting Project Responsible for configuration of Linux Web Servers, including Apache, Sendmail, Bind, Proftpd, MySQL, and PHP for use in a virtual web hosting environment. Developed multiprocess, Web-based Control Panel (using C, PHP, bash scripts, IPC) for managing individual virtual domains. Developed POP3 daemon server (using C and TCP/IP) to support mail retrieval from email accounts associated with each virtual domain. Developed web-based account management and billing system using PHP and MySQL. Responsible for direct customer interaction and support. 5/95 - 1/00 Owner/Consultant - Software Insight, Inc., Southlake, TX Simulation Project Developed GUI for medical instrument simulator using Visual C++ and Rational Rose UML. Temperature Controller Project Lead Engineer responsible for development of embedded real-time temperature control system using the TMS320C203 DSP, TI's C Compiler and Debugger, and Code Composer. The system featured 32 channels of control, downloadable flash, dynamic memory remapping, ASCII RS232 command interface, programmable control parameters, PID control algorithm, and alarm generation. Developed Windows flash loader using Borland C++ Builder. Device Driver Project Responsible for development of 68360/pSOS device drivers, using C programming language, for assorted devices used in medical diagnostic products, including RS232 and RS485 barcode readers, RS232 temperature controller, ISA Bus liquid sense board and pressure monitoring boards. Designed FPGA to interface between the PC parallel port and the BDM port of the 68360 using Altera tools. CPU Diagnostics Project Responsible for initial bring-up and debug of Motorola MPC860 and 68360 communication processor boards. Developed internal and external resource initialization sequence. Developed boot-up diagnostics to test internal SRAM and external Flash and SDRAM, internal and external communication hardware, including UARTs, SPI, I2C, Ethernet devices, and digital IO interface FPGA, using assembly and C programming languages. Prototype Medical Instrument Project Lead Engineer responsible for developing a PC-based medical instrument prototype, including requirements analysis, design, coding, and support. System software activities included device drivers for OMS motor indexer, Intel's 8254 counter timer, 8255 programmable peripheral interface, a 4 channel 16550 asynchronous communications controller, and a custom dual-wavelength optical measurement system. Defined and implemented command language interface (CLI) to allow users to manipulate the prototype's robotics and measurement systems. Designed and developed Windows GUI interface to allow users to create and execute CLI scripts. 12/94 - 5/95 Consultant - Burlington Northern Railroad, Ft Worth, TX Responsible for the configuration of High Availability Cluster Multi-Processing (HACMP)

software and system administration for AIX RS/6000 cluster. Performed system administration function including custom korn shell script programming. Designed and developed Motif-based file manager and source code editor using C++/AIX. Designed and developed error handling classes for client/server communication system using C++/AIX. 9/94 - 12/94 Consultant - Bell Northern Research, Richardson, TX Responsible for call processing software requirements analysis for CDMA project using Northern Telecom's DMS-MTX cellular switching system. 2/94 - 9/94 Lead Analyst - Sprint, Irving, TX Lead Engineer responsible for switch interface improvement project, including development of machine-machine interface specification and prototype for DMS-250 telephone switching system. Created architecture for UNIX workstation development/production environments. Gained broad understanding of telephony concepts and communication protocols (Ethernet and TCP/IP). 1/87 - 2/94 Senior Software Engineer - Abbott Laboratories, Irving, TX Factory Automation Project Lead Engineer responsible for design and development of automated test equipment for medical diagnostic instruments, both at the instrument and subassembly levels. Led group from concept through delivery and support, including responsibility for initial concept, selection of hardware platform and software development tools, feasibility analysis/simulations, software development plan, project schedules, cost estimates, design, coding, testing, executive presentations, hardware/software procurement, software release management, validation, and factory support. Managed $500K project budget. The test stations were based upon networked HP9000/7xx workstations, with software being developed using C, C++, HP-UX, X-Windows/Motif, TCP/IP. Designed and developed Motifbased GUI, inter-process communications, statistical process control charts, RS232 communications, ASTM packet-based communication protocol, instrument test routines, stepper motor indexer interface, and terminal emulator. Reliability Project Lead Engineer responsible for design and development of reliability test and data acquisition systems for electro-optical and multi-axis robotic systems. Systems included real-time control software, GUI class library, icon editor, RS232 serial communications, device drivers for digital I/O board, motor indexer board, touch screen using C++ programming language. Test Station Project Responsible for design and development of medical instrument test systems including control and data collection software for robotic and electro-optical subsystems used in medical diagnostic instruments. Software was developed using the C programming language. Responsible for entire project from concept through delivery and support. The test stations were based upon stand-alone PCs utilizing touch screen, mouse, barcode wand, GPIB interface to voltmeter, photometer, high voltage power supply, and digital/ analog I/O modules. Developed custom optical system and interface circuitry for programmable lamp, thermo-electric cooler servos, lamp and solenoid control/drive, transconductance amplifiers. Other Activities Redesigned micro-stepping motor driver board for the IMx immunoassay instrument.

Designed motor controller/driver board for various assembly/test fixtures. Performed general electrical engineering duties in a sustaining environment. 6/86 - 1/87 Junior Electrical Engineer - Quest Medical, Carrollton, TX Designed IV pump power supply test fixture. 10/84 - 5/85 Electronic Engineering Technician - Mostek, Carrollton, TX Troubleshoot/repair lasers, memory testers, auto-probers, and wafer handlers. EDUCATION: University of Texas at Dallas, Richardson, TX Bachelor of Science in Computer Science, 1991 Iowa State University, Ames, IA Undergraduate studies in Electrical Engineering Hawkeye Institute of Technology, Waterloo, IA Associate of Applied Science in Electronic Engineering Technology, 1984 PROFESSIONAL REFERENCES: (available upon request) Aug, 2012

Embedded Software Engineer, SONET Skills Required:

SONET, OTN, SW Embedded Engineer, OO, traffic switching, Network Processor, packet switching, Linux, C/C++, Python, Agile Dev., SONET/SDH, OTN, low-level systems
Job Description:

Would you like the opportunity to work in a technology driven company that continually innovates as it builds a successful business? If so, please read on! Located in beautiful Sonoma County, CA, we are a pre IPO start-up who is going through unprecedented growth. Since having high level engineers are essential to our continuing quality of work, we currently have a need for a world-class Embedded Software Engineer with SONET and OTN experience who is interested in working with a cross-functional team to develop embedded hardware and software We are looking for a Software Embedded Engineer with advanced computer science skills to work in a fast-paced, dynamic team environment that applies agile development concepts. You will be responsible for the software to support our high-density SONET and OTN modules.

*** We will provide relocation assistance to CA*** What you need: - Must be able to relocate to Sonoma County (we will provide relocation assistance) - Experience in SONET or OTN product development - Experience with Linux - Familiarity with object oriented programming - Ability to deliver high-quality code in a fast paced, dynamic team environment - BS or better in Computer Science, Engineering or related field What's in it for you: Competitive starting salary - Comprehensive benefits package - Stock options (we are a pre IPO start up) - Huge growth opportunity - Exciting projects! - Working with people who excel at building advanced network systems.

Summary Twelve years industrial experience in software development. M.S. in Electrical Engineering with Computer Science minor. Skills Design, code, optimization, and unit and integration test of real-time embedded Specialty: software. C and C++ : Borland Turbo C++, Gnu gcc, Microsoft Visual C++. Ada : Rational Apex, TLD, Verdix, Gnu Gnat. Languages: assembly : Intel 8051 (Keil), 1750A (TLD), Motorola 6800, 6809. Unix tools : sed, awk/gawk, sh, grep, etc. OS's: Unix (SunOs, Linux, Solaris), DOS, Windows, X Windows. Logic analyzers, SBS and Ballard 1553 analyzers, oscilloscopes, EPROM burners, Equipment: Federal Systems' ASPS and CCP flight computers, etc. Experience Senior Software Engineer and Intelsat-IX ACS Software Tech Lead, subcontracted to Space Systems/Loral through Aerospace Consulting Group, Palo Alto, CA, 11/1995-5/2002. Responsible for design, code, real-time optimization, unit test, troubleshooting, patching, and documentation of satellite flight software for various applications on Loral's FS-1300 series of satellites, using Ada (Rational Apex, TLD 1750, and Verdix compilers under Unix), assembly (8051 and 1750A), C, and Unix toolscripts. Projects included:

Coded all 8051 firmware on 1553-to-RS-485 command/telemetry hub for Satmex-6 and ipStar; sole 8051 firmware engineer on this project. The 8051 is an 8-bit microcontroller, and the variant used had 256 bytes of RAM.

Coded and unit tested with Keil compiler/assembler, integrated and tested on lab hardware, hand-optimized for time and space, and verified worst-case timing with oscilloscope. 8K lines of flight code and 14K lines of test code, most of it in 8051 assembly and the rest in C. Documentation set (SRS, SDD, VDD) in Microsoft Word (2000-2002). Major upgrades for Intelsat-IX telemetry and solar array drive software, including telemetry changes to accommodate splitting of flight computer. Tested on simulators and hardware targets; advised/troubleshot integration test at satellite manufacturing level. Advised engineers, testers, and customer on telemetry, software environment, and test equipment. Supported later programs that were based on Intelsat-IX design (1996-2002). Major upgrades for MTSAT attitude control software (1996-1998). Updates to command software for Tempo, Panamsat-6, Mabuhay/Telstar/Apstar, and Intelsat-IX (1995-1996). Updates to attitude control software for Chinasat-8, MCI-2, Telstar-7, Eurostar, MTSAT1R, etc. (1996-2002). Development of code generators, code patch tools, and many other Unix toolscripts, using shell, awk, and sed scripts, including: o A coverage analyzer that merged 8051 simulator address trace output with 8051 flight build disassembly listings and used unit and integration tests for inputs. Modified a copy of the freeware 8051 simulator s51 (built with gcc and run under Unix), to obtain address trace information. o Pre- and post-processors for the Rational Apex Ada coverage analyzer, to permit using unit and integration test scripts as input data to the analyzer and to merge Apex coverage analyzer output with Ada source listings. Merged coverage analyses for all Intelsat-IX flight software applications. o An instruction trace tool that merged logic analyzer address bus trace output with disassembled 1750A flight build, to pinpoint cause of spontaneous reboots that were occurring once every few months in the satellite assembly area (the cause was a hardware error in vendor's flight computer, missed by their testing).

Consultant, Booz Allen & Hamilton, Inc. , Houston, TX, 7/1992-10/1993, 2/1994-11/1995. Performed design, code, unit test, and integration test of simulation software used for astronaut training, for the following projects:

NASA Space Station Training Facility (SSTF), subcontracted to Hughes-Link (1/199310/1993, 6/1994-11/1995). As part of the Onboard Computer Systems (OBCS) working group, designed, coded, and tested several class objects for the firmware controller 1553 interface in the simulation of the Station's 1553 network; integration tested on SGI Challenge targets (including 1553 bus analysis). Satellite Ground Station Training System, Booz Allen & Hamilton (2/1994-7/1994). Ported satellite operations manual to real-time C for training model of customer's satellite, including sensor, controller, and actuator models. NASA Shuttle Mission Training Facility (SMTF) , subcontracted to CAE-Link (7/19921/1993).

PDR design for training model of the entire Space Station Data Management System, to be run on the Shuttle Mission Simulator, including all on-orbit computers and networks. Also coded and ran filters for comparing actual Shuttle robotic arm data vs. training simulator models, with Turbo C++.

Contract programmer, Bridgeway Software, Inc. , Houston, TX, 5/1992-7/1992. Updated customer service dialogs, etc., in Bridgeway's corporate secretary database products, with Microsoft Visual C++, Windows SDK, and Borland Paradox Engine. Education Texas A&I University, Kingsville, TX. M.S. in Electrical Engineering, C.S. Minor, May 1992. B.S. in Electrical Engineering, C.S. Emphasis, December 1988. Neural net flight control simulation in C++ (M.S. thesis): Designed, coded, and tested 12K-line OOP NN/MRAC controller model, with NASA F-8 aircraft math models, in Borland Turbo C++. 8051-based home security system (senior project): Designed, coded, and tested all firmware for the project, mostly in BASIC with some 8051 assembly language, on a Ciarcia Circuit Cellar 8052AH-BASIC development board. Analyzed the board's functionality for the workgroup. Lab instructor: For 3rd- and 4th-year digital systems and control systems labs, composed and graded lab problems and supervised lab sessions, on Motorola 6800 development boards and an analog computer. High school summer project: Coded Conway's Life cellular automata algorithm in 6809 assembly, on a TRS-80 Color Computer with 4KB RAM and an audiocassette storage drive.

You might also like