About the job
About Us
Nu is a leading digital financial platform globally, boasting over 122 million customers across Brazil, Mexico, and Colombia. Our mission is to simplify finance and empower individuals, and we are at the forefront of transforming financial services in Latin America, with a vibrant future ahead.
As a publicly traded company on the New York Stock Exchange (NYSE: NU), we leverage cutting-edge technology, data intelligence, and an agile operational model to deliver financial products that are both user-friendly and accessible.
Our accomplishments have earned us recognition in prestigious global rankings, including Time 100 Companies, Fast Company’s Most Innovative Companies, and Forbes World’s Best Bank. Discover more about us on our institutional page.
About the Role
Join our dynamic Engineering team at Nubank, where we harness technology to craft exceptional financial products. We uphold modern software development practices and embrace a diverse tech stack. While we value familiarity with various technologies, we also welcome software engineers eager to learn and grow with our team. This role primarily involves software development using Clojure as the main programming language (training will be provided).
- Design and implement horizontally scalable microservices primarily in Clojure, utilizing Finagle and embracing functional programming principles and hexagonal architecture.
- Manage high-throughput jobs and inter-service communication via Kafka.
- Implement Continuous Integration and Deployment processes on AWS.
- Handle data storage solutions with Datomic and DynamoDB.
- Ensure system monitoring and observability with Prometheus.
- Maximize the use of Kubernetes for application deployment.
We pride ourselves on being a process-light organization that promotes human interactions. Our small, independent teams operate like startups, minimizing coupling and centralization to foster innovation. We believe that execution is key to success, and we continuously refine our processes to eliminate bottlenecks.
Your Responsibilities
- Engage with large-scale distributed systems, gaining a comprehensive understanding of their architecture.
- Establish the technical direction for multiple teams, ensuring alignment with business objectives and architectural strategies.
- Foster pragmatic innovation while delivering resilient, flexible solutions that can scale across various products and regions.

