Where are all the skilled developers?

I've found the best objective indicator of seniority to be the size of the previous salary/package and a sane work history. The work history captures whether or not the candidate artificially bumped their salary via job hopping, or whether or not some companies actually consistently gave raises to the candidate (I.e. Their employer thought that they were good). Obviously, some people fall through the cracks, but short of talented scam artists or incredibly crappy employers, this usuallyhelps to differentiate between a top notch younger candidate capable of dealing with a higher level of responsibility, or an older developer who may have been dragging their feet.

Beyond that there is of course the (locally) subjective interview which generally requires a much better (than new graduate) grasp on how to apply theory, and a few careful "how smart is this person" questions, as well as a discussion of past work, to see how well the candidate understood their job.

The interesting bit is that we generally never look at years of experience to determine if the person is a standard dev, senior dev or "architect" level.
 
Last edited:
So I may be talking completely out of my ass here but this has been my experience:

Years experience from 90% of SA companies mean about as much as a stain on the driveway. The fact is most developers in SA lack knowledge of CS principles and they simply cannot work on anything but basic applications.

As an example, the most common mistake I found with experienced SA "senior" developers and "architects" was their complete and utter lack of comprehension of what REALLY goes on with multi threaded applications. Typically you would explain it to them and still, nothing, no comprehension. The basics were never there and until they know them, it is pointless to hire them for anything but the run of the mill produced in SA.

Salary means little to nothing in my opinion. Companies never pay you what you are worth, they pay you what you'll work for. This is true for every company I have worked for.

I went from huge SA company to one of the 10 largest in SA, then got lucky and joined a silicon valley giant and now finally to another silicon valley giant.

The first silicon valley giant I was lucky to get into. After that I got contacted by the likes of every single "dream" company you can think of Google, Amazon, Microsoft, eBay, etc.

Google recruiters for example, almost exclusively contact people whom A) you work for another huge silicon valley giant, specifically those mentioned above or B) you work on a prominent OSS project as one of the main developers.

Less than 1% make it through the interviews of the companies I mentioned above. So when you actually have worked for 1 year or more for one of those companies, you are in a kind of elite club where you will be contacted by their competitors all the time to see if you want to switch. You won't understand until you've worked there but they really do attract a lot of incredible talent and duds are very rare from those companies.

I would even advice people to take a "title" and "salary" hit and work for one of those companies a few years.

Those companies do have titles but with most you won't know someone's title without being told or asking discreetly. Moving up a level is based on recommendations by your peers and review by experienced people from different parts of the company. This is based on what I've heard from co-workers while they worked at some of the other silicon valley giants and what I've experienced in the two I've worked at.

The effect of the above is that people without the right kind of skills wouldn't be able to make progress although I never did encounter such people. Some people came in and lacked knowledge (but had the intellect and potential). Within a year they would wipe the floor with most of the seniors and architects I've worked with before.

Most of these companies also have a policy that you can only hire someone if they are better than the average dev in your own team.

Maybe some of you will find this useful when hiring and/or looking for employment.
 
As an example, the most common mistake I found with experienced SA "senior" developers and "architects" was their complete and utter lack of comprehension of what REALLY goes on with multi threaded applications. Typically you would explain it to them and still, nothing, no comprehension. The basics were never there and until they know them, it is pointless to hire them for anything but the run of the mill produced in SA.

What type of development do you do if I may ask?

What other skills do you think SA developers lack or do not get exposed to enough?
 
What type of development do you do if I may ask?
Devops, plenty of Java, Ruby, C++, mostly Java.

Plenty of logging into servers for manual intervention and plenty of scripting.

What other skills do you think SA developers lack or do not get exposed to enough?
No I don't think there is anything wrong with SA developers. There are plenty of duds in the US also for example.

There is a lot of talent and skills in SA, they just don't end up with companies that challenge them enough. Hence why I would recommend trying to join one of those companies at least for a few years just to see what you are capable of and for experience.

There are companies locally that can offer that, but they are few and far between and select few get to work on the juicy bits that are really challenging.

When you work for example at Google you'll likely end up writing software that will run on the "fleet" (servers). Large scale, high load applications is what is about.

Something most SA devs don't get exposure to. Even if they did write it as if it were going to receive high load, it never will, so you have no idea if what you did is any good. Hence my highlighting the lack in many cases of the inability to write quality large scale distributed applications.
 
Last edited:
Devops, plenty of Java, Ruby, C++, mostly Java.

Plenty of logging into servers for manual intervention and plenty of scripting.


No I don't think there is anything wrong with SA developers. There are plenty of duds in the US also for example.

There is a lot of talent and skills in SA, they just don't end up with companies that challenge them enough. Hence why I would recommend trying to join one of those companies at least for a few years just to see what you are capable of and for experience.

There are companies locally that can offer that, but they are few and far between and select few get to work on the juicy bits that are really challenging.

When you work for example at Google you'll likely end up writing software that will run on the "fleet" (servers). Large scale, high load applications is what is about.

Something most SA devs don't get exposure to. Even if they did write it as if it were going to receive high load, it never will, so you have no idea if what you did is any good. Hence my highlighting the lack in many cases of the inability to write quality large scale distributed applications.

Cool. I agree with the exposure statement. And we do have some cleverer people here. :)
 
This thread keeps on getting more interesting the longer it stays alive. :)

With regards to interviews and tests, I've realized that the best candidates for a position are the ones willing to adapt to your environment and with an eagerness to learn. These candidates always get on board immediately and are fluent in what they need to do within a couple of weeks. My best developer came in thinking one of our internal project code-names was an actual programming language and now he's the lead on 2 projects. It just goes to show that fancy interview questions and intricate technical tests aren't always a good judge of a developer's ability to contribute to a company or project...
 
As an example, the most common mistake I found with experienced SA "senior" developers and "architects" was their complete and utter lack of comprehension of what REALLY goes on with multi threaded applications. Typically you would explain it to them and still, nothing, no comprehension. The basics were never there and until they know them, it is pointless to hire them for anything but the run of the mill produced in SA.

I agree with this, but in terms of justification, a big factor is that the senior devs and architects in SA, are generally so called, because of their accumulated business logic knowledge, and experience in applying technology to solve these often complex business problems - deep technical prowess is often secondary, and only needs to be a primary concern when the company's primary industry is technology related (which is scarce in SA, but a lot more common in Silicon Valley).

Salary means little to nothing in my opinion. Companies never pay you what you are worth, they pay you what you'll work for. This is true for every company I have worked for.

No, you have it backwards: you work for what the market is willing to pay for your skill set. If all companies never pay what your skills are worth, then how do you define "your worth"? It works off a standard price discovery mechanic - if you think that you are underpaid below your tolerance, you should try finding a better job - if you can't find one you should adjust your expectations, if you can, the problem resolves itself.

Personally, I believe that I am paid at market rate, and this is significantly above the minimum I would work for - most of the developers that I know in the US are thankfully in a similar position.

Those companies do have titles but with most you won't know someone's title without being told or asking discreetly.

That's what linkedin is for. :)

Moving up a level is based on recommendations by your peers and review by experienced people from different parts of the company. This is based on what I've heard from co-workers while they worked at some of the other silicon valley giants and what I've experienced in the two I've worked at.

The effect of the above is that people without the right kind of skills wouldn't be able to make progress

This is essentially ubiquitous in silicon valley. This also goes towards my point on salary - pay is always tied to these levels with a little wiggle room of +-/20% (with central tendency) around the mean for the level. In order to get to a large salary, the employee needs to go through many such reviews, each level being significantly stricter and more exclusive than the one before it. By choosing a high salary employee (especially from a well know silicon valley company), you are essentially getting someone with skills that have been ratified by years of positive reviews at such a company. Occaisionally, you will get someone who isn't particularly skilled, but knows how to work the system, but this is far more the exception than the rule - hopefully a good interviewer will weed them out.

Maybe some of you will find this useful when hiring and/or looking for employment.

I expect that this is all probably quite juicy info for those who haven't explored other continents yet.
 
Last edited:
Yup. Believe it or not - social skills can be just as important as coding skills or any other skills. If you come across as an arrogant Mr. Know-it-all, chances are, you're going to rub a lot of people the wrong way,

I have little social skills because i spent all my childhood playing games on comodore 64, then programming on that system lol
I blame my awesome coding skills on my lack of social skills!
 
There is a lot of talent and skills in SA, they just don't end up with companies that challenge them enough. Hence why I would recommend trying to join one of those companies at least for a few years just to see what you are capable of and for experience.

There are companies locally that can offer that, but they are few and far between and select few get to work on the juicy bits that are really challenging.

My situation currently.Im comfortable here though...
 
This thread keeps on getting more interesting the longer it stays alive. :)

With regards to interviews and tests, I've realized that the best candidates for a position are the ones willing to adapt to your environment and with an eagerness to learn. These candidates always get on board immediately and are fluent in what they need to do within a couple of weeks. My best developer came in thinking one of our internal project code-names was an actual programming language and now he's the lead on 2 projects. It just goes to show that fancy interview questions and intricate technical tests aren't always a good judge of a developer's ability to contribute to a company or project...

Geez I hate these tests :mad:
 
I am junior developer with a year and a half worth of experience. I will be honest and admit not the greatest developer around. But for the life of me I cannot understand why most companies are so reluctant to provide training or pair-programming. At least some mentoring would be nice to have. In essence I am saying that you may find a recent graduate who is eager to learn and has potential but is being let down and not given a chance to shine. Shoving junior to doing html and css for an entire year is not going to help. And being paid peanuts to do it makes more unbearable hence they never stick around.
 
I am junior developer with a year and a half worth of experience. I will be honest and admit not the greatest developer around. But for the life of me I cannot understand why most companies are so reluctant to provide training or pair-programming. At least some mentoring would be nice to have. In essence I am saying that you may find a recent graduate who is eager to learn and has potential but is being let down and not given a chance to shine. Shoving junior to doing html and css for an entire year is not going to help. And being paid peanuts to do it makes more unbearable hence they never stick around.

Pair programming is an interesting topic. Personally I don't think it is a great concept at all (dons flame suit). One of two things happen: you either pair two "weak" personalities developers and the work rate drops even more or your pair a strong with a week and frustrate the crap out of the stronger guy. And a frustrated developer is somebody looking for greener pastures. (OK, I generalise but you need the right personalities as mentors).

Companies (and senior devs) are very guilty in not providing thorough training to juniors. Nobody wants to be slowed down by a junior hence the whole "sink or swim" thing. It is unfair towards you guys and we should make an effort to put procedures/team structures in place to aid and grow you.

If you are stuck in html and css, ask (no, pest) your superiors to give you more challenging work and then do whatever you need to do to get it done (even if it means working weekends). If they ignore your requests it might be time to look for somebody who will.

As for the crap pay - deal with it. You'll earn more soon enough.

NOTE: I know that Driven Software is big on pair programming, SOLID and all the other acronyms, so if this is what you are looking for maybe send them your CV. They also do a lot of "training sessions" called code retreats all over RSA. I can put you in contact with one of the organisers if you want to attend one.
 
I am junior developer with a year and a half worth of experience. I will be honest and admit not the greatest developer around. But for the life of me I cannot understand why most companies are so reluctant to provide training or pair-programming. At least some mentoring would be nice to have. In essence I am saying that you may find a recent graduate who is eager to learn and has potential but is being let down and not given a chance to shine. Shoving junior to doing html and css for an entire year is not going to help. And being paid peanuts to do it makes more unbearable hence they never stick around.

Then your looking in the wrong places ;)
 
+1 for crappy pay, something I can live with. Part that frustrates me most is that the manager is just either too busy to here you out or just does not give a damn. I barely know what is going on with the back-end system despite being at the company for 9 months. It feels as if being a junior is a crime more often than not, more so in a small dev team.
 
I am junior developer with a year and a half worth of experience. I will be honest and admit not the greatest developer around. But for the life of me I cannot understand why most companies are so reluctant to provide training or pair-programming. At least some mentoring would be nice to have. In essence I am saying that you may find a recent graduate who is eager to learn and has potential but is being let down and not given a chance to shine. Shoving junior to doing html and css for an entire year is not going to help. And being paid peanuts to do it makes more unbearable hence they never stick around.

Every co I have worked for provides training and mentoring. However, companies will only provide training for you to do work for them. Not to jazz up your CV. We get asked every year to provide a list of external training we would like to go. If it's related to your job and the tech used by the company, they almost always put it in the budget.

As for mentoring, most of us where I work get to do it. I also did mentoring in SA. We looked for youngsters who had just finished uni/college. No experience was a requirement. We hired 2 guys. Very successful.

There are companies who better at it than others. It takes a lot of resources, which means its unlikely the smaller IT shops can afford to do this.
 
Top
Sign up to the MyBroadband newsletter
X