Pindrop is redefining trust in the digital age with its advanced technologies for voice and video authentication. The Senior Software Engineer will lead and contribute to the development and maintenance of software applications, focusing on MLOps systems that train models and produce predictions.
Responsibilities:
- Software Development: Design, develop, test, and maintain our complex software applications, ensuring high-quality code and adherence to best practices. Play a critical role in the development and maintenance of our software products by designing, building, evolving, and scaling state-of-the-art solutions for our Pindrop platform
- Technical Leadership: Provide technical leadership and guidance to junior engineers and the development team, including code reviews, architecture decisions, and mentoring
- Architecture and Design: Contribute to the design and architecture of software systems, ensuring scalability, maintainability, and performance
- Problem Solving: Analyze and solve complex technical problems, and make recommendations for improvements and optimizations
- Quality Assurance: Implement and advocate for best practices in testing and quality assurance, including unit testing, integration testing, and automated testing
- Code Review: Participate in code reviews and provide constructive feedback to ensure code quality and consistency
- Research and Innovation: Stay current with emerging technologies, tools, and programming languages and apply them where relevant to improve software development processes
- Security and Compliance: Ensure software adheres to security standards and compliance requirements, addressing vulnerabilities and potential risks
- Design and implement cloud solutions, build MLOps on cloud (AWS, Azure, or GCP)
- Build CI/CD pipelines orchestration by GitLab CI, GitHub Actions, Circle CI, Airflow or similar tools
- Data science model review: run code and refactor, optimize, containerize, deploy, version, and monitor its quality
- Validate and add automated tests for Data Science models
- Work closely with a team of researchers and data scientists to productionize and document research innovations
Requirements:
- 5-7 Years of Software Engineering experience
- Experience with cloud computing environments, especially AWS and container-based deployment using Docker and Kubernetes
- Experience working with Python, 2-3 years minimum
- Experience operating services in production environments
- A strong understanding of software design principles, software architecture, design patterns, as well as software development best practices, including testing, version control, and continuous integration
- Experience with infrastructure as code tools like Terraform or AWS CDK
- Experience in monitoring and performance of Production platforms using tech stacks and tools such as Datadog, ELK, Grafana, Prometheus
- Participation in the on-call rotation is required
- Experience with Machine Learning frameworks and libraries such as XGBoost, SciKit-Learn, H2O, TensorFlow, PyTorch, Keras, Spark MLlib
- Experience with leading industry Machine Learning tools and operation frameworks such as MLflow, Kubeflow, Airflow, Seldon Core, TFServing
- Experience building microservices and RESTful APIs
- CI/CD pipelines using tools such as GIT, Jenkins