Software Engineer, Back-end¶
About the Role¶
As a Software Engineer, you will be building and owning certain backend services, infrastructure and data that power our products and/or products for our clients. You will gain unique insight into how the existing financial ecosystem works across borders, significantly advance your financial-domain knowledge, and be fully immersed with international hubs of global commerce.
We strive for high standard of engineering quality while solving unique scalability challenges. This is the role for you if you are an excellent communicator with the ability to translate effectively to business team members yet be able to dive deep into technical details when working with development staff. You take complete ownership of the technical implementation of projects and ensure that no stone is left unturned to avoid risks. You take quality very seriously and work to quantify and evaluate new ways of measuring quality to ensure application uptime and a positive user experience, and that we continue to deliver excellent customer experiences.
Our work spans multiple areas.
Product: Responsible for the end-to-end user experience of our products. Our teams are product-aligned, and have engineers from across the stack working together to ship high quality products. Strong partnerships with product and design are at the core.
Data: Advancing our mission and client projects by building products and infrastructure to collect, clean, and organise datasets. We make informed decisions about user-facing products as well as internal systems, often by using mathematics and statistics to extract insights about uncertain processes.
Infrastructure: Providing the infrastructure for our products as well as ensuring developer velocity and system stability. Our work spans multiple areas including architecture, the software development lifecycle, cloud infrastructure, networking, online data processing, reliability, building microservices for core infrastructure such as authentication, and more.
Your Day-To-Day Will Involve¶
- Design large scalable systems within a team; making the right tradeoffs for risk and long-term maintainability
- Lead, build, test, and release product-facing features with stringent correctness and scalability requirements; these features could be related to market data, trading, accounting, authentication, or security
- Proactively identify and drive optimisations and improvements to the product, infrastructure, and systems
- Collaborate with our frontend team to fine tune our REST API and with our data team to support clients
- Target the highest profile problems within engineering, work to deliver a solution in a highly accelerated way with a repeatable, reusable pattern, template or framework for teams going forward facing similar problems
- Identify high impact classes of problems and design and implement general solutions with high return on investment
- Provide mentorship both formally and informally to engineers, define and formalise the architecture design process and guide the overall architectural direction
- Provide infrastructure and tooling to automate test development and execution up and down the testing pyramid, including unit, API and integration testing
- Provide the infrastructure to automate and standardise how software is built, versioned and deployed to target environments
- Accelerate Kubernetes Adoption, provide compute, network, storage plus abstractions to interface with PAAS frameworks to automate, standardise and abstract common infrastructure
- Transition the organisation to an immutable, container-based infrastructure on Kubernetes via a self-service platform-as-a-service that enables engineers to generate, deploy and operate fully functional microservice stacks
- Provide scalable, robust software and infrastructure
- Provide a best in industry messaging platform with schema enforcement, exactly once delivery, pub-sub and more
- We are looking to grow our team and are looking to add engineers ranging from 3 to 6+ years of software engineering experience
- Fluent in one or more programming languages, preference given to Go & NodeJS
- Experience authoring and operating high-scale services
- Experience with scalable distributed systems, both built from scratch as well as on Microsoft Azure
- A focus on software engineering best practices such as testing, static analysis, continuous integration, delivery, and deployment
- Self-sufficient in contributing to the team's engineering efforts
- A proven tech lead with experience planning and leading large projects with long-term impact on a single system or team
- Strong technical grasp and have excellent judgement on task prioritizations.
- Able to solve complex engineering problems that deliver results which help the team to achieve its objectives
- History of creating and applying new processes and tooling to increase engineering efficiency
- Willingness to learn and use new technologies
- Ability to debugging complex systems
- Solid understanding of relational databases and transactions
- Familiar with writing highly concurrent systems
- Good intuition for REST API design
- Intimate familiarity of Go, and NodeJS, .NET
- Experience with high-growth startups
- Experience working on Kubernetes and Microsoft Azure
Our Technology Stack¶
- .NET, Go, NodeJS as main languages and frameworks of choice
- Container and container orchestration technologies (e.g. Docker, Kubernetes)
- Microservice-oriented architectures
- Cloud-native infrastructure (i.e. Microsoft Azure)
We’re looking for more growth-minded and collaborative people to be a part of our journey. If you’re ready to give it all in helping us achieve our mission - we’d love to have you apply even if you feel unsure about whether you meet every single requirement in this posting. At Cartan Group, we're looking for people invigorated by our mission, values, and drive to change the world, not just those who simply check off all the boxes.
Please click apply to learn about applying for an open opportunity at Cartan Group.