Senior Software Engineer (C#)
NMIAbout the role
NMI is a leading provider of payment gateway solutions, specializing in card-present solutions and payment processing. Our innovative technologies empower businesses to securely accept payments and optimize transaction processes. With a focus on reliability, security, and innovation, we continuously push the boundaries of what's possible in the payments industry.
We are seeking an experienced Software Engineer to join our Payments Processing group. This group focuses on developing and maintaining world-class payment solutions, including PIN pad and card reader integration and processor/acquirer connectivity.
The ideal candidate:
The ideal candidate will have extensive experience in C# and a strong grasp of object-oriented programming principles. Candidates with expertise in other object-oriented languages (e.g., Java) will also be considered if they have demonstrable experience with a .NET language.
As a Senior Engineer, you will play a leadership role in designing, developing, and maintaining solutions that integrate PIN pads and card readers into Payment Device SDKs for card-based transactions, including contactless, full Chip-and-PIN, magnetic stripe, and manually keyed transactions. You will be expected to take ownership of technical decisions, proactively address challenges, and contribute to the continuous improvement of our CI/CD pipeline.
Your responsibilities will extend beyond implementation, as you will mentor junior engineers, drive technical discussions, and ensure that our solutions meet high standards of security, performance, availability, and reliability.
Key Responsibilities:
- Design, develop, and implement scalable, high-quality software solutions that are secure, reliable, and performant.
- Lead architectural and design discussions, ensuring adherence to best practices and maintainability.
- Write and review high-quality, well-documented code with an emphasis on efficiency and scalability.
- Conduct thorough code reviews, identifying potential errors, inefficiencies, and opportunities for improvement in the codebase.
- Provide technical leadership and mentorship to junior and mid-level engineers, fostering a culture of learning and collaboration.
- Communicate project status, risks, and technical decisions effectively to both technical and non-technical stakeholders.
- Collaborate closely with Product Owners, Developers, and QA teams to ensure successful product releases.
- Proactively identify, assess, and mitigate risks, including security risks, throughout the software development lifecycle.
- Contribute to the evolution of CI/CD pipelines, improving automation and deployment processes.
- Join the team’s out-of-hours on-call rota to support critical product alerts. This typically starts after 6 months of onboarding, and we provide additional compensation to acknowledge the commitment and disruption to your time.
Skills & Experience:
- Bachelor's degree in Computer Science, Information Technology, or equivalent experience.
- Minimum of 5 years of experience in developing complex software applications in a commercial environment.
- 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.
- 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.
As well as being a part of something exciting everyday, you will also receive the following benefits:
- Annual bonus scheme dependent on individual and company performance
- Annual salary of £48,000 - £58,000
- 25 days holiday each year (+ bank holidays + 1 day after each year of service with up to a max. of 30 days)
- Workplace pension scheme
- Private medical insurance (upon 30 days of employment)
- 7 hours per day, 35 hours per week
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s