Embedded Engineer

5 months ago

Ahmedabad, Gujarat, India MachineWiz Full-time
Department IT Designation Embedded Engineer Location Ahmedabad Educational Qualification BE (EC), BE (Electronics & IC) Required Experience 1-2 Years Travel As per business need If you are a graduate, we invite you to join our expanding team as Junior Embedded Software Engineer. Roles & Responsibilities
• Lead a team of up to 2 engineers.
• Develop/modify/adapt Linux device drivers and board support packages for new processors, memory chips, I/O chipsets, I/O interfaces and boards, e.g. x86, ARM, FLASH, DRAM, Ethernet, Wi-Fi, ZigBee, 2G, 3G, CAN, SPI, I2C, I2S, GPIO, USB and PCIe.
• Develop applications that demonstrate and validate new embedded chipsets and boards.
• Code in C, C++, PHP, Python and sometimes assembler and machine code.
• Negotiate technical requirements with customers and contributors.
• Architect and design hardware solutions. Document the specifications.
• Debug complex code at run-time using JTAG or ITP debuggers.
• Profile and optimize the run-time performance of code.
• Create and execute an automated unit test, integration test and system test scripts.
• Ensure software meets functional, performance and any standards-based expectations. Skill Set
• Minimum 2 years experience in the design and development of software through all stages of the software development lifecycle i.e., from concept through delivery to the customer.
• Architecture and design of software solutions using formal methodologies, e.g. UML.
• Advanced C coding experience for real-time embedded software solutions.
• Linux device driver, kernel and user space application development.
• Multi-thread, multi-process, multi-core processor application development.
• Expert in communications networking protocols, e.g. TCP/IP, UDP, SIP, RTP and Ethernet.
• Run-time debugging, performance profiling and performance optimisation of code.
• Strong understanding of electronics and computer architecture fundamentals, e.g. microprocessors (ARM, x86), I/O chipsets, memories, digital buses and I/O interfaces.
• A proactive problem-solver who works well within a team to get complex work done in a professional and timely manner.
• Coding in C++, PHP, Python, Perl, Linux Shell Script (e.g. Bash) or assembler.
• Programming for other embedded real-time operating systems, e.g. VxWorks, QNX.
• Knowledge of security, cryptography and authentication protocols, e.g. SSL, IPsec, AES, SHA.
• Experience of software version control systems and bug trackers, e.g. Subversion, GIT, Trac.