Senior Software Engineer
Job Type
Job Details
Gaming:
Welcome to the world of land-based gaming. Light & Wonder’s gaming team builds cutting-edge technology, products, and content for the most iconic casinos and operators across the globe.
Position Summary
Job Description
An Embedded Engineer designs, develops, tests, and debugs programmable content (Firmware) within industry standard applications and systems.
An Embedded Engineer is NOT just a Software Programmer who knows C++, Java, C#, and Python!
The absolute requirement should be someone who can development, test, and sustain Firmware/Software at Baremetal, within an RTOS, and at the OS Driver Level.
In my experience the best Firmware Engineers are Computer Engineers or Electrical as they generally have a deep knowledge of the hardware. One cannot be a good Embedded Engineer if they do not understand hardware. That does not mean the Embedded engineer needs to be able to develop the hardware, but they MUST understand it.
- Bare-Metal
- Defined as a system without a base OS or RTOS. Requires the ability to write firmware that operates without layers of abstraction away from the physical hardware (i.e No RTOS or OS).
- Bare-metal programmer will be required to understand the concept of register addressing, vector tables, interrupts, interrupts handlers, reset handler, clock functionality, stack area, heap area, and etcc.
- Requires deep knowledge of inner workings of the microprocessor and its architecture.
- 8-bit RISC MCU, 32-Bit ARM, MIPS, x86 etc.
- RTOS
- A lightweight operating system for real-time applications that processes data and events that have critical defined time constraints. There is a distinction between RTOS and a time-sharing operating system such as UNIX. Within an RTOS systems resources are defined and shared with a scheduler, data buffers, or fixed task prioritization in a multitasking environment.
- Processing times are fully understood and defined as opposed to kept within a minimum allowable range of operation like an OS.
- The system is deterministic whereas all processing occurs within a defined time constraint.
- RTOS’s are event driven and preemptive. Meaning the OS is capable of monitoring relevant priority of competing tasks.
- All timing is based on clock interrupts.
- OS
- I don’t have to explain this one 😊. However, a true embedded engineer should have experience with writing OS drivers at the level of the hardware. For example, on MC400 Don Bartley had to write the BSP and Bootloader. Required us to write a custom driver for Toshiba CSI to DP converter as well as the USB3503 Hub.
Programming Languages Required
- C/C++, Assembly (nice to have), Java, Python, Verilog/VHDL (nice to have), C#.
Experiences (In addition to being able to write code 😊)
- Deep Knowledge of all common communication interfaces and peripherals such as Ethernet, USB, I2C, SPI, RS232/RS485/RS422, I2S, MIPI, CSI, and PCIe.
- Familiarity with FPGA development including the ability to understand HDL such as Verilog and VHDL. (Nice to have but not required)
- Deep understanding of the physical layer (hardware layer) of these interfaces for forensic debug purposes.
- Ability to use all common test equipment such as Oscilloscope (basic knowledge), Logic analyzer, and protocol sniffers.
- Experience with STM32, NXP LPC Series, NXP IMX7D, Nordic nrf52840, and various Arm Cortex MCUs.
- Experience with Board Support Package Development (BSP).
- Experience with Bootloader Development and Startup.s for ARM MCU.
- Ability to read schematics.
- Understanding of Digital Logic.
Tools Required
- A nice big brain (😊).
- Programmers/Debuggers
- STLink Programmer/Debugger for STM32 MCUs
- MCR Card Reader.
- Sunrise and iView4 STM32 Firmware
- Segger JLINK JTAG Programmer/Debugger for Nordic MCU
- MPS Card Reader
- MC400 (This can just boot from SPI Flash, but JTAG could be used for debugging)
- STLink Programmer/Debugger for STM32 MCUs
- Oscilloscope
- This depends on the speed of the signal. Recommend at least a 300Mhz Scope.
- Logic Analyzer
- You can spend a lot of money on one of these and it depends on the signal speed you’re trying to analyze.
- I like this one: https://usd.saleae.com/products/saleae-logic-pro-16. It’s inexpensive and fun to use.
- You can spend a lot of money on one of these and it depends on the signal speed you’re trying to analyze.
- Beagle USB Protocol Analyzer
- SF100 Dedi Prog SPI Flash Programmer
- Text Editors
- This is preference. I like Sublime Text, Atom, and Visual Studio Code
- Linux Machine or Windows w/Cywin Set up
- arm-none-eabi-gcc compiler and make
- Eclipse IDE (w/ arm-none-eabi-gcc and make) (Not a fan of IDEs but hard to get away from them)
Qualifications
EducationBachelors degree in related field.
Years of Related Experience
Years of experience 0 to 2 years
Physical Requirements
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions. While performing the duties of this job, the employee is regularly required to sit, stand, walk, bend, use hands, operate a computer, and have specific vision abilities to include close and distance vision, and ability to adjust focus working with computer and business equipment.
Work Conditions
Scientific Games Corporation and its affiliates (collectively, “SG”) are engaged in highly regulated gaming and lottery businesses. As a result, certain SG employees may, among other things, be required to obtain a gaming or other license(s), undergo background investigations or security checks, or meet certain standards dictated by law, regulation or contracts. In order to ensure SG complies with its regulatory and contractual commitments, as a condition to hiring and continuing to employ its employees, SG requires all of its employees to meet those requirements that are necessary to fulfill their individual roles. As a prerequisite to employment with SG (to the extent permitted by law), you shall be asked to consent to SG conducting a due diligence/background investigation on you.
This job description should not be interpreted as all-inclusive; it is intended to identify major responsibilities and requirements of the job. The employee in this position may be requested to perform other job-related tasks and responsibilities than those stated above.