Embedded Software Engineer
Aerotek
Engineering
Raleigh
North Carolina
Raleigh
Embedded Software Engineer Job Description
We are looking for candidates that have working in new product development on programs that have lasted over several years. They must have worked on cross functional teams (HW, SW and Mechanical). Any experienced working on safety critical work with medical device background would be a great fit.
Responsibilities:
* Process and review system-level requirements, and distill them into software requirements specifications
* Design components of an embedded system based on software requirements
* Integrate applications using components developed in-house and 3rd party libraries
* Document the design using UML diagrams (collaboration diagram, sequence diagram, state diagram)
* Implement the code for embedded systems using the ARM Cortex-M platform, following our coding conventions
* Develop test plans, then test the implemented code using unit tests and integration tests
* Participate in design and code reviews
Required qualifications:
* 4+ years of engineering experience (or advanced degree plus 6 years)
* 4+ years of C/C++ programming experience
* 3+ years of RTOS (or bare-metal) applications development and debugging device drivers experience
* 5+ years working in cross functional teams consisting of discipline specific engineers, or comparable experience
* 2+ years of experience using ARM7TDMI or ARM Cortex-M microcontrollers (if the candidate does NOT have specifically ARM experience- they must have at least 6 other microcontrollers that they've used)
* Demonstrated experience with in-circuit emulators and trace pods
* Demonstrated experience with unit testing (at least one UT framework) and integration testing
* Demonstrated understanding of concurrency concepts and techniques (multithreading, locking, semaphores)
Desired experience:
* Demonstrated experience with one scripting language: Perl/Python/Ruby
* Demonstrated experience with network programming (IP, TCP, UDP and also IPC), including security aspects
* Demonstrated experience with communication protocols and interfaces (USB, UART, SPI, I2C)
* Demonstrated understanding of microcontroller architectures (ARM, PPC, MIPS, IA-32) and their constraints on application development
* Demonstrated understanding of fundamental algorithms (sorting, searching) and data structures (heaps, queues)
* Demonstrated understanding of system-level testing and integration
* Experience in a regulated industry (medical device industry/FDA, aerospace/FAA) is preferred
Demonstrated experience with GUI development QT or EmWin/StemWin/PEG/uc-GUI
About Aerotek:
Aerotek, headquartered in Hanover, Md., is a leading provider of technical, professional and industrial staffing services. Established in 1983, Aerotek is an operating company of Allegis Group, the largest provider of staffing services in the U.S. Aerotek operates a network of more than 200 non-franchised offices throughout the U.S., Canada and Europe. For more information, visit aerotek.com.
The company is an equal opportunity employer and will consider all applications without regard to race, sex, age, color, religion, national origin, veteran status, disability, genetic information or any other characteristic protected by law.
If you would like to request a reasonable accommodation, such as the modification or adjustment of the job application process or interviewing process due to a disability, please call 888-237-6835 or email accommodation@aerotek .com for other accommodation options. However, if you have questions about this position, please contact the Recruiter located at the bottom of the job posting. The Recruiter is the sole point of contact for questions about this position.
Raleigh Mechanical Engineer Job
Embedded Software Engineer Job Requirements