C++ Embedded Developer
at AI First, New-age Technology Company for the Digital
Location:Bangalore / Chennai
Type: Permanent
Company Type: AI / Digital Product Design Service based
Job Description
* Experience in C/C++ and have strong experience embedded application development and integration in Linux
* Good in creating unit tests, performing code reviews, optimizing performance and ensuring standards for maintainability
* Debugging, profiling, and performance optimization skills
* Have experience working in a fast paced Agile/Scrum environmentSimilar jobs
JOB DESCRIPTION:
Position : Linux BSP developer
Location : Bangalore
Experience : 3 to 10 Years
Requirements :
- 3 to 10 Years of proficiency working on C and Embedded Linux BSP (Board Support Package).
- Highly proficient and possess working in Linux kernel and Linux device drivers.
- Hands on experience on working on platform of MIPS, ARM etc.
- Working knowledge and strong understanding of Device Tree.
- Understanding of Make files, their customization and Cross Compilation and Shell scripting.
- Experience in working on U-boot.
- Video and Camera domain knowledge will be a BIG advantage.
- Knowledge of secure boot would be an added advantage.
Role and Responsibility:
Developing firmware for robust embedded system devices
Active involvement in designing architecture, communication protocols & selection of technology.
Designing test cases and active participation in testing
Team building and grooming new members.
Candidate Skill Set:
Thorough knowledge and hands on experience of Embedded C programming.
Experience of firmware development on multiple microcontroller families like AVR, MSP430, STM32,
Renesas, etc.
Strong programming & debugging skills.
Knowledge of IDE’s like Keil, AVR Studio, IAR, Cubesuit will be an added advantage.
Hands on experience of working on wireless communication (BLE, Wi-Fi, Zigbee, LoRa, GSM/ GPRS)
Qualification:
A team player with excellent analytical, problem-solving skills, with strong ability to quickly learn.
Passion for developing products with new technologies.
Bachelor's/ master’s degree in electronics related discipline or equivalent experience
Experience of 1-3 years
QUALIFICATIONS: B.E./ B.Tech. (Electronics/ Electrical/ Mechatronics/ Mechanical)
EMPLOYMENT: Permanent / Full Time
LOCATION: Ahmedabad
EXPERIENCE: 1 to 3 years within automotive industry / software development.
ROLES AND RESPONSIBILITIES
- Develop, Debug simulink/stateflow models according to functional, technical requirements, MAAB guidelines.
- Derive software requirements from system level requirements and establish bi-directional traceability within the models and generated code.
- Generate Code from developed models, generate test vectors, automate tests and document code reviews, test results.
- Automate the data exchange flow between MATLAB models, excel sheets, code testing using m-scripts.
SKILLS AND EXPERIENCE
- Experience in model based development and testing using Mathwork Tools such as MATLAB/Simulink, Stateflow, autocode generation tools Embedded coder or TargetLink.
- Good understanding of the Automotive software development cycle and tool chains
- Should possess a good understanding of C coding, m-scripting, with good debugging and software testing skills.
- Experience in developing MATLAB/ Simulink models from scratch for automotive applications.
- Should have experience in requirements management, and be able to write test cases from them.
- Experience in MBD testing such as MIL/ SIL/PIL.
- Good communication skills in English and Hindi Language.
- Experience in MATLAB verification and validation toolbox like Simulink Design Verifier, Simulink Test, Simulink Coverage is advantageous.
- Basic understanding of Control System Design and Electric Vehicles is a plus.
Job Description
Embedded Software/Firmware Design and Development on OS/Non-OS based platform
Necessary system architecture development and implementation
Device, sensor and gateway selection and integration based on industry use case.
Development on Image Analytics and Cloud/Platform integration
Development or integration of Cloud/Platform communication protocol
Technical Documentation and Testing of the developed system
Desired Skills, Knowledge& Experience
B. Tech/M. Tech/MCA with 8-10 years of industry experience
Strong programming skills in C/C++ and Python development in Linux
Experience in device or sensor communication interfaces (wired/wireless, short range/long range).
Experience of microcontroller and microprocessor.
Knowledge of IoT gateway firmware development, container, and OS hardening.
Experience in device communication protocol, Edge computing and processing
Competent in application development for Image processing, transmission, and storage
Good understanding and of programming primitives, data structures, multi-threading and memory management techniques
Strong command over complex sensor and hardware control logic to work seamlessly with edge devices or gateway
Proactive and Self motivated
Strong verbal and written communication skill
- Very strong knowledge in Embedded C including
- Data structures
- Function pointers
- Bitwise operations
- Experience with Finite State Machine (FSM) software design
- Required experience in AVR microcontrollers and projects to demonstrate it
- Familiarity with ARM 32 bit microcontrollers (Cortex M or any other)
- Required experience with common communication protocols like SPI, UART, I2C etc.
- Comfortable with reading datasheets and basic hardware schematics
- Comfortable with linux development environment including the use of GCC, gdb, makefile
Soft Skills
- Good communication skills
- Self-driven
- Passion for embedded engineering
- Work directly with the other Software/Firmware Engineers and Electrical/RF/Systems Test Engineers to write needed software
- Design and implement software platform for firmware on embedded CPUs with multiple OS such as Windows, Linux, FreeRTOS, TI-RTOS and embedded Linux
- Use compliers, debuggers revision control and automated build systems.
- Design/develop components of software platform for use by other developers to extend its capabilities and build custom applications/behavior on top
- Develop build methodologies, debugging tools/utilities
- Develop and release Software using Agile methodology
- Write unit tests and support continuous integration and automated test methodology
- Brainstorm for new ideas and ways to improvement product and processes
- Consult with peers for feedback during debug/testing stages
- Document and maintain design processes
RESPONSIBILITIES AND QUALIFICATIONS
Responsibilities
+ Design, build and maintain low latency, high-performance electronic trading platform components, with a focus on market data, exchange and client connectivity and risk controls.
+ Deliver continuous optimization for latency, scale and resiliency improvements.
+ Participate in system builds for various markets globally, have curiosity and interest in understanding market microstructure details, work closely with engineering, sales and product teams globally for successful delivery of projects.
+ Basic Qualifications
+ Bachelors or Masters degree in computer science or engineering or equivalent experience
+ 5+ years of professional experience developing deterministic high performance, low latency systems in python/C++ (counted in single digit microseconds)
+ Prior experience with FIX and binary exchange connectivity and market data protocols preferred
+ Strong knowledge of object oriented programming, data structures, algorithms and design patterns
+ Critical path analysis, performance optimization and hardware acceleration.
+ Linux systems programming experience including memory management, concurrent programming infrastructure, and the networking stack
+ Experience developing distributed architecture systems and messaging protocols
+ Strong analytical and problem solving skills
+ Comfortable in a fast-paced environment, self-motivated, results driven and commercially focused
Preferred Qualifications
+ Software development in python/C++ in the context of high performance (low- latency, high-throughput) real-time computing.
+ Familiarity with STL and C++11 language extensions, Boost
+ Network programming (sockets, TCP/UDP/Multicast protocols)
+ Multi-threading, concurrent programming
+ Intimate knowledge of compilers, flow of data at hardware level (memory/ caches, buses) + Some experience with FPGA or other hardware acceleration technologies
+ Experience processing large static datasets as well as high volume ticking data sources
+ Over 3 years' experience in Financial industry (Plus)
MINIMUM QUALIFICATIONS, Roles and responsibilties:
- BS/MS in Computer Engineering or related technology field
- 10+ Years of Experience in Software Development
- Experience in writing code for embedded systems, Proficient in C/C++ coding and intel DPDK
- Understanding of network interface drivers
- Experience with VMware, AWS, MSAzure, Google Cloud Platform.
- Knowledge of micro services and containerization
- Experience in building Networking Security Products
- Knowledge of Networking, TCP/IP Protocol Suite
- Design, code embedded features/solutions for the ShieldX Product
- Design write, extend and troubleshoot datapath code for switching, routing, NAT, TCP and TLS
- Work closely with other development , Product and Test Teams
- BS/MS in Computer Engineering or related technology field
- Excellent communication and Team player skills
- Should be a self-starter and be able to adopt to dynamic fast-paced environment.
- Able to work 40 hours a week
Hands on experience in developing low level software for microcontroller based environments with ARM/Cortex processors or similar.
must do a Project:Linux Device Drivers
Experience in all aspects of designing and developing SW in C/C++ language for embedded platforms.
Advance level knowledge of modern microprocessor architecture – MMU, Caches, Exceptions, interrupts, instruction sets etc.
Experience in working with multiple common h/w interfaces like USB, Ethernet, PCIe, DDR controller, DMAC etc.
Device driver or stack development in at least one major Operating system for at least one complex interface.
Experience in SW protocol stacks like USB, TCP/IP, File system etc.
Experience in Board Bring up, Device drivers, Firmware, Boot Loaders, Tool chains & Build systems.
Understand project requirements, customer use cases & specifications for features and convert them to standout software. Initiate and drive Test strategies and Test plan design for software.
Key Skills
Linux Device Driver , DSP knowledge preferred
Required Experience and Qualifications
B.Tech/B.E