Software Engineer
Role details
Job location
Tech stack
Job description
This Software Engineering position is part of the lottery division engineering team at Scientific Games. Your work on this team will help enable the funding of good causes like education, health care, senior citizens, roads, bridges, state parks and trails, as well as the environment.
Joining this team, you will work alongside professional engineers in small teams reporting to a Software Development Manager. These teams are made up of career-minded professionals who have chosen to build solutions within the lottery industry.
As a Software Engineer, you will work both independently and collaboratively as part of a team developing and maintaining complex transaction processing systems. You should have a solid technical foundation, a willingness to learn, and the ability to contribute to software design, development, testing, and support activities related to the transaction engine.
Your domain will be a high-speed transaction engine that handles thousands of point-of-sale terminal devices and the transactions they produce.
The day-to-day job includes implementing changes, supporting production systems, estimating work effort, and developing new features.
Qualifications
Responsibilities / Essential Functions
-
Design, code, test, and debug source code and scripts.
-
Participate in solution discussions and contribute to technical designs based on requirements.
-
Participate in the requirements gathering phase of development projects.
-
Participate in code reviews and follow development best practices.
-
Assist in supporting production lottery systems when issues arise.
-
Work collaboratively with team members to troubleshoot and resolve issues.
-
Complete additional state-specific background checks beyond SG base checks as required .
-
Position may require travel up to 5% or less.
-
Other duties as assigned.
Requirements
-
BS in Computer Science (or acceptable equivalent experience)
-
Strong educational and technical background
-
3-7 years of programming experience, preferably in transaction processing or large-scale systems
-
Procedural application development in C on a Linux platform
-
Understanding of software development principles and debugging techniques
-
Strong knowledge and understanding of SQL Server databases
-
Shared memory and memory mapping concepts
-
Experience working with data structures and binary data handling
-
Shell scripting (BASH) and familiarity with Unix tools (awk, sed, tail, head, grep, etc.)
-
Experience with version control systems
-
Strong problem-solving and analytical skills
-
Ability to learn new technologies and systems quickly
Desirable
-
JSON/XML parsing
-
Familiarity with multi-threaded development concepts
-
System V IPC
-
OpenSSL for encryption/decryption
-
Proc SQL or ANSI SQL
-
Json/Xml parsing
-
gSOAP
-
System V IPC in a system with asynchronous processes
-
Postgres or SQL Server experience
-
TCP/IP socket programming with proprietary protocols
-
RESTful service integration in C/C++
-
Ruby or scripting language experience
-
TFS and GIT experience are beneficial
-
Lottery industry experience is a plus
Your Personal Strengths
-
Self-starter who strives to produce high-quality work
-
Strong analytical and problem-solving skills
-
Ability to work independently and collaboratively within a team
-
Positive attitude with a willingness to learn and adapt
-
Strong verbal and written communication skills
-
Ability to work effectively in a fast-paced environment
-
Desire to stay current with software technologies and industry trends
-
"Do-what-it-takes" attitude. Seeking and using feedback for continuous quality improvements.
-
A record of employment stability.
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.