Jamal:

IN GENERAL

Jamal aced almost every question put to him. He was able to answer correctly, synthesize the information put to him and make relevant points for discussion. He got a single pre screening question wrong, which was about continuous integration, but when questioned about it he had a clear and detailed knowledge of the subject. I think he just got sligghtly mixed up about the difference between "there to encourage merging" and "you should encourage merging if it's there". Other than that a perfect score. Jamal has his own Wikipaedia blog which I looked at, it poroposed some none standard design patterns - an advanced subject that will come in handy to his day to day work. Jamal is so far, the best candidate we have had.

JAVA & OBJECT ORIENTED PRINCIPLES
He has en exceptionaly good knowledge of this both at the theoretical and seemingly at a practical level. All of the questions were answered and expanded upon perfectly.

JAVASCRIPT
He has an excellend knowledge of client side javascript, he understands the language very well and uses it frequently. He has used several frameworks, bootstrap, JQuery etc and has legitimate views about them. He's aware of the changes that have occured in the way javascript is used in modern software development environemnts and was able to explain it clearly.

BASIC TEST DRIVEN DEVELOPMENT (TDD)
Jamal is aware of TDD, uses it regularly and has written articles about it. He has used many different mocking frameworks and has written articles about those too. He's aware of all forms of testing that could be relevant to the role and has worked extensively in environments where all kinds of testing is going on. No issue here.

AGILE METHODOLOGY
Jamal knows agile and has worked extensively in an agile envoronment. He'd have no problems in an agile team. There were a couple of concepts that Jamal was unfamiliar with however, for example he was unaware of what agile says about documentation. This doesn't matter too much for the day to day rinning of a team however, it would help him to take a look at the agile manifesto to remind him of the four main principles.

RESTFUL WEB SERVICES
Jamal's knowledge of Restful web services was good. He had clearly done them and was compatent in the subject. When put on the spot however his knowledge of the difference between GET and POST was fuzzy. I'm convinced Jamal would be fine with REST, but like many of us at first it would be an open book exercise to remind him of the syntax.

CONTINUOUS INTEGRATION (JENKINS OR EQUIVALENT TOOL)
Jamal has used Jenkins. He has designed pipelines, installed plugins and created jobs. He has jencins running on his local machine at home. He'd be very competant with all aspects of this.
SOURCE CONTROL MANAGEMENT

SOURCE CONTROL MANAGEMENT (SVN / GIT)
Jamal has mainly used SVN and is strong with this. He is less strong with GIT. He was struggling when put on the spot to recite the commands use with GIT.

BUILD AUTOMATION (ANT, MAVEN, GRADLE)
He has used all three and throuroughly knows them all. He is aware of convention over configuration. When theoretical scenarios were put to him regarding how to do things he answered correctly at all times.

CSS + HTML5

Jamal is aware of HTML5 and CSS he uses it regularly on the front end.