Application Architect
Role details
Job location
Tech stack
Job description
As an Application Architect with a focus on building a backend data product, you will work closely with your product development peers in fast-paced Agile development teams building efficient APIs using the latest software development technologies and infrastructure., * Design, develop, and maintain backend systems and services using Java, Spring Boot, and PostgreSQL within a microservices architecture to deliver cloud-based geospatial enterprise products.
- Contribute to the design of RESTful APIs to build scalable high-performance services for single- and multi-tenant SaaS products.
- Design, document and oversee the architecture of scalable SaaS products.
- Work as part of a team optimising database queries and ensuring data integrity and consistency in PostgreSQL.
- Engage in technical discussions, participate in technical designs and present technical ideas through white boarding (or online equivalent).
- Evaluate technology options to meet business needs and make appropriate trade-offs.
- Stay abreast of emerging trends in SaaS, cloud computing and data technologies.
- Maintain code quality through best practices, unit testing and code quality automation.
- Understand performance parameters and be able to assess application performance and contribute to optimising it/improving it through design and best coding practices.
- Work on core data structures as well as algorithms and have the ability to implement them using a language of choice.
- Use excellent communication skills to work collaboratively and effectively with global teams in an Agile setting.
- Write clear, structured documentation for designs, ensuring developers and stakeholders can easily understand and maintain the codebase, along with product documentation to support end user integration.
Requirements
- Bachelor's Degree in Computer Science or "STEM" Majors (Science, Technology, Engineering and Math) with advanced experience.
- Strong professional experience.
Desired characteristics
- Experience in using back-end technologies such as Java, Spring Boot, PostgreSQL, GraphQL, Kafka, MinIO, and Infinispan.
- Experience in both SaaS and on-premise deployments developing performant, resilient and scalable enterprise software services and components using microservices, with a focus on handling large data volumes including both relational and NoSQL databases.
- Experience in designing, implementing and maintaining observability solutions enabling effective monitoring and troubleshooting of applications and services.
- Experience with PostgreSQL, including performance optimization, query tuning, and schema design in a microservice environment.
- Familiarity with PostGIS for working with geospatial data in PostgreSQL.
- Experience building distributed systems including on security, analytics, throttling, caching, and logging.
- Experience building performant RESTful or GraphQL APIs which serve large volumes of data
- Familiarity with geospatial data ingestion and management at scale (or similar connected network paradigm).
- Experience using server-side monitoring and observability technologies such as Grafana, Kibana, Kiali, and Jaeger.
- Experience in containerization and orchestration using Docker, Helm and Kubernetes.
- Experience with Security frameworks (e.g., JWT, OATH2)
- Strong knowledge of Object-Oriented Analysis and Design, Software Design Patterns and Java coding principles.
- Experience in API documentation, for example using Swagger with REST API and GraphQL schema documentation.
We value building teams diverse in thought and experiences. If you like what you've read and are excited by this opportunity, but don't meet all the requirements, we encourage you to make the jump and apply anyway.