We are seeking a highly skilled and passionate expert backend developer to join our growing team and take ownership of key aspects of our cutting-edge projects. You will have major impact in shaping the development of high-performance scalable applications, through hands-on work and technical leadership.
Requirements- Extensive experience in designing, building, and deploying highly scalable and performant distributed systems in a production environment.
- Demonstrated ability to design and build such backend distributed applications from scratch, considering many aspects of application design and implementation including performance, security, maintainability, resiliency, user experience, and more.
- Demonstrated ability to balance and engineer trade-offs between implementation time required and sophistication of the solution.
- Experience with requirement analysis (working with Product to define the scope of solutions)
- Proficiency with cloud computing platforms such as AWS, GCP, Azure - Load balancing, API gateways, User management, Object stores, Security, Databases, etc.
- Deep proficiency with one of these programming languages: C#, RUST, Java, C++, GO, Scala, Python
- Proficiency designing and implementing API’s: GraphQL, REST, gRPC, etc.
- Proficiency working with large data sets in a variety of databases technologies, such as: Postgres, CockroachDB, Vitess, Bigtable, Cassandra, Dynamo, Kafka, RabbitMQ.
- Proficiency in applying caching solutions to address performance and scalability needs.
- Experience working with dynamic (not-fixed) schemas, and schemas defined by 3rd party developers.
- Proficiency with Microservices Architecture and tools: Kubernetes, Docker, serverless, etc.
- Proficiency with Application Resiliency and DevOps: security, fault tolerance, disaster recovery, monitoring, logging, and operation at scale
- Experience with Agile development
- Experience with CI/CD methodologies and automation tools such as Terraform
- Experience leading projects / initiatives
Bonus qualifications (prioritized)- Experience working with large data sets in browser-based real-time collaborative multi-user applications. This could be experience with web apps manipulating large quantities of text, charts, 2D, or 3D graphics, etc.
- Experience with data manipulation in collaborative web applications. For example, handling “eventual consistency” of data in “multi-Player” collaboration technologies (such as with “Google Docs”). Technologies such as SignalIR, Y.js, etc.
- Nice-to-have: industry experience: CAD, ML, Simulation, Data compression, Reprographics, Solid modelling, Reality Capture/3D-scanning, and other technologies found in the building architecture and construction industries.