
Senior Software Engineer
at Its a Level 5 Product and Services Automotive Company

Job Description
-
Able to design and architect product solutions.
- Sound knowledge in OOPS concepts and OOAD
-
Knowledge on C++ 11/14, STL and BOOST libraries usage is added advantage
-
Implementation of automated testing & unit test framework
-
Know how on profiling tools & debugger
-
Developed software with interfaces to low level system and hardware resources
-
Excellent communication skills, written and verbal
-
Team player & high review aspects with CPP Core guidelines
-
Requirements Engineering and Bug Tracking tools
-
Thorough knowledge in Build and Release. Good exposure on GIT, Gerrit, SVN and Jenkins
-
Should be a quick learner and can take on things independently
-
Autosar / Automotive Domain knowledge would be a plus
Qualifications
BE/ BTech. in CS/IT/ENC/EEE
Additional Information
Having 4 to 8 years of experience

Similar jobs

Requirements:
- Strong C/C++ programming and debugging skills in a Linux environment.
- Experience with Design Patterns, ACE Framework, and Socket Programming.
- Experience in Multi-threaded software development for Multicore Architectures.
- Experience in VOIP application development, preferably on client/server platforms.
- Understanding of system performance and scaling.
- Experience in embedded software development.
- Excellent problem solving/debugging skills design, develop, troubleshoot and debug.
- Software programs for databases, applications, tools, networks etc.
Primary skills:
At least 3+ years of working experience on embedded firmware development
- Experience in multithreaded programming, network programming (wired and wireless protocols), real-time programming, cross-platform and cross-language development
- Hands-on experience on driver development for various sensors
- Working knowledge of communication protocols like UART, I2C, SPI, USB, Ethernet, etc
- Product development experience with range of microcontroller/microprocessor architectures, adoption of bare-metal, RTOS and Linux operating systems on new platforms
-Hands-on experience on software development in Bluetooth domain is added advantage
- Experience with hardware lab equipment such as digital scope, logic analyser and JTAG
- Understanding of embedded development constraints and system performance
- Experience with programming in C/C++ and Embedded C

- Developing HMI application in Qt or similar UI frameworks
- Develop C++ or Rust backends for the HMI
- Understand and optimize potential performance bottlenecks

Responsibilities:
- Software Development with C++ for Autonomous drive project.
- QT Library (no GUI features)
- Object Oriented Analysis / Object Oriented Design
- C++ Template implementation
- C++17 specifics like “std::optional”
- Macro implementation
- Implementation of Clean Code
- Static Code Analysis
- CMake
Qualifications:
- Excellent GIT knowledge especially how to merge, Rebase
- University degree in Electrical/Electronic engineering, Computer Science or similar
- Minimum 1 to 5 years of embedded software development experience on Yocto Linux based projects in automotive domain
- Expert in C++ programming
- Strong debugging skills
- Good communication skills
About Apexon:
Apexon is a digital-first technology services firm specializing in accelerating business transformation and delivering human-centric digital experiences. For over 17 years, Apexon has been meeting customers wherever they are in the digital lifecycle and helping them outperform their competition through speed and innovation. Our reputation is built on a comprehensive suite of engineering services, a dedication to solving our clients’ toughest technology problems, and a commitment to continuous improvement. We focus on three broad areas of digital services: User Experience (UI/UX, Commerce); Engineering (QE/Automation, Cloud, Product/Platform); and Data (Foundation, Analytics, and AI/ML), and have deep expertise in BFSI, healthcare, and life sciences.
Apexon is backed by Goldman Sachs Asset Management and Everstone Capital.
To know more about us please visit: https://www.apexon.com/" target="_blank">https://www.apexon.com/
Desired Candidate profile:
- 5+ years of Embedded/Linux SW Development relevant Experience in Embedded C++.
- Expert knowledge in writing software for embedded Systems (Embedded C++ language).
- Experience on OTA would be an added advantage
- Work experience in software development on bare metal, RTOS or Internal Linux.
- Work experience in developing firmware for 8/16/32 bit microcontrollers (ARM, RISC etc)
- Good understanding w.r.t usage of 1. RTOS like MQX.
- Bootloader and software update concepts.
- Communication protocols like TCP/IP,MQTT.
- Socket programming in Linux environment.
- Good knowledge on protocols like (RS485, SPI, I2C, ADCs, CAN, LIN)
- Knowledge of Blue-tooth communication protocols for BLE 4.2/5.1.
- Proficient in the use of embedded SW Development tool chain (Flash/ debug tool chain, IDE).
- Version Control Systems –GIT
- Should have detailed knowledge on microcontrollers/microprocessors
- Experience in scripting languages like Shell / CAPL / Make/Python etc.
- Experience in using tools like Logiscope / Function Generator / Oscilloscope, etc.
- Good knowledge in reading schematics and datasheets.
- Excellent analytical skills and problem-solving skills.
- Strong communication and interpersonal skills.
- Must be a self-starter.
- Ability to work as part of a dedicated project team and independently

We are searching for a talented embedded developer to join our team. You will be working along-side with other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential.
The candidate should be proficient in C and C++ and possess detailed knowledge of microcontroller protocols. The candidate would be responsible for,
-
Design and implement software of embedded devices and systems from requirements to production and commercial deployment.
-
Design, develop, code, test and debug system software
-
Review code and design
-
Analyze and enhance efficiency, stability and scalability of system resources
-
Integrate and validate new product designs
-
Support software QA and optimize I/O performance
Mandatory Skills:
-
Experience in C++ based applications development for embedded system applications
-
Solid understanding of OOPs, SOLID Principles, Design Patterns.
-
Drivers/BSP development on peripherals like ADC, SPI, I2C, UART etc
-
Firmware development experience on ARM Series of microcontrollers
-
Strong knowledge of hardware architecture such as ARM, MIPS, and x86.
-
Familiarity with hardware protocols including USB, UART, I2C, and SPI.
-
Familiarity with OS platforms such as Linux, Unix, and RTOS.
-
Knowledge on different communication protocol like Wi-Fi, Zigbee, Bluetooth and sub–GHz.
-
Basic Hardware knowledge and debugging skills
-
Strong analytical and problem-solving abilities.
-
Strong organizational and project management skills.
-
Strong knowledge of SDLC, test cycle and logical thinking on various complex use case call scenarios.
-
The ability to keep abreast with the latest advancements in technology and techniques.
Desired Skills:
-
Knowledge on IoT based systems
-
Preferably worked on a Linux based project.
-
Ability to lead the team & handle the project and own all technical aspects of design and development of systems from scratch.
-
Meticulous and very organized.
-
You will not hesitate to ask questions and call upon the knowledge of your coworkers to make sure you produce the best possible documentation for our customers.
-
Worked on 3-5 project from starting of project to delivery of project (Depending on experience)


- 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


ROLES AND RESPONSIBILITIES:
• Articulate complex problems, communicate viable architecture and design approach in a clear and concise manner.
• Thrive in a collaborative team environment and work with ambiguous product requirements.
• Evaluate opensource technologies, development stack and strive for new learning, continued growth by applying industry best practices and processes.
• Provide thought leadership in cloud based VoIP(Voice/WebRTC) services and bring your passion for technology to motivate and inspire on a day to day basis.
SKILLS REQUIRED
• 4+ years experience in building highly available, fault tolerant and scalable real-time communications(Voice and WebRTC) systems in the cloud (AWS preferred).
• Demonstrated history of building complex, high-performance applications in C/C++.
• Proven expertise in network and system performance optimizations(including kernel, containers and virtualization technologies).
• Proficiency in telecom protocols (SIP, SDP and RTP/RTCP) and internet protocols(IPv4/IPv6, TCP and UDP) is desirable.
• Deep understanding of all aspects of WebRTC from audio codecs, to networking (ICE, STUN, TURN) up to server side components needed to deploy the technology at scale (SFU, MCU, Relays) and network security(TLS, SRTP).Strong analytical, problem solving and troubleshooting skills.
• Programming experience with Python, Golang and Lua will be a plus.
• Prior experience working with Asterisk, FreeSWITCH, RTPEngine, Kamailio, or OpenSIPs will be a plus.



