What is DevOps?
Making the end product available to its users and ensuring its smooth operation is key in the software development process.
The DevOps engineers are tasked with ensuring this happens in the easiest, quickest, and most error-free way possible. Key factors in accomplishing these goals include:
- close collaboration with the other team members
- design and automation of product development infrastructure (e.g., test environments, CI/CD pipelines)
- design and automation of production systems (servers hosting user-facing software)
- setup of monitoring systems and self-healing automation
Which technologies do we use in our work?
DevOps engineers have a wide variety of modern tools in their toolbox.
Cloud-based solutions such as Amazon Web Services, Microsoft Azure, and Google Cloud are used to provision the necessary infrastructure.
Server provisioning and configuration are done via Infrastructure as Code (IaC) tools, allowing the system configuration to be stored in version control systems such as Git. In this way, DevOps engineers essentially write infrastructure “code”, which is then transformed into real systems. Infrastructure as code tools include Terraform, Ansible, Puppet.
Furthermore, deploying applications is not done by manually installing software packages, but through containerization and orchestration tools such as Docker, Docker Compose, and Kubernetes.
Achieving a high level of automation often includes writing scripts such as Bash and PowerShell, or even fully fledged software solutions that use standard programming languages such as JavaScript, Python, and Go, when necessary.
Integration and delivery processes (CI/CD pipelines) utilize tools, which work together with version control systems like Git. This ensures that every step of the software delivery process is automated and consistent, while instantly triggering alerts if a problem occurs. Common tools include Jenkins, Gitlab CI, GitHub Actions, and Bitbucket Pipelines, among others.
Once deployed, the product must be monitored to track its performance and efficiency. This is done using tools that measure resource usage, request execution times, error rates, and more. Industry-standard tools for this include NewRelic, Datadog, and AWS CloudWatch.
What does the Astea DevOps engineer internship look like?
The internship starts with a theoretical and practical introduction to key DevOps subjects, technologies, and tools. This happens via lectures given by experienced mentors from the company, as well as via the accompanying exercises and tasks.
The concepts and technologies that will be covered in the internship include:
- Git and GitLab
- Bash shell commands recap and shell scripting
- Linux and virtualization
- Portable virtual environments with Vagrant
- Network configuration & routing
- DNS, HTTP proxies, connectivity issues troubleshooting
- Configuration management with Ansible
- Databases
- Task automation with cron jobs
- Docker and Docker Compose
- Continuous integration and continuous delivery/deployment (CI/CD)
- Monitoring, logging, data visualisation
During the second half of the program, interns from all positions are grouped into one or more teams. Each team is tasked with developing a working application from scratch based on initial requirements, and is structured to mirror our actual production teams – including developers, QA engineers, DevOps engineers, a software analyst, and a client representative. If a role isn’t filled by an intern, experienced employees step in to collaborate, ensuring a complete team dynamic. The group project naturally teaches teamwork and alignment between team members.
The goal is to recreate the lifecycle of a real product/project and all the activities that make up its development, so that interns can experience the reality of our live projects, supported by mentor guidance. The program wraps up with a presentation where teams demonstrate the final product and share the technical challenges they navigated.
DevOps engineers are an active part of the feature development and their role in the group projects is to provide everything necessary in terms of infrastructure in order to ensure the smooth development, testing, and delivery of the final product for every team. DevOps interns will be responsible for:
- Providing the necessary tools to facilitate local development on developers’ machines.
- Creating, automating, and managing test environments (different versions of the product used by QA engineers).
- Building automated testing and deployment (CI/CD) pipelines. This involves integrating version control so that code changes are automatically deployed and tested; if all checks pass, the product is then deployed to the production environment for end users.
- Managing configurations and secrets (e.g., database passwords).
- Setting up required network configurations and troubleshooting issues.
- Implementing monitoring and alerting for test and production environments.
Depending on the specifics of the developed product, tools such as AWS cloud, and Kubernetes for container orchestration may be used.
Find more about the team-oriented internship experience, the program’s structure and benefits, and the voices of our alumni on our internship page.
What are the requirements for the DevOps intern candidates?
- Willingness to learn new things and grow as DevOps engineers
- Basic experience with Linux and its main commands and terminal
- Basic knowledge in the field of networks (for example, IP addressing and subnetting, masks, DNS configuration)
- As Bulgarian is the primary language of the internship, non-native speakers need to have a level of B2 or higher proficiency in Bulgarian
Bonus:
- Experience with scripting or programming languages such as Bash, Python, JavaScript, etc,
- Basic knowledge in the fields of cloud solutions, virtualization, or containers (Docker)
Notes:
- The current internship format is not compatible with the high school education process
- Participation in the program cannot be combined with another full-time employment
This role is open to any work preference: fully remote, fully on-site, or a hybrid mix. Interns can balance their time between working from home and collaborating in-person with mentors and peers at our office located in Sofia.