Mastering Software Engineering
9.4
(11 ratings)
3 Days
·Cohort-based Course
Learn insights into software engineering gained from developing large-scale products at companies such as Uber, Airbnb, and Microsoft
9.4
(11 ratings)
3 Days
·Cohort-based Course
Learn insights into software engineering gained from developing large-scale products at companies such as Uber, Airbnb, and Microsoft
Get notified about the next cohort
Hosted by
Georges El Khoury
Software Engineer. Ex: Uber, Airbnb and Microsoft
Course overview
In this course, I will share all the (hard-learned) lessons I acquired building and maintaining software used on a daily basis by millions of people.
This course is not theoretical and covers practical topics you go through and can apply in a typical software engineering day to day.
This course will not be about a specific technology but will cover software engineering concepts that are relevant irrespective of the software stack or the computing medium.
Module 1: Code Reviews
This is where we spent most of our times as professional engineers. We will go over how to write pull requests that get quickly approved and how to provide quality code reviews. In the end, we will go over tips on how to write/design elegant code.
Module 2: Outage Management
There is a global outage. Not a single customer can use your product. Your CTO might be texting you and you've never met him/her before. In this module, we will go over what to do during an outage leading to the ultimate goal of turning your service status back to green.
Module 3: Release Management
Great software is deployed software! In this module, we will go over how to safely release software to production and have the right tradeoffs between continuous development/integration and service uptime.
Module 4: Migrations
Work enough as a software engineer and you will need to do a migration. Guaranteed! In this module, we will go over how to safely transition from one system to another and balancing this process with the need to fix bugs and release new features.
Module 5: Project Management
Sprints, Kanban, Backlogs, User Stories, Bugs, etc.. We can spend a whole course just on this but in this module, I will focus over what I found to be a good way to do project management at a software company. I will also share an Asana template you can use with your team.
Module 6: Conducting Technical Interviews
The quality of your team members will ultimately decide how successful your company is. In this module, we will go over how to conduct interviews to get the maximum signals to be able to decide on wether to extend an offer or not to a candidate.
Module 7: Onboarding Team Members
It's your team member first day at work. In this module, we will go over what to do so they ramp up quickly and start contributing in their day to day tasks.
Module 8: Software Engineering Career Ladders
We will end the course by going through the different skills and impact you will need to acquire and do at the different stages of your career. Kind of a roadmap for every stage in your career.
01
Software engineers who want to level up, gain experience and enhance their knowledge and skills
02
Software engineers who want to learn best practices and apply them in their development team
03
Techies who want to understand practical software development processes and methodologies
You will be able to directly apply lessons related to code reviews, release management, outage management and other course modules back at your company in your day to day work
Advance your career and level up on your software engineering skills and gain experience and knowledge that will help you better build and maintain software products.
Software Engineer - ex: Uber, Airbnb and Microsoft
I have built, maintained and supported software in production for big companies and early stage startups.
I designed and implemented software that is used on a daily basis by millions of people.
I was the lead engineer on the Uber offer (dispatch) flow - a critical part of an Uber trip - and Uber for Business.
I conducted thousands of code and design reviews, was part of teams that multiplied in size and was the engineer in charge during global outages.
I enjoy writing elegant code and turning ideas into working software.
I write software engineering articles on my newsletter: Software Engineering Tidbits
01
Code Reviews
In this module, we will learn how to approach a code review from both the perspective of an author and a reviewer.
02
Outage Management
In this module, we will learn what to do in a global outage and how to return a service to green. We will also cover how to write a good post mortem document.
03
Release Management
In this module, we will learn best practices to release code changes to production.
04
Migrations
In this module, we will learn how to safely migrate from one system to another.
05
Project Management
In this module, we will learn about top to bottom requirements and vice versa and how to find a middle ground between them. I will also go over an Asana template I use for project management.
06
Conducting Technical Interviews
In this module, we will learn how to conduct a technical interview (as an interviewer).
07
Onboarding Team Members
In this module, we will lean how to onboard new team members and get them successfully ramped up to the team.
08
Software Engineering Career Ladders
In this module, we will go over the different responsibilities at each level of a software engineering career ladders.
9:00 am - 10:30 am US Pacific Time
Live Session + Q&A
9:00 am - 10:30 am US Pacific Time
Live Session + Q&A
9:00 am - 10:30 am US Pacific Time
Live Session + Q&A
Active hands-on learning
This course builds on live workshops and Q&A
Interactive and project-based
You’ll be interacting with me and other learners through the course
Learn with a cohort of peers
Join a community of like-minded people who want to learn and grow alongside you