4.7 (37)
3 Days
·Cohort-based Course
Learn insights into software engineering gained from developing large-scale products at companies such as Uber, Airbnb, and Microsoft
4.7 (37)
3 Days
·Cohort-based Course
Learn insights into software engineering gained from developing large-scale products at companies such as Uber, Airbnb, and Microsoft
Previously at
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 is divided into three parts:
1) Building Software: Code Reviews, Unit testing, Engineering Requirements Document
2) Maintaining Software: Observability & Monitoring, Outage Management, Release Management, Migrations, Monolith/Microservices
3) Team & Culture: Project Management, Conducting Technical Interviews, Onboarding Team Members, Software Engineering Career Ladders
01
Software engineers who want to advance their careers, gain experience and enhance their knowledge and skills
02
Software engineers who want to learn best practices and apply them back to their development team
03
Techies who want to understand practical software development processes and methodologies
Apply new skills in your day to day work at your company
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.
Learn software engineering best practices
Advance your career by leveling up your software engineering skills. Gain experience and knowledge that will help you more effectively build and maintain software products.
Interactive live sessions
Lifetime access to course materials
In-depth lessons
Direct access to instructor
Projects to apply learnings
Guided feedback & reflection
Private community of peers
Course certificate upon completion
Maven Satisfaction Guarantee
This course is backed by Maven’s guarantee. You can receive a full refund within 14 days after the course ends, provided you meet the completion criteria in our refund policy.
Software Engineering from the Frontlines
01
Code Reviews
In this module, we will learn how to approach a code review from the perspective of both an author and a reviewer.
We will cover 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.
02
Unit testing
In this module, we will learn about the attributes of good unit tests that allow you to modify code safely without worrying about breaking existing functionalities.
03
Engineering Requirements Document
In this module, we will learn why and when we need an engineering requirements document and what to include in it.
We will cover how to align different engineers or engineering organizations through an engineering requirements document.
04
Observability & Monitoring
Maintaining software without good visibility over what is happening in production is impossible to do.
In this module, we will learn what needs to be in place to be able to monitor and debug released software. We will also cover alerting and on-call rotations.
05
Outage Management
In this module, we will learn what to do during an outage and how to return a service status back to green. We will also cover how to write a good post mortem document.
06
Release Management
Great software is deployed software.
In this module, we will learn how to safely release software to production and have the right tradeoffs between continuous development/integration and service uptime.
07
Migrations
Work enough as a software engineer and you are guaranteed to do a migration.
In this module, we will learn how to safely transition from one system to another while balancing this process with the need to fix bugs and release new features to production.
08
Monolith/Microservices
In this module, we will learn the pros and cons of a monolith/microservices architecture. We will also cover the good attributes of a microservices architecture and repository.
09
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. We will cover a good way to do project management at a software company. In addition, I will share an Asana template you can use within your team.
10
Conducting Technical Interviews
The quality of your team members will ultimately determine how successful your company is.
In this module, we will learn how to conduct interviews to gather the signals needed to decide whether to extend an offer to a candidate or not.
11
Onboarding Team Members
In this module, we will learn how to onboard new team members and get them successfully ramped up and productive within their team.
12
How to scale yourself
In this module, we will discuss tips on how you can support and unblock your team while still being able to complete your deliverables.
13
Software Engineering Career Ladders
In this module, we will discuss the different skills you need to acquire and the impact you need to make at each stage of a software engineering career.
4.7 (37 ratings)
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.
I am passionate about teaching and mentoring. It is one of the main reason I am teaching this course. One of the best feedback I get out of this course is I am applying a lot of what I learned in my day to day.
Be the first to know about upcoming cohorts
3 days - 2 hours per day
Wednesday, April 24, 2024
9:00 am - 11:00 am PDT
Building Software: Code Reviews, Unit testing, Engineering Requirements Document.
Thursday, April 25, 2024
9:00 am - 11:00 am PDT
Live Session + Q&A
Maintaining Software: Observability & Monitoring, Outage Management, Release Management, Migrations, Monolith/Microservices.
Friday, April 26, 2024
9:00 am - 11:00 am PDT
Live Session + Q&A
Team & Culture: Project Management, Conducting Technical Interviews, Onboarding Team Members, Software Engineering Career Ladders.
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
Sign up to be the first to know about course updates.
Be the first to know about upcoming cohorts