Descripción del trabajo
Our Engineering team helps Nubank to create and use the technology that provides us to build the best financial products. We strive for state-of-the-art software development practices that currently include a variety of technologies. While we value candidates that are familiar with them, we are also confident that software engineers who are interested in joining Nubank will be able to learn from our team. The software engineer si focused on software development with Clojure as main programming language (We will teach you Clojure)
Horizontally scalable microservices written mostly in Clojure, using Finagle and leveraging upon functional programming techniques and hexagonal architecture
High throughput jobs and inter-service communication using Kafka
Continuous Integration and Deployment into AWS
Storing data in Datomic and DynamoDB
Monitoring and observability with Prometheus
Running as much as possible in Kubernetes
You will be responsible for
Work with large scale distributed systems, understanding their broad architecture
Plan and execute on entire features, collaborating with peers while planning the work ahead, and seeing it through
Collaborate with building microservices and work with continuous delivery and infrastructure as code
Work with agile software development methodologies
Write, test, instrument, document, and maintain code
Pair, and participate in code reviews, to grow and contribute to the growth of others in and around the team
Collaborate closely with Product, Design, and partner Engineering teams to build new experiences
Participate in on-call rotations for your team and respond to incidents as necessary
Work focused on backend applications, and be open to contribute to mobile and frontend development, according to business needs.
We are looking for a person who has
Work with large scale distributed systems
Proven track experience building digital products
Ability to quickly understand technical and business requirements, translating them into technical design and implementation
A problem-solver who is able to communicate effectively across functional teams
A software engineer who cares deeply about user experience and likes to take part in hiring, onboarding, mentoring, and training
Proven understanding of object-oriented or functional programming language
Notions of distributed systems
Familiarity with cloud technologies
Collaborate with building microservices
Have worked in teams defining asynchronous integrations using event-driven architectures
Have practical knowledge of agile software development methodologies
Work with continuous delivery and infrastructure as code