Why is software engineering important for Nubank?
Nubank is a technology company, and software engineers form the bulk of our team. Our software team creates new features for our cardholder customers, as well as advanced analytics and machine learning models to continuously improve decision making and streamline processes.
Meet The Nubankers: Rafael Lisboa: http://sou.nu/softwareengineernu
What are some examples of problems a software engineer will solve?
Shipping valuable features requires close coordination between devops, database, API, frontend, and mobile workstreams; Nubank engineers commonly pair and rotate focus between these responsibilities. We consistently work with new technologies, and thus value professionals who are open to learning new things, regardless of pre-existing comfort zones. Nubank software engineers might solve any of the following problems:
- Build backend microservices in functional programming languages, such as Clojure and Scala
- Ship new features for the mobile apps using modern languages like Swift and Kotlin
- Integrate 3rd party services and data pipelines to drive underwriting decisions
- Create interactive visualizations for live streaming data sets
- Build and maintain a codebase downloaded more than 1 million times
- Implement budgeting tools to help customers better understand their spending
- Triage bugs and exceptions reported in production
- Create intelligent monitors for key customer experiences and risk-relevant events
- Automate daily accounting and financial statements for the company
- Measure and optimize API performance
- Conduct system load / stress tests
What is a typical day for a software engineer?
Our teams work using agile frameworks to deliver great solutions for our customers. We emphasize pairing, controlling work-in-progress, and try to adapt our team structures and processes to suit the particular working styles of the engineers within those teams. Our working environment is open and diverse, and our offices have a broad mix of collaborative working spaces, quiet areas, leisures space, and workstations. Overall, we want our engineers to be comfortable at work: we don’t have a dress code and you can work wearing shorts and flip-flops. We also have a pet-friendly office; you may bring your furry friend to work.
How does our process work ?
Our process begins with a brief phone conversation about your past experiences, things you like to do, etc. After that, we send a short technical exercise for you to code on your own time. The exercises we send are based on relevant problems from Nubank's domain, and are designed to familiarize you with some of the technologies we use daily (and to help us evaluate your technical skills). When ready, we ask you to walk us through your exercise and explain your solution. Our process finishes with an in-person visit to our office (we'll cover your expenses if you're traveling from outside Sao Paulo) for a few hours of pair programming. Pair programming gives us a sense for your approach to problem solving in a realistic setting, and gives you some insight into what it would be like to work at Nubank. We aim to circle back to you with feedback within 7 days of any given step in this process.
You will fit well if
- You are results-oriented and enjoy shipping new features
- You are hungry and enjoy being constantly challenged to learn and do more
- You embrace conflict of ideas and like to question the status quo
- You learn fast and easily adapt to changing situations and priorities
- You believe in building great products and doing great work by international standards
- You want to understand the big picture, to be held accountable and make a meaningful contribution with your work
We are excited to meet experienced coders as well as college seniors with various areas of technical focus - there is no single ideal profile. We all wear multiple hats and cannot be experts in everything at once.
Relevant Backend Experiences
- Functional programming (like Clojure, Scala, Haskell, ML, Scheme, Erlang, Lisp, Kotlin or Swift)
- RESTful API oriented design / modular service oriented architecture
- Messaging (like Kafka, RabbitMQ, Resque or Sidekiq)
- JVM experience (Java, Scala, JRuby or Clojure)
- SQL / NoSQL databases (like Datomic, Redis, PostgreSQL or MySQL)
- Automated unit / functional / integration testing
- Infrastructure as code (e.g., Docker, Chef, Puppet, Ansible)
- Modern web frameworks (like Ring, Django, Rails, Sinatra or Express)
- Amazon Web Services
Relevant Frontend Experiences
- Browser-based single page applications: Om, Hoplon, Reagent, Re-frame, React, Angular, Mithril, Backbone, Ember
- Modern frontend workflow: like Lein, Boot, Bower, Grunt, Gulp, etc.
- Interactive data visualization (e.g., d3.js, crossfilter)
- Automated testing
- Memory management and performance tuning
Relevant Mobile Experiences
- Modern languages for mobile development (Kotlin, Swift)
- Reactive extensions (RxJava, RxSwift)
- Memory management
- Unit tests, instrumental tests (like KIF, Nimble, SwiftCheck, Spoon, Espresso or Mockito)
You will have a meaningful chance to shape architecture, process, and culture while working with bleeding edge technologies. We believe in good team chemistry, enthusiasm for building things, and the (often surprising) capacity to learn new things when we stay humble and open-minded. An engineering or computer science undergraduate degree and English language skills are helpful.
- Competitive compensation package, including opportunity to earn equity ownership in Nubank
- Health, dental and life insurance
- Meal allowance (“vale refeição”)
- Flexibility to choose your own custom setup (computer, monitors, OS etc.)