Position Overview: As a Principal Architect, you will lead the design and development of robust, scalable, and efficient software solutions. Your expertise in distributed systems and modern architecture will drive technical decisions and influence the direction of our technology landscape.
Roles and Responsibilities: Architectural Leadership: Design and implement high-level architecture for hyper-scale distributed systems. Develop logical architecture and data flow diagrams to communicate solutions effectively. Ensure the architecture meets business needs and aligns with overall organizational goals. Define and communicate overall architecture vision and strategy across the board. Develop and maintain technology roadmaps to outline future initiatives. Review and approve design and implementation decisions. Hands-On Development: Actively participate in coding and development tasks (10-20% of time). Build proofs of concept (POCs) and experiment with new technologies to solve business problems. Provide technical guidance and mentorship to development teams. Technical Solution Development: Identify and implement optimal technical solutions to address complex business challenges. Leverage Domain Driven Design, Event-Driven Architecture, Microservices Architecture, REST, and Service-Oriented Architecture principles. Analyze and choose appropriate data storage solutions (RDBMS, NoSQL, etc.) based on business requirements. Analyze and address all Non-Functional Requirements (NFRs) using Site Reliability Engineering (SRE) principles and the Well-Architected Framework (WAF). Production Operations: Oversee the deployment and operational support of applications in cloud and data center environments. Monitor system performance and availability (Observability), ensuring uptime = 99.9%. Lead incident response efforts during production issues, performing root cause analysis and implementing permanent fixes. Security and Compliance: Ensure applications are developed and run securely, both in cloud and on-prem environments. Coach teams on implementing security best practices for applications and infrastructure. Collaboration and Communication: Work closely with C-level leaders to align technical initiatives with business strategies. Communicate complex technical concepts to non-technical stakeholders effectively. Influence and guide team members and peers in adopting best practices and new technologies. Continuous Learning and Community Engagement: Stay updated on industry trends, emerging technologies, and best practices. Contribute to the broader software community through blogs, open-source contributions, or speaking engagements. Team Leadership and Development: Foster a culture of innovation, collaboration, and continuous improvement within the engineering team. Mentor junior engineers and encourage professional growth within the team. Must-Have Skills: Overall with 15+ years of experience, with 10+ years of hands-on experience building hyper-scale distributed systems following modern architecture in software. Should be able to work as an individual contributor or as a lead for the team. Thorough knowledge in one or more of Domain Driven Design, Event-Driven Architecture, REST architecture, Service-Oriented Architecture. Extensive hands-on experience with building and running highly data-intensive applications in production. Proficiency in implementing caching, low latency services, highly responsive applications, and systems that handle billions of requests daily. Familiarity with languages and tools such as Python, Golang, Java, and Node. Expert level knowledge in cloud (AWS and/or Google and/or Azure) or data center environments, and understanding of services/systems like load balancers, firewalls, routing, DNS. Comprehensive understanding of distributed systems, including caches, queues, databases, service application code, front-end systems. Ability to produce logical architecture/data flow diagrams to explain solutions and system behaviors. Familiar with design patterns (circuit breaker, CQRS, proxy, MVC) and theorems like CAP. Proficient in choosing appropriate datastores for business problems (RDBMS vs NoSQL vs file system storage vs object storage vs block storage). Knowledgeable in running applications securely in the cloud or on-prem data centers. Experienced in implementing authentication/authorization, distributed tracing, monitoring, and logging. Capable of addressing production incidents, performing root cause analysis, and implementing permanent fixes. Experience with HTTP protocols, REST architecture, WebSockets, gRPC, and QUIC protocols. Good to Have: Familiarity with chaos engineering principles. Experience with AI tools, technologies, and implementation of AI-driven systems (e.g., recommendation algorithms, personalization). Active contributions to software development communities (e.g., GitHub, tech blogs). Qualification: Master's or Bachelor's degree in Computer Science Engineering, or a related technical degree.
Location: Melbourne, Australia
Job Types: Full-time, Permanent
Pay: $151,352.22 – $228,882.51 per year
Benefits: Extended annual leave Schedule: 8 hour shift Morning shift Supplementary Pay: Performance bonus Work Authorisation: Australia (Required) Work Location: In person
#J-18808-Ljbffr