Qualifications for Firmware/Embedded Software Engineer
Educational Requirements:
Bachelor’s Degree (or higher) in Computer Science, Electrical Engineering, Computer Engineering, or a related field.
Master's degree in a relevant field is a plus.
Technical Skills:
Embedded Systems Development:
- Proficiency in embedded C/C++ programming languages.
- Hands-on experience with real-time operating systems (RTOS) (e.g., FreeRTOS, embOS).
- In-depth knowledge of microcontrollers (e.g., ARM, AVR, PIC, etc.) and microprocessors.
- Experience with hardware/software integration.
Firmware Development:
- Strong understanding of firmware development cycles, including bootloaders, device drivers, and hardware abstraction layers.
- Experience in memory management, interrupt handling, and low-level peripheral interfacing (e.g., UART, SPI, I2C, GPIO).
Debugging and Optimization:
- Proficient with debugging tools (e.g., JTAG, SWD, oscilloscope, logic analyzer).
- Ability to optimize code for performance and memory usage on embedded platforms.
- Familiarity with low-power design principles.
Version Control and Build Systems:
- Experience with Git or other version control systems.
- Familiarity with build systems like Makefile, CMake, and Automake.
Communication Protocols:
- Knowledge of standard communication protocols (e.g., UART, SPI, I2C, CAN, and Ethernet).
- Understanding of higher-level communication protocols like TCP/IP, HTTP, Bluetooth, Wi-Fi.
Hardware Knowledge:
- Experience working with sensors, actuators, and interfacing with analog-to-digital and digital-to-analog conversion.
Software Development Practices:
- Strong knowledge of software design patterns, modularization, and code maintainability.
- Familiarity with unit testing, test-driven development (TDD), and CI/CD pipelines.
- Experience with debugging and profiling tools such as GDB, Valgrind, and Static Analysis tools.
Soft Skills:
Problem-Solving Skills: Ability to break down complex issues, perform root-cause analysis, and devise effective solutions for hardware/software integration problems. Attention to Detail: Strong attention to detail with a focus on delivering high-quality, reliable embedded software. Teamwork and Collaboration: Ability to work in cross-functional teams involving hardware engineers, QA, and other software developers. Communication: Clear communication skills to document technical designs and explain complex concepts to both technical and non-technical stakeholders.
Experience Requirements:
Minimum 2-7 years of professional experience in embedded software/firmware development for hardware-based systems. Prior experience working in IoT devices, consumer electronics, automotive systems, or industrial automation is an advantage. Knowledge of industry standards and regulations (e.g., ISO 26262, IEC 61508 for safety-critical systems) is beneficial.
Carrier is An Equal Opportunity/Affirmative Action Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability or veteran status, age or any other federally protected class.
Job Applicant's Privacy Notice:
Click on this link to read the Job Applicant's Privacy Notice