

When writing complex software things don't always go as planned. You implement a new feature that works perfectly well locally and in a test environment, but when your code hits the real world everything falls apart. Sadly, that's one of the things we all have to deal with as software developers. On a recent project for a major telecommunications client we needed to be able to process more than 20 million records every night. That equated to 5GB of storage and unfortunately the environment where our process was running had up to 4GB of memory.
Processing such a vast amount of data brings a lot of challenges along with it, especially when you also need to combine it with a few more million records that are located in a database. Adding code to retrieve associated information and transform raw data might take an extra few milliseconds per each record. However, when you repeat that operation 20 million times those few milliseconds can easily turn into hours.
So there we were asking ourselves why it was taking so long. Is it an index we forgot to add to the database? A network latency problem? These things can be very hard to pin down.
We needed to think outside the box to get around this one.
Node.js has impressed me several times with high performance right out of the box. In my last Node.js project it was the same: we beat the given performance targets without having to tweak the application at all. I never really experienced this in Java EE projects. Granted the project was perfectly suited for Node.js: a small project centered around fetching JSON documents from CouchDB. Still I wanted to know: how would Java EE compare to Node.js in this particular case?
After a long (yet exhilarating) week the final day started with two keynotes, almost as if Oracle somehow knew that people may not have had much sleep the night before ;-)
“It’s the leadership that makes Shine a great place to work. The founders of Shine are…wait for it…’real people’! I have always felt that they are genuinely caring of their staff – approachable, honest, open. They definitely want to see their staff be the best they can be and provide the support and guidance needed to do just that. I love working here.”
“Since I joined Shine in 2017, I have been surrounded by brilliant, friendly and talented people, where work-life balance is a priority.
I always seek new challenges in my career and Shine gave me the opportunity to become a People Lead last year and I have been promoted recently as a Senior Software Engineer.
Shine is definitely a great place to grow and develop both professionally and personally.”
“Working at Shine has been great for me. It’s challenging, yet rewarding.
The Shine team are professional, highly skilled, and great fun to be around.
Shine has a respectful inclusive culture and focuses not only on skill growth but also personal wellbeing.
The thing I value the most is the trust that Shine puts in me to do the job the way I think it should be done.”
“The Shine team has taken my upskilling seriously, which I am greatly thankful for, and now I am helping others upskill.”
“I’ve been with Shine almost 15-years, and it’s the leadership that makes Shine a great place to work.
The founders of Shine are…wait for it…’real people’!
I have always felt that they are genuinely caring of their staff – approachable, honest, open.
They definitely want to see their staff be the best they can be and provide the support and guidance needed to do just that.
I love working here.”