Lead Software Engineer (Machine Learning) at Whispir

Technology, Australia - Anywhere, Remote remote engineering
Posted 17 days ago

A bit about Whispir

Whispir is a cloud software and communications platform that seeks to help organisations communicate like people. Our platform enables our customers to build powerful communications workflows and automate interactions between systems, business, devices and people - with no coding required.

The outcomes are powerful – people everywhere can have access to the right information at the right time so that they can make informed decisions, take action, engage and communicate with each other.

Organisations can finally start to behave how they have always wanted to – they can engage with people the way people do... in a timely, personal and contextually sensitive way with actionable, useful insights that promote richer and deeper engagement.

We know this because leading organisations use Whispir’s technology locally and globally every day for this reason. Whispir becomes their competitive advantage as they streamline their operations, improve their resilience and bring innovative new services to market quickly. We also see first-hand the capacity of these innovative solutions to assist saving lives and materially improve community outcomes.

About the position:

As a Lead Software Engineer (Machine Learning) at Whispir, you will join one of our strategic, cross-functional product teams. You will work closely with the Product and other Software Engineering teams across the business to Lead the planning, design, development, modification, testing, implementation, support and documentation of the various Software Applications, Services and Systems owned by your team.
We are currently adopting an event-driven architecture to enable our system to scale with ever-increasing users, regions and throughput (Whispir handles millions of transactions a day) as well as to capture data to better engineer decisions through our AI/ML workflows.

Key responsibilities:

  • Lead the team to Design, Develop and Own End to End highly-scalable, highly-available, observable, secure, event-driven Machine Learning Software Systems
  • Contribute to various areas of such systems’ Software Development Life Cycle such as Planning, Design, Implementation, Testing, Maintenance, Support and Documentation
  • Consult with the relevant internal stakeholders to research, analyse and evaluate system program needs and integration points
  • Research, Analyse and evaluate our systems and procedures to identify existing issues, deficiencies and limitations
  • Design and Implement technology solutions and required tooling that improve our system quality to meet system and stakeholder requirements
  • Write and maintain high quality, testable and modular software code to meet system requirements, designs and technical specifications
  • Use established testing protocols, industry standards and best practices to test, debug, diagnose and correct errors and faults in existing systems and processes
  • Develop, update and maintain technical & end-user documentation, designs,
    architectural diagrams, operating & debugging procedures and supporting tools
  • Utilise and Advocate proactively for Modern Software Engineering practices such as Code Reviews, Test Driven Development, Continuous Integration & Delivery, Automation, Logging and Monitoring
  • Actively participate and contribute to brainstorming, developing proposals, technical strategy discussions, and agile development practices by working closely with other Software Engineering teams and guilds as necessary
  • Continuously improve yourself and your teammates via mentoring, coaching, discussions, code reviews, brown bags and presentations
  • Represent Whispir within the data, machine learning and software engineering community by contributing towards our outreach, public blogs, demonstrations, technical talks etc..

What you bring to the role:

  •  As a seasoned Software Engineer (Machine Learning) with experience working on large-scale Machine Learning Software systems you’ll have a solid understanding of at least one modern programming language. Knowledge of Python, Go & Node
    would be advantageous and allow you to get up to speed with our tech stack very quickly.
  • You’re comfortable jumping into unfamiliar codebases and languages and providing feedback and improvements.
  • You recognize things are never perfect, but you passionately contribute to driving us all towards a better outcome.
  • Problem-solving is central to everything you enjoy about your profession. You talk product, and can translate our goals into something that is technically feasible.
  • You write beautifully clean, efficient and maintainable code and have a good appreciation for application development, testing, debugging, refactoring, agile, and modern Software Engineering best practices.
  • Good communication skills, both written and verbal - you’ll collaborate closely with our other product teams around the globe.
  • You love learning, applying your knowledge, and mentoring others.
  • You always want to find ways to improve; yourself and our systems
  • You embrace data to combat uncertainty and unintentional bias
  • You drive positive, proactive decisions
  • You support and engage your co-workers and industry

Preferred Qualifications/Experience:

  • Experience as an ML Engineer / Software Engineer (Machine Learning) / MLOps Engineer
  • Software Engineering skills to write production grade code
    • Foundational Software Engineering skills around writing clean code, familiarity with SOLID/DRY principles, SDLC, TDD, general ability to maintain a codebase in a good shape
    • Solid programming skills in at least one Programming language Python, Scala, Go etc..
  • ML Engineering skills to bridge the gap between Data Science and Software Engineering worlds by working closely with them to package models into applications
    • Familiarity (and preferably hands-on working experience) with key Machine Learning and Data Science fundamentals
    • Excellent understanding of & experience (to varying degrees) in end to end Machine Learning development lifecycle all the way from ideation/brainstorming to proof of concepts/prototyping, data ingestion, exploration, model building to productionising, deploying, monitoring and maintaining ML Solutions/Applications
  • MLOps/DevOps Platform Experience to Architect, Build and Maintain Infrastructure for ML
    • Experience with CI/CD pipelines, Automated testing/Continuous deployments, GitOps experience would be a bonus
    • Experience with Containerisation with Docker and Kubernetes
    • Familiarity/Experience with Microservices and Event Driven Architecture patterns
    • Experience with Architecting, standing up and maintaining infrastructure (preferably with infrastructure as code) on one of the major cloud providers
    • DevOps / MLOps experience specifically in the areas of Distributed training, Data Versioning/Lineage, ML Pipelines, API design etc..
    • With focus on First principles around Clean Design, Scalability, Security and Reliability
  • Our Tech Stack / Tools
    • Programming languages we use - Python, Bash
    • ML Libraries such as Scikit Learn, Tensorflow, Pytorch, HuggingFace (transformers, datasets)
    • Data Processing libraries such as Numpy, Pandas, Dask
    • Configuration languages Yaml, Terraform Configuration Language
    • Our applications are currently deployed to AWS using Sagemaker, Lambdas, API Gateway etc.
    • Our ML platform will have Kubernetes and Kubeflow at its heart