Senior Software Engineer (Modern C++ v11-20)
Join a highly motivated and skilled team of developers to deliver world-class software solutions for the Petroleum and Convenience Store industry. Our products are highly reliable, scalable, and configurable, and we need talented developers like you to help us execute an expanding pipeline of R&D projects.
Position Summary & Key Areas of Responsibility
The Convenience, Fuel, and Retail (CFR) industry relies on technology more than ever. This role is an opportunity to help shape the future of CFR technology by enhancing the reach and capabilities of modern solutions. Whether through digital, mobile, contactless, or curbside experiences, this position offers the chance to play a critical role in advancing industry-leading systems.
As a senior member of the quality engineering team, you’ll contribute to the modernization and evolution of widely deployed systems. Your role will focus on ensuring code testability through design reviews and code walkthroughs, advocating for engineering quality, and driving automation in testing processes. You’ll work closely with software engineers to create comprehensive test plans that validate user stories and defect resolutions.
This is a great opportunity for someone who understands the big picture but also values execution. Given the impact of technology in this industry, a passion for delivering a seamless customer experience is essential.
What You Bring
You’re someone who believes that software development changes lives. Passionate about technology, you see opportunities, challenges to solve, and boundaries to push everywhere you look.
Key Responsibilities
- Design and implement new product features and modify existing features, including technical documentation.
- Build and execute unit tests for new or existing application code.
- Work with Customer Care team members to resolve issues with released software.
- Maintain a high commitment to quality, software engineering best practices, and data security.
- Participate in daily scrum meetings, sprint planning, and work estimations.
- Contribute to release management decisions.
- Drive issue resolution and find solutions to complex, time-sensitive problems.
- Mentor team members and conduct code and test reviews.
Basic Qualifications
- Bachelor’s degree in Computer Engineering, Computer Science, Information Services, or equivalent industry experience.
- Strong knowledge of object-oriented programming concepts.
- 5+ years of C++ experience in a Windows environment.
- Experience with modern C++ standards (C++11 and above).
- 3+ years of Python experience.
- Experience producing technical designs for software applications.
- Strong analytical and decision-making skills.
- Excellent verbal and written communication skills.
- Ability to explain technical concepts to non-technical audiences.
- Experience troubleshooting complex software and hardware systems.
- Test automation experience using Cucumber, Behave, and Gherkin.
- A test-first mindset with experience in unit testing frameworks like Google Test or CppUnit.
- Understanding of networking and TCP/IP socket-level communications.
- Experience mentoring others in software engineering standards and best practices.
- Strong debugging and troubleshooting skills.
- Familiarity with Atlassian tools (Jira, Confluence, etc.).
Preferred Qualifications
- Experience with Java or .NET.
- Background in retail, especially the Convenience Store industry and Point of Sale systems.
- Experience working with payment processors and payment devices.
- Knowledge of computer hardware, networking, and high-volume, high-availability solutions.
- Understanding of PCI compliance, secure development, and data encryption techniques.
The Day-to-Day
As a C++ Software Engineer, you will design and develop software while automating BDD scenarios. You’ll collaborate with team members daily to deliver a quality product on time and take ownership of complex software solutions from design to delivery.
Your Responsibilities Will Include:
- Participating in an agile development team, implementing user stories with automated testing.
- Designing, modifying, implementing, and documenting software application changes.
- Engaging in analysis, design, testing, and review processes.
- Providing accurate effort estimation based on requirements.
- Writing product specifications, designs, and technical manuals.
- Evaluating third-party products and specifications.
- Taking ownership of assigned tasks and making informed design/development decisions.
- Offering feedback in peer performance reviews.
- Educating team members on technical and non-technical subjects.
- Working under the supervision of an Engineering Manager.
- Supporting assigned products and projects throughout the development lifecycle.
- Performing other job-related duties as assigned.
Seniority level
Mid-Senior level
Employment type
Contract
Job function
Information Technology
Industries
Staffing and Recruiting
#J-18808-Ljbffr