Skip to content

Latest commit

 

History

History
55 lines (28 loc) · 8.19 KB

DevOpsEngineer.md

File metadata and controls

55 lines (28 loc) · 8.19 KB

DevOps Engineer

The DevOps engineer builds tools and critical infrastructures that support the business’s site/software/application platforms. He is a key member of engineering department and aids in deploying shared infrastructure and traffic management services. He also supports the already existent web-based sites/software/applications.

The DevOps Engineers works closely with other engineering and technical teams in deploying their code, providing operational support for new and existing sites/software, and debugging production issues. The DevOps Engineer performs functions required for the deployment, configuration, support, and troubleshooting of issues with the business’s site/software.

The DevOps Engineer has the discretion to make key decisions without much oversight inclusive of decisions on automation processes, tools, and resources for building sites/software as promptly and efficiently as possible.

Objectives and Responsibilities of the DevOps Engineer

Management: The DevOps Engineer is tasked with monitoring the business’s site/software, ensuring standard compliance. The DevOps Engineer also monitors the engineering department’s tools and procedures and promotes their evolution alongside the business’s systems. He plays an active role in building and improving the platform services inclusive of websites, software, and applications while hosting and managing databases.

The DevOps Engineer regularly checks and monitors alarms, diagnoses symptoms, analyzes root causes, and employs preventative measures to avoid reoccurrence of similar issues. The DevOps Engineer takes ownership and accountability of the performance and reliability of the web-services that the business manages.

It is also the DevOps Engineer’s duty to troubleshoot complex issues as quickly and effectively as possible. He understands websites and software capacity planning requirements and works to ensure that sites/software are deployed in a scalable architecture.

Design and Development: The DevOps Engineer is further tasked with designing and developing the business’s infrastructure architecture as well as developing automated scripts meant for building development and production environments. The DevOps Engineer is a high-quality coder and, as such, he authors tools that improve developer capacity and productivity.

He designs, tests, and supports automated risk-management techniques and enables the support of continuous and consistent integration techniques for the development teams. In this position, the DevOps Engineer will also design, setup, and maintain core infrastructures that run the business’s online practices.

He will design and build automation frameworks for the deployment, management, and monitoring of web-based business services and platforms. The DevOps Engineer will also maintain the business’s configuration and deployment tools such as Terraform and Puppet, transforming them into a robust system in order to auto-scale the business’s platform.

Collaboration and Support: The role of the DevOps is a collaborative role where he works hand-in-hand with the development teams in creating solutions for the purpose of deploying and monitoring sites/software/applications. In his collaborative capacity, the DevOps Engineer will also be supporting technical teams by using technical analyses in order to improve the scalability and reliability of entire system.

He stays in constant communication with the IT department in the event of any issues with the business’s sites/software/application. The DevOps Engineer will further work closely with the Senior DevOps management in balancing the requirements for performance, cost-effectiveness, and reliability of the DevOps department.

Knowledge: The DevOps Engineer plays the role of an advocate and promotes knowledge sharing and DevOps culture across the entire engineering department. He also keeps up with industry best practices, trends, and standards and identifies automation opportunities, designs, and develops automation solutions that improve DevOps operations and efficiency.

Other Duties: The DevOps Engineer will also perform similar duties and duties as delegated by the Lead DevOps Engineer, Head of DevOps, Director IT Operations, Chief Technology Officer, or the Employer.

Required Qualifications of the DevOps Engineer

Education: The DevOps Engineer has to have a bachelor’ degree in Computer Science or any other relevant field. An equivalent of the same in working experience is also acceptable for this position.

Experience: A candidate for this position must have had at least 3 years of working experience in a DevOps capacity, preferably working support personnel for a DevOps Engineer in a fast-paced and constantly evolving environment. He will also have a proven and successful experience developing large scale software solutions in more than one language, for example, JavaScript, Java, .NET, Python, and so forth.

The candidate will also have had experience working with MySQL, Elasticsearch, fastly, Redis, Cassandra and experience with continuous agile development and integration processes. He will further have had experience working with Linux server administration and have a deep understanding of Linux/Unix.

The candidate will also have had experience working with NoSQL databases, for example, Aerospike, Cassandra, and MongoDB as well as extensive relational database experience and extensive network knowledge on network security. A suitable candidate will further have a demonstrated experience working with tools such as Wireshark, Curl, Dig, and so forth.

The candidate will further have had experience working with configuration management tools, for example, Puppet or Chef as well as a vast knowledge in high-availability approaches such as failover, load balancing, clustering, and risk-management.

Communication Skills: The DevOps Engineer has to have exceptional communication skills, both in written and in verbal form. This is especially due to his extensively collaborative role, where clarity in conveyance of information and instructions will play a significant role in determining how well collaborative tasks are executed.

Communication skills will also be necessary in his interactions with senior DevOps management, which will directly affect how well the DevOps department is managed, in turn determining departmental performance.

Technology/Software: A candidate for this position must demonstrate high familiarity with technology and exceptionally good computer skills. He will also be highly familiar with the workings of Java, C++, and GoLang as well as expertise in cloud platforms, such as, Google App Engine. The candidate must also be highly familiar with configuration management tools, for example, Ansible, and Puppet.

He must also be highly familiar with open source and commercial monitoring systems like Zabbix, Nagios, Open Falcon, and so forth and be highly knowledgeable of Continuous Integration tools such as Jenkins, Maven, GitHub, and SVN. He will be an expert in cluster management software such as Kubernetes and Mesos and be equally knowledgeable in Big data processing, for example, Hadoop, Apache Kafka, Spark, and Storm.

The candidate must also demonstrate proficiency Django and other Python frameworks. He will additionally have strong Linux skills, preferably Ubuntu and be proficient in similar scripting language such as Ruby.

Interpersonal Skills: In addition to these skills and qualifications, the DevOps Engineer must have certain personal attributes that make him an even more suitable candidate for the position. The DevOps Engineer will be result-oriented, be passionate in the improvement of user experience, be a critical and strategic thinker, be highly organized, have an ability to multi-task and meet aggressive deadlines, be a team-player and team-builder, work comfortably in constantly evolving environment, and demonstrate calmness and composure in times of uncertainty and stress.

People Skills: The DevOps Engineer must also be a people person who is able to make meaningful and long-lasting connections with others. He must be likable, relatable, and approachable, inspiring trust and confidence in others, who will then be more willing to trust in his directives and insights.