Senior Software Engineer GO
Job description
About the role
This position centers on architecting and delivering robust backend systems using the Go programming language within a fast-paced, cross-regional technology environment. You will own the full lifecycle of high-availability financial transaction services, from initial design and implementation through to deployment and ongoing optimization. The role requires deep collaboration with product managers and cross-functional partners to translate business requirements into scalable, secure, and reliable software solutions. You will be responsible for writing production-grade code, conducting thorough code reviews, and actively participating in agile ceremonies such as sprint planning and daily standups. A significant part of this position involves debugging complex issues, improving system performance, and ensuring that services meet strict reliability and security standards. The ideal candidate will communicate technical concepts clearly to both technical and non-technical stakeholders, explaining decisions in plain language. Success in this role is defined by the ability to own outcomes end to end and contribute to the continuous learning culture of the engineering organization.
Key facts
What you'll do
Design and develop new backend services and features in Go, ensuring they align with the company's financial transaction infrastructure goals.
Implement and maintain integrations with messaging systems such as RabbitMQ, ZeroMQ, Kafka, or IBM MQ to enable reliable asynchronous communication.
Collaborate with operations and infrastructure teams to deploy applications on public and private cloud platforms including OpenStack, AWS, Azure, and Google Cloud.
Optimize existing services for performance, scalability, and security within high-availability production environments.
Write comprehensive tests and participate in code reviews to uphold the highest standards of code quality across the team.
Work within agile sprints to plan, execute, and deliver incremental improvements in coordination with product and design stakeholders.
Troubleshoot complex production incidents by analyzing logs, metrics, and traces to identify root causes and implement fixes quickly.
Partner with engineers across regions to ensure consistency in architecture, coding standards, and operational practices.
Utilize CI/CD pipelines and tools such as Azure DevOps to automate build, test, and deployment processes.
Mentor junior engineers by reviewing their code, providing constructive feedback, and sharing knowledge about best practices in Go and cloud systems.
Contribute to technical documentation and decision records to ensure that system designs are understandable and maintainable.
Evaluate new technologies and tools, running experiments to determine if they provide value for the financial services workloads handled by the team.
Engage in capacity planning and performance testing to ensure that services meet business requirements for uptime and responsiveness.
Support the continuous improvement of the development process by identifying bottlenecks and proposing pragmatic solutions.
Requirements
Proficiency in writing production-grade software in Go, with a strong understanding of concurrency patterns and memory management.
Demonstrated experience with messaging systems like RabbitMQ, ZeroMQ, Kafka, or IBM MQ to build resilient and scalable integrations.
Familiarity with public and private cloud platforms including OpenStack, AWS, Azure, and Google Cloud for deploying and operating services.
Experience with CI/CD pipelines and tools such as Azure DevOps to automate software delivery and infrastructure changes.
Capacity to collaborate effectively in team code reviews, providing and receiving feedback constructively.
Ability to break down complex problems into manageable components and design solutions that are testable and maintainable.
Strong written and verbal communication skills to explain technical decisions clearly to both technical and non-technical audiences.
Minimum of mid to senior level experience in software engineering, with a proven track record of delivering reliable backend systems.
Practical notes
Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
The role centers on backend systems for financial transactions. Go is the main programming language for services in production. Engineers work on high-availability platforms requiring strict reliability and security. Collaboration happens in a large, cross-functional technology organization. Continuous learning is encouraged through internal platforms and resources. The company serves the Brazilian entrepreneurial ecosystem with payment infrastructure.
Questions to ask
Useful questions for the interview: what a typical week looks like, how work is assigned, what tools the team uses, and how feedback works. Asking how the role has changed recently and what the team wishes it had known when joining is also reasonable. Questions about the manager's priorities are especially valued.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets.