“The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.”

— George Bernard Shaw, Man and Superman

Atlantis exists to drive progress by redesigning financial services to serve customers, not corporations. Our goal is to build products that rise above what customers have access to today. Products so intuitive, that our users won’t just rethink how they manage their finances — they’ll rethink the idea of banks and money.

From a development perspective, we’re a small team sailing into the high seas on nimble vessels. Speed is our weapon. Agility is what differentiates us. Every decision is defined by how quickly it helps us improve, and how consistently we can scale upon it without damaging the fleet. The vision is grand, but the journey will be long.

Being a technology company, building robust systems that safeguard the security and privacy of our users are the challenges we grapple with daily. While solving for stability, we also have to be flexible enough to quickly adapt our systems to keep up with changing regulatory environments.

To achieve these ambitious goals, our products push the envelope on what can be achieved through engineering. At Atlantis, we are committed to finding and working with the best engineers.

To clarify, ‘best’ does not mean ‘the most highly educated’, nor does it mean ‘the most experienced’. Our definition of the best engineers are those who accomplish projects quickly and competently, make optimal use of resources, communicate effectively, learn regularly, and document diligently.

In this document, we codify the spirit of engineering at Atlantis, adding to it as we learn and grow together as a team. Read our culture document here.

These qualities, along with Atlantis' core values -- customer obsession, systems thinking, speed, and infinite games, make up our engineering DNA, which we’re outlining in this evolving document.

Our Engineering Principles

  1. Security First - Every decision should ensure our user’s data and funds are secure. This is enforced in every Pull Request, and assessed regularly by external agencies at each step in the development cycle.
  2. Build Value - Focus on building things that provide differentiated value to our products and use off-the-shelf or open source solutions for everything else. When we build, we should ensure reusability.
  3. Build small, ship fast - Strive to build small incremental features, ship quickly to get feedback.
  4. Quality - All the decisions should be in service of customer satisfaction. Long term features should be scalable, robust, well tested, and extensible.
  5. Automate - Anything needed more than 2 times should be automated.
  6. API driven - Data and services should be exchanged via a clean API for maximum agility and confident deployments of new code.
  7. Documentation - We practise a diligent documentation culture in the form of code comments, engineering diagrams (ERD, UMLs, etc), and API documentation (Swagger/Postman).
  8. Lean processes - Processes are only put in place if they help us perform better and move faster. Any process which causes slowdown should be removed or revised.
  9. Build for today, plan for tomorrow - We educate ourselves of the scale and complexity possible in the future. Code is written considering scale required in the near future, but designs are made to be extensible.

Our Engineering Culture

  1. Encourage ideas and innovation - Every engineer in the team should have the itch to experiment and learn new things. We encourage our engineers to talk at conferences, meetups, and participate in hackathons.
  2. Freedom of speech - Everyone (irrespective of age/experience) has the freedom to express thoughts/ideas/criticism objectively without fear and without targeting individuals. No idea is a bad idea.
  3. Continuous learning - We believe an individual’s growth stops when learning stops. We encourage all teammates to spend 10% of their time learning new things, and provide periodic opportunities to share their learnings with the rest of the organisation.
  4. Ownership - We are all the owners of the code we write and the products we build. We are responsible for writing, testing, deploying and supporting the code.
  5. Customer obsessed - The customer always comes first. Any decision we take should ensure customer delight. At no point should we be disconnected from our customers.
  6. Safe Environment  Everyone makes mistakes. As a team, we’ll encounter bugs and botched deployments. We understand these are part of the development lifecycle and ensure such events don’t cause teammates to become conservative with deployments.
  7. Contribute to community - We will strive to open-source any helpful technology and processes we create as part of our work.
  8. Bias to ship - At Atlantis, we believe in doing more than just talking about things. All Atlantis engineers have a strong bias to ship.

Our Engineering Oath

I will work in SMALL TEAMS of less than 5 individuals
Working with MINIMUM COGNITIVE LOAD
Following OPTIMAL WORKFLOWS
that AVOID TECHNICAL DEBT
To build WORLD CLASS PRODUCTS
That EMPOWER OUR CUSTOMERS
And push the LIMITS OF SOFTWARE ENGINEERING.

“Do not let your fire go out, spark by irreplaceable spark, in the hopeless swamps of the approximate, the not-quite, the not-yet, the not-at-all. Do not let the hero in your soul perish, in lonely frustration for the life you deserved, but have never been able to reach. Check your road and the nature of your battle. The world you desire can be won, it exists, it is real, it is possible, it’s yours.”

— Ayn Rand, Atlas Shrugged