Job Responsibilities:
- Execute software solutions, including design, development, and technical troubleshooting, with the ability to think beyond conventional approaches to build solutions or resolve technical problems.
- Create secure and high-quality production code and maintain algorithms that run synchronously with appropriate systems.
- Produce architecture and design artifacts for complex applications, ensuring that design constraints are met by the software code development.
- Gather, analyze, synthesize, and develop visualizations and reports from large, diverse data sets to continuously improve software applications and systems.
- Proactively identify hidden problems and patterns in data, using these insights to drive improvements in coding hygiene and system architecture.
- Develop and test C++ applications for both Linux and Windows environments.
- Collaborate with a team to design and develop complex back-end applications.
- Maintain and improve legacy codebases.
Required Qualifications, Capabilities, and Skills:
- Formal training or certification in software engineering concepts with 3+ years of applied experience.
- Hands-on practical experience in system design, application development, testing, and operational stability.
- Advanced proficiency in C++ development.
- Basic knowledge of C++ libraries (e.g., Boost, Abseil).
- Experience in Linux system development.
- Experience with unit testing.
- Proficiency in SQL.
- Experience in developing, debugging, and maintaining code in a large corporate environment using modern programming languages and database querying languages.
- Overall knowledge of the Software Development Life Cycle (SDLC).
- Solid understanding of agile methodologies, including CI/CD, application resiliency, and security.
- Experience in low-level multi-threaded development.
Preferred Qualifications, Capabilities, and Skills:
- Eagerness to learn new technologies and methodologies.
- Exposure to cloud technologies.
- Willingness to work with legacy code.
- Experience with Java and/or C#.
- Flexibility to pivot priorities as needed.
- System thinker with an understanding of the breadth and impact of changes.
- Experience with handling large amounts of streaming data.