A lot of companies got burnt on ruby related projects. Especially anything rails related. There is a steady pipeline of work right now for skilled developers to migrate services and code from ruby to go, Scala, java - basically anything else except ruby.
I have earnt quite well doing such gigs, although I tend do more erlang/elixir stuff these days.
I would always ask the clients what happened, and why they want to migrate rather than maintain or even build out their ruby code bases, and the answer was always the same - the developers in the ruby space were mostly sub-par. Often several degrees below java developers in terms of skill and ability.
I would say it tallies with my experiences too.
It is also for this reason they are not using node js - because it was seen as the next shiny, all the half-devs from ruby jumped onto it, and the risk of crap codebases from the same amateurs is ever present.
This has been my perception too; over the past couple of years we've been inundated with recruitment agencies trying to pass on these Ruby/Rails devs like its the new hot shit and all I've ever seen in my experience is spagetti codebases and sloppy work. Node is the same. It used to be PHP devs were this class (we refer to them as "enthusiastic ametuers" but the "brogrammer" name also equally applies; people who are just starting a career in development who dont know they dont know anything, or simply dont care in the case of brogrammers).
It's my understanding that the mood is simply that rails/ruby/node is toxic; its the same with what used to be SEO, they've all become UX snake oil salesmen.
As a Go dev, I'm crapping it that Go may be the next bandwagon jumped onto :( It kinda makes me glad when I see all those comments complaining about lack of generics!
If that's the case, then there is still hope for Ruby enthusiasts. PHP has come out the other end, mostly by splitting into separate communities that only have the language in common.
The issue with Ruby is that it is so tightly associated with simple architecture of Rails. Nothing wrong with Rails in itself, but for many complex projects that require architectural solutions Rails doesn't support, Rails + inexperienced devs usually results in spaghetti code.
Don't switch stacks. He's expressing an opinion about code from Rails developers which is about as broad as opinions go this side of saying "black people are like X" or "Asians are like Y." On the bright side he does leave the door open that Rails developers could write solid code though most don't in his opinion. The best thing you could do is continue working on Rails but read a variety of opinions on good code in different languages, read Coders at Work and similar texts on coding, and remember not to blindly follow coding trends. Generally keep your code simple and work to find abstractions to fit your domain.
I'm not saying anyone here is incorrect in their generalizations of Rails developers. I've obviously never seen the code they are criticizing. But they also aren't providing any useful information. Keep that in mind above all else. There will always be politics and disagreements. You're never going to make everyone happy and it would be a disaster to try to.
This is probably the soundest advice and agree wholeheartedly; the market appears to be saturated with inexperienced developers. This means, at somepoint (probably about now actually) there will be a very real need for good/great rails/ruby devs to come in and sort out all this mess. Not everyone will be able to dump and rewrite their projects; some will need tidying and new features added. You could make a killing there is your disciplined (think of Y2K and all the old experienced cobol devs coming out the framework to fix stuff)
Ok let's be serious what does burned mean? My impression is that most people use Rails because it allows you to be very productive very quickly. Presumably that means you know you're trading performance for productivity. Maybe you'll have to do a re-write of parts of your app in another language for performance reasons or because you need to perform some operations concurrently, but you know up front you're not choosing the language strictly because of its technical performance but instead because of business constraints.
Keeping that in mind, were those companies really burned by Rails or were they making lazy decisions and not being honest about what their plan was for their software?
Burnt in the sense that businesses hired people who claimed to have solid development experience, who claimed they could build robust maintainable systems, who claimed they could solve real business problems, who then turned out to be a lot less spectacular or solid than first thought, who believed the solution to every problem or design phase was to simply add more gems into the mix, who changed the whole state of the codebase because one luminary in the ruby world posted a blog article about how the hot thing on that day was to use pattern x instead of pattern y for designing your models vs controllers.
Most businesses are technology agnostic - they don't care what we use, if, if we deliver robust technically sound solutions. But when they trust developers, who fail to deliver, they mark the technology choice as well, to avoid getting similar problems in the future.
I don't think it's about performance. It's about the glut of inexperienced, underskilled Ruby devs landing seemingly simple gigs where they patch together unmaintainable Rails spaghetti - ultimately saddling clients/employers with a heap of technical debt and hobbling future devs who come to these projects.
This is a case of getting what you're willing to pay for. Great work is expensive because it takes a lot of experience to do, and there are a lot of opportunities for those with a lot of experience. But if you're willing to sacrifice the "great work" part, there are plenty of people out there with less experience doing (potentially) less great work for less cost. Everybody would like above market work for below market cost, but it doesn't tend to work that way.
I see what you're getting at but when Ruby/Rails was all new and shiny a couple of years back I knew an awful lot os junior/inexperienced devs who quite permanent jobs to go freelance/consulting for ruby/rails jobs because the money being paid was way above that for other similar level devs. It was pure hype, and to be fair to everyone who did this, the saw the writing on the wall and rode the wave. I even knew one SEO Exec who switched to ruby/rails contract dev work; if that isn't a warning sign, I don't know what is!
Just to note, I'm a PHP dev who works in SEO, and have done for years, during the great SEO boom, so I know bad code and I know snake oil salesmen. But I think in about 12/18 months time, once all the charlatans have moved on, the ruby/rails devs left will be experienced, battle hardend legacy devs, and the respect will begin., much like the SEO industry now.
Conversely, I have had a lot of work from companies switching from Java to Ruby due to the high costs and relative slow speeds of such developments. As someone who started out mainly working in Java, but now works mainly in ruby/rails I think the whole "rails == amateurs" argument you are making is oversimplistic. All languages are tools and there are always situations where one is more appropriate than another.
This is my experience as well. I have seen horrible code bases on rails projects and horrible projects in java and .net etc.
Funny thing is a lot of the projects that were a mess because the devs could not manage the pressure the businesses put on them which made for some real bad decisions. The devs themselves were actually pretty good and knew the code base had gotten out of hand.
So now whenever someone says "oh this company wont use X because they got burned by those programmers" my internal alarms instantly start going off that the problem is more than likely the managers of the business.
That might be true in London, but in Toronto essentially every major success story is Rails, Python, JS, and Go. Roughly in that order. The few Java code bases I've seen were horrendous.
Ruby is past it's hype and others are taking up the space.
Node.js is very good at replacing Ruby for quick development and Typesafe's Play works better for Java shops.
Obviously the author has more of a historical overview, but, anecdotally, I am getting the same quantity of contact concerning roles as I have ever done, but there seem to be more and more recruitment companies moving into the ruby space. I would say it is also possible that what the author is seeing is less of a slowdown in the ruby market and more of increased competition in the recruitment market.
Having dealt with the author previously (though never having taken a role through him) I hope his approach of specialising in a technology stack and pursuing that as a specialist, gaining knowledge of both the hirers and potential contractors, wins out over the LinkedIn profile fishers.
"Scrum Masters...The main issues in the Scrum Master market are that lots of Project Managers and people from somewhat similar disciplines doing the two day certification and are repackaging their careers on their CVs and jumping on the current Scrum Master bandwagon."
Well that pretty much confirms my perception of "Scrum Masters".
My anecdotal impression (I lived in the UK for 3 years) is that not enough companies that adopted Ruby in it's hayday (i.e. 2006-2012) have survived today. Which means, it never caught on with the "enterprise" in the UK, and most of the companies that have survived are still using .NET/Java/PHP.
Generally speaking (again, my anecdotal experience), the UK as a whole are tech laggards compared to the US. They'll wait until it gets developed and fixed here, and then adopt it when it's ready. However, as soon as it is ready, they do tend to adopt very quickly (and become quite good). It's no coincidence that Node.js and the startup scene are now synonymously popular right now in the UK and Ruby isn't.
In my experience Ruby has become a niche thing. It never moved on to the enterprise at scales that all the hype-men wanted it to almost 10 years ago. And the startups have found other tools.
No idea if this applies to the UK, but in the Netherlands the word is that bigger companies have been switching from outsourcing to agencies and contractors to creating/expanding their own in-house teams.
With online services now fully established at senior management level as part of the core business (software eating the world etc) and no longer seen as "projects", this is natural development.
And it's not just contractors that feel the consequences, it's also the specialized agencies that can no longer get those big fat contracts building web apps for established companies.
Can't comment on Ruby, but in relation to Node.js in London it's very much a seller's market at the moment; good developers with commercial experience are contracting at £550pd, and very few are interested in taking permanent roles.
It's a good time to be a software developer in London, and not so good if you're trying to recruit one.
I'm a UK-based contractor (albeit mostly working with Python) and without fail I have at least 10 new recruiters add me on LinkedIn every week. What are the chances this author is in a flooded recruiter market?
Edit: The last time I sat in an office in Shoreditch there were contractors there doing frontend, project management, design and product ownership. There was a conversation one day where the eluded to 'backend contractors always being in work' and it being a bit of struggle for the others to always find work. Have the Rails devs here felt they were always in work in the past?
I've had the same experience with a constant stream of freshly minted recruiters want to add me on LinkedIn each and every week.
I've done contract Rails dev in London for the past 2 years now, before that I had clients in the South of England, Dublin and Belfast. Apart from holidays I've not spent any considerable time out of work.
LinkedIn is a tool to connect to random people without a reason. I get the same thing and yet I got all of my contracts through people I know, not some random time-wasters from eSynergySolutions, PeopleSource and other crap.
My thought of the day is that Ruby is good to know for Chef and Puppet, the market seems high for these.
Ruby On Rails is brilliant for startups and prototyping. I hear devs talking down about Ruby On Rails, taking into example LinkedIn that has moved away from Rails to Scala and NodeJs.
The thing is, when you scale like LinkedIn, servers become more expensive than developers. In that sort of situation, it becomes a lot more interesting to move to Scala.
Scala and Ruby are both in a sweet spot, but both in a different market.
Of course there will always be the fashion of the latest skewing the market, and that can make it hard to see the effect these could have on the long term.
I also hear devs talking down about the Java market. As if Java was going to disappear anytime soon. I don't think so.
All languages suffer from programmers that have no interest to improve their skills and have a "can do" attitude.
No matter which language we are talking about, they are all bound to be spaghetti code at the end of the day. That's why there are conventions and software architects. It is like building a house, getting painters, plasterers, masons and electricians to build a house, just that there aren't any plans.
I am learning now Ruby, but I don't think I would stay there for big applications. My problem is not the language, but the lack of tools, or to be more precise, the quality of those tools. C# got Visual Studio, PHP works great with Netbeans, Java got Eclipse and Netbeans. Ruby might be good on Visual Studio, but I got a Mac.
It's all about .Net in the UK. Go learn it. I can walk out of a contract on a Friday and start another on a Monday and it's been like this forever and the market demand is increasing and the staff supply declining.
What about pay, though? Here in the US, at least from my perspective, .NET contracting is slightly better than PHP contracting. That is, most of the .NET jobs are (relatively) poor paying with the kind of cheap, demanding client we've all had horror story experiences with. Exceptions would be in finance, where you get to be treated like shit because you aren't a tradeer.
One of my colleagues lumped "webdev" (of the sleazy WP theme shop variety) and .NET jobs in the same category as a "cesspool". I can't disagree.
Pay is good. If you're good at it, it's pretty amazing. You can pull £650/day on contract if you know your shit. If you don't but can drive Visual Studio, £400/day is easy.
"How much / what sort of financial experience is required?"
One year perm at a bank or a project in a bank as a consultant. Investment banking and FX experience is valued much more.
If you never worked in any financial institution(like for an insurer), then there is maybe 1% chance you're getting a contract in one.
For £800 that's 5-10 years of experience with majority of it with one of the big consultancies(IBM GBS, Accenture, Deloitte) and a few big financial projects. Granted that's an introduction rate, that can go up if you negotiate well.
Incidentally bugger all in most cases I reckon unless you're working in trading. There's a bit of a vacuum at the moment so standards are low. Most orgs are willing to drag you through the relevant training.
In all my years of working in the financial sector (NOT trading I will add!), about as complex as it got was numeric precision, rounding, equation of a line and curve fitting which was all pretty easy. Oh and deciphering lots of poorly written regulation and rules.
Don't hit trading unless you like snorting coke and 100 hour weeks.
You can learn brush up on the terminology pretty quickly - the IBs will hire any solid developers who know their platform well enough (so java devs who appreciate core java + modern ecosystem; python devs who have experience with scipy/numpy etc.
A big part though is willingness to jump in and remain for a while, to be able to tolerate the mindless processes and procedures that come with massive companies in a regulated industry.
.Net is awesome. There's no need to apologize for working on a really powerful stack and making good money doing it. I've worked on Rails and Node projects, and they don't compare favorably to the power and robustness and usability of .Net. And I'd choose .Net over Java every time, even for a little less pay. .Net is hitting a really sweet spot these days.
Not in the uk but interested in the job market there and I agree as I consider it my 'backup' in case things go south for me. The number of .net jobs vs anything else is just ridiculous. If you want to work in London and be secure in your job or job search, .net is where you want to be.
This depends on the industry, e.g. anyone doing anything remotely performance oriented is not touching Windows unless they have a legacy stack to maintain.
When you say "performance oriented" what do you mean anyway?
But even humoring you here, I would argue that the very, very vast majority of contracts out there are not "performance oriented" and so the point may be moot.
As a prospective new developer, is ruby/rails still a good bet or are the skills not going to be required in a year or so? Less worried about contracting rates for the moment, keen to work in startups which is where I understand rails is being used constantly.
I suspect part of the problem is the "flood of contractors", due to low salaries for permanent jobs. A "senior java developer" job in the North is advertised as 45k, which is ridiculously low; if I were in that position, I'd be very tempted to just quit and go contracting, where you can make 20k in a single month. But of course, if everyone does that, the contractors market gets saturated.
The UK has always lagged well behind America in dev pay and has only been accelerating in pay for the last 5 years. 5 years ago a senior dev position outside London was around 35k. Now it's up to 45k and I'm starting to get emails with 50ks mentioned.
To make '20k' you would have to earn £900 per day, when the going rate outside London is £300 p/d, and even as recently as a year ago it was £250 p/d.
You earn £900 p/d consulting, not developing.
I've always blamed the 'BBC micro' effect for our lower pay, we had a lot more exposure to computers as kids in the 80s and so reached 'peak developer' a lot later than the Americans did. Also in the UK the idea that the peons could be worth more than the managers was anathema until the last decade, a class divide throwback.
No, there are not. There are a lot of ads with those rates, but most roles are ~ £450. Please note that a single contract goes out to many agencies that post the same contract, so you might think that there is a lot of £600+ roles. While in reality there is a lot of people posting the same role X^N times.
Some of those posts are not even real roles - new guys in agencies need to collect a lot of CVs, so they post bogus £600 contract and collect your CVs as "stuffing" for their "portfolio"
£700 are rates for an experienced core Java developer with investment banking or FX experience.
Rates in london for developers are usually under 500 day for non-finance, and anywhere between 500-700 for finance, and maybe 700-800 if you have some quant dev work in finance.
You can get higher rates outside dev, for example Project Mgr is around 700 day, and Programme Mgr around 900 day.
Occasionally, there are much higher rates (1k-2k) for very short urgent roles, but not that common.
"I'm sure that's also true but plenty are real."
Plenty are, but not as many. There are a few teams in London and they usually stick together and for long term. And a lot of them don't get filled fast, because they are looking for very strong specific experience.
My most well paid contract was awarded to me after the job was open for 3 months - Thales e-Security HSM API specialist.
£20k of income(sans VAT) per month is barely possible. If you're at the level of being paid £45k - you will not earn £20k per month during first year. £20k per month is ~ £900 per day @ 22 days per month, and that is paid to very well known consultants.
But what I will agree with is that the disparity of contractor pay and permanent pay in UK is staggering.
Out of curiosity, how bad are taxes? How much of that 20k could a developer actually expect to take home?
To give an example, I live in Seattle in the US (which is relevant as many states in the US apply additional taxes on top of those applied federally). My effective tax rate is probably somewhere around 35-40% of my gross income. I'm curious if devs in the UK are looking at a similar deal, or if more than half of that 20k per month is going to evaporate into taxes... also how does that vary for contract versus permanent work (in the US it would cause an immediate 7.5% bump in my tax rate, I believe).
If that 20k is net of VAT, and you're working through your own limited company, in the best possible case you could take home £17,767.20 of that £20,000 for an effective tax rate of 11.2%.
How? Start with the 20k. Pay yourself a 10k salary (tax free, pay £232.80 in national insurance). Pay 20% corporation tax on the remaining 10k (£2000). Pay the remainder to yourself as a dividend (which already has a tax credit applied and results in a 0% liability up to a certain limit).
Now, this does make the assumption this is either the first month of your tax year or the only income you make ;-) If you were to make 20k EVERY month, you would start to increase through brackets and pay more tax on the dividends.
By my calculation using ContractorUK's dividend tax calculator, at 20k every month and assuming no deductions at all, you'd pay around £53k on the total £240k for an effective tax rate of 22%, but I could be wrong. You would also be likely to pay more tax since you'd probably pay yourself a salary despite the loss of personal allowance in order to keep your state pension privileges.
Broadly speaking, direct taxation on income is generally lower than many situations in the US. It's the consumption taxes like VAT (20%) and fuel duty (the majority of the price of fuel) that bump things up a lot. I should also note that if you merely happen to be self employed rather than own your own company, your taxes are actually LOWER here than if you're employed - no equivalent to the "self employment tax" I've heard of in the US.
UK is not Scandinavia or France. Effective taxation on personal income is on similar levels as US.
Contractors have a different set of rules from regular employees but they end up paying more or less the same tax (often less, if they have a smart setup -- corporation tax is lower than income tax); there are other disparities (it's harder to get loans/mortgages etc) but not tax afaik.
Hey, I wrote the article, really appreciate the discussion.
Just want to reiterate that until this point, the market has been healthy and I'm expecting it to recover. The tone of the discussion here is a bit doom and gloom. I still think its got at least 2 more healthy years before it becomes how PHP is now.
Louis or anyone else can you share your thoughts about PHP contract market in London please? I'm perm PHP developer thinking to start contracting. Is that market so bad?
A lot of companies got burnt on ruby related projects. Especially anything rails related. There is a steady pipeline of work right now for skilled developers to migrate services and code from ruby to go, Scala, java - basically anything else except ruby.
I have earnt quite well doing such gigs, although I tend do more erlang/elixir stuff these days.
I would always ask the clients what happened, and why they want to migrate rather than maintain or even build out their ruby code bases, and the answer was always the same - the developers in the ruby space were mostly sub-par. Often several degrees below java developers in terms of skill and ability. I would say it tallies with my experiences too.
It is also for this reason they are not using node js - because it was seen as the next shiny, all the half-devs from ruby jumped onto it, and the risk of crap codebases from the same amateurs is ever present.