Monthly Archives: May 2016

Software Architecture for developers @TSM

Our colleague, Leonard Abu-Saa, System Architect, published a very interesting article about “Software Architecture for developers”, in Today Software Magazine, no 47.

Leonard shares interesting facts about the role of the software architect, and of course about his passion for photography, integrated in “the big picture” of the software architecture.

Read more about his software architecture journey in the article below:

software architecture for developers - TSM


Software architecture plays a very important role in the delivery of successful software systems, yet it is being neglected by many teams. The software architecture role exists in every team. However, most of the time, the “architecture” reflects wishful thinking rather than reality. Many teams think that they do not need software architects, because they can “self-organize”. Many teams throw around words like “YAGNI”, “evolutionary architecture” and “emergent design”. Being agile has many benefits, but it does not discard the responsibility of having just enough upfront design.

What is Software Architecture?

In the IT industry, the term architecture has many meanings to many different people and there are a lot of definitions of what it means. Here are a few: “software design”, “the big picture”, “plan”, “technical direction”, “foundations”, “abstract view”, “non-functional requirements”, “standards and goals”, etc. The truth is that there isn’t a single valid definition. Therefore, there are many types of architecture: “application architecture”, “software architecture”, “it architecture”, “platform architecture”, “infrastructure architecture”, etc. What do they all have in common? Structure and Vision.

At a first glance, “software architecture” could be defined as the architecture for a piece of software. Right? It is true, but it goes beyond software design.

Application architecture

This is the term that developers use the most. Developers are familiar with the concept, because they create applications (desktop, web, mobile, etc.), and, in this context, architecture represents the building blocks which are predominantly programming languages, technology choices, frameworks, libraries, APIs, etc.

System Architecture

System Architecture scales one level up, and we think of the “software system” as being composed of multiple applications. We might have a web facing app communicating with a backend service, which, in turn, has access to a DB server/system. Of course, all of these applications must run on a piece of hardware. Therefore, system architecture is a mix of software and hardware.

Read full article in: Today Software Magazine.

Looking for a challenging career? START with an internship in Cluj

We’re always looking for people who are ready to face challenges and make a difference in the IT industry. If you have a passion for understanding technology and you’re eager to develop innovative solutions, join our summer internship program in Cluj Napoca.


Gain awesome skills and work on real projects right from the start!

We’re looking for Embedded C, Java, .NET, and PHP interns for our office in Cluj-Napoca. During the internship, you will develop your skills working with the latest technologies.

What we look for:

Motivated and passionate interns, with a technical/software background.

Junior or senior with a major in Computer Science, Mathematics, or similar discipline.

Knowledge or experience working with software design patterns.

Excellent written and verbal communication skills.

What’s in it for you:

Presentations and technical training,

Be part of a leading software company,

Flexible working hours & great teammates.

After completing the internship, you have invaluable experience and you will receive an Internship Diploma.

Join our internships with possibility for full time employment.

Send your CV to and mention the internship you are applying for.

Connect to your passions!