Advanced WebRTC Architecture Course – Updates

October 17, 2016
WebRTC course starts Monday next week.

At long last, the wait will be coming to an end and my recent sleepless nights as well. I've been working these past months to put up the content for the course, not knowing how it will end up. Most of the materials have been recorded, uploaded and prepared already, waiting for me to just manually add all the people who enrolled. There's a lot of material in that course, and a lot more that I am sure is still missing in there. Trying to cover WebRTC in its entirety isn't easy. Through the process of putting this stuff up and out there, I've learned a lot myself.   The course is split into 7 sections:
  1. The basics of WebRTC - explanation of what WebRTC is, a review of its APIs and call flows, and general knowledge. This should get you up to speed about what it is and will probably place you among the first 10,000 people in the world who know it at this depth. It will also enable you to read the stuff that is out there about WebRTC more critically
  2. Networking basics - while we all use the Internet, many of us don't know the distinction between TCP and UDP, or what Websockets really is. This section tries to put these things in perspective and lay the groundwork for later sections. It will be super useful for VoIP developers but also great for web developers. It also covers the NAT traversal challenge and the solutions found in WebRTC for it
  3. WebRTC signaling - signaling isn't part of WebRTC, but is often something to contemplate. This section dives into the alternatives of signaling that are available, different types of transport protocols, as well as a lesson on SDP. It also covers the security aspects relevant to WebRTC - and it it sheds some light on FUD (fear, uncertainty and doubt) around WebRTC
  4. Codecs - I love codecs. I know little about them, but somehow, more than most. This section explains voice and video codecs, while focusing on what you need to know about them in the context of WebRTC. You won't be able to implement a codec after this section (I never implemented a codec), but you will gain the understanding necessary for you to decide the codecs for your own scenarios
  5. Media processing - media processing is at the heart of most decisions you will take in your use case. In this section, I take the time to review how RTP and RTCP work, and then dive into different architectures and processes you might need in your back end. Things like mixing, routing and recording
  6. 3rd party frameworks and services - here we will be diverting from the beaten path of "normal course material", and instead of talking about specifications, standards and capabilities, we will look into the various products and open source frameworks that are out there. We will review them and see which one fits what use case, and also gain an understanding of the various routes available to us, trying to match our company's DNA and requirements to the alternatives at hand
  7. Common WebRTC design patterns - this is where we will take specific scenarios and challenges, from a list of those I see every day when people reach out to me, and analyze them. Go over the scenario, break it down to requirements and then map them into architectural alternatives. The idea here is to give you the tools to do such things on your own with your products
Most of the lessons are already ready. There are around 6 lessons that I still need to write. Hopefully, they will be available on launch day, but if not, then the following week.   I want to answer a few quick questions here - things I've been asked time and again in the past month:

Is this a one-time thing?

Yes and no. The course takes place October 24 and lasts for 2 months. Those who enroll for office hours get an extended duration of 4 months (as well as office hours). I don't plan on doing this an ongoing thing where you can enroll whenever and do the course. I will be taking the time throughout these two months to listen to the students and see if there's anything that requires updating in "real time". I can't do it if this is an ongoing thing. This might change in the future, but for now, there's this timing. I might do that some months from now, after I rest a bit from the effort and decide if it makes financial sense to run it again. If you have your own timing issues, then understand that the course is self-paced. You can "leave" for a week or two and come back, do it faster or slower.

Is the course for me?

I can't really say. Here are a few types of students that I have already enrolled for the course:
  • Developers who need to start using WebRTC, more often than not through a framework that was already selected. They know how it works, but are looking to gain deeper understanding so they can troubleshoot issues or add features to their product
  • Product managers who want to learn and understand more about WebRTC. Mostly to give them the language necessary to talk with their developers. And mainly to keep the developers honest
  • Teams who work with WebRTC, so they can get the experience together as a team and improve their proficiency
  • Testers wanting to understand the technology better and find effective ways to design their test plans
The course doesn't include too much code. There's the occasional piece of code shown, but the idea isn't to explain to you how to develop with WebRTC. In truth - most of you won't develop with WebRTC directly anyway - you'll end up using a framework or a third party for that. The intent is to give you the understanding of the limits and capabilities of WebRTC. To know how to yield this amazing tool and how to use it effectively in your product.

How is the course conducted?

If you enrolled, then you will be receiving an email a day or two prior to the course. I will be registering you to the course mini-site inside the BlogGeek.me website. Once you login, you will be able to access all course sections and lessons. Each lesson has a page of its own in the site. Most lessons have a recorded video session as the main bulk of it, along with text and additional reading material. In most cases, that additional reading material is important. You can "tune in" to any lesson you wish and learn it at your own pace and in your free time. There is an online forum for the course. Students will be able to raise their questions, issues and feedback there. If things require changes on my end, I'll try making the changes to the lessons as we move along, maybe even adding course materials and lessons if the need will arise. I will also be using the forum to ask questions myself, and check out on the progress of students. For those taking office hours, these will take place twice a week at different times to accommodate different time zones. In there, I will answer questions as they come and basically make myself available to you "in the flesh". I haven't decided yet which WebRTC service to use for that - suggestions are welcome. I am still debating if I should use quizes as part of the course, placing them at the end of each section or not. If you have an opinion - please voice it (even if you're not going to attend the course).  

Enroll today

The course starts next week. There's a Q&A page that may answer additional questions you might have. Official course syllabus is also available in PDF form. I'd be happy to meet you if you decide to enroll to the course. This is a new thing for me and I an quite excited about it. If you are not sure about the course - email me. If there's no fit - I'll tell you immediately. If this might help you, I'll explain to you what you will gain from it so you can make a better decision Until next Monday - have an awesome week.

You may also like