C++ developer
Job Description & Responsibilities:
Design, develop and continuously improve software in order to provide World Class Apps, Services and Technologies delivering experiences & value to end-users. Continuously improve deliveries based on usage and user feedbacks.
[Imagine]
Understand user requirements and design capabilities in order to deliver best in class experiences
Propose relevant enhancements by understanding user behavior (data analytics and probes study)
Understand the portfolio plans, committed values, and position new developments in this context
Understand competitive products landscape in the scope of their work
Learn and stay at the state of the art on software development practices, technologies
Analyze code usage metrics to identify areas for code quality or software performances improvements
[Create]
Learn and promote component re-use
Design new components for re-use in collaboration with architects
Define and describe functional behavior, limitations and acceptance tests of capabilities to deliver
Design operable software (such as validation check on 0% downtime, code upgrade compatibility)
Select best algorithms or technologies to use.
Perform feasibility study (prototype, POC) to validate
Technology / components proposal with Architects
User experience proposal with user experience Designer
Validate software architecture with Architects (Systems Architect, Service/App/Techno Architect, Engineering Architect), respecting architecture Standards / Patterns
Engineer minimalist and relevant dependencies.
Submit unmet technical needs to Systems Architect and Service/App / Techno Architects for resolution
Plan development activities, compliant with Release and Service version gates, and enabling all criteria to be respected, including:
PCS, Security, Data Privacy,
Delivery of enablers for test automation
Capability for software introspection at runtime
[Produce]
Execute software development plan respecting defined plan, quality criteria and accurately documented:
Code, build and run unit tests
Deliver unit test and enablers for Quality Engineer to automate their testing (collaboration with Quality Engineers and Quality Engineering Manager)
Deliver components that will enable introspection at runtime (for debugging, monitoring)
Ensure developed source code reaches PCS, Security and Data Privacy criteria
Monitor progress of implementation of dependencies on other components and escalate in case of risk
Perform Code Review to continuously improve existing code to make it lean
[Use]
Deliver code usage probes
Deliver health and usage probes
Support integration and deployment of delivered software
Ensure 24x7 running services collaborating with Cloud Run Operators
Solve incidents reports (IRs) reported by the User Success Engineers and Quality Engineers
Perform RCA (Root Cause Analysis) upon request; Propose and execute CAPA (Corrective Actions and Preventive Actions) to continuously improve development methodologies and deliveries.
[Value]
Share knowledge within and outside the team on produced developments and technical components
Comply with related R&D processes & Meet the Key Activity & Performance Indicators.
Qualifications:
- People with experience in coding (UX, web, cloud, algorithms, industry processes…)
- People with modern development skills (web, cloud…)
Essential Skills
- Good understanding of object oriented programming and knowledge of development process, C++
- Knowledge of geometric modeling concepts
- English skill to communicate with global R&D people
- Good level of technical writing in English
Desirable Skills
- Knowledge of COM/DCOM
- Experience of 3D programming and CAD/CAM/PLM software
- Working with large platform(big size application) in C++
- Good development and debugging skills using IDE tool
- Experience of CAA development
- Knowledge of development methodology (DevOps, Scrum…)