ETL development on the cutting-edge
In this article, we talk to expert ETL & BI developer Jakub Gutkowski and explore what it is like working as a freelance consultant on the cutting-edge in a nearshoring setup in Poland for a large Scandinavian company.
Part of several projects
What project are you working on right now?
I am currently on assignment for a large Scandinavian bank. I work on several projects, but most of my focus has been on two projects. The first project revolves around NSFR (Net Stable Funding Ratio), which is a set of capital and liquidity requirements for banks launched by the G20 under the banking regulation Basel III. In the other one, we are developing and maintaining solutions used in data marts systems aimed at the bank’s core business.
These are the two primary projects I am working on right now. From time to time we have a few extra things to do. I am also working on a Data Staging Area (DSA), which is a Data Acquisition Layer that gathers all the information (raw data) from the various systems. Additionally, some of the deployed solutions have been having performance issues recently, so we are trying to include improvements in our daily sprints. Essentially, I am doing a wide variety of tasks in a mix of developing new things, maintenance, while in the meantime, fixing performance issues in existing solutions.
What is your role?
I am an ETL developer and designer. However, on this assignment, I am sometimes involved with the architectural design, as is the case with the NSFR project. Together with the analysts, I have helped design the architecture, and it is therefore not strictly development. I joined the team in January 2019.
A well-rounded setup with engaged stakeholders
How is the project organized?
In previous projects, I was working in a semi or part scrum-setup. In the current project, we have quite a good interpretation of it. I am impressed with the setup, and we have a scrum master, product owner, several analysts and developers. Also, management is involved, and they come to listen to what we have done and inquire about the current challenges we are facing.
How big is the team?
In my current project, there are six developers, including me: four from Poland and one from Denmark and four Danish analysts. We are a mixed bunch.
Challenging the status quo
What are the challenges?
As I mentioned, I have helped design architecture and build solutions from scratch. For the NSFR project, the main challenge was that we, developers, were not involved in the early stage of the project, and therefore not part of the requirements phase. So we had a classic problem, where business said one thing and analysts said another. After the initial phase of the project, we had to meet again, start over, cooperate and redesign it properly from scratch. It was difficult as everybody had different views and ideas about the design. Fortunately, this was before the coronavirus, so we had the ability and time to discuss all the possibilities courtesy of many long meetings.
"Part of the reason I went freelance and changed jobs in the past was a lack of new opportunities to grow. In the 1,5 years of this assignment, I have never been bored. There is always something to do. And when I am finished with my tasks, I can switch to something else and throw myself at a new challenge."
Jakub Gutkowski, ETL developer
In my particular case, it was a challenge to question and dispute some of the previous design decisions and achieve a consensus of what we had to do instead. It was not an easy process, but I am happy with the results, and where we are now. I think the outcome is better because we took the time to rethink everything from the beginning.
Being a team player and staying in sync
In the other project, there was a major restructure, with several teams involved. It was challenging to sync with other teams and the business side, who already had a reporting system, which was based on existing structures. At the time, my colleague was on paternity leave, and as we have each other's backs, I covered his part. That required effective communication on my part and navigating the organization with a lot of moving parts every day. It was challenging, and I learned a lot. There were a lot of ad-hoc tasks and last-minute changes from the business, for instance, in the form of implementing extra logic.
"… As a developer, it is crucial to be part of the initial stages of the project, as it helps you gain a better understanding of what the requirements are."
Jakub Gutkowski, ETL developer
You could say, I was on my toes throughout the entire development phase. Fortunately, the solution has been a success, and stakeholders and management are satisfied with the results and that gives me a good feeling.
Always learning – optimization techniques
What have you learned?
On projects such as this, you are constantly learning new things. In my case, I have learned a lot regarding code refactoring, and that has enabled me to improve calculation times in existing solutions, and more specifically, optimize the performance of tasks and workflows. We managed to reduce calculation times of 80% in some of these cases, which I am happy about. So our Data Warehouses can process increasing amounts of data even faster, and that is pretty cool!
All depends on what kind of optimization you need to do. There are many different things to consider when it comes to optimizing the existing code, for example, unnecessary logic and the data that is being structured, methods of calculation, the implementation itself or even hardware.
“Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.”
Better solutions with business knowledge
For me, as a developer, it can sometimes be a challenge to gather the business knowledge. Therefore it is crucial to be part of the initial stages of the project, as it helps you gain a better understanding of what the requirements are.
Good Scrum Masters are extremely effective
Last but not least, I have become more aware of how much of a positive impact a great Scrum Master can have on a project. We are lucky to have an excellent Scrum Master. He is extremely effective at facilitating the communication between developers, analysts, etc., which makes for a productive environment. As a result, the whole project is coming along nicely.
The Scandinavian work-life balance
Before this assignment, I had heard a lot about work-life balance in Scandinavian companies.
I have been part of this team for a year and a half now. I think of them as my small family, and we find ourselves sending each other pictures from our holidays etc. Because of this, there is a high degree of trust amongst us, and it has a positive impact on the whole workplace. We do not have to check up on each other, but instead, we can rely on each other, knowing that what has been promised will be delivered. It all leads to higher productivity and better results in the end. Also, Danish people are very open, the humor is great, sometimes it can be a bit dark, but I love it.
Always a challenge
I am pleased with the team I am part of. The overall skill level of my fellow consultant colleagues is very high, and that fosters an environment that I like to be part of. We have many projects, so I have a feeling that I will not be bored.
Part of the reason I went freelance and changed jobs in the past was a lack of new opportunities to grow. In the 1,5 years of this assignment, I have never been bored. There is always something to do. And when I am finished with my tasks, I can switch to something else and throw myself at a new challenge.
A sense of purpose
My job provides me with a great sense of purpose and challenges me daily. It is a clear motivation to be surrounded by likeminded professionals who excel in their particular field. Also, we are lucky to be involved in forecasts and planning. It is good to know where we are going, what the plans are for another. This leaves me with a good feeling of knowing exactly where I am going, I know where the organization is going, and I am a part of this change. This makes me feel like I am part of all of it and not just a cogwheel in a big machine.
Transparency is key
I will not lie; the money is also great. I mean, I am not only here to gain new acquaintances! And I feel that I am being well paid for my specialist knowledge and competences.
I think transparency is the key. Whenever you need something or have an ask, you can communicate it freely. It might be a new task or a small extension of one’s holiday, and a lot of the time it will be accommodated. It is a very flexible environment, and there is a great sense of give and take, which works both ways. People rely on me and have placed their trust in me. When I go above and beyond, I feel rewarded, and that motivates me to put in that extra effort.
Jakub Gutkowski is an ETL Developer with solid commercial experience gained predominantly in the financial industry. He has strong skills in the area of Business Intelligence, including data warehouses, data integration, data analysis, migration and performance tuning. He is also familiar with Scrum methodology. Throughout his career, he has gathered requirements, implemented and tested ETL processes, designed ETL interfaces, converted existing transformations, designed and developed databases, carried out MQ processing, tuned and optimized performance of existing solutions and analyzed processes using various Informatica technologies.
Jakub has extensive experience with Informatica technologies (PowerCenter, Data Quality, Data Explorer, MDM, Analyst, Metadata Manager, Oracle, Microsoft SQL Server, Bash, Perl, messaging queues, SVN, GIT and other related technologies.