You have learned Mule 4. Now what? This was the question that my mentee asked me. But what did I tell her? In short I told her any language she uses to enhance her skills as a MuleSoft Developer would help her career, but there are many languages that may be a better fit. Below is a list of languages I would recommend learning or improving:
For those that are interested in watching, please locate my YouTube video below:
Now let’s get started!
The first language I would recommend every MuleSoft developer learn and take seriously is DataWeave. Doesn't every MuleSoft Developer know DataWeave? The answer is yes and no.
Every time you build a data transformation, or expression you’re using DataWeave.
Some MuleSoft developers have become DataWeave enthusiasts while others know enough DataWeave to get their job done. However, is it enough? Is knowing enough to get the job done really enough? Personally, after 5 years as a professional MuleSoft developer, I believe its not enough. But why?
Take this scenario. One day you’re going to have a very complex data transformation that will take a long time to develop and test. You may even run into the trap of recreating functions in DataWeave that already exist as DataWeave modules. At least this was my experience. During one client project, I wrote a long DataWeave script that got replaced with one line of DataWeave code. Imagine, all of my beautiful functions that I wrote were scrapped for DataWeave functions that were more performant and battle tested.
If I had known about those functions and used them from the start of that task, I would have saved myself a lot of time and unit testing headaches. I would have shaved off a bunch of time, while increasing my productivity and coding quality.
Here are some resources to help you learn and/or improve your DataWeave skills:
But is it relevant for MuleSoft developers? Yes. A MuleSoft developer would use Java when there is a need to extend functionality in Mule 4. This means Mule 4 and DataWeave cannot handle the current use case. The following two ways allow you to use Java to extend functionality:
According to the MuleSoft documentation, most functionality is already covered in Mule 4 but there are some advanced use cases where using this module will fit. One use case that I have come upon, is the ability to merge PDFs. To my knowledge, Mule 4 does not merge PDFs out-of-the-box.
What are some use cases that you used the java module to help you solve? Please mention in the comment below.
To get started with the Java Module, be sure to check out the MuleSoft documentation.
Mule Java SDK
Next up is the Mule Java Software Development Kit (SDK). Use this SDK when you want to build connectors and validators that do not already exist via out-of-the-box or third-party connectors and validators.
Here’s a scenario of when to build a connector. Let’s say your team has a homegrown built system that serves as the backbone of your organization. All data relies on this system and you need to pretty much interact with it at all times. You find yourself building multiple integrations all needing to connect to this system. However, the out-of-the-box connectors do not completely satisfy the use case. Maybe your team needs to establish a connection with a different protocol that is not supported. Your team decides that instead of writing that connection code over and over again, they want to modularize that code in the form of the connector. How can they accomplish this? The team decides to accomplish this by building a connector project using the Mule Java SDK.
*Note: Mule 4 comes with an XML SDK and Java SDK.
Some people say it's a language, some people don’t, but the next language I would like to recommend is SQL (Structured Query Language). As an integration engineer, I can guarantee you that you will at some point in time need to integrate with a relational database. It is also very likely that you will have to write your own SQL query. This comes in handy when creating basic integrations, but even more so when doing legacy data migrations. There are many SQL resources. One that I keep handy is from w3schools.
Lastly. I would like to mention Scala as a bonus language. For those that want to learn another JVM language that is being used in Data Science and Machine learning, Scala is a nice language to add to your skillset. It also uses both Object Oriented and Functional Programming language paradigms. It's noteworthy that there are not as many Scala jobs as there are for Java. This could be a good thing in terms of Scala developer salaries. To get started in Scala check out the Scala documentation.
There are so many languages one could learn. There are some languages that are more popular than the ones mentioned in this blog post. However, I truly believe these languages would pair nicely and benefit many MuleSoft developers. If you are interested in learning a top language in general, I would recommend you check out Stack Overflow’s Developer Survey that comes out every year. Then check out which languages are in demand and the salary. Remember that not every language that is popular is worth learning. Sometimes you want to get a complete picture, in terms of supply and demand and salary implications.
Well, I want to know from you! What do you think? Also, if you enjoy this content, please let me know by liking this post and subscribing to my blog in the footer section.