Pedro Gómez

The Three Pillars of Software Development

As a software engineer, there is something you should know: practice makes perfection and stepping out of your comfort zone is something you should do every day. As a developer, there are at least three key topics you should have under control.

Three Pillars

The first one: architecture, patterns, and principles. You should be able to design structured software easy to scale up, evolve and maintain. Create robust code based on the most important patterns and principles supporting testability while making sure your app performance is not affected. This will help you create highly cohesive code you will enjoy working every day.

The second one, testing. You should know when the code is testable or not when to use a unit, an integration or an end-to-end test; the benefits of different testing strategies and the set of tools you have in your toolbox. Writing tests like a professional will help you create a safety net you can trust and write code with no fear of breaking your app with every release.

Last but not least, the usage of a version control system. Taking control of your repository history, mastering the different commands available and how to merge code or stash it and being able to express your intention with a message commit is something every professional developer should know. Using a version control system properly will let you move around your project history and collaborate with others in the same repository easily so you can work faster and safer.

Of course, there are other topics like algorithms, performance or systems architecture that are really important and we should take care of. But if you have to pick just three of them, we would recommend you the previous list :)


Based on these three topics, the Karumi team has designed a set of trainings focused on improving your software development skills. Patterns, principles, architecture and testing for mobile engineers are the main topics. Would you like to get out of the comfort zone? Do you want to become a better Android or iOS developer? Do you with to become a senior engineer?

Take a look at our trainings and contact us if you are interested. This is the list of trainings we have available right now:

Here you have the links for our first open training based in Madrid. We have 10 early bird tickets waiting for you so don't miss our open trainings:

During this year we are going to organize some other open training sessions in different countries. Every engineer is invited to come, however, if you, or your company, are interested, just contact us.

Pedro Gómez

I'm a software engineer focused on new technologies, open source, clean code, and testing. Right now I'm working as a Senior Software Engineer at Karumi, a little software development studio.