• en | es

Maven demystified

Due to my Android development background, I am more used to Gradle than to Maven. Although I knew that Gradle was based on Maven, I had never investigated what was going on behind the scenes. During the last week, I have been trying to understand...


Improve team's communication with User Stories

The challenge of Software development is about building a product which fulfills both business and users' expectations. The focus for each role within an Agile team is different: Project Managers want to see progress and want a quality product that is delivered on time and...


Three pillars of Continuous Delivery

Some time ago I was invited to take part in a online panel about continuous delivery. Continuous Discussions is a series of one-hour long panel discussions between people from different backgrounds about various aspects of continuous delivery. The topic of my panel was Deployment Automation...


Communicating Design

Software design is crucial. It is the foundation of an application. Much like a blueprint, it provides a common platform for parties from all backgrounds. It facilitates understanding, collaboration, and development. Design should not be considered only an element of development. It should not live...


Testing Spark Streaming: Integration testing with Docker Compose

In the first post of this series, we saw how to unit test Spark Streaming operations using Spark Testing Base. Here we'll see how to do integration testing using Docker Compose. What is Integration testing We previously saw a discussion about unit and integration testing....


What does RESTful really mean

Last month I attended Fast Track to RESTful Microservices training at Skillsmatter. During the course, we explored what REST APIs can offer to web applications in general and microservices communication in particular. Personally, the most important outcome of the course is a better understanding of...


Testing Spark Streaming: Unit testing

There is enough evidence to prove the importance of automated testing. Projects in new fields often neglect automated testing, as the domain itself steals the attention of the developers. However, lack of testing implies 'laugh now, cry later'. Some of the tools around Big Data...


Thoughts on Coupling in Software Design

Coupling is a software metric that describes how closely connected two routines or modules are. It is a measure of quality. The concept was introduced by Larry Constantine in the 1960s and was formulized in a 1974 article for the IBM Systems Journal, Structured Design,...


Scaling Umbraco On Windows Azure Part III

This is the last part of the series about how to scale an Umbraco website on the Windows Azure platform. You’re being successful, cater for more visits One of the benefits of platforms as a service like Windows Azure, is that you don’t have to...


State in scalable architectures

Handling state is one of the cornerstones of software development. Most of business value derived from software relies on state. Depending on the level of abstraction, state, and the approach to handle it, looks like a completely different problem. In this post we'll see what...


Enjoying this article?

Sign up to our monthly newsletter to get content like this in your inbox!