Overview
We are seeking an experienced Senior Software Developer to design, develop, test, deploy, and maintain high-quality software solutions across desktop, web, and cloud environments. The role includes leveraging AI-assisted development tools to improve development efficiency and software quality while validating AI-generated solutions with sound engineering judgment.
What you'll do
- Design, develop, test, deploy, and maintain high-quality software applications, services, and components across desktop, web, and cloud environments.
- Write clean, efficient, secure, maintainable, and well-tested code following established software engineering standards and best practices.
- Participate in all phases of the software development lifecycle, including requirements analysis, technical design, implementation, code review, testing, deployment, troubleshooting, and maintenance.
- Contribute to software design and architecture by evaluating technical alternatives and developing solutions that consider scalability, reliability, performance, security, and maintainability.
- Develop software applications, services, APIs, utilities, and automation using technologies such as C#, C++, and other appropriate programming and scripting languages.
- Develop and maintain desktop and web applications using modern development technologies, frameworks, and application architectures.
- Develop and support applications and services for cloud environments, including AWS and Azure.
- Develop and maintain unit, integration, and automated tests to ensure software quality, reliability, and regression prevention.
- Leverage AI-assisted development tools across software design, coding, debugging, testing, code review, refactoring, troubleshooting, and technical documentation.
- Critically review and validate AI-generated code and technical recommendations to ensure correctness, security, performance, quality, and maintainability.
- Collaborate with developers, architects, QA, DevOps, product teams, and other stakeholders to understand requirements, develop technical solutions, and resolve complex issues.
- Participate in technical design reviews, code reviews, technical discussions, and knowledge sharing within the development team.
- Integrate software development and delivery processes with version control systems such as Git and Perforce and automated CI/CD pipelines.
- Work with container technologies, such as Docker and Kubernetes, to support modern application development and deployment environments.
- Work with SQL and NoSQL database technologies as required by application designs and product architectures.
- Troubleshoot complex software issues, perform root-cause analysis, and implement effective and sustainable solutions.
- Apply Agile development practices to deliver high-quality software in a timely and predictable manner.
- Provide technical guidance and share software development best practices with less-experienced developers.
- Identify opportunities to leverage AI, automation, and modern development tools to reduce repetitive work, streamline development workflows, and improve engineering productivity and software quality.
What you'll need
- 4-7 years of professional software development experience, with demonstrated experience designing, developing, testing, and maintaining production software.
- Strong programming and coding skills, with the ability to independently design, implement, test, debug, and maintain complex software components and features.
- Strong proficiency in C# and/or C++, with a solid understanding of object-oriented programming and modern software development practices.
- Strong understanding of software engineering principles, object-oriented design, design patterns, data structures, algorithms, and software design concepts.
- Solid understanding of software architecture principles and the ability to translate product and technical requirements into effective software designs.
- Strong understanding of the end-to-end software development lifecycle, including requirements, design, development, testing, deployment, and maintenance.
- Experience developing desktop and/or web applications, including services and APIs.
- Experience developing and deploying software in cloud environments, preferably AWS or Azure.
- Experience with software testing and quality engineering practices, including unit testing, integration testing, automated testing, debugging, and defect resolution.
- Experience effectively leveraging AI-assisted software development tools to improve coding, debugging, testing, code review, refactoring, troubleshooting, documentation, and overall development efficiency.
- Ability to critically evaluate and validate AI-generated code and technical recommendations, applying sound engineering judgment to ensure correctness, security, performance, quality, and maintainability.
- Experience with CI/CD, build automation, and modern software development and delivery practices.
- Experience with version control systems, such as Git and Perforce.
- Experience with container technologies, such as Docker and Kubernetes.
- Solid understanding of SQL and/or NoSQL database technologies and their use in software applications.
- Working knowledge of Windows and/or Linux operating systems.
- Experience working within an Agile software development environment.
- Strong analytical, debugging, and problem-solving skills, with the ability to independently investigate complex technical issues and develop effective solutions.
- Excellent written and verbal communication skills, with the ability to clearly communicate technical concepts, designs, decisions, issues, and solutions.
- Strong collaboration and teamwork skills, with the ability to work effectively across development teams and with cross-functional stakeholders.
Details
Read the full description and apply on the company’s own careers page.