What does DevOps do? What technologies does a business and systems analyst use in their work? What does an administrator do? Mini Dictionary of IT Positions
A System Administrator is a person in charge of managing the IT system and responsible for its correct functioning. The administrator's tasks include supervising system operation, handling user authorizations, software installation, configuration, and update, securing the system and data, as well as supervising, detecting, and eliminating irregularities. Another important task in this position is creating necessary documentation and introducing system changes. Depending on the tasks performed, this position can have a more specific name, such as App Administrator, Database Administrator, Backups Admin, as well as LAN / WAN Networks or Operating System Administrator.
A Database Administrator (DBA) is a person in charge of database management and responsible for its correct functioning. Among his/her tasks there is: ensuring data security and integrity by creating backups, managing user accounts and their access to data, as well as making sure that access to data is uninterrupted, and optimizing database efficiency. A Database Admin also provides support to programmers and system engineers at the design and testing stage and makes sure they can use databases as efficiently as possible.
Programmer: Front-end Developer
Programmer: Back-end Developer
Unlike his Front-end colleague, a Back-end Developer handles all that the final user cannot see and which is necessary for the correct functioning of the system. He/she implements and tests business logic, creates database structures, and takes care of security. A back-ender communicates with front-enders to provide them with the necessary API, and after the implementation of the application, he/she supervises its operation, expands it with new functionalities, and corrects emerging errors. A programmer on this position should use databases effectively and have a good knowledge of certain programming languages (Java, C #, Ruby, Python) along with frameworks (Spring, .NET, Ruby on Rails, Django) to create efficient algorithms. Last but not least, a Back-end Developer should have a good practical handling of version control systems (Git).
IT Systems Architect
A Systems Architect is the one who defines program architecture and technological standards and makes sure that the product is built in compliance with the accepted standards and with the technological stack. The responsibilities of a Systems architect also include the analysis and design of cross-product solutions, conducting architecture training as well as searching and evaluating new market solutions to improve the system functioning. A Systems Architect most often works closely with the Product Manager, Product Owners, Product Architects, and Programmers. The common tools necessary for this position are Enterprise Architect, Visio, and X-mind.
Business and Systems Analyst
A Business and Systems Analyst (a BSA) should be able to identify, collect and transmit the client’s expectations about how the business processes supported by the IT system should work. A BSA should also be experienced in a process, information scope, and communication rules modeling and present the analyzed requirements to the production team. He/she should have expert knowledge of the analyzed functional area, including general and internal laws regulating activities in a given business area. The models created by the Business and System Analyst must be understandable for both system users and the production team (developers).
Technical Assistance Consultant
The key responsibilities of a Technical Assistance Consultant include, above all, handling service requests from customers or monitoring systems. However, this is not a classic first line of "call center" support - people working on this position should have good knowledge of relational databases, SQL language, and Linux operating systems, and be highly analytical and communicative. Technical Assistance Consultants are in charge, among other things, of resolving requests (such as restarts, scripts, or configuration improvement), and coordinating necessary work, in case those requests need to be handled by a different team. Everything a Technical Assistance Consultant does provides you with the opportunity to get practical knowledge of ITIL processes, mainly Incident Management, Problem Management, Release Management, or Request Fulfillment.
Software Quality Assurance (QA) Engineer / Tester
Through their daily work of detecting errors, failures, and non-compliance with the requirements specification, a Tester ensures an optimum software quality once it is delivered to the final user. His/her daily set of duties includes creating test scripts, executing tests, reporting bugs, and preparing reports. Testers are the foundation of every software development or implementation process. A person in this position uses tools supporting the performance of manual tests in their work - which can be database clients or Rest API clients such as Postman, Insomnia. Testers also use all kinds of organizational tools, such as JIRA or websites dedicated to test planning.
Full-Stack Developer oversees system development, its compliance with legal requirements, and its integration with other systems. What’s special about this job is the possibility to work in a variety of fields and topic modules (from e-commerce, through client relation management, to production). A Full-Stack Developer often relies on such technologies as Java (Java 8, Java 9), QOL, .NET, REST as well as Kafka Streams, SonarLint, or Eclipse. Working in this position requires not only good technical knowledge but also a high sense of business, specific to the system being developed.
A Systems Engineer, commonly referred to as “Admin”, is a person who makes sure the infrastructure for development and test environments, as well as the environments themselves, works without problems. The role of the Systems Engineer is often invisible but very important. The Admin is responsible for the internal systems supporting the work of other teams, such as GIT and SVN repositories, ticket systems, work automation, and Bamboo or Jenkins-based compilations. A System Engineer also handles server and application monitoring (with the use of Zabbix and ELK stack). Anyone who wants to work as an Admin must be meticulous and precise, be open-minded, and think outside the box. Another important skill is communicativeness - both in internal contacts and with clients.
A DevOps Engineer is an IT specialist who combines programming skills (Dev) with administration and system operation skills. The main goal of this job is to build tight cooperation links between all the teams participating in software development and to make the whole process more efficient. Even though specific duties may differ depending on project specifications, main tasks tend to include creating infrastructure in cloud environments and the IaC model, system administration, application development, as well as release management tasks. If you want to become a DevOps Engineer, in addition to having solid technical knowledge, you must also have excellent soft skills. That is because it takes a good communicator and a good leader to achieve effective cooperation between various teams. One of the challenges that a DevOps Engineer must face in their job is the necessity to look holistically at the entire software development process and be able to optimize not only its elements but the process as a whole.
We hope this mini IT dictionary will help you understand job offers better and to finally find out what an IT friend actually does in his/her job. We also hope that the job descriptions included in this article have interested you enough to pursue a career in the IT department yourselves. Let us know in your comments.
Those who search for more information, feel invited to read our other articles on IT-related topics, where you can find out about Web Developer or Software Engineer.