We are looking for a highly skilled Senior C++ Software Engineer to join our dynamic team. This role is pivotal in designing, developing, testing, and maintaining advanced software applications that cater to specific business or user needs. As a Senior Software Engineer, you will work closely with cross-functional teams, including product managers, designers, and QA specialists, to create innovative, user-friendly, and robust software solutions. Your expertise will contribute to improving software functionality, resolving technical issues, and ensuring the high-quality performance of applications. This is an exciting opportunity for someone passionate about software development with a keen interest in working on complex systems and staying updated with the latest industry trends.
Key Responsibilities
- Software Design and Development. Design and implement new features and enhancements for user applications across a variety of platforms, including local, networked, and internet-based systems. Collaborate with cross-functional teams to ensure software meets functional and business requirements.
- Coding and Integration. Analyze overall architecture requirements and design integration plans based on general objectives. Develop and implement coding strategies for the effective execution of the software solution.
- Issue Resolution and Debugging. Troubleshoot and resolve technical issues encountered by users or identified during testing and usage. Use debugging tools and techniques to investigate and address application issues to ensure high performance and stability.
- Testing and Documentation. Write and execute comprehensive testing plans, protocols, and documentation for your assigned portions of the application. Conduct thorough testing to identify potential bugs or issues, ensuring the software meets quality standards and performs optimally.
- Project Management and Leadership. Lead project teams, guiding other software engineers, both in-house and outsourced, to develop reliable, cost-effective, and high-quality software solutions. Oversee resource allocation and ensure detailed plans are in place to maintain application performance.
- Cross-Functional Collaboration. Actively communicate and collaborate with internal teams, external partners, and management regarding software design status, project progress, and issue resolution. Ensure that all stakeholders are aligned with the project goals and timelines.
- Continuous Learning and Innovation. Stay up to date with industry trends, emerging technologies, and best practices in software development. Bring new ideas and insights into the software engineering process to improve the team's ability to meet project objectives and respond to challenges.
Qualifications and Experience
- Education. A four-year or graduate degree in Computer Science, Information Systems, or any related discipline, or an equivalent amount of work experience and demonstrated competence in the field.
- Professional Experience. A minimum of 7 years of work experience in software applications engineering, programming, or a related field. Experience in advanced development roles, with expertise in building and maintaining software solutions. Prior experience with MFC (Microsoft Foundation Classes) or ATL (Active Template Library) is a plus.
Technical Expertise
- Proficiency in C++ programming, including modern C++ standards (C++11, C++14, C++17, C++20).
- Strong experience with Windows application development, including the Win32 API and Universal Windows Platform (UWP).
- Deep understanding of object-oriented programming principles and patterns.
- Experience with COM (Component Object Model) and other Windows-specific technologies.
- Familiarity with DirectX or other graphics APIs.
- Proficient in debugging tools and techniques to troubleshoot and resolve software issues.
Certifications (Preferred)
- Programming Language Certifications in C++, Python, or similar languages.
- Additional certifications related to software development or relevant technologies would be an advantage.
Key Skills and Competencies
Technical Skills
- Advanced proficiency in C++ and application programming.
- Experience with Microservices, APIs, and DevOps practices.
- Familiarity with modern software development methodologies such as Agile.
- Working knowledge of cloud platforms like AWS and Microsoft Azure.
- Understanding of software scalability and optimization techniques.
Cross-Organizational Collaboration
- Excellent communication skills to effectively collaborate with internal teams and external partners.
- Results-driven approach with the ability to lead teams and drive projects to completion.
- Strong learning agility to adapt to changing technologies and business needs.
Impact and Scope
- This role impacts multiple teams and may serve as a team or project leader, providing strategic direction for team activities.
- Facilitates information validation and decision-making processes across various functional areas.
Complexity Management
- You will handle moderately complex issues and apply established guidelines to address challenges effectively. Your solutions should be in line with both technical and business requirements, ensuring the software performs optimally.
Why Join Us
This is an exciting opportunity for a software engineering professional who is eager to work in a collaborative and fast-paced environment. You will be part of a team committed to excellence, innovation, and continuous improvement. As a Senior C++ Software Engineer, you will not only contribute to cutting-edge software development but also have the opportunity to grow professionally while working on impactful projects.
If you are a driven individual with a passion for software development and a desire to stay at the forefront of technology, we would love to hear from you!