Roberto Cortez

Published: 76 articles

Thank you dear Tribe

posted by Roberto Cortez on

Today is my last day at Tomitribe. Technically it was 2 weeks ago, but also counting vacation time.

What can I say?

It has been a real pleasure working with Tomitribe for the last 4 years. Tomitribe gave me the chance to work into some really amazing things. Customers, Training, Product, Conferences, Open Source, Specifications and more. What a ride. I was never bored.

Technically it was a great challenge. I’ve learned a lot and had to implement things that you usually don’t bother when you are developing a regular application. We are used to writing our code and have something else run it. Well, sometimes I got to write code that makes applications run which is completely different. I feel that it pushed me into a new level that I probably wouldn’t be able to reach on my own.

Conferences were always a lot of fun. I’ve met a lot of people and I was really proud to represent the Tribe. I felt that the community cares a lot about the Tribe. It was stressful at some times to work everything out and have our sessions ready, but in the end, it always felt great!

Tomitribe is not a company. It is family. And moving was probably one of the hardest decisions I had to make in my life.

Tomitribe Team

So, I cannot say THANK YOU enough to everyone that I’ve worked together in the Tribe: David, Amelia, Bruno, Jean-Louis, Jon, Romain, Andy, Ryan, Theresa, Daniel, Ivan, Otavio, Cesar, Fisher, Richard, Rich, Thiago, João, and many others. I wish you all the best in the future!

In the next few days, I will be starting something new. I’m really excited about it. I’ll share some details in another post 🙂

How to ace your Java Developer Interview

posted by Roberto Cortez on

by Nicholas Phelps

Preparing for a Java interview can be stressful, and you’ll need to plan for several eventualities for it be a success. Fortunately, one of Pearson Frank’s top Java recruiters has put together the following tips to help you ace your next Java developer interview.

Do your Java homework

First and foremost, do your research on the latest trends and techniques involving the Java programming language. The software development industry is continually changing, so keep up to date with all the latest goings-on.

Interviewers want to know if you have a clear-cut understanding of software development principles. But the focal point of the interview will be Java itself, its standard libraries, relevant frameworks, and other tools used alongside the programming language.

Strong working knowledge of Java should be enough to get you through the first stages of an interview. But if you want to stand out from the crowd, focus your answers on the frameworks and databases the business deploys on their development floor.

If you’re struggling to pinpoint this information, read through the job specification, take a look at the company website, or get in touch with the recruiter who arranged the interview. Every detail that makes you more memorable could secure the role, so do everything you can to brush up on the right Java skills.

Make sure you understand the entire interview process

No two interviews are the same. Every company has a different way of doing things. Be sure to have a full understanding of the entire interview process, what you’re likely to be asked, and if there will be any technical elements.

You need to plan for every eventuality. Technical tests, coding reviews, and written exams all require different preparation techniques, so make sure you receive a complete brief outlining all aspects you’re likely to face in the interview.

Many businesses operate a two-stage interview policy which means you may be invited back to perform a technical assessment on a different day.

What you need to remember is although these situations can seem stressful, it gives businesses the opportunity to see how developers solve problems and react under pressure, and also benchmark your performance against the job specification.

Do more homework

This time on the company itself. Find out about the industry they operate in and the applications they develop. Most interviewers will take the time to ask what you know about their business, so be prepared for any questions they’re likely to throw your way.

A simple Google search should tell you whether they’ve won industry awards, their reputation in the sector, and recently featured in any positive PR campaigns. Demonstrating all of this extra knowledge shows your enthusiasm about the business you’re joining, which can stand out in the mind of an interviewer.

Remember to ask questions

Interviews are the perfect place for you to express any apprehensions you have about the company looking to acquire your services, so have a list of questions ready should the opportunity arise.

One of the common questions to ask in during a Java developer interview is what tech stack they use on their development floor. Every business is different, and by finding out this info before landing a role, you can improve your current skill level and hit the ground running on day one should you be offered the position.

You should also ask whether the interviewer has any concerns about your application. If they do, having strong answers to alleviate their reservations can help ease the way to the next stage of the interview.

This is also the perfect opportunity for you to ask about the next steps in the interview process. Depending on the response of the interviewer, you should be able to decipher how well you’ve done and whether you’ll be asked to attend the next stage.

The don’ts of an interview

We’ve covered the points that can help you walk into an interview and leave the room with a job, but here are a few pointers to help avoid a complete disaster.

When asked if you have any questions, do your best not to bring up your salary expectations as your first port of call. There is such a thing as bad timing, and although it’s something you’ll definitely want to ask, a technical interview isn’t always the right scenario to have this conversation.

Finding the right opportunity to pose those questions can be tricky, so if you get the chance to speak to a recruiter or HR professional within the business this could be the perfect time to ensure your salary expectations are met and the entire process runs smoothly.

You’ll also need to make sure you arrive on time. Turning up five minutes after your interview was scheduled can be extremely off-putting for an interviewer, so my advice is that it’s better to be an hour early than arrive late.

Taking note of these tips will help you breeze through your next Java interview. Remember to brush up on all your skills, plan ahead for technical tests, monitor the business performance, and you should land your dream Java role.

Nicholas Phelps is a Java team lead at niche IT recruiter Pearson Frank. Overseeing the hiring to Java developers, he has over 4 years’ experience in the Java marketplace.

JNation – The Java Conference in Portugal

posted by Roberto Cortez on

For some time, I had a wish that I could organize a Java conference in Portugal. Well, that finally happened in 19th June 2018, with the first edition ever of JNation, which is also the first Java Conference in Portugal.

JNation 2018

I was already talking about doing the conference a couple of years ago, but only this year it was possible.

The Beginning

JNation Birth
I think the entire idea started when I went to my first now defunct JavaOne conference. If I recall correctly, it was the year of 2012. I’ve never been to a conference before and I felt overwhelmed by the size and organization behind it.

Another thing that impressed me was the community around it. Everyone was so kind and eager to help. It really motivated me to also join the community and try to help other developers.

In Portugal, the Java community was not particularly strong. So, I was not even sure that there was a demand for a Java conference in Portugal. A strong community had to be built first. The PT.JUG was the only JUG available in Portugal, but most of their sessions required me to travel for 4 hours to attend the sessions. To build the community, we also required more local JUG’s.

To that end, I’ve created the Coimbra JUG. Slowly another community was being built. Shortly after, two other JUGs were created in Portugal: Beira JUG and Porto JUG.

The Coimbra JUG

Since its inception in late 2013, the Coimbra JUG grew to more than 400 members. During this time, it organized more than 20 meetups with international speakers from companies like Oracle, Redhat, Hazelcast or Zeroturnaround. Overall, these meetups gathered more than 700 attendees from all over the country.

It became clear that there was a demand for content, a place where developers could meet other developers and learn with each other. The conference dream could become a reality.


alphaCoimbra is a local non profit organization, created by local entrepreneurs with the intent to implement activities aiming to make Coimbra one of the most innovative and vibrant medium-size cities in Europe.

They were also looking to organize a technology conference in Coimbra, not necessarily about Java. Still, both the Coimbra JUG and alphaCoimbra started to work together to make this a reality.

JNation Conference

And the rest is history!

Well, it was not that simple. We were able to gather a great team that worked hard to make this happen.

Our initial idea was to make something simple. One day, a single track for 200 developers. Things quickly escalated in a positive way. The response was massive! We quickly sold out the first 200 seats, and speakers were contacting us to come. We had to increase the event capacity several times until we reached 450 developers and we added a second track to accommodate more sessions and speakers.

JNation Conference

We sold out! And we had plenty of other developers in a waiting list to join. Unfortunately, we had to make the hard decision to cap the conference size. The venue was not the issue. We just had to completely rethink the entire event if we wanted to increase the capacity even more, so we preferred to go on a safer route.

In the end, we came up with the following numbers:

  • 450+ attendees (yes a few sneaked in above the 450 limit)
  • 14 speakers
  • 30 volunteers
  • 2 tracks
  • 14 sessions
  • 20 sponsors
  • 13 supporters

We cannot be more proud and happy for a first run. On the other hand, this really sets the bar very high for future editions, so we hope we can keep going and make this event a success.

Check out the Opening Keynote video:

All the sessions were recorded and are available for free on JNation Youtube channel.

JNation Thank You

A HUGE Thank you to everyone that got involved in the conference: attendees, sponsors, speakers, volunteers, partners and of course the team! Cya next year!

Yes, Java helped me name Lucas

posted by Roberto Cortez on
tags: ,

LucasHaving a child is one of the most memorable moment you can experience. Parents have a huge responsibility with this new life and it starts right away when they have to choose the name. Our name is something that we keep for life (most of the times), so it needs some careful consideration. With literally thousands of names to choose from, how about using some Java technology to help us?

Yes, I wrote a small Java application to help me choose my baby name!


First of all, we have to define some rules!

Basic Rules

  • A short name (but not too short)
  • In the first half of the alphabet
  • Without special characters

A short name, so it easy to call him. In the first half of the alphabet, because in Portugal we have this stupid rule where kids get seated in the classrooms in alphabetic order, so letters in the end of the alphabet get to sit in the end of the room! And finally, a name without special characters (we have a few in Portugal), to be easier for foreign people to use.

Advanced Rules

  • Exists in at least three languages (Portuguese, Spanish and English)
  • Sounds and Writes the same in all three languages

To cover the fact that I was born in a Spanish speaking country, that we live in Portugal and English for the globalization.


There are also some constraints. In Portugal, you cannot use any name you want. You need to pick the name from an approved list of names. Of course, this is a comprehensive list of names that covers all common names. It is mostly used to avoid giving a stupid name to your kid. If your curious about it, check the list here.


Basic Rules are Easy

After grabbing the data in the file and use some Java 8 Streams:

(Yes, I’m lazy with regular expressions)

Advanced Rules are more Interesting

Beider-Morse Phonetic Matching

When searching for a way to determine if a word or a name exists in another language and sounds the same, I came across with the Beider-Morse Phonetic Matching.

The main objective of Beider-Morse Phonetic Matching consists in recognizing that two words are written in a different way actually can be phonetically equivalent, that is, they both can sound alike. But unlike soundex methods, the “sounds-alike” test is based not only on the spelling but on linguistic properties of various languages.

It tries to guess the language of the word following specific language rules and then calculates a phonetic value for that word. For instance:

  • tsch, final mann and witz are specifically German
  • final and initial cs and zs are necessarily Hungarian
  • cz, cy, initial rz and wl, final cki, letters ś, ł and ż can be only Polish

And then a phonetic value is calculated:

OriginalPhonetic ValueExample


The Commons Coded project has an implementation of the Beider-Morse Phonetic Matching algorithm. Try it out and play with it.

Rosette API

The Rosette API is a Text Analysis Toolkit, that provides multiple services to perform text analysis. They also have a Name Translation service with a REST endpoint that you can use to feed in names and the desired language and return the right translation with a confidence score. Their API is useful to double check results obtained with the Beider-Morse Phonetic Matching.

They have fantastic support, providing libraries to integrate with their API’s in multiple languages and also a lot of samples you can use. Check their Github repo here.

The Behind the Name website provided with the etymology and history of first names, plus a comprehensive list of names and what languages do they exist. On top of that, they also provide an API to check that information, so you can use it to triple check the results from Beider-Morse Phonetic Matching and the Rosette API.

Lucas Behind the Name

Adding it all Together

Lets just add this to our previous Java 8 Streams filter:

Final Results

After all, rules are applied and filtered the initial list, only 2 names remained. One is the obvious Lucas and the other was David. So, both these names exist, are written and are pronounced in the same way for Portuguese, English, and Spanish.

Proof it works?

Well, now I’ve just go to any random Starbucks and something with the name Lucas and confirm that they got it right. So far so good!

Lucas Proof

If you find this interesting, I even published the code in a Github repo. Check it out.

Note for Lucas: Lucas if you read this when your older, please excuse me for having such a geeky father.

Coimbra JUG – Just Enough App Server

posted by Roberto Cortez on

The Fifteen Meeting of Coimbra JUG was about Application Servers. For a long time, developers complain about Application Servers. Developers find them heavyweight and the current trend is to develop lightweight, isolated and contained services. Most call this approach Microservices. In my opinion, there is not a 100% accepted definition of what a Microservice is, but this is another story. Anyway, are Application Servers prepared to answer the new demands? António Gonçalves has the answer in is new session. Have a look and decide for yourself:

Just Enough App Server

Are Websphere or Weblogic appropriate for your project? Too big” ? Do Jetty or Tomcat actually meet your needs? Too “small”?

Neither too big nor too small. What you need is “just enough app server” to support only the subset of APIs and services your application needs.

In this session I will make an inventory of Java EE application servers (Weblogic, Websphere, JBoss, GlassFish), Profile Web (Tomee, Payara, Siwpass) and Servlets (Tomcat, Jetty, Undertow). If Microservices is want you want, I will introduce other modular solutions such as WildFly Swarm, KumuluzEE, Spring Boot or Dropwizard. I will talk about performance, war, executable jar, monitoring, management, optimization, use cases and some personal feedback… all this by showing code and executing several types of applications (from the simplest to more complex) in several kinds of containers … and maybe even on a Raspberry Pi.

Video (in Portuguese)

Of if you prefer an English version check it out here:
Just Enough App Server (English)


In the end, we would like to thank Praxis and KWAN for sponsoring the event with the venue, food and drinks for everyone! Remember to check out KWAN Calculadora Salarial.

Coimbra JUG Meeting 15

Thank you very much for your support! And of course, the awesome number of attendees that participated in the event.