As it happens many times – it depends.
A developer I know approached me recently. He wanted to know how much his salary should be. He felt like he wasn’t paid enough for the work he does for his company on WebRTC. As with any other interesting question, I decided to dig in a bit and come up with an answer.
When WebRTC was announced, I asked to play with it. To build a small team of developers and toy around with WebRTC for 6 months before coming back with a real strategy/product/service offering. I wanted for this specific task 3 separate types of developers:
- A VoIP developer, who can understand signaling and media fairly well
- A backend developer, who knows his way with backend web infrastructure, technologies and languages
- A frontend developer, who can build interactive HTML web apps
At the end, this project didn’t come through, but I still believe that a WebRTC project is a multidisciplinary effort. This makes it challenging and a lot of fun to work on.
WebRTC developers – the good ones – will be worth their weight in gold. As you already know, there aren’t many of them around announcing it on LinkedIn…
Since I haven’t had the chance to hire a WebRTC developer, but from past experience with both VoIP developers and web developers, I can do some guess work. That said, I wanted to get the opinion of those experienced in hiring and working with WebRTC developers, so I sent a couple of questions to some of them.
- If you are recruiting for a WebRTC project, make sure you check out the views of these people
- If you are a developer working or planning to work with WebRTC, this makes for a good set of suggestions on what knowledge and experience to beef up
Here is what they had to say about this (in alphabetic name order, with my minor edits):
Chad Hart, Dialogic (and webrtcHacks.com)
I break developers up into 4 groups:
- Front-end web
- These guys generally get paid the least because this is the easiest piece to do
- Back-end web
- Definition: Modules, SDK’s, and frameworks for server-side developers who specialize in enabling the underlying service and network infrastructure – i.e. tools for .NET, Node.js, Python, C++, etc.
- These guys generally get paid more and can often do the front-end stuff too
- Definition: Software and hardware for developers with expertise on telecom protocols, networks, and services – SIP, 3GPP IMS, etc.
- This is your “VoIP Media Engineer” – these guys get paid the most because this is very specialized and difficult
- Caveat here is that this group are needed less since libjingle is now free for anyone to use
- Mobile App
- Definition: Native applications developers (non-web but often leveraging web-oriented development) – iOS, Android, Windows Phone, BB10, etc.
- My sense is that this is also among the highest paid category because it requires a lot of specialty on the mobile platform and there is a lot of demand with a smaller supply
What some needs really depends on what they are trying to do, and that is all over the place.
I guess there are some people with the title “WebRTC Engineer”, but I suspect most of the engineers will fall into one of the 4 categories. WebRTC was probably not something they were specifically hired for, but now they are using it as part of a project or to build a specific feature. Specialized WebRTC engineers is probably something that is limited to the WebRTC tooling vendors since WebRTC is a core part of what they do as opposed to an adjunct.
I have not looked, but I would recommend looking for “WebGL Engineers” to see how that market looks. What impact did WebGL have on graphics engine specialists? How about the people who use those graphics engines (like gaming companies)?
Ian Small, Telefonica (TokBox)
The answer in our organization is that it completely depends on the job that they are doing. We have media engineers, front end and backend developers, and they are all specialists. And specialists get paid based on their speciality. At this point, WebRTC as a speciality does not trump AV media engineering. In fact, most people you hire are specialists at what they do, and are just learning the WebRTC angle. A couple of years from now it may be different.
If your question is more slanted towards “what should be the salary of someone working WITH WebRTC” (instead of ON WebRTC) then I think full stack web developer is mostly the answer, because ideally most people working with WebRTC do not need to be that media savvy, they just use the stack as it was intended.
What technologies would yo use as advantageous for WebRTC developers?
Totally depends on the specific job description. I think signaling is useful no matter what, and the specific type of signaling depends on the specific type of implementation you are working on. IP communications experience of any kind is useful if you’re working ON WebRTC. I don’t think environments like Asterisk are generically helpful, but obviously are highly relevant if that’s the specific environment you’re going to try to get WebRTC into. For the rest, it’s just general skills.
Again, to work ON WebRTC, bring a deep speciality and an ability to learn the ins and outs of the RTC protocol quickly.
To work WITH the standard, be able to learn quickly, and bring whole-stack skillz (in which case the last 4 all apply: interactive HTML5 frontends, Node.js, mash-up web services & “cool” web languages).
Gil Osher, Vonage
Regarding the salary question, I think it is really related to what are the requirements from that developer:
- If he is asked to build a website that has WebRTC functionality, from my point of view his salary should be like a regular web developer
- If he is asked to build the website and the signaling server (something simple, using Node.js or something), he should be paid like a backend developer with client skills (or client developer with backend skills, depending on where the focus is)
- If we are talking using WebRTC with VoIP protocols (SIP, XMPP, etc) he should be paid like a VoIP engineer
- If he is modifying the WebRTC code to add features (like supporting mobile) he should be paid like a Google engineer. 🙂
Kavan Seggie, AddLive (now Snapchat)
I don’t have much of an opinion here.
I would say it depends on what that engineer is actually doing. Typically JS engineers are less expensive than Obj-C and Java engineers. And good backend engineers are also more expensive.
A VoIP background is generally not required, and it may be a hindrance (these engineers typically come from ‘old skool’ engineering backgrounds).
Our team is different in that they are video, networking etc. engineers but those using Chrome WebRTC or Firefox WebRTC they don’t need to know this.
To add a bit more I think location of the engineer is probably the single biggest determinant of price.
Soufiane Houri, Weemo
It’s always important to differentiate salary ranges based on region. As you know, what a developer is paid in the San Francisco area is different than what she’s paid in Iowa or Bulgaria.
As for developers who are mostly back-end centric, in the case of WebRTC, that means knowing two unrelated technologies:
- The web back-end frameworks such as Zend/PHP, Node.js, Ruby or other similar web centric technology
- Voice/video centric which involves real-time communication, conferencing, signaling, media transport, etc.
It’s actually pretty rare to find engineers with that broad expertise who have a mix of VoIP infrastructure knowledge and web development experience. If you do find them, my guess is that they are going to be architects with salary requirements in the 150 to 200K range.
How comparable is it to VoIP or backend engineers?
There are at least 3 or 4 different developer types involved depending on how much WebRTC infrastructure you will need to develop and deploy, not to mention support and DevOps engineers. Front-end web developers developing or integrating web, mobile app developers specialized in either iOS or Android (rarely both), backend web developers dealing with authentication, storage, etc. VoIP engineers implementing and operating the signaling, conferencing and media relay infrastructure, etc.
Any advantages for knowledge in VoIP specific technologies like SIP, XMPP, Asterisk, etc.?
It is an advantage only if you are building your own WebRTC infrastructure to support complex call flows, video conferencing, heterogeneous networks, etc. VoIP engineers are rarely involved in web application development. They may be sought out for CTI projects but we are talking about a completely different set of skills.
Any advantages for knowledge of Interactive frontends in HTML/JS?
I would add Responsive design to this category since many are developing communications-enabled applications targeted for mobile platforms.
What about Node.js experience?
Could be useful as a a framework like any other if you are building your own basic backend WebRTC service. Anything more is not for the faint of heart and knowing Node or Angular isn’t going to make a difference.
Experience with other “cool” languages such as Python, Ruby or Scala?
PHP isn’t considered as cool any more but it’s one that we are still seeing a need especially within the context of Zend when developing high-performing web applications.
I would add mobile development frameworks to your list. We have a significant number of partners who are coming to us to leverage our WebRTC platform for their mobile applications. Developing responsive HTML5 applications is in vogue but developing native mobile applications to address the limitation of iOS with respect to WebRTC is very much in demand.
I would also add PhoneGap as a technology worth knowing if you are interested in developing cross platform mobile applications. For example, we publish PhoneGap plugins for that exact purpose which allows mobile app developers that are slightly higher level than Java or Objective-C developers to add video to their apps.
Is WebRTC Developer a Profession?
Where does all this leads us?
There are those who believe WebRTC development is a profession, while other see it as just another skill; where the definition of the developer’s type lies elsewhere.
I’d lean towards the distinction made by Chad Hart on developer types, adding to it DevOps guys, who are going to be necessary to the daily operation of the service down the road.
I’ll also reiterate Kavan Seggie’s opinion: A VoIP background is generally not required, and it may be a hindrance. I feel the same (and I am by definition someone with a VoIP background). If you have a VoIP background – make sure to question your worldviews with every step of the way you take with WebRTC.