Salary
💰 $90,000 - $127,000 per year
Tech Stack
Distributed SystemsDockerKubernetesPHP
About the role
- NMI is looking for a passionate Senior Software Engineer to join our Development team as a result of NMI’s continued growth and investment in the underlying systems.
- As a senior developer with strong experience in C# and/or PHP, you will join a team of industry-leading experts that are talented, ambitious and want to drive the continued development of our payment processing services. Our developers are responsible for software services and deliverables that support the processing of billions of transactions for hundreds of thousands of merchants every year. These applications have to be efficient, reliable, redundant, secure, highly-available and scalable. A background in the development of accounting or billing systems is preferred for this specific role.
- Key Responsibilities: Design, develop, and maintain core billing and invoicing systems using C# and PHP technologies; Take ownership of architectural and design decisions for billing system components; Lead technical discussions, participate in code reviews, and drive best practices in maintainability and performance; Actively mentor and support the growth of junior team members; Lead improvements to CI/CD pipelines and development processes; Implement monitoring, logging, and alerting systems to proactively identify and resolve issues; Optimize database queries and system architecture to handle growing merchant and transaction volumes; Implement robust security measures to protect sensitive payment and merchant data and ensure compliance with PCI DSS standards; 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; Provide feedback and resolutions to escalated support issues; Research and evaluate new technologies and methodologies to improve system performance and developer productivity
- Skills and experience: Bachelor’s degree in Computer Science or equivalent experience; Minimum of 5 years of experience developing complex software applications in a collaborative, agile environment; Advanced proficiency in C# and/or PHP, with strong understanding of object-oriented design principles and design patterns; Advanced experience with database design, optimization, and performance tuning; Strong knowledge of security and compliance best practices (e.g. OWASP, PCI); Excellent communication skills, with a proven ability to mentor others, contribute to a strong team culture, and work with others across teams to move projects forward; Experience designing and architecting scalable, distributed systems with consideration for performance, reliability, and maintainability; Ability to translate complex business requirements into technical solutions; Proven track record of code reviews and maintaining code quality standards; Proven ability to understand, debug, and enhance complex existing systems with limited documentation and evolving requirements; Experience with logging systems (such as Logz.io) and optimizing logs preferred; Experience with containerization (e.g. Kubernetes, Docker, etc.) preferred; Experience with monitoring and alerting systems (e.g. DataDog, NewRelic, etc.) preferred; Experience with CI/CD pipelines, automated testing, and deployment processes preferred
Requirements
- Bachelor's degree in Computer Science or equivalent experience
- Minimum of 5 years of experience developing complex software applications in a collaborative, agile environment
- Advanced proficiency in C# and/or PHP, with strong understanding of object-oriented design principles and design patterns
- Advanced experience with database design, optimization, and performance tuning
- Strong knowledge of security and compliance best practices (e.g. OWASP, PCI)
- Excellent communication skills, with a proven ability to mentor others, contribute to a strong team culture, and work with others across teams to move projects forward
- Experience designing and architecting scalable, distributed systems with consideration for performance, reliability, and maintainability
- Ability to translate complex business requirements into technical solutions
- Proven track record of code reviews and maintaining code quality standards
- Proven ability to understand, debug, and enhance complex existing systems with limited documentation and evolving requirements
- Experience with logging systems (such as Logz.io) and optimizing logs preferred
- Experience with containerization (e.g. Kubernetes, Docker, etc.) preferred
- Experience with monitoring and alerting systems (e.g. DataDog, NewRelic, etc.) preferred
- Experience with CI/CD pipelines, automated testing, and deployment processes preferred