Senior C++ Developer
We are ONE HARMAN. We are greater than the sum of our divisions or brands. We proudly talk about our many iconic brands and describe how our technologies are transforming the car, the workplace and everywhere in between. We work hard. We create useful, playful, beautiful things. We strive for excellence and we aim to win as a team. No matter the position, every employee at HARMAN is expected to demonstrate our core competencies: leadership, change-orientation, collaboration, judgment and a results-driven mindset. At HARMAN, we expect brilliance. You can expect a career full of brilliant possibilities.
We are looking for a Senior Software Developer C/C++ in Telematics team and you will have the opportunity to develop innovative software for automotive industry. Telematics exposes the internal car ecosystem to the Internet: the car becomes an element of the Internet of Things (IoT), offering a new level of access to car’s functionalities and a platform to build additional features in areas such as safety, security, comfort. You will work with concepts like Telematics, 5G and V2X (vehicle-to-everything).
You will be our next colleague responsible for developing the software components within focus on Networking.
- Review Software specifications, Architecture and Design documents for the system
- Study and understand customer and internal specifications;
- Develop component design document based on specifications and given SW architecture
- Develop software components (C++/Linux)
- Resolve inconsistencies in case of unclear technical requirements in the specification by direct communication with the responsible internal/external stackholder
- Perform functional testing of developed source code, participate in code review sessions
- Act according the SW development standards of the automotive industry, in-car applications and software development processes
- Provide root cause analysis for issues, fix these issues and verify effectiveness of given fixes for the software components delivered.
- Debug knowledge using gdb
- Find optimal solutions for specific requirements and propose solutions
- Breakdown complex tasks
- Understand and improve required KPIs
- Analyze existing embedded software to add features, make modifications, fix bugs, and/or port to different platforms.
- Specify and implement unit tests for developed SW units
- Test software designs and code at the unit and system level to ensure that all requirements are met and the highest software quality is achieved.
- Participate in internal and customer-driven design reviews throughout the program.
- Coordinates software development activities with software team leader.
- Identifies product requirement or performance issues. Works with software team leader to implement a resolution.
- Communicate with peers inside the Harman group to coordinate software development. This includes occasional travel for training or coordination with other groups.
- Works with the customer to further define requirements and to resolve issues in case of need.
- May direct the work of 1-2 other engineers
- Develop and offer visibility on risk assessment for critical fixes
- Drive the development of complex tasks
- Bachelor degree in Computer Science or other relevant (IT connected) specializations
- At least 5+ years of experience as a software developer
- Solid knowledge of C++ proved by 5+ years of experience
- Linux expertise
- Experience in developing embedded applications
- Knowledge in inter-process communication, threading, socket communication
- Good English communication skills both written and verbal
- Working knowledge of software development processes
- Working knowledge of embedded operating systems.
- Multi-process and Multithreading/synchronous programming
- Layer 3 protocol knowledge, IPSec, TCP/IP, UDP, IPv6, SomeIP, CommonAPI, DBUS, Firewall configuration
- WiFi handshakes
- TCP/IP, UDP, domain sockets knowledge
- Tcpdump and WireShark
- PHY and MAC configuration
- Bluetooth, USB connections
- Good understanding of linux environment,kernel
- Unix networking
- Automotive experience
- Experience with SomeIP, CAPI, TCP, UDP protocols.
- Unified Modeling Language Knowledge
- Knowledge in agile software development methods (SCRUM, SAFe Agile)
- Knowledge in one of these areas is very appreciated:
- Connectivity protocols (Ethernet,WiFi, Bluetooth, 3G/4G)
- SW update (RedBend expertise)
- System Functions (Diagnostics, DTCs)
- Security (secure boot, TEE, DEV/Sec mode switch)
- Knowledge of how Linux Kernel works
- Coordinate resources if required
- Willingness to travel (0-20% of time) depending on the project necessities