About the role
We are looking for a Medior or Senior Software Engineer to participate in the development, ownership and delivery of the systems that contain the secret sauce of our client: a bunch of highly available microservices with the business logic and connections to mobile apps and partners to offer a kick-ass international stock trading app.
What you will be doing
- First and foremost design and implement the required architecture and services that run the core, including integrations with our banking partners, transactions, connections to the markets, money exchange, etc., always keeping in mind scalability of systems and security of our users’ data.
- Adopting our engineering best practices (peer review, testing, retrospectives, test coverage, etc.) and proposing new ones to increase efficiency and quality.
- Adjust and maintain with the rest of the team the DevOps processes and tools for software development, to maximize engineering productivity and allow strong levels of testing automation.
- Design and implement together with the other engineers all the channels and processes for the correct monitoring and alerting to know when things go south.
- Actively participate in the conversation with teams from all around the company to make sure our systems work as they should, including the different services that participate in each user interaction with the apps, the FIX protocol when we talk to the markets to send/receive orders, the interaction with the Forex partner for money exchange or the daily reconciliations that happen between the different parts of the system to ensure all numbers related to user’s money and stock match, and if not, why.
- We have a lightweight on-call rotation so that at least one person of the team keeps an eye on the automated alerts until markets close at 10pm, only on weekdays (markets are closed on weekends). We have worked hard to have stable systems and action is very rarely needed.
- 4+ years of relevant experience as a software engineer, ideally with experience in some complex/interesting projects you designed and implemented (for example 24/7 systems with different types of databases, queues, events, microservices and monolith, etc). Extra kudos for systems with high availability, distributed or with high volumes of data.
- You have excellent programming skills and great engineering foundations and best practices. Extra kudos if you have experience with a JVM language (we use mainly Kotlin), MongoDB, SpringBoot and/or AWS.
- You are a big believer in containers and serverless, and consider Docker one of the best inventions of Humankind.
- You have experience working directly with AWS or GCP, including managed services like RDS, Lambdas, ECS or S3, and understand and believe in the power of IaC. We have all our infrastructure in CloudFormation and Terraform so extra kudos if you have worked with these.
- You put into action solid best practices, and enjoy helping the rest of the team acquire and follow them, but at the same time you follow a pragmatic approach. You understand technology always serves the purpose of having a real product used by real users, and keep this as the main decision driver.
- You hate having to do the same thing twice, and always push for automation whenever possible. You have experience with tools to create and configure jobs or pipelines like Ansible or Jenkins.
- You have a curious mind and are independent in terms of problem solving. You feel comfortable when having to develop features not fully defined, that require some research or brainstorming. Since we are building a product that requires innovation in a few different areas, this is pretty much our daily life.
- You have good communication skills and enjoy talking with other teams (Operations, Product Backend, Finance) to achieve the required coordination to create or support a great product. You feel comfortable explaining what you did last weekend in English.
- This is an individual contributor and not a management position, your duties will not include managing people or organizing projects.
- Prior experience in a fintech is not required, but you will get extra kudos if you have it.
- Flexible working: whether it’s working from home or leaving early to pick up the kids from school.
- Learning and Development: our team is hungry to continuously learn and you’ll receive a budget to spend on books and conferences to keep growing as a person.
- Unplugged weekends: we work hard without letting work get in the way of life. We’ve implemented no Slacks or emails on weekends, so you can switch off.
- Impact: your actions will have an impact in the life of millions of customers that rely their life savings (and dreams) on us.
- Birthday disconnection: important days exist to spend valuable time with family and friends, not drained by infinite emails and never ending to-do lists.