What can we do for you?

We endorse a new approach to implementing business processes, one that brings greater agility and better integration between IT and business than those offered by Business Process Management Suites (BPMS) or Enterprise Application Integration (EAI) tools.

Business-specific languages for your business processes

Programming business processes means coding the rules that govern the interactions amongst the different actors participating in thoses processes. We aim to enable you to do this using languages that:

  • Strictly adhere to the specifities of your business process
  • Can be fully understood by your business experts
  • Programmers will love programming with
Generic placeholder image

Languages loved by your business teams

We advocate programming each business process in a language designed for that process, i.e. using a custom built business-specific language (BSL) whose only responsibility is capturing the requirements of your processes in a human-understandable manner. This alone makes non-IT people feeling at home when reading the implementations.

But not only that: BSLs allow us to split development between two completely independent teams, thereby gaining a tremendous boost in agility: first, the business team in charge of implementing the business process using the business-specific language; second, the IT or non-functional team that takes care of non-functional concerns such as data persistence, web services, user experience, etc.

Generic placeholder image

Languages loved by your programmers

BPMN, BPEL, and the like fare poorly as programming techniques and are hard to integrate with other systems. Our custom BSLs are embedded within general purpose programming languages, so that programmers can create libraries of reusable processes, scale up their process applications, and forget about expressiveness limitations. Our host language of choice is Scala, one of the most popular and powerful Java Virtual Machine and Javascript compliant languages nowadays.

Generic placeholder image

Let us help you to implement your processes!

We are experts in process analysis, language design, functional programming, and Scala. A great mix of expertise at your fingertips!

Business languages design

We have a long research record and solid practical expertise on language design. With us, your company can have the language that best suits its needs.

Contact us and tell us about the business process you deal with »

Generic placeholder image

Transition to functional programming

The advantages of functional programming (FP) make it an appealing approach to software development. But when setting up a team of functional programmers, they need with them an expert coder who can guide them in the transition from object-oriented to FP, and explain them the major techniques and design patterns involved. We are those highly skilled programmers too!

Contact us to help your team »

Generic placeholder image

Let us help you to embrace the Scala revolution!

Scala has a rich and powerful ecosystem. We have a solid expertise in Scala, in its ecosystem of libraries and tools, and in functional programming. You and your team can benefit from our expertise in any of the courses we offer:

Contact us for prices and calendar »

Generic placeholder image

Introduction to Scala

Introduction to Scala is a two-day course that presents the essential language features. This course is for developers who are initiating themselves in Scala's mix of object-oriented and functional features.
Generic placeholder image

Functional programming

You know some Scala but wonder what all the fuss about functional programming ("monads?, functors?, what is all that about?") is about. This course introduces FP and presents scalaz and shapeless, two Scala libraries that enable FP in the JVM.
Generic placeholder image

Web development

Play is a widely used Web development framework for Scala. This course presents its major features and how to use it for such specific problems as: developing microservices, asynchronous programming, etc.
Generic placeholder image

Distributed programming

Akka is a major driver behind the Reactive Manifesto, an as such an essential tool to create resilient systems. Learn the basics of Akka and its Scala API, and delve into the actor programming paradigm to write fault-tolerant distributed applications.
Generic placeholder image

Big data

This is a crash course on Spark --arguably the most popular Big Data framework nowadays, with a focus on its Scala API. The course emphasises the functional programming underpinnings of Spark for large-scala data processing, and will isolate the major hurdles that Java programmers face when moving from Java to Scala.
Generic placeholder image

Bespoke training

The ecosystem of Scala is vast, and you may as well want courses on sbt (simple build tool), test frameworks (specs, scalatest, scalacheck), language design, etc. We can design and teach tailor-made courses specifically created to satisfy your unique needs.

Supporting technology

You can build your Business-specific language on top of smaller and reusable languages that we have already designed, implemented, and tested!


Speech eases the creation of business languages. It saves you the substantial effort and potential blind alleys that raise when writing a language from scratch. Speech includes a catalogue of mini-languages that cover the most common concerns in business processes, such as: communication, messaging, organisation, regulations, and so forth.

Learn more »

Generic placeholder image


Purely functional business languages are free from non-functional concerns, and web deployment is no exception. FunPlay is a Play framework addon that takes advantage of this modular design, and provides a small language to easily implement Play controllers over purely functional services.

Comming soon! »

Generic placeholder image

Your server as a Kleisli

We take the slogan "your server as a function" one further step, and we look at implementing services from a purely functional perspective. In this view, services then become Kleislis! The service-kleisli library provides a language that allows you to create, compose, and interpret purely functional microservices.

Comming soon! »

Generic placeholder image


Financial regulations support

The Bank of Spain Risk Assessment Central Office (CIRBE) rules how financial entities and the Bank of Spain interact on risk declarations matters: reports, conflict-resolution protocols, notifications, etc. BNP Paribas Security Services (BP2S) applies a language defined by Habla Computing to reflect CIRBE regulations, ensuring its processes match the normative.

Using this language enables BP2S to quickly react to change regulations through simple modifications in its code. Also, this code can be easily plugged to different tools, freeing BP2S to tie its business logic to any specific platform.



Know us better

We are a bunch of people with a common passion: achieving better ways to engineer and deliver software products.

Juan Manuel Serrano Hidalgo
CEO & Co-founder
Isabel de la Morena Maroñas
CFO & Co-founder
Sergio Saugar García
Senior software developer
Jesús López González
Senior software developer
Javier Fuentes Sánchez
Senior software developer
Diego Esteban Alonso Blas
Senior software developer
Luis Rodero Merino
Senior software developer
Contact us if you like what we do and want to join us »

Please, tell us which are your needs and how do you think we may help you. We will answer you as soon as possible.

-- The Habla Computing team

Find us

Parque Científico Universidad Carlos III de Madrid

Room 1.1.C.09

Avenida Gregorio Peces-Barba 1, 28918 Leganés

Madrid, Spain

Phone us: +34 609 252 235

Email us: info@hablapps.com

Check out our contributions

As pioneers in the use of Scala, we founded the Madrid Scala Meetup (affectionally known as #ScalaMAD) and regularly contribute to the Scala community with blog posts, meetup talks, and open source projects.

Designed by Freepik
Purely Functional Blog

Check out our posts on how to design business languages, and how to use Scala to implement those languages in an embedded way using a purely functional programming style.

Designed by Freepik

Let's meet up in Madrid! We regularly co-organize Scala meetups once in a month (or more! :)

Check out our contributions

As pioneers in the use of Scala, we founded the Madrid Scala Meetup (affectionally known as #ScalaMAD) and regularly contribute to the Scala community with blog posts, meetup talks, and open source projects.

Purely Functional Blog

Check out our posts on how to design business languages, and how to use Scala to implement those languages in an embedded way using a purely functional programming style.


Check out our open source projects to support the implementation purely functional business languages.


Let's meet up in Madrid! We regularly co-organize Scala meetups once in a month (or more! :)

Terms of use

Welcome to the Habla Computing S.L. website
Owner: Habla Computing, S.L.
Address: Villalobos, 20, 13A 28018 Madrid
Tel. (+34) 91 172 68 52; fax. (+34) 91 172 68 52
E-mail: info@hablapps.com
Registry Data: Madrid Commerce Registry, Volume 27,693, Sheet 12, Section 8, Page M-499100, dated April 12, 2010, first registration.
C.I.F.: B-85933729

Terms of Use
The conditions herein regulate the use of this website. By accessing, browsing, or using this Web site imply that user have read, understood, and agree, unconditionally, to be bound by these terms.
Habla Computing may, without notice to you, at any time revise and/or update these Terms of Use and any other information contained in this Web site. Habla Computing may also make changes in the products, services, or programs described in this site at any time without previous notice.
Habla Computing reserves the right to deny, suspend, interrupt or cancel access or use of this website, either completely or partially, for those users or visitors found to be in non-compliance with any of the conditions set forth in this Legal Notice.

Specifically, the reproduction, transformation, distribution, communication, public dissemination and, in general, any form of development, using any procedure whatsoever, of all or part of the contents of this website, as well as any corresponding design and manner of presentation of the materials included herein are strictly prohibited. Said development shall only be permitted if Habla Computing issues written authorization of the same and only as long as appropriate reference is made to the sole property of Habla Computing. Notwithstanding the foregoing, any software and other materials that are made available for downloading, access, or other use from this site with their own license terms, conditions, and notices will be governed by such terms, conditions, and notices.
The decompilation, disassembly, reverse engineering, sub-licensing or transfer of any kind, translation or execution of work derived from the computer programs required for functioning, access and use of this website, and of the services described in the contents, as well as the execution of any of the development activities described in the previous paragraph, whether related to all or part of such programs, is also strictly prohibited. The user of this website must abstain from deleting, modifying, avoiding or manipulating any protection device or security systems that may be installed herein.
The brand names, commercial names and distinctive symbols are the sole property of Habla Computing. Access to the website does not imply the granting of any express or implied rights under any patents, trademarks, copyrights, or other proprietary or intellectual property rights.

Hyperlinks to other sites
The hyperlinks or links included in this website can lead the user to other third party sites, over which Habla Computing has no control. Habla Computing shall not be held liable for the contents or the state in which said sites are found. Access to the said sites using this website also does not, in any way whatsoever, imply that Habla Computing either recommends or approves of corresponding contents or use of such Web site.
Habla Computing is not a party to or responsible for any transactions user may enter into with third parties, even if you learn of such parties (or use a link to such parties) from a Habla Computing site. Accordingly, user acknowledge and agree that Habla Computing is not responsible for the availability of such external sites or resources, and is not responsible or liable for any content, services, products, or other materials on or available from those sites or resources.
It is up to user to take precautions to protect themselves from viruses, worms, trojan horses, and other potentially destructive programs, and to protect your information as you deem appropriate.

Linking to this site
All links to this Web site must be approved in writing by Habla Computing, except that Habla Computing consents to links in which the link and the pages that are activated by the link do not: (a) create frames around any page on this Web site or use other techniques that alter in any way the visual presentation or appearance of any content within this site; (b) misrepresent your relationship with Habla Computing; (c) imply that Habla Computing approves or endorses you, your Web site, or your service or product offerings; and (d) present false or misleading impressions about Habla Computing or otherwise damage the goodwill associated with the Habla Computing name. As a further condition to being permitted to link to this site, you agree that Habla Computing may at any time, in its sole discretion, terminate permission to link to this Web site. In such event, you agree to immediately remove all links to this Web site.

Habla Computing reserves the right, at any time, to modify, enlarge or temporarily suspend the website presentation, configuration, technical specifications and services unilaterally and without previous notice.
Also reserves the right to modify the terms of use, as well as any other specific conditions, set forth herein at any time.

Confidential information
Habla Computing does not want to receive confidential or proprietary information from user through our Web site. Please note that any information or material sent to Habla Computing will be deemed NOT to be confidential. By sending Habla Computing any information or material, you grant Habla Computing an unrestricted, irrevocable license to copy, reproduce, publish, upload, post, transmit, distribute, publicly display, perform, modify, create derivative works from, and otherwise freely use, those materials or information. You also agree that Habla Computing is free to use any ideas, concepts, know-how, or techniques that you send us for any purpose. However, we will not release your name or otherwise publicize the fact that you submitted materials or other information to us unless we obtain your permission to use your name.

Liability Exclusion
Whoever uses the website does so at their own expense and risk. All materials, information, products, software, programs, and services are provided “as is” with no warranties or guarantees whatsoever, neither explicit nor implied, and can be modified or updated without previous notice. Habla Computing, its associates and employees shall not be held liable for the errors or omissions that could exist within the contents of either this website or other contents to which access can be gained using the same. Habla Computing, its associates and employees shall also not be held liable for either any damages arising from the use of this website or any activity undertaken as a result of the information made available herein. Accordingly, user should confirm the accuracy and completeness of all posted information before making any decision related to any services, products, or other matters described in this site.
Habla Computing does not guarantee the absence of viruses, worms or other harmful computer elements that could cause damage or alter the computer system in the electronic documents or user files included herein. As a result, Habla Computing shall not be held liable for any user or third party damages or losses arising from such elements. Furthermore, Habla Computing shall not be held liable for or guarantee the availability and continuity of access to this web site. Habla Computing shall also not guarantee that this website is secure or error-free. It shall be the user’s responsibility to have the appropriate tools available for detecting and disinfecting harmful or damaging computer programs.
In no event will Habla Computing be liable to any party for any direct, indirect, incidental, special, exemplary or consequential damages of any type whatsoever related to or arising from this web site or any use of this web site, or of any site or resource linked to, referenced, or accessed through this web site, or for the use or downloading of, or access to, any materials, information, products, or services, including, without limitation, any lost profits, business interruption, lost savings or loss of programs or other data. The user is fully aware of, and voluntarily accepts the fact that they are fully liable for any consequences arising from any use of any part of the contents herein, materials, information, products, software, programs, or services, so at their own discretion and risk. User will be solely responsible for any damages that may result, including loss of data or damage to your computer system.
The user shall be held liable for losses and damages of any kind that Habla Computing could suffer as a result of incompliance with the obligations set forth herein.
Additional or different terms, conditions, and notices may apply to specific materials, information, products, software, and services offered through this Web site. In the event of any conflict, such additional or different terms, conditions, and notices will prevail over these Terms of Use.

Under any and all circumstances, the use conditions set forth herein shall be governed by Spanish Law.