Main Responsibilities and Required Skills for C++ Developer

two software development engineers working on a computer

A C++ Developer is a professional who designs, develops, and maintains C++ applications and scripts. They work closely with product owners, developers, and QA testers to design and implement features. In this blog post we describe the primary responsibilities and the most in-demand hard and soft skills for C++ Developers.

Get market insights and compare skills for other jobs here.

Main Responsibilities of C++ Developer

The following list describes the typical responsibilities of a C++ Developer:

Adapt

Adapt engineering processes and code bases to different platforms and environments.

Address

  • Address customer support and technical support issues, when needed.

  • Address regression failures in timely manner.

  • Address software architectural considerations.

Adhere to

  • Adhere to coding standards and guidelines.

  • Adhere to high-quality development principles while delivering solutions on-time and on-budget.

Analyze

  • Analyze and resolve technical and application problems.

  • Analyze, design and document technical specifications that satisfy validated business requirements.

Apply

Apply principles and methodologies of scrum agile development practices.

Assist in / Assist with

  • Assist in the development of logical and physical specifications.

  • Assist team with resolving technical complexities involved in realizing story work.

  • Assist with work estimating based on requirements and technical designs.

Automate

Automate manual release activities.

Build

  • Build, enhance and maintain various numerically-oriented proprietary applications.

  • Build high-performing, large scale applications that enable an optimal consumer experience.

  • Build infrastructure for regression testing, performance validation, and system maintenance.

  • Build software for our high-throughput cell screening platforms.

  • Build tool chain knowledge.

Carry out

Carry out research and prepare technical proposals and demonstrations for new projects.

Code

  • Code analysis and coverage tools like Coverity, Valgrind / Helgrind, gcov / lcov.

  • Code, test and deliver applications to meet business and architectural requirements.

Collaborate with

  • Collaborate as a team in an Agile environment.

  • Collaborate effectively with other team members.

  • Collaborate with QA Engineers to execute functional and regression testing.

  • Collaborate with teams from throughout the business on AI-based solutions.

Complete

Complete assigned development tasks including unit testing and documenting work.

Construct

Construct software solutions that strictly comply with technical specifications.

Contribute to

  • Contribute suggestions and new ideas to enhance performance, usability, and quality.

  • Contribute to feasibility studies for new software products.

  • Contribute to internal and external documentation for our products.

  • Contribute to story refinement / defining requirements.

Coordinate

Coordinate and prioritize your work to make the best use of your time and capabilities.

Create

  • Create and extend fully-flexible AI agents and a suite of game theory optimal analysis tools.

  • Create and maintain technical documentation.

  • Create automated application load testing scripts as required by Development.

  • Create, execute, or participate in all levels of application testing i.e. unit, SIT, etc..

  • Create prototypes to evaluate new technologies as appropriate.

  • Create signals engine to produce client based alpha, volume and volatility predictions.

Debug

  • Debug and address client issues within deadlines.

  • Debug and test new products and features.

  • Debug identified problems and provide fixes in a timely fashion.

Design

  • Design and develop key system architecture.

  • Design and implement user friendly software components.

  • Design / develop / maintain automated test suites (integration, regression, performance).

  • Design software architecture to meet planned requirements.

  • Design your own workstation.

Determine

Determine and deliver accurate design and development time estimates.

Develop

  • Develop and deliver high performance, highly available and sustainable real time trading, risk.

  • Develop blockchain solutions and provide support for blockchain development.

  • Develop C++ application layer and HMI software for infotainment system.

  • Develop end-to-end solutions from back-end algorithms to front-end user experience.

Develop

  • Develop high-performance, reliable, testable and maintainable code.

  • Develop new software meeting given requirements.

  • Develop or modify applications with Linux tools (GCC Compiler, Open embedded, Yocto).

  • Develop visualizations for the results of our machine learning analysis pipelines.

Diagnose

Diagnose and troubleshoot application issues in production and test environments.

Dialog

Dialog design and implementation for automotive applications.

Document

Document and test to ensure the quality of the completed work requirement.

Employ

Employ best practices and help to maintain them through technical reviews and mentoring.

Encourage

Encourage and accept personal feedback graciously.

Engage in

Engage in the desired feature goals and outcome.

Enhance

  • Enhance coding standards, development guidelines and participate in peer code / design reviews.

  • Enhance risk management components to include NDFs, position service.

  • Enhance the performance of existing applications and services.

Ensure

  • Ensure consistency and convergence between the various products.

  • Ensure development best practices are in place and are functioning effectively.

  • Ensure that software is developed to meet functional, non-functional, and compliance requirements.

Evaluate

  • Evaluate performance bottlenecks, identifying work for yourself and your team.

  • Evaluate third-party products and specifications.

Execute

Execute system and algorithm performance testing.

Fix

Fix any bugs found in the software programming.

Focus

Focus on designing solutions for testability, maintainability, and run-time robustness.

Follow

Follow Agile best practices to deliver high quality work on schedule.

Guide

  • Guide and provide development leadership to other developers in the group.

  • Guide good coding practices and rules and identify items for improvement.

Help

  • Help design and scale our distributed data infrastructure.

  • Help maintain code quality, organization, and automatization.

Identify

  • Identify and communicate technical problems, processes and solutions.

  • Identify bottlenecks and bugs, and devise solutions to these problems.

  • Identify internal / outside technologies and when / how to use them.

  • Identify performance bottlenecks and optimize different aspects of application on CPU and / or GPU.

Implement

  • Implement and modify existing code to meet new client requirements.

  • Implement GPU acceleration across desktop and mobile platforms.

  • Implement graphical user-interfaces using QML / Qt Quick.

  • Implement high performance and top quality software modules.

  • Implement integration and unit tests.

  • Implement state-of-the-art poker AI algorithms for many different game types.

Innovate

Innovate by participating in hackathons and the annual company tech challenge.

Instrument

Instrument and monitor features to make sure they perform reliably in the field.

Integrate

  • Integrate components with the whole application.

  • Integrate HMI adaptation layers using C++.

  • Integrate or port computer vision and image processing algorithms to various platforms.

Interact with

Interact with and lead both onshore and offshore developers and QA.

Keep

Keep yourself abreast with latest technology trends.

Lead

  • Lead and mentor junior engineers on the team.

  • Lead designs with minimal guidance.

  • Lead development / release planning in agile scrum methodology.

  • Lead with proposals and solutions to challenges and issues.

Learn

Learn and apply company policies and procedures to resolve issues.

Liaise with

Liaise with SW Architects and Product Owner to arrive at SW design and implementation.

Maintain

  • Maintain and improve / refactor existing code base.

  • Maintain, evolve and improve existing features in a large, complex codebase.

  • Maintain existing computer programs by making modifications as required.

  • Maintain, improve, and support the both the new and existing products.

  • Maintain, optimize and continuously improve existing systems, scripts, application and tools.

Manage

Manage small development / QA team.

Mentor

  • Mentor junior team members.

  • Mentor other employees in development methodologies.

  • Mentor other Software Engineers and coaches team on CI-CD practices and automating tool stack.

Modify

Modify interfaces between different software (middleware).

Network

Network protocol and computer system knowledge.

Participate in

  • Participate in all phases of the software development life cycle in a DevOps work environment.

  • Participate in analysis, design, testing, and review processes.

  • Participate in defining product architecture and design.

  • Participate in design, code and sprint reviews.

  • Participate in doing Unit Test.

  • Participate in formal and informal code and design reviews.

  • Participate in installation, training, and needs-analysis services at client locations.

  • Participate in load testing and contribute performance enhancements.

  • Participate in pair programming sessions with peers.

  • Participate in peer-reviews of solution designs and related code.

  • Participate in post-implementation assessments of application solutions.

  • Participate in product and cloud architectural design and analysis.

  • Participate in product-related projects, as well as projects to improve processing and automation.

  • Participate in regular code reviews.

  • Participate in reviews of SDLC deliverables and processes to maximize and share learnings with teams.

  • Participate in the choice of technologies used.

  • Participate in the on call support rotation.

  • Participate in the recruitment process to grow our depth of technical talent.

Perform

  • Perform complex bug verification, release testing and beta support for assigned products.

  • Perform feasibility checks.

  • Perform impact analysis due to internal and external changes.

  • Perform other job-related duties as assigned.

  • Perform spike / proof of concept as necessary to mitigate risk or implement new ideas.

Profile

Profile and optimize C code to ensure optimal CPU / GPU utilization and performance.

Propose

Propose innovative solutions.

Prototype

Prototype user interface component.

Provide

  • Provide AI-based solutions and tools to maintain the safety and integrity of our games.

  • Provide constructive feedback and guidance to junior team members.

  • Provide demonstrations and training to customers.

  • Provide detailed scheduled estimates for development efforts.

  • Provide Development thought leadership and mentoring in both advisory and delivery contexts.

  • Provide estimations of work based on requirements.

  • Provide feedback to peer performance reviews.

  • Provide guidance to other junior development staff on various development assignments.

  • Provide third level of support as required.

Research

  • Research and develop new technologies to help the project succeed.

  • Research and evaluate a variety of software products.

  • Research complex problems to provide innovative solutions for our products.

  • Research industry benchmarks and related software to identify microarchitectual improvements.

  • Research problems discovered by QA or product support and develops solutions.

Review

  • Review and investigate issues in codes developed by peers.

  • Review pull requests from other team members.

Set up

Set up and develop a continuous integration / continuous delivery pipeline.

Share

Share design and implementation details with the wider business.

Support

Support developed applications and different software.

Take

Take ownership of your code.

Test

  • Test and document software for the product.

  • Test automation, integration testing with other applications.

Transform

Transform requirements into architectural and feature specs.

Troubleshoot

Troubleshoot performance gaps in near-silicon designs.

Turn

Turn business and product ideas into prioritized, estimated, and detailed tasks.

Use

  • Use benchmarking tools to evaluate and optimize code.

  • Use clear and timely communication to ensure the team and clients are well informed at all times.

  • Use common technologies such as C++17, Python, CMake, and Git.

  • Use C to develop powerful PDF engine technology to support a broad range of clients.

  • Use source debuggers and visual development environments.

  • Use your technical leadership in the development and on-time delivery of high-quality applications.

Work with

  • Work as part of an Agile Squad to understand requirements and develop solutions to meet sprint goal.

  • Work between various teams within the Development and IT departments.

  • Work collaboratively with Product Owner, Product Line Manager (PLM) and Verification.

  • Work in Agile Scrum and create / update Jira's with detailed description, DoD & acceptance criteria.

  • Work in collaboration with system architects to define APIs between software modules.

  • Work on projects end to end (design through development).

  • Work on proof of concepts for next generation infotainment systems.

  • Work on testing frameworks / projects as required.

  • Work under the supervision of an Engineering Manager.

  • Work well both independently and collaboratively within a fast moving development team.

  • Work within and maintain a lean, clean, cross platform application framework.

  • Work with product verification team in resolving feature defects.

  • Work with Scrum and Agile development processes.

  • Work with senior members of the team to set technical directions.

  • Work with smart and talented team members.

  • Work with the documentation team to document newly implemented features.

  • Work with the SQA team to design automated performance and scalability testing strategies.

Write

  • Write and execute automated unit, system, and integration tests.

  • Write and maintain automated tests for the product modules.

  • Write automated integrity and performance tests for functionality you expose.

  • Write automated performance, unit and integrity tests.

  • Write automation tests for newly implemented features and take ownership of the work.

  • Write automation tests to fully test your code.

  • Write clear and concise documentation.

  • Write design and architectural specs.

  • Write embedded code that communicates on the client side with various cloud interfaces.

  • Write, modify, and debug software for the product.

  • Write, modify, integrate, analyze and test software code.

  • Write readable, testable code with an eye for performance.

Most In-demand Hard Skills

The following list describes the most required technical skills of a C++ Developer:

  1. C / C++ Development

  2. Linux

  3. Java

  4. Python

  5. STL

  6. Unix

  7. AI

  8. Javascript

  9. IOT

  10. VR

  11. 5G

  12. GIT

  13. C#

  14. SQL

  15. Design

  16. Object-Oriented Design

  17. Software Engineering

  18. Windows

  19. Unix Environments

  20. Agile Development

  21. Designing / Developing Large Software Systems

  22. IP Networking

  23. Perl

  24. Routing Protocols

  25. Algorithms

  26. Software Development

  27. Object-Oriented Programming

  28. Uml Diagrams

  29. Data Structures

Most In-demand Soft Skills

The following list describes the most required soft skills of a C++ Developer:

  1. Written and oral communication skills

  2. Problem-solving attitude

  3. Multi-task

  4. Tackle challenging problems

  5. Analytical ability

  6. Interpersonal skills

  7. Algorithmic

  8. Self-starter

  9. Adaptable to changes

  10. Initiative

  11. Proactive

  12. Attention to detail

  13. Collaborative team environment

  14. Comfortable working independently

  15. Drive to go above and beyond

  16. Organizational capacity

  17. Teamwork

  18. Aptitude

  19. Emotional intelligence

  20. Positive attitude - critical

  21. Distill complex information

  22. Empathy

  23. Make progress quickly even when there is ambiguity

  24. Motivated

  25. Organized

  26. Phenomenal listener

  27. Self-motivated

Restez à l'affût du marché de l'emploi dans le sport!

Abonnez-vous à notre infolettre