Position: C++ Developer (l)
Company: Freelance
Experience required: 5y
Category: C++
English level: upper
Published: 2022-09-01T00:00:00+03:00

✅ **Project Description:**
Early stages of the Client's next Software Platform evolution development for new Fully Networked Vehicle (FNV) Electrical Architecture. The project is focused on the creation of the modern Software-Defined Vehicle digital infrastructure. Target Software Platform will operate in a variety of environments and is critical to:
- expand the use of industry adopted APIs;
- support high-velocity application development;
- enable next-generation vehicle applications.

We will provide core parts for Automotive Middleware around AUTOSAR (Classic and Adaptive), including networking, configuration, security, diagnostics, etc. Additionally, We will participate in the development of components for a virtual environment. This virtual environment will support the CI activities, including automated builds, virtual ECUs/Machines, and automated testing support.
Project management maturity must reach ASPICE level 3. It requires establishing transparent project execution monitoring and control. Each participant will be responsible for providing evidence of systematic and significant achievement of the defined process attributes.

In this position, you will be responsible for helping the FNV work streamlining, shaping the architecture and designs' vision, and assisting in the development and software verification process.

✅ **Responsibilities:**
- providing leadership in the areas of technological decisions, architecture, and software development processes and practices;
- develop and maintain software component architectures and code across multiple functional domains;
- implementation of software solutions for large software projects;
- provide technical subject matter expertise and guidance to software development teams from the software design phase, through implementation, testing and delivery;
- ensuring that established software architecture principles are applied and adhered to when designing technical solutions and that these solutions meet business objectives;
- decompose software designs into component tasks, identifying dependencies and managing prioritization;
- evaluating competing technologies and presenting the resulting analysis for decision making.

✅ **Requirements:**
- a Bachelors degree in Computer Science, Mathematics, Engineering, or a related field;
- 7+ years of software development in C++ with at least 3 years on POSIX compliant embedded platforms;
- 3+ years of providing technical or personnel leadership in software development teams;
- knowledge of established software architecture principles and patterns;
- working knowledge of established software design patterns, efficient data structures, multi-threaded system design, inter-process communication, memory management and code optimization;
- experience with decomposition of software designs for large features into component tasks;
- familiarity with C++ unit test frameworks;
- creative and analytical thinker;
- methodical; capable of prioritizing work, overcoming hurdles and working to tight deadlines;
- an excellent communicator with a proven record of communication across teams;
- English: B2 Upper Intermediate.

**Nice to have:**
- a Masters degree in Computer Science, Mathematics, Engineering, or a related field;
- prior experience with project management and acting as scrum master in an agile software development environment.