Embedded Software Engineer
Department / Function: Technology ~ Technology
Location: Manchester, UK
SG Gaming has an exciting opportunity for a Software Engineer to join the Engineering Support team in Chadderton, Manchester.
SG Gaming employs more than 550 people across three offices in the UK and is supported by its global gaming parent company, Nasdaq-listed Scientific Games, which employs 10,000 people in more than 50 countries on six continents. In return for their efforts, the Senior Platform Engineer shall receive a competitive salary and benefits and will be supported by their manager to grow their career within the company.
This role would suit someone who enjoys being part of a busy and exciting development team, solving problems and has a flexible and results driven attitude towards their work. The successful candidate will be highly experienced in C/C++ and have experience working within an embedded development system working on (RS232 and/or USB). Additionally knowledge of PC development in Win32 API with Windows sockets (winsock) would be a distinct advantage.
The main objectives of the role are as follows:
- To collaborate with solution architects and software engineers, to design and develop a modular platform for hosting and presenting games on a variety of hardware
- To develop and support test software for Engineering and Production
- To support, advise and where necessary, write code for our embedded products
- To mentor less experienced engineers to assist in knowledge transfer, across the team, to avoid single points of failure
- To help formalise and standardise procedures and practices i.e. build server, code review process, static code analysis
Main Duties and Responsibilities:
TO DELIVER THE PRODUCT
Game development is not an exact science. It involves a period of re-work and refinement. This also affects the development of the platform required to support these constantly evolving games. The dichotomy of fixed deadlines and the unspecified requires the Software Engineer to be flexible. They must be able to:
- Achieve an optimum balance between technical purity, product presentation and on-time delivery.
- Plan work and take responsibility for delivery; ensuring any risks, issues, resource needs or external co-ordination required for delivery are brought to the attention of the relevant people in a timely fashion.
- Provide implementation estimates and make best endeavours to meet them. This includes working outside normal contracted hours to meet product delivery. This forms part of taking responsibility for delivering the project and it should NOT be left to their Manager to decide whether or not extra effort is required.
- Report progress and issues in writing when requested.
- Travel internationally when required.
- Extensively test product so that it enters the product assurance process with minimal defects.
TO WORK WITH THE R&D TEAM’S DEVELOPMENT TOOLS, SOFTWARE ARCHITECTURE, PROCEDURES AND STANDARDS
In order to maximise code re-use and to allow modules to be run on various hardware, strict adherence to APIs and methodologies is paramount. Any deviation MUST be a team decision. They must be prepared to:
- Adhere to in-house/project coding/design styles, tools and methodologies
- Produce good quality, well-commented, re-usable designs/code/classes
- Participate constructively in design reviews and (if nominated) formally record the review findings
- Understand, acknowledge and produce solutions that satisfy the commercial requirements of the company
- Highlight areas where the design, architecture and procedures can be improved and if required implement these changes
- Contribute to software design processes, using appropriate tools and design patterns
- Contribute on various projects as dictated by the Manager
- Contribute to support documentation to assist users
- Contribute to roadmap for future development of the platform architecture
- Mentor existing team members on all facets of software development
- Take the lead on various projects at the discretion of the Manager
- To assist in debugging and help in analysing crash dumps and logs
- Liaise with customers on occasion, in a professional and courteous way
Required Skills & Experience:
- Solid C/C++ experience
- USB programming (embedded-side and PC-side)
- Solid Win32 API experience
- Solid Multi-threaded application development
- Windows sockets (winsock) experience OR interfacing to hardware through low-level protocols such as RS232
- Degree in Computer Science, Software Engineering, or other related discipline
- Significant professional experience covering full development life-cycle
- Extensive knowledge of existing architectures, systems and products (not necessarily from this industry)
You will receive first class training, support and career development opportunities along with a very competitive salary and additional benefits which include (but are not limited to) the following:
- Company bonus
- 25 days holiday
- Life assurance
- Contribution based pension scheme
To submit your CV, please click on apply or email: firstname.lastname@example.org
Title search: Embedded/Platform Engineer/Software Engineer/Software Developer/ Solution Architect/Software Architect/C++/USB/RS232/Win32 API/winsock