December 28, 2010

Surviving a job interview


So, you made the perfect CV and they called you to come over for an interview. What now?

I've seen so many people stressing out during a job interview, but by changing your mindset a little bit you can be so much more relaxed and make a far better impression. The key factor here is that an interview always works in 2 directions.

Preparations

Again, the foremost important thing to remember is that an interview always works in 2 directions. You are being evaluated, but to be sure there is really a match you must evaluate them at the same time! To be able to say if the job they offer is really what you want and you really want to work there, you have to know what you want of course. This is an exercise you actually have to do prior to writing your CV, so you can steer them early on by letting them know what your career objective is and by implicitly stressing parts of your past experience you liked most and would like to build upon. If they call you now for an interview, you are pretty sure they think there is a match. Up to you to find out if it is really an interesting one.

So, you've let them know what you want and what you're worth in your CV and if applicable in your application form, but to evaluate them, you have to do your homework too. 

Do not only look on their website for background, but look also for subsidiary companies, companies they work closely with, etc... Google is your friend here. Read about the company history, where they come from and what they do now. Are there a lot of jobopenings (is the company growing or mainly replacing people)? Did they have any recent press releases? Are people blogging about them? Are they on twitter/facebook? Are there employees on LinkedIn? Do the employees you find on LinkedIn work for a short or long time for them? What about recommendations? And so on...

The more you know, the better you are armed for the interview, because going to an interview is like going to a battle and you have to win the battle to get the job. Being well informed is also better against stress, because you'll be more relaxed and you'll feel more as 'an equal' to the person(s) in front of you. Stress may leave a bad impression, especially if you are applying for a stressful job. If you have a hard time hiding those sweaty armpits, there are some efficient products against that, like Axitrans (http://www.vesalepharma.com/STA/EN/produits_axitrans.html)

So far the preparations. 

The interview

Before I forget, let me repeat it again: an interview always works in 2 directions!

First of all, make sure you are on time or have a phone number to call them if you happen to be late for some reason. If they offer you something to drink, always ask for water. It helps better than coffee against a dry mouth, you can also sip a little bit during the interview to buy some time when you can not answer immediately and nobody minds if you don't empty it before the end of the interview.

When you carry a briefcase or backpack, put them against the wall, where you can not stumble over it by accident. If you need a pen and paper to take notes, take it out at the beginning of the interview.

Two things may happen now. Or they start talking about the job opening and explain more about the job and/or company or they ask you to elaborate more on your working experience mentioned in your CV. Either way, you can steer the interview a little bit. In the former case, you'll have to listen very well to adapt the answers you'll have to give in the second part of the interview and in the latter case you can elaborate on the things you like most and they will start asking more specific questions along the way. Talk with passion, even if you want to change jobs because you are not motivated anymore, talk about the good things and the things you liked about it. Enthusiasm sells!

A lot of applicants are afraid to ask questions, don't be! During the time you elaborate on your own CV, ask also how they do things within their company. Ask how they work and match your own experience on that. In the beginning, you might have to guess or try different approaches. For example " ...<talk about your experience>... I don't know if you are doing similar? <then pause >" or " ...<talk about your experience>... You can do that in another way also ...<talk about the second way where you have less experience with>... I don't know which way you are working here? <then pause>".

While they explain the job offer and company, try to gently interrupt with questions like "How big is the team? Who will I be working with? What is their experience? To whom am I responsible? If it is an existing position, why has the previous person left the post? If it is a new position, why is it created? Are there any trainings I can follow? When would the selected candidate be able to start? Are there many candidates? ..."

Remember, an interview always works in 2 directions!

I deliberately did not talk about typical interview questions you might get or about psychometric tests. On both you should just be honest and don't prepare too much. It is not really a test you are doing here, it is merely checking if you think as they do. If you try to manipulate this part, you probably won't be very happy in your job. In fact, this part should be the easiest part on your side, because no matter what the result is, you always win. Again, if there is no match, you do not want to work there.

Remember these things when you come for an interview with us ;-)

Good luck!

December 12, 2010

Scala for the busy Java developer

The title of this blog entry is shamelessly inspired on "The busy Java developer's guide for Scala" from Ted Neward. As a busy man myself and having a Java background with interests in Scala, I went looking for sites, books, exercises, tools, etc... to quickly learn the ins and outs of Scala.

There is of course the main site (http://www.scala-lang.org/), with references to some good books, but that simply takes too much time. A good traject to follow and which I followed also, is the one I describe below.

First thing you need is of course a Scala compiler/interpreter. Why bothering installing Scala on your local machine, even if you have already a good IDE installed. It is far easier to start with an online interpreter (http://www.simplyscala.com/), which simply runs in a browser. It does not run on my iPhone (still iOS 3.1.2, I know,...). Maybe it works on a later version -if so, then probably also on an iPad- or on an Android phone or tablet,... Anyone?

Although that same site has some tutorials on it also, they are not sufficient for a real introduction to the Scala languate. For Java developers, there is a much better introduction from Ted Neward on IBM developerWorks. Here is the deeplink with an overview of all the Scala articles from Ted on developerWorks, sorted by date: http://www.ibm.com/developerworks/views/java/libraryview.jsp?site_id=1&contentarea_by=Java&sort_by=Date&sort_order=1&start=1&end=17&topic_by=&product_by=&type_by=All%20Types&show_abstract=true&search_by=scala%20neward&industry_by=

It is very easy to execute the code from the articles inside de interpreter on Simply Scala, just do a copy & paste. When Ted actually implements a runnable application, skip the object definition and execute the body directly in the interpreter. For example in the article "Class Action", he uses the following snippet to exercise the Rational class:

object RunRational extends Application
{
  val r1 = new Rational(1, 3)
  val r2 = new Rational(2, 5)
  val r3 = r1 - r2
  val r4 = r1 + r2
  Console.println("r1 = " + r1)
  Console.println("r2 = " + r2)
  Console.println("r3 = r1 - r2 = " + r3)
  Console.println("r4 = r1 + r2 = " + r4)
}

Just copy anything within the brackets ( {...} ) into the interpreter et voilà... 

Now that you have a good start and if you have some time left, there are a lot of interesting exercises on the internet to enhance your skills (especially the functional part, which is new for Java developers). Project Euler (http://projecteuler.net/) and Rosetta Code (http://rosettacode.org/wiki/Main_Page) contain quite some interesting and challenging exercises which are also used at universities as small projects.

Have fun with Scala! It might be the language of the future on the JVM, time will tell...

December 05, 2010

Make you résumé or curriculum vitae (CV) land on top of the pile

During the last 7 years or so, I had to evaluate *a lot* of résumés. A lot of them were good, some even great and some just plain crap. I know that a résumé and a CV are not the same in the US and Canada, but in this blog entry I'll discuss the more detailed CV and will use both names interchangeably.

Where to start? There is a very good website of the University of Antwerpen that elaborates on academic, business and technical communication in written form. (http://www.calliope.be/, dutch, english and french!). I'll sum up the most interesting parts from that site and combine them to make a model CV (my own ;-) )

Types of CV

There are 2 major types of curricula vitae: the functional and the reverse chronological. The former is more oriented towards the professional with a long career and the latter towards the recently graduated or young professional. 

The functional CV elaborates on the functional domains you specialised in during your career *and* on the functional domains you want to further specialise in. Leave out the things you are not interested in (anymore) and emphasize some recently acquired skills you want to focus on in the future. With a functional CV, you can implicitly show your career objectives and what you want to achieve personally. There is less emphasis on employment history.

The reverse chronological CV emphasizes your education and employment history. In a reverse chronological order, work experience, education and extracurricular activities are listed together with some extras relevant for your function or domain of expertise (eg. languages, computer skills, etc...)

The ideal CV for me is a hybrid of a functional and a reverse chronological CV.

Let's build a hybrid CV based on the theorie above.

Sample CV

Every CV needs some basic personal information, but before even putting your address, etc... in the CV, I prefer to see a small summary of your career objective. Here is my summary description:

CURRICULUM VITAE
Sven Beauprez, Managing Partner Xume

Enterprise Solution/IT Architect who uses his communicative skills combined with in depth IT experience to align Business and IT and who designs future proof enterprise wide solutions

It is immediately followed by your personal information (mail and phone removed to avoid spamming). These days, it is more and more important to show your online presence like your LinkedIn profile, Twitter, etc... Personally I use facebook only privately and will not accept just professional contact as friend (feel free to add me to LinkedIn though ;-) ), so I leave it out of my CV also.

Personal data

Name : Beauprez Sven
Date of birth : October 14, 1976
Region: Gent, Belgium
Nationality : Belg
Marital status : In a relationship
Mobile : +32 (0) ...
E-mail: sven.beauprez@...

Next is a section with your profile containing a high level view on your hard and soft skills.

Profile
-        has 11 years experience in designing, implementing and integrating backend services/systems and web applications
-        has 8 years experience in aligning Business and IT
-        skilled in selecting, coaching, motivating and leading people
-        thinks analytical and in long term solutions
-        is pro-active and takes initiative
-        has strong social and communication skills 

The second half of the first page contains a brief summary of the relevant (!) trainings you had, your education and relevant (!) activities. Less relevant extracurricular activities should be mentioned at the end.

Education/Training
-        2010-2011: Executive Master Class in Innovation & Entrepreneurship at Vlerick Leuven Gent Management School
-        2008-2009: Certified Enterprise Architect from Carnegie Mellon University
-        2007: Certified Scrum Master (instructor Ken Schwaber)
-        2007: Certified Scrum Product Owner (instructor Ken Schwaber)
-        2000: UML course at Rational
-        1999: thesis about e-Commerce + working prototype
-        1994-1999 : Master in Computer Science, specialization Information and Communication Technology, at the University of Ghent, graduated with distinction
-        1988-1994 : Highschool, Mathematics-Science

Activities
-        2003-2008: Steering member JavaPolis/Devoxx
Mainly responsible for the “Open Source” and “J2SE” track, and day to day management at the venue
-        2003-2008: Steering member Belgian Java User Group (BeJUG)
Organized and presented events ( “JDK 1.4 Overview”, “Java Web Development”, “AOP”, “Rich User Interfaces”, “Open Source libraries”, “Security”,...)

All of the above must fit on exactly 1 page (the first page) of your CV. If not, try to rearrange things until it fits 1 page! (I hate a long CV!)

The second page is where it gets interesting. On this page, you should give a functional overview of your expertise. Here, it does not matter when you worked for which company or on which project you worked, all that matters is the expertise you developed over the years in different functional domains.

Try to identify a number of relevant domains, categorise them and write down your results and contributions (experience) in that domain. Here is the functional overview of my experience:

Experience: functional overview
- Enterprise Solution Architecture / IT Architecture experience
o designing and documenting individual solutions/projects (from software to
infrastructure) based on given business process
o recognizing solution patterns common to different solutions/projects and
apply them to new solutions
o building and documenting an application (software), infrastructure (hardware)
and service (SOA) solution portfolio
o acting as a mediator between business and IT
- Software Architecture experience
o designing future proof architecture based on business needs and budget
o auditing existing software architecture
o writing development guidelines & standards
o researching and selecting tools, frameworks and libraries
o setting up continuous integration build environments
o designing deployment procedures
o specialized in Java & Open Source solutions
- Company- en management experience
o coaching and leading of developers/architects
o resource planning and budgeting
o managing and follow up of project implementations
o organizing events/conferences (BeJUG/JavaPolis/Devoxx)
- Recruitment & Selection
o candidate selection based on CV
o interview and evaluation of candidates

This was the hard part. The next pages contain a reverse chronological overview of the actual companies/roles/projects you worked for/as/on. Try to be brief an to the point on each of them. Generally an entry should not be longer than half a page and older entries (eg. more than 7-10 years) can be left out or can do without explanation. Maximum 3 to 4 pages should be dedicated to this part of your CV. Here are 2 entries from my CV:

Experience: chronological overview
-          01/07/2001-now:
Managing Partner and Co-Founder Xume BVBA, an IT Consulting Company

-          01/03/2005-now:
Owner Prorabel BVBA, a Management Company

-          01/04/2010-now: Solution Architect at “De Post” / ”bpost” as Xume Consultant
§  Assisting Enterprise Architecture with defining guidelines to design and document solutions for existing and new projects on conceptual and logical level
§  Research and design of a solution, and bootstrap implementation for Availability and Performance Monitoring (APM) of Java, .Net and commercial of-the-shelf applications (>60 applications in total). Solution will be extended for Business Activity Monitoring (BAM)
§  Research and design of a solution for the implementation of Service Oriented Architecture and Enterprise Application Integration

-          01/10/2009-31/03/2010: Enterprise Solution Architect at “Thomas Cook” as Xume Consultant
§  Formal follow-up of work already done as Software Architect (see below)
§  Assisting the Enterprise Architect with defining standards and guidelines to design and document solutions for new projects on conceptual and logical level
§  Started the design and documentation of 3 new individual solutions for CRM suite, TravelBox (similar to Bongo) and new ThomasCook.be website and the integration with legacy systems
§  Formalized solution patterns already in place through previous work (see below) and set up a solution portfolio of reusable applications.

Based on Gartner documents about “Solution Architecture” and EA course of Carnegie Mellon University

-          01/01/2007-31/09/2009:Software Architect/Technical Team Lead (Scrum Master) at “Thomas Cook” as Xume Consultant
§  Set up a uniform architecture and development environment for all legacy and new projects (>50).
§  Writing and implementing architecture guidelines and standards.
§  Coaching the refactoring of all legacy projects to be able to build with Maven 2 and a local Maven 2 repository (Proximity/Nexus) was set up. All projects are kept in a Subversion repository and continuous integration builds (including testing and code coverage) are done with Hudson.
§  Introduced new, more modern and de-facto frameworks like Spring, Hibernate, Mule,... for as well as web development as service integration (ESB) and wrote the corresponding architecture and coding guidelines.
§  Lead the team with the internal team lead through several projects, based on Scrum principle and coached the day to day development.
§  Recruited new people and helped the team grow from 3 to 30 people.
§  Advised the IT manager with the purchase of a new server parc and the implementation of test, staging and production environments, as well as with the choices of which courses developers and system administrators should follow to be ready for the future. Follow up of the implementation and roll-out for the new SSO solution with Bull Evidian.
§  Advised CIO Belgium with the purchase of new software platforms (portal) and with the choice of a co-sourcing partner for future development of large projects.
§  President of the Technical Advisory Board (TAB) in which decisions concerning future IT directions/opportunities were set.

Technology: Hudson, Maven, Cobertura, LifeRay, Spring, Hibernate, Mule, Junit, Jira, Oracle, DB2, MQSeries,  ... (see gathered knowledge)

Now come the "extras", but nevertheless also important. Depending on your domain, the extras can be different, but there should be at least a section with your language skills and a section with your computer skills (if you are an IT-person, it should contain an overview of libraries, frameworks, tools, products, etc... you have experience with). Hobbies could be interesting, but it is not a must.

Although in the modern age of social networks like LinkedIn, where people can get recommendations, references are not a must, but can be added as a last section in the CV.

Layout & Style

Now that the content of the CV is covered, layouting should be considered. It is very important to make your CV easy on the eyes:
  • Emphasize the section headers by using a bigger font in boldface for example 
  • Use indentations to group information that is part of a higher level
  • Use italics, underline or boldface to emphasize entries or important parts of a text
  • Use tables to arrange similar information, such as language skills
  • Avoid prose, use short phrases instead
  • Be concise and to the point. 
As a side note: there is a EU initiative to make documents such as a curriculum vitae more transparant within Europe http://europass.cedefop.europa.eu/. It is also possible here to generate your CV based on your input.

Update 28/12: There is a follow up post called "Surviving a job interview"