top of page

Retrospective Blog

  • Writer: DeJia Wang
    DeJia Wang
  • Mar 23, 2023
  • 3 min read

As an infra personnel who has worked in a vendor application team for over a year, I can attest to the many benefits of learning Linux, Apache, Shell Scripting, and Jenkins at this time in my IT career.


1. Linux - The most widely used operating systems in enterprise world



Particularly in the enterprise space, it is important to be familiar with Linux since many servers, databases, and other systems are powered by this operating system. by learning Linux, member of application team can understand security best practices and take steps to ensure the systems they manage are secure. Many jobs in the IT industry require Linux proficiency, and having this skill can give candidates a competitive edge in the job market.Especially in the DevOps and automation space, familiarity with Linux CLI also makes it easier to troubleshoot problems.


2. Apache - The least complicated web server


Apache is the most widely used web server in the world, with over half of all websites using it, learning Apache helps build an understanding of web architecture and how web applications work. Being the essential part of the web stack, understanding how it fits into the overall architecture can help you better design and manage web applications and services.

And since Apache is highly customizable with many plugins and modules available for various purposes, knowing Apache means having access to a wealth of resources and tools for customization in Software development team.



3. Shell Scripting - Killing manual work, one script at a time.



Shell scripting, a valuable skill to have, it allows automation of repetitive tasks, which can save a significant amount of time and effort for platform engineering personnel. By writing shell scripts, engineers can automate tasks such as backups, deployments, and log analysis, to run multiple commands and perform complex operations with a single command, reducing the time and effort required to perform recurring tasks manually, thus freeing up time for more important tasks.



4. Jenkins - Because manual deployment sucks


Finally, Jenkins, a popular continuous integration and deployment tool, has been instrumental in automating application deployment and testing. Understanding the basics of Jenkins, such as configuring pipelines and running tests are crucial as it helps to keep manual deployment works to a minimal while ensuring that code changes are tested and deployed quickly and reliably, which means more free time for everyone!


-


Retrospective Reflection


Now, working as an IT vendor in the application team of a bank can be challenging, you may face limitations on the type of data you can access, the systems you can modify, and the processes you can automate.


It is quite common for IT vendors to experience strict processes and limited access, as banks deal with sensitive financial and customer data, and therefore have strict security and regulatory requirements are in place to ensure any changes or modifications made to the systems and processes do not compromise the security and integrity of the organization's data and operations.


Nonetheless, working as an infrastructure engineer in a vendor application team for a bank can be a rollercoaster ride of emotions, from boring and mundane work (Routine Infra maintenance / form-filling tasks, which are as thrilling as watching paint dry) to excitement and satisfaction (Developing Impactful scripts which allows you to automate things in server-side).


In retrospect, here are the top 10 things which I aim to continue sharpen during my tenure:

  1. Networking Fundamentals: Understanding of TCP/IP, DNS, DHCP, Routing, VLANs, VPNs, and other networking concepts is essential for any infrastructure engineer.

  2. Operating Systems: Knowledge of various operating systems like Linux (CentOS, RHEL8), their installation, and maintenance is a must-have skill.

  3. Cloud Computing: Familiarity with cloud computing services like AWS, Azure, and Google Cloud Platform (GCP) is highly desirable, as many organizations are adopting cloud technologies.

  4. Virtualization: Understanding of virtualization technologies like VMWare, Hyper-V, and KVM, and experience with virtual machine (VM) configuration, management, and deployment.

  5. Scripting Languages: Proficiency in scripting languages like Bash, Python, and PowerShell can help automate repetitive tasks and increase efficiency.

  6. Configuration Management Tools: Familiarity with configuration management tools like Ansible, Chef, and Puppet can help automate the deployment and configuration of infrastructure components.

  7. Containerization: Knowledge of containerization tools like Docker and Kubernetes and experience with container deployment and orchestration.

  8. Security: Basic understanding of network security concepts such as firewalls, intrusion detection and prevention, and secure communication protocols is essential.

  9. Monitoring and Logging: Understanding of monitoring tools like Nagios, Zabbix, and Grafana, and log management tools like Elasticsearch, Logstash, and Kibana.

  10. Collaboration and Communication: Lastly, the most important of all - Ability to communicate effectively and work collaboratively with team members, stakeholders, and other departments is crucial for success in any infrastructure engineering role.

 
 
 

Comments


©2018 by DeJia

bottom of page