Our Engineering team helps Nu create and scale the technology that powers the best financial products in Latin America. We strive for state-of-the-art software development practices, using a variety of technologies and architectures to build resilient, secure, and highly scalable systems
As a Staff Software Engineer, you will play a key role in shaping the technical direction of multiple teams, driving the design and evolution of large-scale distributed systems that serve millions of customers. While we value experience with our tech stack, we are confident that engineers who are eager to learn will be successful here — and we will teach you Clojure as our main backend language
Horizontally scalable microservices written mostly in Clojure, using Finagle and leveraging functional programming techniques and hexagonal architecture
High-throughput jobs and inter-service communication using Kafka
Continuous Integration and Deployment pipelines on AWS
Data storage solutions using Datomic and DynamoDB
Monitoring and observability with Prometheus
Services running as much as possible in Kubernetes
We are a process-light organization that values human interactions. We work in small, independent teams that feel like startups within the company and avoid unnecessary coupling and centralization whenever realistic. We understand that execution is key to success and continuously optimize our processes to remove bottlenecks
Working with large-scale distributed systems and understanding their broad architecture and trade-offs
Setting technical direction for multiple teams, ensuring alignment with Business Areas and architecture strategies
Driving pragmatic innovation while ensuring resilient, secure, and flexible solutions that scale across products and geographies
Mentoring engineers across teams and helping maintain a high technical bar organization-wide
Writing, testing, instrumenting, documenting, and maintaining high-quality code
Pairing and participating in code reviews to support the growth of others in and around your teams
Collaborating closely with Product, Design, and Engineering leaders to build new end-to-end experiences
Ensuring comprehensive observability, performance monitoring, and robust error handling across team services
Participating in on-call rotations for your team and responding to incidents as necessary
Focusing primarily on backend applications, while being open to contributing to mobile and frontend development according to business needs