What Does an IT System Integration Developer Do?
The job called “IT system integration programmer” is not much of a buzzword for developers, especially those beginning their IT career.
To explain the topic a bit, this article will discuss:
- what is the role of an integration programmer.
- what competencies are required.
- why it is worth developing your career in this direction.
Before I got to Unity Group and became an integration programmer, I already had several years of experience as a Full Stack Java Developer. However, it was only during the recruitment process that I first heard about the Mule ESB data bus and, as I try to keep up to date with technological news, the topic aroused my interest. I passed the recruitment process and even before officially joining the team, I started to expand my knowledge about integration on my own. Although I was already an experienced professional and had seen a fair share of things, I became curious about the possibilities offered by MuleSoft Anypoint Platform in combination with Java. In my case, the chance to change industries was also attractive – I was moving from corporate banking systems to delivering innovative omnichannel and dedicated projects. I saw these as advantages. But what’s next?
What Does an Integration Developer’s Job Look Like?
I am leaving out the obvious that a programmer’s day starts with coffee – even though that is exactly the truth 😊 Realistically, I start my day by looking at my calendar and tasks for the day. As I grew in the field of integration, the number of projects, meetings or even direct communications with clients has obviously increased, which were not so numerous at first. In addition to programming, I also serve as a technical leader and derive considerable satisfaction from passing on my knowledge to other team members.
Programming in Mule ESB is done through GUI, so it may seem like all the “magic” is about arranging specific “building blocks” in a logical way, but the configuration of the data bus is much more complex than you might initially imagine. A big challenge is to get everything working effectively, efficiently, and with stability. Generally speaking, it is necessary to meticulously plan the architecture of the entire solution, of which the service bus is one element, taking into account the potential future functionalities and processes that the solution will support.
But More Specifically?
Our day-to-day tasks take place in a team that combines developers, an analyst, and a tester, and we work using the Agile philosophy. Currently, a certain part of our team is people working 100% remotely. The projects are different, of course, but they are based on the client’s need for efficient information flow between different – separate – IT systems. Today, every enterprise has at least a few IT systems, such as ERP, CRM, WMS, PIM, CMS, and many others, and also uses the systems of partners and contractors. These systems can operate much more effectively if they can communicate with each other in an efficient and quick way. This is where the data bus is helpful. Using the bus, we can connect systems that issue their API on different interfaces, but also those that do not have such API when we need to “connect” to the database or retrieve data from files. Thanks to the data bus, we do not need to make any changes on the side of the domain systems. The bus has hundreds of connectors, thanks to which it is able to “plug” into virtually any domain system. When a message passes through the bus, we transform it into a format that the individual components can understand.
It can be said that everyday life in this area of the IT industry consists of tasks related to building solution architecture and facing related challenges in the area of performance, scalability, or reusability.
A good illustration of the integration process is e.g. integration of Pimcore technology (a PIM class system) with a third party B2B or B2C e-commerce system (e.g. Samsung), where their API is used to retrieve product data – descriptions, multimedia, etc – and we perform message transformation to match the interfaces and data formats supported by Pimcore.
We often carry out projects for large and well-known clients, such as Volkswagen Group Polska, Holding One (owner of Traficar), LPP (owner of Reserved), GATX, and many others.
Which Technologies Should an Integration Developer Know?
To do this job, one must know Java. I have heard opinions that programming in integrations actually has little to do with “real” Java programming. In my opinion, this is not true. Every day in my work, I use the new functionalities that Java 8 has to offer, which allows me to stay up to date with the changes in this technology. So, if it seems like a barrier to someone – the concerns are unjustified. Knowledge of Hibernate, JPA, or JUnit is also useful. Knowledge of databases – such as SQL – and database engines will also be essential. For me, knowledge of SOA and microservice architecture was also important in a few projects, but that came at a later stage of working on integration.
Certainly, for people who, like me, have not dealt with this area in IT before, integrations may seem to be a difficult issue to master and require a lot of knowledge to be able to work efficiently. I think that, at Unity Group, we take a very nice approach to onboarding new people. When starting work, a fresh team member is given time to learn new technologies, internal programming principles and is mentored to support their initial development.
In terms of the tools and technologies that we use in the area of integration, we can mention, among others: Mule ESB, WSO2, Apache Camel, or Talend. Initially, acquiring knowledge in this area seems to be quite a challenge, but I assure you that it is very easy to learn and, what is perhaps more important, it is a competence that is highly valued on the job market. As I mentioned earlier, when learning, we are mentored by an experienced professional. Thanks to efficient communication, apart from the mentor, we can always count on help from other team members.
Why It Is Worth Developing Your Career in This Direction?
In my opinion, a big advantage of the possibility of developing in this area is the relatively low – as for the IT industry – content-related entry barrier. Of course, as I have mentioned, knowing Java is important, but this knowledge can be acquired fairly quickly by already knowing, for example, another programming language or having the willingness to learn on your own. Therefore, IT system integration is an ideal field for those who want to change the leading technology or develop their Java competencies.
In fact, if the candidate would only have Java knowledge at the level required by us, and was a communicative and ambitious person, we can assume that they would find their way around integrations relatively quickly. We are also open to such people in our team, as we are eager to share our knowledge and we believe that it is best to gain it directly while working on a project under the guidance of an experienced mentor.
First of all, the choice of such a development path is prospective, because a great deal of systems written in the past are programmed for “point to point” communication, and for organizations striving for digital transformation, the only way to smoothly go through this process is to effectively communicate the ones already existing. Over the next few years, work in this area will be plentiful and it is appreciated by both employers and clients. At the same time, the technologies used in data buses are really innovative – for people who like to challenge themselves with novelties, this should be one of the main advantages.
Instead of a Summary – We Debunk the Myths
Working on integrations does not give you the wow effect, it is not very interesting – this view probably came from web programming issues. Undoubtedly, the results which can be seen immediately and have nice styling arouse more vivid emotions in the programmer than the need to think about the design and optimization of flows between IT systems. But I assure you that, when you design and program a data bus, and then put it all together in a complete and working system when all the systems can “talk” to each other, the message flow is very fast between components, you can easily add more systems, and most importantly, solve the customer’s problems – the satisfaction is huge 😊
There is very little “real” Java programming in integrations – I have mentioned that before. No need to worry – working with Java is essential for this position. And it is not about writing the simplest class or filling it with data. Integrations are not only about learning Java but also designing objects.
Are you thinking about developing your career in IT Integration? Let’s talk!