Monthly Archives: August 2012

The Paradox of core versus support domain

The Paradox of core versus support domain

This is not new post. This is something I published over two years ago. My former CTO came down from his ivory tower and asked me to remove this post from Internet. He sent me long email, about me being unprofessional, because people can connect through my LinkedIn profile where I work, and connect my writing with the state of the product. Brilliant. I leave the judgement for you, think for yourself and question authorities, especially fake, usurpatory authorities.
So why I publish this post once again? Even if I don’t like it and I don’t think is even worth reading and I disagree with few points.
Because I promised myself that one day life will move on. Life will surprise me and changes will come.
It is time for a change.
Why it took me so long?
Because for past 4 years I worked with the best team ever. I was waking up every day not to write code, because in this system it was impossible. I was waking up to meet crazy, passionate freaks like me. We were team, we were one. The chemistry between us was unbelievable. And people hated us, which was kind of cool for the twisted personality like me.
We were working from coffee shops (Choco Cafe on Wiślna street simply rocks), we were challenging our limits every day. We were not thinking out of the box, we were out of the fucking box. Box full of rules, regulations and office politics. Writing custom parsers to do code translations, instrumenting code for transaction deadlock detection, horizontal scalability based on custom JDBC driver, parsing tcpdumps full of JGroups shit, cutting, mangling code bases going from 40 minutes (really) to 8 minutes of compile time, migrating technologies like crazy, you name it, we did it. It also included tons of bad decisions, incorrect estimates and broken promises. But we enjoyed it and other people hated us, because we were arrogant dreamers, believing in code, trying to change world, taking proud of their work. People hated us because we had a whole lot of fun, we were smiling, we were doing things we wanted to do. What I have learned is that people don’t like when other people have fun, when they enjoy their work. Sad. My biggest mistake as a leader of this team? I became one of you, Jose, Tomek, Marcin, and second Marcin, Jacek, Damian, Paweł. I was so excited about things we were doing that I didn’t noticed what is going around. My mistake and I would repeat it over and over again. Because your job is not your life, life doesn’t end there. There is meaning behind deadlines, overtime, failed builds, stupid code and pointless discussions about JVM internals. Behind all these stupid things, there are people and memories and endless stream of shots of cherry vodka. Guys this is for you, my, big, personal, thank you. In a year from now I won’t remember this code and projects. But will remember you.
The rest of this post is irrelevant. It is just promise I made to myself.

Systems grow, systems change, systems evolve, systems become “big ball of mud”. I am not going to start a discussion about the forces which turn beautifully designed systems into “big ball of mud”, not this time. It just happens, it comes and goes, just like financial crises, seasons, ice age.

One day, you wake up, and you find yourself in the middle of deconstruction of your “big ball of mud”. Your “mothership”, your flag product, your “darkest matter of the universe”. You may ask youself, what is next? How to do it right? This time.
Continue reading

Tagged , , , ,

Fork and join with Mule 3

Ooops…, I did it. I decided a couple of weeks back to get out of my comfort zone. My comfort zone of writing posts in my native language, which is Polish. As human, you are not able to make progress, continuously improve your life, if you don’t seek ways to get out of your comfort zone.
As always in such situations I am apprehensive, even terrified. Terrified that I will loose my “flow”, will be criticized and in many cases you will misunderstand my intentions and thoughts.
If you find “syntactic bugs” in my posts, please feel free to write a comment.

This time I am going to shed some light on interesting problem I’ve been fighting with some time ago.

Out of many projects in our company, we have a product which uses Mule ESB, to build integrations with third party providers. It works as a broker, which sends the same message to various providers over variety of protocols and using many different messages formats. Later on responses from providers are aggregated and sent back to client.Easy job, isn’t it?

Recently we got stuck with interesting performance related problem. Same message can be sent to hundreds of providers, and it may take significant amount of time for all providers to process and send message back. Problem is not new and nothing unusual. Looking at the very heart of the problem you can easily say that it can be solved with “fork and join” pattern.
Continue reading

Tagged , , , ,