Stop struggling to figure out how to get to senior software engineer after a coder bootcamp or teaching yourself to code! Veteran software engineer and mentor, Marianne Bellotti, delivers actionable advise and worksheets to help you build your career.
Documentation helplessly out of date? Checklists for deploys getting you down? Run books giving you nightmares? Why do our must valuable operation processes always feel like such a mess and how do we make them better? This module explains how process drift happens, how to spot cognitive load issues in a process and when to automate your all your problems away!
Good software inevitably reflects the business processes that are conducted on it. When rearchitecting an existing system understanding how that process has changed or identifying how it could change if the system were different is critical. This module goes through two complementary styles of analyzing process--mapping and mining--and how to use them in engineering work.
The best engineers know when to go deep on one particular topic and when to study a broad swath of new topics. Learn how to plan out these transitions in your career and how to get the most out of each pivot in focus.
Giving and receiving feedback effectively is a critical component of growing as a software engineer. In this course we talk about how to prepare for code review, but as a person being reviewed and as a reviewer. What makes an effective code review? Why is it a good idea for juniors to review the work of seniors? How do you avoid being "that guy" during reviews?
SLOs help us make technical decisions by considering business trade-offs. But SLOs can be difficult to set up if you have no historical data or are building something new. By using functional boundaries we can inject SLO style reasoning into our decision making before we're ready for SLOs
Any kind of modernization, large scale migration or rearchitecting project requires you spend just as much time designing the people side of the effort in addition to the technology. Using stakeholder maps and social network theory principles you'll learn how to map architecture features to org structure and model how existing communication channels are helping or hindering the effort.
Most CS and programming courses don't teach the fundamentals about code and the machines that run our programs. Which fundamentals should you invest time in learning and how to do that most effectively?
Ignorance of databases, how they work, and confusion around SQL vs NoSQL are common problems that hold engineers back. Stop looking stupid in meetings by learning some SQL!
Impostor syndrome never goes away. No matter how many years of experience you have or how many achievements you rack up. Even the best engineers struggle with impostor syndrome. But you can manage impostor syndrome so that is doesn't hold you back.
When is it appropriate to devote time and energy to building tooling, automation and other forms of metawork? Software engineers love automating things, but a lot of metawork is just a form of procrastination. Learn how to make sure you're always devoting your time and effort to the most important work.
Migrations are hard, but all long lived systems will have to do them eventually. This course goes through the process of how to identify what the riskiest parts of your migration plan are and come into the process prepared.
You will spend more time reading code than writing it. Learn how to navigate a foreign code base and figure out both how to use it and how to contribute to it yourself.
The messiest bugs in software almost always come from edge cases. The engineers that learn how to think in edge cases make the biggest impact on their teams. Learn how to find example edge cases, how to break them down to technical components and train your mind to think in edge cases.
Mind maps are a tool for exploring and documenting all the knowledge you don't realize you have. Learning how to use them can help you clarify where unknowns are in systems, document existing system behavior, and speed up the time to triage an incident by expanding your local model library.