What exactly is a Grandes Ecole and what does it mean?

The French University system has always seemed to be a bit of a mystery to me. Many of their Universities have roman numerals like II or III after the city’s name, looking at people’s CVs lots of people don’t seem to have even attended a university as part of their higher education in the first place, and it’s never been clear what the best universities for Computer Science in France are. So having recently secured a French developer a new position I asked him if he could help.

Those guys who went to “Big School” and not a “University” – they’re considered the very best

So I quickly found out that the developers who attended what looks like “big school” (where you wear your “big boy clothes”???) have actually attended the very, very best institutes for higher education that France has to offer, these institutions are so good, so well regarded, that they seem to be like “winning the lottery of life” or in Mafioso terms “becoming a made man”, they are the prestigious Grandes Ecoles.

Prestigious

The most important thing to know about the Grandes Ecoles is that it is highly prestigious to attend one. In fact it’s not just prestigious, it is Elite. And its not just a prestigiously elite system, it’s actually an Elitist system, but more about that in a moment…

The reason that the Grandes Ecoles are so prestigious that the whole fabric of French employment society is saturated, dominated even, by their presence. Established in the late 17th and 18th Centuries to educate and to give practical training to country’s brightest students in engineering and the sciences, these schools were so successful in generating the minds that the country needed to the lead their industries, they did not just survive Napoleon and the French Revolution, Bonaparte greatly expanded and formally christened the system “Les Grandes Ecoles”.

 

Elite

The developers who attended a Grandes Ecole will be part of the top 5% of academic students in their year, they will be the very brightest students their generation has to offer. Each Grandes Ecole is highly selective and the entry bar is made very high.

Elitist

Today, in the right business or social circles in France, it is a common question to ask when first meeting someone what “school” they attended. In France you need to have attended a Grandes Ecole in order to get into the higher echelons of management and company leadership in almost any company, and you will certainly need to have studied Computer Science, or mathematics or something similarly related, to become a developer in the most demanding software engineering teams in the Investment Banks or a Quantitative Analyst.

Getting in

Actually getting accepted to attend is very difficult, but naturally many kids (or at least their parents) are very keen to attend. The entrance examination is called the “Concours”, but certain Grandes Ecoles will only take the best of the best (see below) and others will only consider an applicant on the strength of their own exam.

Although some students go enter a Grandes Ecole straight after the end of High School, many students will attend a preparation course, called “Classe Preparatoire aux Grandes Ecoles” which consists of a 2 year course training the student in the way of thinking and approaching challenges they will need to successfully complete this form of higher education.

Interestingly the prevailing attitude seems to be that if you are smart enough to get in, then you will be smart enough to be able to complete the course, therefore there is little focus on final grades or overall performance as in with a British or Western University system.

One thing to note is that all this means that you have to be quite a competitive person to get in, which some people believe means that the Grandes Ecoles do not attract all of the brightest young technologists in France.

 

Once you’re in

Despite the lack of a big “final grade” that will represent your performance whilst studying, the course is “intense”. Courses are academically tough, they can be up to 6 years, and some are very industry focussed, making them very relevant to careers in programming; most courses however last for 3 years (some only 2 years).

English is widely taught at the Grandes Ecoles and in my experience most Computer Science students leave with a strong academic knowledge of the English language but can lack confidence with their verbal communication skills.

And once you’re in, you’re in

As you can imagine graduates from these institutions tend to be high sought after in France, and about 50% of graduates actually secure their first job before they complete the course.

 

Some Grandes Ecoles pay their students to attend!

That’s right, because attending some Grandes Ecole is considered a form of Public Service (such as Polytechnique and ENS) these institutions pay their students to attend (though they must take some form of state employment after their studies have been completed)! Otherwise its a VERY cheap form of Higher Education, most Grandes Ecoles have very limited tuition fees – just a few hundred Euros each year.

National Rankings

So without a final grade, there is actually no real national ranking system showing which of the Grandes Ecoles / Universities are the best. Instead it seems to be fair to say that France has a 2-tier system, the highly prestigious Grandes Ecoles and the rest, the Universities.

Interestingly, within the system of Grandes Ecole Computer Science is still regarded as a “new” subject and therefore not as pure as maths or physics, making it less highly regarded and less sought after as a subject to study by the very brightest students.

The best Grandes Ecoles for Developers

From my research here the best Grandes Ecoles for Computer Science:

  • CentraleSupélec
  • ENS (École Normale Supérieure)
  • Ecole Polytechnique
  • INSA
  • ParisTech (which has the largest student population of roughly 6,000 and includes “Arts et Métiers ParisTech”)
  • EPITA (“Graduate School of Computer Science and Advanced Technologies”)
  • ECE (Ecole centrale d’électronique)

 

Criticisms

The biggest criticism is that the system of Grandes Ecoles is an Elitist one. Its critics (found amongst both those who attended and those who didn’t) say:

  • the system tends to only draw students from the sort of middle class families who push their children to compete during their education
  • that France places too much weight on attendance (or non-attendance) and that this dominance over French industry means that it divides society
  • that the highly competitive nature of the whole system means that the system actually puts off some students and therefore does not train all of the very brightest French students
  • it’s an unfair system because the French State spends more per head on those students attending a Grandes Ecole than any other form of higher education, who of course comprise of the majority of kids attending university. Leaving the parallel French “University system” comparatively under-resourced, overcrowded and less well regarded by employers
  • it’s an “old fashioned” institution, that does not teach how to programming is actually practised today, and that the system’s focus on “Computer Science”, rather “Software Engineering” means that graduates can lack an ability to write a fully functioning application to today’s industry standard. The idea that a Computer Science graduate can write an algorithm but can’t “code”.

Xavier Niel and his “42” School

Finally no article on the French Higher Education system of today would be complete without a reference to a Parisian school for Computer Science that was set up in 2014 by the French Billionaire Xavier Niel called “42”. Its free, it has no entrance requirement other than entrants must complete a simple online logic test, continued attendance is assessed on a month by month basis, the education consists of a gruelling 24/7 work regime where students must learn to code or drop-out, team work is the key to success and executives from places like Google, Microsoft, Facebook and Twitter all seem to think its pretty good. It’s a totally new way of looking at learning to code and was founded on a philosophy of “The tougher you make it, the better they do”. Here’s a Wired article all about it.

Advertisement

My Advice on How To Do Well At A Pair Programming Interview

I find that Pair Programming something that many developers still have little experience of, so when it comes to a “Pair Programming” session in an interview they are either unnecessarily nervous, or naively confident. Now don’t get me wrong, a little naive confidence can often be a good thing, but sometimes it does pay to be prepared.

Here some advice that I’ve collected over the years which seems to go down well – keen to hear anyone else’s thoughts in the comments! But in my experience if you follow these tips, you’ll have every reason to be confident an interview:

WHAT IS PAIR PROGRAMMING?

Whether have years of experience with pair programming OR you have never programmed before, its important to know that Pair Programming is basically just “social programming”. Something you do every day but sitting next to a fellow coder who is watching your screen and inputing ideas, and with a technical discussion involved.

AND A PAIR PROGRAMMING INTERVIEW?

Normally there is a “Pilot” who is doing the actual coding and the “Co-Pilot” who is sitting next to the Pilot and working with them on the logic and “two heads is better than one”. Typically in a Pair Programming interview you’ll be the Pilot and you’ll be given one or more exercises and asked to complete them.

TDD

As a general rule, it is a VERY good idea to follow Test Driven Development and to write your solution to the given exercises using Unit tests. This is not always “critical critical” but over the years I have discovered that this is a classic pitfall that many people forget to start with in the “heat of the moment”. Why is TDD important, basically because its another tenant of Agile and XP and if a company wants you to do a Pair Programming session as part of an interview, its a fair guess that they also follow the Agile methodology.

Be OO and follow Best Practice

Remember this is a technical round. So obviously make sure your programming is as best as it can be. So within the confines of the task at hand keep to best practice, follow OO programming principles and set out to impress without over-engineering a solution!

Try to Relax

This is what you do every day. The guy sitting next to you wants you to succeed (really they do, its awkward sitting next to someone who is having their own internalised car crash, so they’ll be keen to support you to get the best out of you as a candidate), so try to relax and be yourself.

Be Friendly

I’m sure you can agree that two people sitting in silence in front of a computer could be a bit weird. So, take the initiative and be friendly from the start. Chit chat with them as you walk over to the computer – think about inane stuff you can talk about that will help you two start to feel comfortable with each other. Stuff like football, the latest Java conference, the weather, cr@p that will break the ice before you sit down.

Keep Talking

The other part to making sure this paired programming session goes well is to keep talking. So try to describe your thought processes as you go, and explain what you are doing as you do it.

If you need time to code

A great little tip is that if you feel you need some time to get your head down and focus on some code is to ask the person sitting next to you something that will naturally need a long winded answer. Something like “Tell me about life at ABC Ltd” or “So what’s your background then?”, that way they’ll start talking and you can focus!

Don’t Be Afraid of Silences

BUT don’t be afraid of silences when they come. Some silences will be natural so don’t let that worry you.

 

My top 10 predictions for Software Development in 2017

mjs-future-predictions-2017

These are my predictions, based on nothing more than my observations over the year so far.

 

  1. Machine learning is going to be BIG – demand for anyone with commercial experience or a PHD in Machine Learning / Artificial Intelligence will be massive. Watch out of Neural Networks and Bayesian Optimisation

 

  1. Microservices will continue to be adopted, driving up demand for the skills like SOA and RESTful Webservices, and driving down contractor rates

 

  1. React will overtake Angular the Front End space

 

  1. Enter Kotlin : a new Jetbrains language, based on the JVM there are already a handful of commercial projects in flight, but I think this new language will gain more traction and recognition this year

 

  1. Growth of Web-based mobile apps – and therefore less demand for specific iOS and Android developers

 

  1. PAAS – I’ve seen a lot of service-based companies building Platforms As A Service encouraging their buyers to cut down their own internal infrastructure teams, and I think this trend will only continue

 

  1. OpenStack and DevOps As A Service projects – we’ll see the technologists who have learnt to use these tools this year hit the market in 2017

 

  1. NancyFX (an “OpenSource” Microsoft lightweight development framework) will become an in demand skill in the C# development world

 

  1. Software Development Engineers In Test become increasingly in demand – we will continue to witness the steady decline of manual testing skills as automation and agile methodologies continue top penetrate the Software Test Lifecycle

 

  1. Enter the Age of “X is Code” – Infrastructure As Code, Networking As Code, etc. It will become increasingly harder for any hands on technologists who are non-coders to compete for the top positions

 

Employing Autistic People In Technology

Yesterday I met a learning psychologist to discuss how people who are on the Autism and Aspergers spectrum can be integrated into the technology workforce (Aspergers is a form or type of Autism) and I thought it would be good to share my notes and thoughts following my fascinating meeting with her.

DUSTIN HOFFMAN MAKES A FORMAL INTRODUCTION

215px-rain_man_poster1

I think its fair to say that gainfully employing autistic people is something that I think has been at the back of the Western World’s mind ever since “Rain Man” came out, and I certainly don’t think it’s unusual for someone to have watched that film and wondered to themselves how that character’s strengths could be implemented in their industry!

So I was a little bit surprised when one of the first things that she soon told me is that the “Raymond Babbit” character in the film (Dustin Hoffman) is an autistic person who also has “savant abilities” (an almost super human ability to do maths and remember things) and that having these abilities are very far from being a typical trait of autism!

 

MY FIRST NON-NEUROTYPICAL CANDIDATE

But recruiting autistic people in technology is certainly been something that has been on my mind since the beginning of my career. That’s because I remember very early on I found a developer’s CV who had a PhD in Computer Science and had mentioned that he had Aspergers at the bottom of his CV. I called him up, partly out of curiosity, and to my surprise he seemed to be nothing like Dustin Hoffman’s character, there was something about his communication style that was a little “askew”, but there was nothing inhibiting his ability to express himself in verbal communication. We discussed some positions I had at the time and I went ahead and submitted him for them. Disappointingly we got absolutely no traction in the market and I when I called him  back a couple of weeks later it turned out he had decided to go back into academia.

 

My feeling was/is that his story is not uncommon. Whenever the industry has a drive to hire “diversity” candidates, we almost always see the same thing. Lots of enthusiasm and fanfare at the top, but at the hiring manager level things tend to peter out. I’m not so sure this is an active resistance but probably something more passive and risk-adverse.

 

THE TIMES THEY ARE A CHANGIN’

sapmicrosoft

But there are lots of reasons to think that times might indeed be changing. SAP began a pilot scheme to hire autistic people in 2013 and Microsoft began one in February 2015 (non-Neurotypical), and a year later they opened up 10 new positions across the UK. By 2015 SAP reported they had hired 66 people across the world and only 2 had left, which is an excellent attrition rate given that its not unusual for autistic people to lose their job within the first year.

 

AUTISTIC HIRES HAVE BOTH MET AND EXCEEDED EXPECTATIONS

Both have teamed up with Specialisterne, a specialist non-Neurotypical recruitment company to help achieve this, and both report that their hires have either met or exceeded expectations. Both companies have been keen to hold up their successes to show the world what can be done with an open mind and some specialist training.

specialisterne-page-banner

AUTISTISM IN TECHNOLOGY

SAP have said that autistic people are well suited to being “software testers, programmers, and data-quality-assurance specialists” and given that autistic people tend to be either at average or above average intelligence, that makes sense to me!

 

So hopefully, an increased consciousness across the IT sector that autistic people can bring an awful lot to a company’s development efforts, will bring more and more people into the technology workplace.

 

NOTES ON EMPLOYING AUTISTIC PEOPLE

So it was with these ideas bubbling at the back of mind that I met a learning psychologist to find out more about what employers should think about when considering hiring technologists with these conditions. These are my notes, they’re not a definitive guide, if you want to learn more about hiring autistic people I’d suggest that the Papworth Trust and the National Autistic Society are both good places to start:

 

  • STRUCTURE AND ROUTINE Autistic people are most comfortable being able to follow the same routine or set of routines day in, day out.
  • NOT FLEXIBLE And they won’t respond well if your business demands mean that work will chop and change frequently.
  • JOBS WITH A START AND AN END Autistic people will thrive in an environment where challenges have a clear “start to finish” nature.
  • VERY LOYAL Autistic people can be very loyal employees, often if they find a place they like, they won’t move. That doesn’t mean if you manage to hire someone you’ve got them for life, it’s still a quid pro quo agreement, but in general they’ll stick around.
  • BREAKS Autistic people are often reluctant to take breaks because they don’t feel comfortable in the typical work-based socialising that is involved. As an employer you’ll still have to ensure that your hires take breaks though, so work with them to find a solution.
  • ENGAGING WORK Autistic people tend to be at average or above average intelligence, so it stands to reason that successfully employing an autistic person will require giving them work that they consider challenging and engaging, an art that is undoubtedly one of the most difficult challenges to surmount in this arena.
  • That said if you’re successful on this point, Autistic people don’t tend to expect promotions in the same way that Neurotypical people do, they’ll be unlikely to be interested in management or work that involves close technical collaboration.
  • EXCELL AT DILIGENCE The fact that they don’t get bored by very repetitive tasks means that they are well suited to software testing and quality assurance roles where churning out work that requires a high degree of attention to detail.
  • AVOID TASKS WHICH REQUIRE QUALITATIVE JUDGEMENTS As a generalisation Autistic people don’t tend to thrive with tasks that require making opinion calls, or qualitative judgements. Their thinking is much more binary.
  • TAILOR INSTRUCTIONS AND COMMUNICATION Autistic people are very literal, and dislike and can get confused by common language idioms and “business speak” (the nuances of being told that someone found a task very “challenging” in a workplace context might well be completely lost on an autistic person).
  • SOME HAVE A LANGUAGE DISORDER Some Autistic people actually have a language disorder as well as being on the autism spectrum which will add an extra layer of complexity to an employment environment. Although it should be noted that the relationship between poor social skills, language and autism is a massive area of ongoing scientific research.
  • VERY HONEST Given their binary nature many employers find their Autistic hires “what you see is what you get” helpful and refreshing. Without any real concept of “business speak” someone who speaks their mind, often with a seemingly ruthless honesty, and no “hidden agenda” can be a real asset to a team.
  • SOCIAL SKILLS PROGRESSIVELY IMPROVE Many Austic people’s social skills gradually improve over the years with increased experience at socialising.
  • AVERSION TO FLUORESCENT LIGHTS Employers looking to hire autistic people should be aware that it’s common for people on this spectrum to have an aversion to very bright or fluorescent lighting, so you might need to check out the ambience of your empty work station!
  • CASE BY CASE BASIS!! Finally it’s well worth bearing in mind that each Autistic person will have this condition to a greater or lesser extent.

 

+++ This is what I learnt from my meeting and having since read into what’s happening in the tech industry in general. If you read this and you think there’s something wrong, or a misrepresentation please email me martin@oxenburypartners.com so I can make any corrections that are needed +++

How to be a Cowboy Developer 101

Cowboy Developers

These are the simple steps you’ll want to follow if you want to hold a company ransom through their own technology!

1/ Indentify a Host Company and acquire a position as either the only Developer in the company OR find a position where you are the only Developer on a project and the company oversight doesn’t understand technology and can be easily bamboozled.

2/ Develop a system that is so fiendishly complicated that only you can support it.

3/ Position yourself as the guardian of your host company’s technical future and demonstrate your indispensability by sabotaging the recruitment process of new developers and undermine any attempts from colleagues to actually understand how your program works.

4/ Extract your financial price from your Host Company! This could be a “job for life” or an outrageous day rate. And remember! you have them by the balls, SQUEEZE!

Tips for Success:

  • Try writing the program in one language but only write it using the conventions of another, older more low level language
  • Choose a completely outdated or obscure programming language and software suite (explaining that its the best solution for the Host Company’s needs)
  • Over-engineer the architecture of the core business functionality into such an illogical set-up, that even if they do hire new people, no-one will want touch to it. They can easily build new services on top, but touching the core functionality will be too “dangerous”
  • Hold your nerve!

Where technology companies are based in the UK

A number of my clients have recently been telling me about new offices they have got or recently opened in other parts of the country. Having up until very recently lived in London (and never dreamed I’d ever live anywhere else), now that I have moved out, I was quite interested to see where the other tech hubs in the UK were, using techbritain.com my results were quite surprising:

London: 2,467

Manchester: 212

Reading: 205

Birmingham: 183

Edinburgh : 118

Newcastle: 106

Cambridge: 105

Brighton: 90

Cardiff: 80

Sheffield: 64

Leeds: 57

Oxford: 53

Bristol: 33

Southampton: 24

UK tech company distribution

How to pronounce the name “Maciej”

That’s right, it’s the name on everybody’s lips right now “Maciej”. But how should it be pronounced?? I’ve spent the last few years oscillating between either “Mat-edge” or “Ma-see-edge”, however I went out for beers the other night with a charming holder of this stalwart of Slavic names, “Maceij” and I was delighted when he put me right once and for all.

MATCH – EY

So hopefully, with a bit of practice I’ll never get it wrong again 🙂

CV Driven Development (CDD)

CV Driven Development (CDD) is a software development process which prioritises design and development choices that will enhance the implementing programmer’s Curriculum Vitae over other potential solutions, regardless of how rational that choice is.
The origins of CDD are lost in time but it is widely believed to be a common practice throughout the commercial programming world, dating back to the very earliest days of professional software development.
CDD is most commonly pursued as an informal, grass-roots lead practice, however there have been a number of well documented episodes when in times of economic or “bonus-hardship”, CDD has been management lead as part of a wider “staff retention” initiative.
See also: Mortgage Driven Development
CDD - CV driven development

If Simon Cowell followed CV Driven Development

Early 2015 technology market update

A new client of mine recently asked me to provide an update on what’s happening in the development and technology market right now, so I thought I would share it here. Comments in the comments please:

The introduction of the HTML5 standard has precipitated the rise of the OO Javascript, Javascript frameworks (Angular, Ember) and full stack Javascript (NodeJS, Empress, Angular) developer skills. These skillsets are now commonplace in the contracting world, although developers with greater than 3 years solid experience in pure Javascript development is rare as the language has not been used in its present sophisticated form for longer than this time.  The Angular, Ember and NodeJS frameworks are not older than 3-4 years. Prior to this Javascript was almost exclusively used as a “toy language”, one to be used in conjunction with an OO language like Java, C# or PHP on the front end.  Consequently there is a large skill shortage in this area, so we have seen all the usual signs of a hot market – other developers hurriedly converting to this language, most of the supply is contract based, developers coming from overseas to fill the skill gap, permanent salaries are outstripping like for like with the standard OO language developers. Many of the enterprise scale companies have attempted to solve this supply problem by creating their own Javascript expertise through graduate schemes.

The Ruby, Python and Javascript languages are the development languages of choice for start-ups.

Some banking bonuses have recovered however most of the top investment banks appear to be planning to pay a low or zero bonus again this year.

Big data technologies continue to revamp the Business Intelligence industry with Hadoop, Mark Logic, MongoDB and AWS  leading the way. Handling data in general is a big  trend in the market and therefore we also seeing a new cadre of developers who are interesting in specialising in C++.

The internet security market continues to grow as more and more awareness of security vulnerabilities are exposed. We see this is a large scale trend in the technology recruitment industry.

Scala and other functional languages are today, less “the next thing” and are now far more mainstream. It appears that the hype over the past 4 years has not materialised into Scala pushing any of the major development languages (Java, C#, C++, PHP,  Python Ruby, C, Objective-C) off of the top most used positions.

We now see web specific languages and frameworks far more frequently on  developer CVs than previously, reflecting the general buoyancy of internet-based eCommerce business, e.g, Ruby on Rails (RoR), Grails, Django, and C# MVC.

Mention of the Agile methodology appears to have become compulsory citation for developer CVs.

DevOps continues to be a hot market with supply generally not meeting demand. Much of the market is therefore contract based or the skillbase is more recently acquired skills. DevOps generally refers to a deployment manager who can manage the deployment of  software applications onto cloud-based servers. The programming / configuration languages of Puppet and Chef are therefore hot technologies right now.

Developers based in the UK are expected to have an ever increasing amount of contact with the business that their applications support, leading to an ever increasing demand for developers with good communication skills.

In the last 6 months to a year, we began to see greenfield projects begun in the finance sector that were designed to generate revenue rather than satisfy regulatory requirements. This was in total juxtaposition to the proceeding 4 years.

In the past 2 years we’ve also seen an increased appetite for developers to consider working for a software vendor when considered against working “inhouse” for a large corporation.

London continues to attract large numbers of developers who are not based in the UK. Many of the European developers now being attracted are Spanish, Portuguese, Italian or Greek. Typically candidates from the Southern Mediterranean have strong national accents and poorly suited to analyst or client facing roles. The high cost of living coupled with improved salaries means immigration from Poland, Czech Republic and the Baltic States has dramatically slowed down. We are seeing some developers come from Romania and Hungary following the recent lifting of immigration restrictions, however the established nature of the IT markets in Bucharest and Budapest and their relatively decent standard of living means that the bright lights of London are not that attractive.

Finally we believe we are at the very earliest days of what will be a major trend over the next 5 years which is the “internet of things”. This is the industry devoted to connecting non-traditional computer platforms via the internet (such as your car GPS system to your home’s central heating system and making your house warm up before you arrive home in the evening). At the moment British Gas’s Hive product is the highest profile operator in this exciting new industry.

 

This graph showing the popularity of each programming language in the market is very interesting: https://image-store.slidesharecdn.com/9495a4a0-2db2-4245-b712-0e313264e54b-original.png

Idiot’s guide to writing a CV

– FOR TECHIES ONLY –

Idiot's guide to writing a CV - example

Getting writer’s block sprucing up your CV? Try this fool proof technique:

FIRST LINE:

State the name of the company and what dates (MM/YYYY) you were from and until.

SECOND LINE:

State your job title.

THIRD LINE:

Say what challenge your team was tasked to solve, in one sentence.

FORTH LINE:

Say what the solution to that challenge was, in one sentence.

FIFTH LINE:

Say how that solution was implemented and what technologies were used to implement that solution.

SIXTH LINE (if appropriate):

Explain how you took ownership or responsibility for anything.

REPEAT FOR EACH JOB YOU HAVE HAD / REPEAT FOR EACH PROJECT YOU WERE A PART OF.