Boost Your Efficiency With Powerful Automation Scripts: A Comprehensive Guide
Tags: automationscripts, automationtesting, softwaretesting
Published: 2023-09-01 07:08:00

In today’s era, we mainly focus on saving time and increasing efficiency; automation scripts play an important role. In this comprehensive guide, we will delve into the world of automation scripts and explore their extensive capabilities. However, before we embark on this journey, let’s take a moment to understand what automation scripts truly mean.

Automation scripts are essentially computer programs or sets of instructions written using scripting languages like Python, PHP, JavaScript, and others. Their primary purpose is to simplify and streamline repetitive tasks, enabling us to save valuable time and effort. Throughout this guide, we will dive deep into a carefully curated collection of highly effective automation scripts, each offering its unique set of benefits. Later, we will also look at some of the advanced automation techniques and real-world use cases of automation scripts.

So, without further ado, let’s kick off our exploration by diving into the concept of automation scripts and uncovering their advantages.

***Here’s 295+*** [***Selenium Interview Questions***](https://www.lambdatest.com/learning-hub/selenium-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub) ***with Answers that will help you boost your confidence in an Interview***

### Understanding Automation Scripts

As we discussed above, automation scripts are nothing but computer programs or instructions written in scripting languages like Python, JavaScript, etc., that are used to automate repetitive tasks. Automation scripts are designed to minimize human actions. It executes specific actions without manual involvement. It reduces time and energy so that the user can use it for more valuable and complex tasks. It also improves efficiency and accuracy.

Now, we will explore the advantages of automation across different domains, such as IT operations, data analysis, quality assurance, and software testing.

* **IT Operations**  
    Within this context, automation scripts play a fundamental role in identifying and resolving typical IT issues, such as cache clearance and system verification. Additionally, these scripts facilitate the automation of tasks like backups and system performance monitoring.
    
* **Data Analysis**  
    When it comes to data analysis, automation scripts excel in collecting data from diverse sources and carrying out operations like data cleansing, filtering, and more.
    
* **Quality Assurance and Software Testing**  
    Automation scripts play a vital role in automating [software testing](https://www.lambdatest.com/learning-hub/software-testing?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub) processes, including [unit testing](https://www.lambdatest.com/learning-hub/unit-testing), [regression testing](https://www.lambdatest.com/learning-hub/regression-testing?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub), and [performance testing](https://www.lambdatest.com/blog/using-cypress-google-lighthouse-performance-testing/?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub). It ensures reliable and efficient testing cycles. It also enables the integration and deployment of software updates, automating build processes that ensure consistent delivery.
    

### Choosing the Right Automation Scripting Language

There are many scripting languages used in the automation scripts, like — Python, PHP, Perl, VBScript, Jython, JavaScript, etc. Therefore, we need to choose the right automation scripting language. But before choosing, several factors need to be considered.

![image](https://cdn-images-1.medium.com/max/800/0*vIAVGD94m1nuvyp_.png align="left")

So let’s discuss some key considerations that help you to make an informed decision.

### Ecosystem and Community Support

A strong ecosystem and active community can provide valuable resources, libraries, forums, and tutorials that help you to overcome challenges and learn from others’ experiences. For example- StackOverflow.

### Platform Compatibility

Some scripting languages have better support or built-in features for specific platforms, so ensuring compatibility with your target environment is essential. For example- JavaScript works flawlessly on web browsers.

### Performance and Execution Speed

Some compiled languages like C and C++ offer faster execution speeds than interpreted languages like Python. Therefore you may need to consider the execution speed and performance of the scripting languages.

### Security Considerations

Depending on your use case, you may need to handle sensitive data or interact with security systems. Therefore, you have to ensure that the scripting language has powerful security features or can integrate with secure protocols.

***Get ready to ace your*** [***JUnit interviews questions***](https://www.lambdatest.com/learning-hub/Junit-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub) ***in 2023 with our comprehensive list of 90 questions and answers that will help you sharpen your testing skills***

### Future Scalability and Extensibility

We need to consider the scalability and extensibility of the scripting language. We want to know if the chosen scripting language can accommodate growth and evolving automation needs.

Task Complexity and Requirements

Evaluate the complexity of the tasks you need to automate because some scripting languages, like Python, offer extensive libraries and frameworks that support a wide range of functionalities that makes them suitable for handling complex automation tasks.

### Familiarity

If you are already familiar with a particular scripting language, choosing a language with your expertise may be more efficient. You can also choose a scripting language that is easier for you to acquire the necessary skills.

### Strengths and Weaknesses of Top Scripting Languages

Let’s discuss some strengths and weaknesses of famous scripting languages like Python, JavaScript, and PowerShell.

<table>
    <tr>
        <td>SCRIPTING LANGUAGES</td>
        <td>STRENGTH</td>
        <td>WEAKNESS </td>
    </tr>
    <tr>
        <td>Python</td>
        <td>Python is highly regarded for automation scripting due to its simplicity, readability, and extensive standard libraries. Python has a rich ecosystem of third-party libraries, such as Selenium, and provides powerful tools for web scraping, data manipulation, API interactions, and more. Python is highly compatible and can run on various platforms, including Windows, macOS, and Linux</td>
        <td>Python is an interpreted language; therefore, it may not be as effective as compiled languages for certain computationally intensive tasks. </td>
    </tr>
    <tr>
        <td>JavaScript</td>
        <td>JavaScript is widely known as a client-side scripting language for web development. It has expanded its reach to automation through the arrival of Node.js and associated libraries. It has a massive community of developers and a vast ecosystem of libraries and frameworks that provides extensive resources and support for automation needs.</td>
        <td>JavaScript has less structured code and has potential challenges in maintaining large-scale automation projects. Automation tasks that mainly rely on browser manipulation may be limited to running within a browser environment that impacts their scalability. </td>
    </tr>
    <tr>
        <td>PowerShell</td>
        <td>It is specifically designed for automating tasks in the Windows environment, making it more powerful for managing Windows systems and other Microsoft technologies. It has a strong Windows ecosystem and community support, with a wealth of resources and scripts available for various automation tasks.</td>
        <td>PowerShell is primarily focused on the Windows platform and may not offer the same level of compatibility and support for non-Windows environments. It has a specific syntax and conventions you must know if you are unfamiliar with it.</td>
    </tr>
</table>

We briefly looked at the strengths and weaknesses of some famous scripting languages, but the question that arises is, **which scripting language should we use**?

If we consider the ease of use, then Python stands out with its simplicity and readability, JavaScript’s web-centric focus makes it a natural choice for web-related automation tasks, and PowerShell excels in Windows system automation due to its deep integration with Microsoft technologies. In terms of community support, Python and JavaScript have large and active communities, while PowerShell benefits from a strong Windows-focused ecosystem. All three languages offer cross-platform compatibility to varying degrees, with Python being the most versatile in this regard.

Let’s see the top 12 automation scripts which are very useful. Please note that all of them are written in Python. You may choose a different language, like JavaScript, to do these tasks as well.

***This exhaustive list of*** [***TestNG interview questions***](https://www.lambdatest.com/learning-hub/testng-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub) ***will aid you in strengthening your position as a candidate for the TestNG interview***

### Top 12 Automation Scripts Worth Implementing

### 1\. Move all the unwanted files from the desktop into a new folder.

In this particular illustration, we are relocating all the files to a newly created directory called “Everything.” Nevertheless, it is possible to modify the folder’s path and the files you wish to move according to your specific needs. Furthermore, you have the flexibility to rename the folder as per your preference. It is crucial to ensure that you utilize a valid path during this process.

```plaintext
import os, shutil
lis=[]
i=1
# path of the folder "Everything"
destination_directory='/Users/Upendra/Desktop/Everything'
while os.path.exists(destination_directory):
    destination_directory+=str(i)
    i+=1
os.makedirs(destination_directory)
#path of the files that you want to move in the folder "Everything"
lis=os.listdir('/Users/Upendra/Desktop')
for a in lis:
    print (a)
    if a==__file__:
        continue
    shutil.move(a,destination_directory)
```

### 2\. Play random music from a specific folder.

In this example, we are playing a random song from a specific folder.

```plaintext
import random, os
music_directory = 'E:\\Music' #path of the folder from where you want to play music
songs = os.listdir(music_directory)


song = random.randint(0,len(songs))


# Prints The Song Name
print(songs[song])  


os.startfile(os.path.join(music_directory, songs[0]))
```

### 3\. Play a video from a specific folder.

In this example, we are playing video from a folder.

```plaintext
import cv2
def play_video(video_path):
    # Create a VideoCapture object to read the video
    video_capture = cv2.VideoCapture(video_path)
    while True:
        # Read the next frame from the video
        ret, frame = video_capture.read()
        if not ret:
            # End of video
            break
        # Display the frameend
        cv2.imshow('Video', frame)
        # Wait for a key press and check if it is the 'q' key to exit
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    # Release the video capture object and close the video window
    video_capture.release()
    cv2.destroyAllWindows()


# Example usage
video_path = "C:/Users/Upendra/Downloads/video.mp4"
play_video(video_path)
```

### 4\. Convert a pdf file to an audio (.mp3) file

In this example, we convert the text of the pdf into an audio (.mp3) file.

```plaintext
import pyttsx3
import PyPDF2


# path to your PDF file
pdf_path = 'D:/projectReportFINAL.pdf'
output_audio_path = 'file.mp3'


# Open the PDF file
with open(pdf_path, 'rb') as file:
    pdf_reader = PyPDF2.PdfReader(file)
    total_pages = len(pdf_reader.pages)


    # Initialize the text-to-speech engine
    reader = pyttsx3.init()


    # Iterate through each page of the PDF
    for page_num in range(total_pages):
        page = pdf_reader.pages[page_num]
        text = page.extract_text()


        # Clean up the extracted text
        legible_text = text.strip().replace('\n', ' ')


        print(f"Page {page_num + 1}:")
        print(legible_text)


        # Convert the text to an audio
        reader.save_to_file(legible_text, file.mp3)
        reader.runAndWait()


# Stop the text-to-speech engine
reader.stop()


print("PDF converted to audio. Audio file saved at:", file.mp3)
```

***Here’s a list of 70*** [***Cucumber Interview Questions***](https://www.lambdatest.com/learning-hub/cucumber-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub) ***and Answers that will help you boost your confidence in an Interview***

### 5\. Close and Open the tasks

#### a. Closing a list of tasks that are running.

In this example, we are closing the programs running on the system. The programs that you want to close should be mentioned in the code.

```plaintext
import psutil


def close_programs(program_names):
    for process in psutil.process_iter():
        try:
            process_name = process.name()
            if any(name.lower() in process_name.lower() for name in program_names):
                process.kill()
                print(f"Closed program: {process_name}")
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
            pass


# Example usage
program_names = ["word.exe"]


close_programs(program_names)
```

#### b. Opening a list of tasks

In this example, we opened a program using their location. However, you can change the location as per your requirement.

```plaintext
import subprocess


def open_program(program_path):
    try:
        subprocess.Popen(program_path)
        print(f"Program opened successfully!")
    except Exception as e:
        print(f"Error opening program '{program_path}': {str(e)}")


# Example usage
program_path = "C:\\Windows\\System32\\notepad.exe"


# Open the program
open_program(program_path)
```

### 6\. Image Compressor

In this example, we are compressing an image (.jpg) file.

```plaintext
from PIL import Image


def compress_image(input_path, output_path, quality=80):
    # Open the image file
    image = Image.open(input_path)


    # Compress the image
    image.save(output_path, optimize=True, quality=quality)


# Example usage
input_path = "E:/Download/QRCode.jpeg"
output_path = "/Users/Upendra/image.jpg"
compress_image(input_path, output_path)from PIL import Image


def compress_image(input_path, output_path, quality=80):
    # Open the image file
    image = Image.open(input_path)


    # Compress the image
    image.save(output_path, optimize=True, quality=quality)


# Example usage
input_path = "E:/Download/QRCode.jpeg"
output_path = "/Users/Upendra/image.jpg"
compress_image(input_path, output_path)
```

### 7\. Convert the color image into a black-and-white image

In this example, we are converting the color image into a black & white image.

```plaintext
from PIL import Image
# Open the image
image_path = "C:/Users/Upendra/Pictures/Perl.jpg"
image = Image.open(image_path)
# Convert the image to black and white
black_white_image = image.convert("L")


# Save the black-and-white image
output_path = "C:/Users/Upendra/Desktop/image.jpg"
black_white_image.save(output_path)


print("Image converted to black & white successfully!")
```

### 8\. Video to Audio Converter

In this example, we are converting the video (.mp4) file into the audio (.mp3) file.

```plaintext
from moviepy.editor import VideoFileClip
def video_to_audio_converter(video_path, audio_path):
    # Load the video file
    video = VideoFileClip(video_path)
    # Extract the audio
    audio = video.audio
    # Save the audio to a file
    audio.write_audiofile(audio_path)
# Example usage
video_path = "C:/Users/Upendra/Downloads/video.mp4"
audio_path = "/Users/Upendra/Desktop/output.mp3"
video_to_audio_converter(video_path, audio_path)
```

### 9\. Convert images(.jpg) to pdf

In this example, we are converting the image (.jpg) file into a pdf.

```plaintext
from fpdf import FPDF
def images_to_pdf(image_paths, output_path):
    pdf = FPDF()
    # Iterate over each image and add it to the PDF
    for x in image_paths:
        pdf.add_page()
        pdf.image(x, 0, 0, 210, 297)  # Adjust width and height as needed
    # Save the PDF file
    pdf.output(output_path)
# Example usage
image_paths = ["C:/Users/Upendra/Pictures/image.jpg"]
output_path = "C:/Users/Upendra/Desktop/output.pdf"
images_to_pdf(image_paths, output_path)
```

### 10\. Automate Database Operation (make a new Excel sheet for the given data)

In this example, we are creating a new Excel sheet for the given data.

```plaintext
import os
import openpyxl
# Automate Excel operations
def read_excel(filename, sheet_name):
    workbook = openpyxl.load_workbook(filename)
    sheet = workbook[sheet_name]
    output_data = []
    for row in sheet.iter_rows(values_only=True):
        output_data.append(row)
    return output_data


def write_excel(filename, sheet_name, data):
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    sheet.title = sheet_name
    for row in data:
        sheet.append(row)
    workbook.save(filename)
    print("Excel file created successfully!")
# Example usage
data = [
   ["Country", "Capital"],
    ["India", "New Delhi"],
    ["United States of America", "Washington D.C."],
    ["United Kingdom", "London"],
    ["Russia", "Moscow"],
    ["Japan", "Tokyo"],
    ["Australia", "Canberra"],
    ["Germany", "Berlin"],
]
output_dir = "C:/Users/Upendra/Desktop"  # Change this to the desired directory path
filename = os.path.join(output_dir, "Sheet.xlsx")
sheet_name = "OutputSheet"
write_excel(filename, sheet_name, data)
output_data = read_excel(filename, sheet_name)
for row in output_data:
    print(row)
```

### 11\. Count the number of tasks running on the system and put it on MS Word

In this example, we are counting the number of processes running on the system and putting the data into MS Word.

```plaintext
import os
import psutil
from docx import Document


# Get the list of running processes
running_processes = psutil.process_iter()


# Count the number of running tasks and collect their names
task_count = 0
task_names = []
for process in running_processes:
    task_count += 1
    task_names.append(process.name())


# Print the number of running tasks
print(f"Number of running tasks: {task_count}")


# Create a Word document and write the task names
document = Document()
document.add_heading("Running Tasks", level=1)
for i, name in enumerate(task_names):
    document.add_paragraph(f"Task {i+1}: {name}")


# Specify the output path on the desktop
desktop = os.path.expanduser("~/Desktop")
output_path = os.path.join(desktop, "running_tasks.docx")


# Save the Word document on the desktop
document.save(output_path)
print(f"Word document '{output_path}' created successfully!")
```

***Get ready for your BDD interview with 100+*** [***BDD interview questions***](https://www.lambdatest.com/learning-hub/bdd-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub)***. Boost your confidence and impress your interviewer with this comprehensive guide covering principles & techniques***

### 12\. To count the number of video files present on your disk

In this example, we are counting the number of videos present on the disk and listing them in an Excel sheet. In our case, we are searching video files in (E:/) and generating the Excel sheet on the desktop.

```plaintext
import os
from openpyxl import Workbook


# Directory path to search for video files
directory = "E:/"
# List to store the video file names
video_files = []
# Iterate through the directory and its subdirectories
for root, dirs, files in os.walk(directory):
    for file in files:
        # Check if the file extension is for a video file
        if file.endswith(('.mp4', '.avi', '.mkv', '.mov', '.wmv')):
            # Add the file name to the video_files list
            video_files.append(file)


# Create a new Excel workbook and select the active sheet
workbook = Workbook()
sheet = workbook.active


# Write the video file names to the Excel sheet
for index, video_file in enumerate(video_files, start=1):
    sheet.cell(row=index, column=1, value=video_file)


# Specify the output file path
output_path = "C:/Users/Upendra/Desktop/video_files.xlsx"
# Save the Excel workbook
workbook.save(output_path)
print(f"Video files listed in '{output_path}' successfully!")
```

### Exploring Advanced Automation Techniques

Advanced automation techniques consist of advanced approaches and technologies used to enhance the capabilities and efficiency of automation scripts. Let us explore some of the advanced automation techniques.

### Robotic Process Automation (RPA)

It involves the use of software robots or **“bots”** to automate repetitive, rule-based tasks that humans mainly perform. RPA bots interact with applications and systems through the user interface and reduce human actions to perform tasks such as data entry, form filling, report generation, etc.

### Machine Learning and Artificial Intelligence (AI)

This helps the automation scripts to learn and adapt based on past patterns, data, and feedback. Artificial Intelligence (AI) is widely utilized across various domains, including natural language processing, image recognition, and bolstering the intelligence of automation scripts.

### Automated Software Testing

Automated software testing plays a crucial role in evaluating the software’s quality, functionality, and performance. It is one of the most important phases of the [Software Development Life Cycle (SDLC)](https://www.lambdatest.com/learning-hub/software-development-life-cycle?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub). A dynamic shift has been seen over a decade from testing the web and mobile applications manually to automated testing. However, we have a popular cloud-based platform called LambdaTest that provides automated software testing solutions. LambdaTest also supports various frameworks like [Selenium](https://www.lambdatest.com/selenium?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=webpage), [Cypress](https://www.lambdatest.com/learning-hub/cypress-tutorial?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub), etc for automated software testing and has played a key role in [cross browser testing](https://www.lambdatest.com/?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=webpage).

### Cloud Automation

Cloud-based automation provides scalability and flexibility by executing automation scripts and managing resources on cloud platforms. It plays an important role in dynamic scaling and cost optimization since automation scripts can use cloud services and APIs for tasks such as data storage and processing. LambdaTest allows users to execute cloud-based automation testing using Selenium, Cypress, etc that results in faster delivery of high-quality software.

### Web Scraping

Web scraping is the process of extracting data and content from other websites, and in this automation scripts play an important role because automation scripts can gather information from multiple web pages and aggregate data for analysis into the other systems.  
Web scraping saves time and eliminates manual effort by automating the process of data retrieval from websites, consequently making automation scripts more efficient and powerful.

### API Integration

API integration allows automation scripts to interact with external systems, services, or databases, expanding their reach and functionality. Through API integration, automation scripts can exchange data with popular platforms and access real-time information. This technique enables the automation of tasks like retrieving data from a CRM system, posting updates to social media platforms, or fetching data from cloud storage.

### Real-World Use Cases of Automation Scripts

Automation scripts are globally adopted across various industries. It helps bring significant benefits in terms of increasing efficiency and accuracy or reducing manual effort.

The followings are a few real-world use cases and success stories of automation script implementations:

### Software Testing

**Use Case**: In Software Development for continuous integration and testing automation.

**Challenge**: Manual testing during the software development phase is time-consuming, error-prone, and can lead to delays in identifying and fixing defects.

**Solution**: You can implement automation scripts for continuous integration and testing to ensure early detection of defects and seamless integration of code changes.

**Benefits**: Automation scripts allow for efficient regression testing and can be triggered automatically upon code changes, providing immediate feedback on the quality and functionality of the software.

***Ace your Protractor interview with these 50+*** [***Protractor interview questions***](https://www.lambdatest.com/learning-hub/protractor-interview-questions?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=learning_hub)***. Boost you confidence and land your dream job with this comprehensive guide.***

### Finance and Accounting

**Use Case**: To automate invoice processing and financial reporting.

**Challenge**: Manual invoice processing is time-consuming and may have errors.

**Solution**: Automation scripts can extract data from invoices, validate information, update accounting systems, and generate financial reports automatically.

**Benefits**: There are various benefits, such as automation reducing manual effort, improving accuracy, accelerating invoice processing times, and many more.

### Healthcare

**Use Case**: In automating patient appointment scheduling and record management.

**Challenge**: Manual patient appointment scheduling and record management result in inefficiencies, long waiting times, and administrative burdens.

**Solution**: Automation scripts integrate with scheduling systems, update patient records, send appointment reminders, and generate reports.

**Benefits**: Automation makes the appointment booking processes smooth, reduces patient wait times, enhances the patient’s experience, and allows healthcare professionals to focus more on patient care.

### Manufacturing

**Use Case**: In automating inventory management and order processing.

**Challenge**: Manual inventory management and order processing lead to inaccuracies and delays in the supply chain.

**Solution**: Automation scripts make this easy as it integrates with inventory systems, track stock levels, automate reorder processes, and generate shipping labels.

**Benefits**: There are several benefits in manufacturing, such as it improves inventory accuracy, optimizing order processing times, reducing stockouts, minimizing manual errors, and also enhances the supply chain.

### IT Operations and DevOps

**Use Case**: In automating software deployment and infrastructure provisioning.

**Challenge**: Manual software deployment and infrastructure provisioning are time-consuming, error-prone, and affect scalability.

**Solution**: Automation scripts automate the deployment of software applications, provision virtual machines or containers, and organize complex deployment pipelines.

**Benefits**: Automation speeds up software releases, improves system stability, enhances scalability, reduces downtime, enables faster incident response, and increases overall operational efficiency.

### Marketing

**Use Case**: In automating social media posting.

**Challenge**: Manual social media postings are very time-consuming.

**Solution**: Automation scripts schedule social media posts and can generate performance reports.

**Benefits**: Automation streamlines social media management, increases posting consistency, and improves targeting audience, enhancing the overall marketing ROI.  
These are just a few examples of how automation scripts have been successfully implemented across various industries. From finance and healthcare to manufacturing and marketing, automation scripts have shown their effectiveness in all fields.

Let’s discuss some FAQs related to the automation scripts.

### Conclusion

Throughout this extensive guide, we have delved deeply into the significance of automation scripts in optimizing workflows, enhancing productivity, and saving valuable time. Furthermore, we have explored a range of scripting languages, including Python, JavaScript, and more. After that, we discussed some advanced automation techniques, such as [automation testing](https://www.lambdatest.com/automation-testing?utm_source=devto&utm_medium=organic&utm_campaign=sept_01&utm_term=ap&utm_content=webpage), web scraping, and API integration. And last, we discussed the real-world use cases of automation scripts, followed by some FAQs.

You can also check out our blogs on various categories like Automation, Web Development, Manual Testing, Selenium, Mobile Testing, DevOps, etc.