Your new role
In this role, you’ll join as a Senior Software Engineer on the ‘Merchant Solutions’ team, which is part of the wider ‘Pay’ engineering group.
The Merchant Solutions team is responsible for a wide array of functionality of our Olo Pay product. This includes supporting both card-present and card-not-present transaction flow, reconciliation and reporting, payouts, pricing plans, merchant account management, and more. Work can include building exciting new initiatives from scratch, adding functionality to our existing products, and supporting our brands.Demonstrate proficiency in the team's domain and technology stack, providing guidance and mentorship to junior engineers and contributing to technical decision-making.
Proactively address technical debt by prioritising its resolution alongside feature development, ensuring maintainable, scalable, and high-quality codebases through regular refactoring and system improvements.
Take ownership of complex features and projects, working independently and collaborating with team members to drive development from concept to delivery.
Lead code reviews, set quality standards, and offer in-depth feedback to improve code quality across the team.
Partner with Product and other stakeholders to refine requirements, ensuring solutions are well-architected and aligned with business goals.
Focus on delivering reliable, maintainable software solutions and actively implements performance optimisations and resilience mechanisms.
Monitor and maintain services in production, diagnosing and resolving critical issues efficiently with minimal support.
Participate in the architecture and design of distributed systems, ensuring best practices are followed for reliability and scalability.
Take the initiative to improve the team's development processes and tooling, advocating for best practices and automation improvements.
Ensure consistency and quality in shared components and APIs.
Contribute actively to the team's knowledge base, lead learning sessions, and promote a culture of continuous improvement.
Demonstrate ownership of the team's delivery pipeline, ensuring that code quality, testing standards, and deployment practices are continuously optimised.
Active participation in on-call duties is required, with specific responsibilities determined by your assigned team and area of expertise.
Bachelor’s Degree in Computer Science, Software Engineering, or a related field, or equivalent practical experience.
5+ years of experience in software engineering.
Advanced Programming Skills: Highly proficient in .Net/C# and capable of independently designing and implementing complex algorithms and architectures.
CI/CD Mastery: Skilled in managing and improving CI/CD processes, with hands-on experience using tools like GitHub Actions, TeamCity, and Octopus Deploy.
Testing and Automation: Expert in unit, integration, and end-to-end testing practices, with a strong emphasis on automation for testing and deployment.
Distributed Systems and Cloud Services: Strong knowledge of building and maintaining distributed systems, leveraging cloud platforms and services (e.g., AWS, MongoDB Atlas, Kubernetes/EKS).
Technical Leadership and Collaboration: Demonstrates leadership skills by mentoring peers, leading technical discussions, and collaborating effectively across teams and departments to deliver solutions aligned with business priorities.