JOBSEARCHER

Software Engineer, HPC Scheduling

The CompanyNorthMark Compute & Cloud (NMC²) is backed by dedicated leadership and investment, with a clear mission as it operates at the bleeding edge of technology. Its goal is to scale and enhance the high-performance computing (HPC) and cloud infrastructure that supports its clients' research, production, and delivery, enabling breakthroughs that shape the industries of tomorrow. Its engineers build critical infrastructure to eliminate friction in scientific research, simulations, analysis, and decision-making, accelerating discovery and driving faster innovation.The PositionThe HPC Scheduling team develops and manages a large high-performance compute (HPC) platform to enable the business to conduct complex research at scale. We are seeking a highly motivated person to join our team to help us continue to push the envelope running batch workloads on Kubernetes.The ideal candidate will have an active interest in Kubernetes and batch computing, a broad range of experience with software engineering and development, as well as experience managing large-scale infrastructure and complex tooling environments.The main focus will be on Armada - an exciting open source CNCF project built and maintained by the team - which we use to solve multi-cluster Kubernetes batch job scheduling at scale.You’ll join an experienced team, working at the cutting-edge of ML workloads and at scale.ResponsibilitiesDesigning and developing high-quality software solutions using procedural programming languages, with a focus on GolangBuilding and maintaining highly scalable, highly available and globally distributed systems to support large-scale research workloadsManaging and optimising data interactions across relational and non-relational databases, particularly PostgreSQLDeveloping and operating containerised applications within Kubernetes, ensuring effective orchestration and workload schedulingSupporting, tuning and troubleshooting Linux-based systems as part of our core compute platformApplying core networking knowledge to help debug, optimise and enhance platform connectivity and performanceIndependently diagnosing and resolving complex technical issues across infrastructure and software layersApplying solid software architecture principles, computer science fundamentals and data structure knowledge to guide design decisions and code qualityDriving continuous improvement by contributing to CI/CD pipelines and engineering best practicesStaying up to date with emerging technologies and approaches, and applying new knowledge across disciplinesRequirementsExperience with developing Kubernetes components, such as controllers and operatorsExperience with event-driven programming and message queues, such as apache Kafka and PulsarExperience of high-performance computing, Kubernetes, or DAG (Directed Acyclic Graph) workflowsExperience of running systems at scale using a cloud provider, ideally AWSUse of operational and runtime tools and practices, including monitoring and logging with systems such as Prometheus and GrafanaExperience of operating or using job scheduling systems, such as SLURMApply Now