Software Engineer C++ Multi-platform

Bosch ,
Stockport, Greater Manchester

Overview

Job Description

Due to increasing customer interest and business opportunities for our GRADE-X Mobile Cloud-based Diagnostic Solution, we are expanding our product development team based in Stockport with additional software engineering capability. Employing a hybrid architecture including C++ native runtime, Angular JS & HTML5 single-page web application and Java server environment hosted on AWS, this product is the subject of two live projects with major global vehicle manufacturers, with more in the pipeline for 2019. The team has developed a continuous build and deployment pipeline supported by high-coverage automated tests. There are further opportunities for refinement and improvement in many areas of software, architecture, deployment models and system testing that will present an interesting challenge for the right candidate. * Work together with fellow Scrum team members and the Product Owner to refine and split user stories * Design and develop software features based on tasks defined together with fellow Scrum team members * Investigate and correct software defects * Define and implement automated software tests against task and user story acceptance criteria * Peer-review code developed by other team members * Demonstrate completed software internally and occasionally in customer Sprint Reviews * Actively learn new tools and technologies as required for the project * Follow the software coding standards, design language (tools & techniques), configuration management processes, and software deployment processes used by the software development team Qualifications: We are a multi-skilled development team in which all developers seek expand their knowledge and skills into other areas and technologies in the product. For this role, we are seeking a candidate with a bias towards C++, POSIX, computing platforms/ OS, embedded systems, Linux and networking. Knowledge and experience in communication protocols including automotive (e.g. CAN), web-based applications and technologies (HTML5, JavaScript, JEE) would be beneficial, but not essential. Essential: Degree level in a relevant discipline (Computer Science or Electronic Engineering) or equivalent industrial experience Three or more years' experience of developing production software C++ 11 software development and unit testing Cross platform development experience (ideally two from Windows, Linux, iOS or Android) Network protocols (UDP, TCP/IP) Demonstrable software design skills Dedication to high quality, on time delivery Excellent written and verbal communication skills Configuration management and software release Source code control (e.g. GIT) Code quality assurance approaches (peer code review, static analysis) Desirable: Automotive networks and communication protocols Experience developing or maintaining continuous integration (CI) and build systems (e.g. Jenkins) Jira for managing development and correcting defects Agile development as part of a Scrum team JavaScript, CSS3, HTML5, JSON, XML, NODE.JS AngularJS or similar Single Page Application framework Java EE technologies, in particular RESTful Web Services Awareness of security requirements and software design implications for web-based applications Unit test and End-to-end test development using JUnit, Karma and Protractor Cloud deployment of web-based applications Java EE technologies, in particular RESTful Web Services Unit test and End-to-end test development using JUnit, Karma and Protractor Cloud deployment of web-based applications Awareness of Java database technologies Automated end-to-end test development (e.g. Robot, Selenium) Automated testing of web applications Automated build systems e.g. Jenkins