What are the responsibilities and job description for the Software Deployment Engineer position at Invaryant?
Company Overview:
Invaryant, Inc., is at the forefront of health technology, specializing in the development of a multi-tenant platform that integrates advanced AI, middleware, security features, and communication tools. This platform is designed to facilitate seamless safety signaling and support for REMS programs, decentralized clinical trials (DCTs), and various other life and health science industry segments, enhancing the efficiency and safety of life-saving capabilities.
Position Summary:
The Software Deployment Engineer will play a critical role in ensuring the successful and scalable deployment of our software products by designing, implementing, and maintaining automated deployment pipelines and the necessary infrastructure and processes for continuous integration and continuous delivery (CI/CD). This individual will be responsible for creating and managing robust and automated deployment solutions across different environments (development, staging, production), monitoring system health, troubleshooting deployment-related issues, ensuring system stability and the reliability and security of our software releases, and collaborating closely with development and operations teams to automate deployments and optimize our overall deployment workflows and processes.
Key Responsibilities:
- Develop and maintain automated CI/CD pipelines for efficient and reliable software releases.
- Provision, configure, and maintain the infrastructure required for software deployments across various environments (development, testing, demo, staging, and production).
- Script and automate deployment tasks to minimize manual intervention and reduce errors.
- Implement monitoring tools and processes to track application health, performance, and stability post-deployment.
- Diagnose and resolve problems that arise during or after the deployment process.
- Implement security best practices in deployment processes and infrastructure to protect software releases.
- Work closely with software developers and system administrators to ensure smooth and coordinated deployments.
- Create and maintain clear and concise documentation for deployment processes and configurations.
- Continuously identify and implement improvements to deployment processes for efficiency and reliability.
- Implement strategies and procedures for rolling back deployments and ensuring business continuity in case of failures.
Qualifications:
- Bachelor's degree in Computer Science, Information Technology, or a related field.
- Minimum of 3 years of proven experience in deploying applications in a cloud environment (preferrably Azure).
- Proficiency in using CI/CD platforms, preferrably Azure DevOps.
- Familiarity with Infrastructure as Code (IaC) tools like Terraform (preferred), Ansible, Chef, or Puppet for managing infrastructure.
- Experience deploying and managing applications on Azure.
- Proficiency with containerization tools like Docker and orchestration platforms like Kubernetes or Docker Swarm.
- Experience with monitoring and logging solutions like Prometheus, Grafana, ELK stack (Elasticsearch, Logstash, Kibana), or similar.
- Strong understanding of Linux and/or Windows server operating systems.
- Basic understanding of networking concepts, firewalls, and load balancers.
- Knowledge of security principles and practices relevant to software deployment.
- Excellent analytical and problem-solving skills, along with strong written and verbal communication abilities for collaborating with teams and documenting processes.