Software Engineer II
As a Software Engineer II at NCR VOYIX, you will contribute to the design, development, and maintenance of innovative software solutions, working within an agile team to deliver high-quality products that enhance customer experiences and business operations.
Job Responsibilities :
- Design, develop, test, deploy, and maintain software applications and systems using various programming languages and technologies.
- Collaborate with cross-functional teams, including product managers, QA engineers, and other developers, to define requirements, design solutions, and ensure successful product delivery.
- Participate in code reviews, providing constructive feedback and ensuring adherence to coding standards and best practices.
- Troubleshoot, debug, and resolve software defects and performance issues in a timely manner.
- Contribute to the continuous improvement of software development processes, tools, and methodologies.
- Create and maintain technical documentation, including design specifications, API documentation, and user guides.
- Stay up to date with emerging technologies and industry trends, applying new knowledge to projects where appropriate.
- Mentor junior engineers and contribute to a collaborative and learning-oriented team environment.
Job Qualifications :
- Bachelor's degree in Computer Science, Software Engineering, or a related technical field.
- 3-4 years of professional software engineering experience building and maintaining production applications.
- Strong experience with Go, including concurrency, `net/http`, error handling, testing, and REST API development.
- Solid experience with React, TypeScript, HTML, and CSS; familiarity with Vite and modern frontend testing is desirable.
- Working knowledge of relational databases and SQL, ideally PostgreSQL, including schema design and parameterized queries.
- Experience with API and integration patterns, such as REST/JSON, WebSockets, gRPC, message-driven workflows, or TCP-based protocols.
- Familiarity with Docker, Git, CI/CD practices, and Linux-based development or deployment environments.
- Understanding of secure software development fundamentals: authentication and authorization, input validation, least privilege, and safe handling of secrets.
- Experience using AI-assisted development tools, including GitHub Copilot and other large language models, to accelerate development, debugging, documentation, and test creation.
- Prompt-engineering skills: provide clear context, constraints, examples, and acceptance criteria to produce useful technical outputs; critically validate AI-generated code, tests, and documentation before use.
- Sound judgment when using AI tools, including protecting proprietary data, credentials, and customer information, and following team security and code-review practices.
- Strong debugging, communication, and collaboration skills.
Note: would need to work on US Shift Timings