Kotlin / Scala Senior Architect Developer
We have a green fields project to completely re-engineer a business from the ground up using the latest technology, best practices and a high-performance team. We’re a startup that experienced rapid and sustained growth, became a huge success and was recently acquired.
Now, we’re the digital innovation arm for a multibillion euro giant. This is a good time to pay down our own technical debt, re-architect our platform and structure our innovation lab for the creation of some truly radical and inventive new tech products.
We're redeveloping our entire stack to place it on a firm foundation:
- The database is being re-architected to an immutable, append-only design to support advanced data science analytics.
- We’re using Google Cloud’s low-latency, massively-scalable NoSQL Bigtable for its sub-10ms latency and excellent support for log-centric time series data.
- We're going with the JVM for the microservice architecture to deliver us the performance, scalability, reliability and security we need. As a platform, it’s rock-solid at megascale.
- We chose Kotlin as the JVM language because of its strong support for functional programming, immutable objects, strong null pointer protections and high productivity. And, also, not insignificantly, the joy it is to write.
- We’re using a service mesh for service discovery, monitoring, dynamic routing and load balancing. We’re still evaluating which service mesh we’ll go with, with the front-runners being Istio for the control plane and either Envoy or Linkerd for the data plane.
- Outside of the service mesh, in its interface with the real world, we are defining our OAS contracts using SwaggerHub for our React/React Native web & mobile clients and also to access 3rd-party service providers like email and payments gateways.
You can see we have a strong emphasis from the database level up on immutable data (in an event sourcing / CQRS design), FP/FRP as the preferred house-style for the services themselves, a strong emphasis on RESTful, idempotent APIs and well-designed boundaries around the services for a clear separation of concerns to maximise distributability.
We’re looking for senior architect developers experienced in building high-volume, high-availability systems with low-latency performance constraints. Although we selected Kotlin over Scala this time, our previous experiences with Scala development highlighted the high standards of architectural thinking in that community and the strengths Scala devs would bring to a Kotlin development environment.
Specifically, we’re looking for:
- Strong design instincts around immutable designs—at the database layer, data classes / case classes, RESTful and idempotent messaging.
- API design experience. This is a deeper skill than it appears. It looks easy but, after a few years of learning from mistakes, you realise great API design is actually very subtle and multi-faceted.
- An interest in alternating between research—into the right tools, architectures, best practices—and hard-core, productive deliverying to the business. We’re not academic at all. We’re a working multimillion euro business aiming to be a half billion euro one through this transformation project; maintaining business continuity throughout is essential.
- Extensive experience with multi-threading, actor model frameworks, functional reactive programming, synchronous vs asynchronous design trade-offs and building distributed, cloud-native, HA systems.
- Willingness to collaborate with the DevOps team in a genuine partnership to build our CICD deployment platform and with a firm commitment to TDD, testing and rock-solid production systems.
This transformation project has the potential to scale our entire business by some multiple of n and we are committed to hiring at the top level of ability available in the market and building a high-performance team for a high-performance technology outcome. We will be keeping the backend team small, probably no larger than a team of eight. As an incubator lab, we understand that small teams of exceptional individuals can accomplish the kinds of outstanding results that would be out of reach for larger teams. So there is a opportunity for high levels of ownership and autonomy and to really make a personal impact on the architecture.
Separately from the platform transformation described above, we also have an innovation roadmap for some exciting incubation projects. These are centred around novel mobile apps driven by data science analytics (ML, DL, AI) that will delight our customers with their pitch-perfect personalisation, exquisite beauty and relevant timing. This product roadmap depends upon the architectural foundation we’re building now and it will open up opportunities for members of the dev team in the future to dig down into the data analytics layer or transition to a scalability focus for additional country deployment.
This is a complex transformation and we’re looking for senior architect developers who want to share their ideas and explore their full creative potential in a team environment. We looking for developers with strong opinions, who aren’t hesitant in arguing for what they think is right and with the life experiences to be able to back their opinions with sound arguments and specific examples.
We work as a team and highly value a coordinated, team-oriented approach where everyone supports one another. We believe that we can share, learn and help one another grow as individuals in our technical abilities while producing extraordinarily beautiful and performant architectures. We also need to do that while meeting the practical day-to-day needs of the business, which keeps us focused on commercial realities and the customers for whom we are here to serve and engage.
We’re a tech lab and startup, so trialling ideas has been a part of our DNA from the beginning. We don’t expect we’ll make all our design decisions perfect the first time and that’s not the goal. It’s more about being able to work effectively as a team, exploring ideas together and being productive enough to course correct and change direction that will be the keys to this transformation ahead.
If that sounds like you, come share your ideas with us and let’s see what we might accomplish together.