We're very pleased that you want to get in touch with us. Please fill in the form below:

or   Close this form  
Some content

Peter Pilgrim :: Java Champion :: Digital Lead

I develop Java EE and Scala software solutions for the blue-chip clients and government public sector.

If you are looking for advice on software development, digital and modernisation then you are in the right place. I am available for either contracting, consultancy, training or mentorship from September 2016. Please make enquiries by email.

#ITMustChange2014 – Market Risk Role Java Job Question 2011

12 January 2014 2 comments

5 minutes


This is one old Java question from 2011 that landed on my desk. Admittedly, at the time, I was really looking for permanent role, senior Java developer in investment banking in London. I had given up on searching for that perfect banking Scala programming role, I went back to job hunting on Java EE 6, Spring, whatever I could find and I sent my CV down for Java developer in Markets Risk at some big bank. The context here was I had to write a Java project before I could get a vital face-to-face interview. Here is the reveal:


Please see below test for Market Risk at INVESTMENT BANK in the CITY.

Imagine this is a tasks/features in your current job and do everything you would to make a real-world task complete (e.g. javadocs, etc.).

import java.util.Map;

 * Design a class to implement the StringUtil interface
public interface StringUtil {

         * sortChars - return a string containing all the characters of the input string, sorted in ascending order
        public String sort(String input);
         * reverse - return a string containing all the characters of the input string, in reverse order
        public String reverse(String input);
         * distribution - return characters found in the input string, along with a count of their occurrence in the string (order is unimportant)
        public Map<Character, Integer> getDistribution(String input);

         * distribution - sort the characters of the input string and return the first n
        public String getFirstNSortedChars(String input, int topN);
         * get characters in input string ordered by frequency of occurrence
        public String getUniqueCharsSortedByOccurrence(String input);

         * get the character(s) that occurs most frequently in the input string
        public String getMode(String input);


Unfortunately, I did not get very far in the process. It transpired that they were after experts in multi thread programming. I wondered then why did they not say so on the job specification or why the Java test did not reflect the true duties of the role?

Addendum: This test was dated 5th July 2011. I had nothing against the validity of the test itself to demonstrate how a developer can code against an application programming interface. On the other hand, as a chief engineer, I must emphasize this test, and many questions that are very similar to it, are just one part of an interview process. For instance, an answer to this example question does not necessarily reveal how the developer communicates with others, plays well in a team, and handles variability in the working environment.

Patronising the experienced

As a seasoned Java EE contractor, I think that I might find the question to be now patronising. If I was asked to fill in a question like this one from 2011 before a telephone interview, I would think it would be unusual. It would take second priority to a job inquiry that was a face-to-face or a telephone interview. Granted, there are always candidates and low-end contractors who want to chance their arm in order to get a gig with an exorbitant contractor rate, when in fact, they are truly incapable of delivery on their promises. From my point of view, the recruitment process would be flawed and the client may be inexperienced in hiring an engineer or may be the human resources department do not know quite what they doing. The burden of the recruitment process is unfortunately the responsibility of the hirer. If your process is like this: a preamble Java programming test, then Java test, then a telephone interview and then 6 hour assessment in a team situation and then a face-to-face interview with the development manager and then another face-to-face with human resources or the final decision-maker, then think about how many contractors of decent quality you will eventually see? Do you actually think that you will see lots of them? In a recessed economy this sort of long hire-to-work process may work, indeed it may have worked last year, but now, in 2014, we expect the green shoots of recovery to prosper and in a very competitive economy, it is less affordable.

Kitchen fitting

When you want to hire a kitchen fitter to install a £15,000 kitchen, you hunt for good rated recommendations from other people who have had similar kitchens installed or even talk to the people who sell kitchens and get a list of recommended installers from them. You certainly never put the kitchen fitter through a basic test of do you know what is best screwdriver to remove this old 1980’s cabinet from a prefabricated wall? You never question his modus operandi and the number of tools inside his work boxes. You as the customer (the client) trust the fitter to do his or her job, they will complete the installation and usually everybody will be satisfied. This is my point.

Say No to Fake Jobs!

Aim for standards

The IT industry is a bit unusual in comparison to the physical world of labour, which invariably has a list of professional bodies to assert accreditation through guilds and apprentices; and also government licenses and (inter)national standards (e.g. Gas safe registration). I am definitely sympathetic to the hiring client who is going through grave difficulties getting the right sort of engineer at the right level and quality that understands them, their hot problem(s) and wants some co-operation on a project from day one. All I ask, and I probably speak for many professional Java contractors, and I have been loquacious enough in this post already, is that clients do not slap down the good in order to compensate for the pathetic.

  • Roberto Cortez

    I have to say that I’m totally in sync with your post. Well done!

  • Thanks Roberto for your opinion and your support. You are very kind: birds of a feather flock together.

Contents of this blog entry are under copyright © 2016 by Peter Pilgrim and associates. For enquiries after republishing, please contact us for permission. All requests for syndicated content will be ignored /dev/null, consider yourself warned!

I helped to write, design or creative e-commerce
JVM services that are behind brilliant today's
apps & websites

My Blurb

Please get in touch , directly, to establish hire availability, contract & consulting opportunities.

Speaking at Your Conference

Contact by invitation

What Peter Does