NMI is seeking an experienced Software Engineer to join their Payments Processing group to develop and maintain world-class payment solutions, including PIN pad and card reader integration and processor/acquirer connectivity. The role involves designing, developing, and maintaining SDKs and backend components for secure, performant, and seamless payment transactions.
Requirements
- Advanced proficiency in C (preferred) or Java, with a strong understanding of object-oriented design principles and software architecture.
- Deep understanding of the Software Development Life Cycle (SDLC) and agile methodologies.
- Experience with relational databases (e.g., MySQL, SQL Server, Oracle) and optimizing database interactions.
- Strong knowledge of security best practices, including secure coding principles and compliance requirements (e.g., OWASP Top Ten, PCI, SOC2, HIPAA).
- Proficient in networking concepts such as sockets, HTTPS, DNS, and SSL.
- Deep knowledge of design patterns and their practical application.
- Backend development (C/.NET)
Responsibilities
- Design, develop, and maintain secure, scalable, high-quality SDKs and backend services used in payment device integrations.
- Lead architectural and design discussions across backend and mobile platforms.
- Write and review well-structured, maintainable, and efficient code.
- Participate in the evolution of CI/CD pipelines and deployment automation.
- Ensure that all code and systems adhere to strong security and compliance requirements (e.g., PCI, OWASP).
- Investigate and resolve performance issues across SDKs and backend services.
- Contribute to cross-team initiatives, including SDK standardization and shared libraries
Other
- Minimum of 5 years of experience in developing complex software applications in a commercial environment.
- Proven ability to work independently while also fostering teamwork and cross-team collaboration.
- Demonstrated ability to mentor junior engineers and contribute to the growth of the engineering team.
- Strong problem-solving skills, with the ability to anticipate potential issues and proactively address them.
- Excellent communication skills, capable of explaining complex technical concepts to both technical and non-technical stakeholders.