
Definition of technical debt
Identifying the root cause
How to address technical debt
Prioritize and plan fixes
Introduction to GameVault
Repository: https://github.com/grenoult/game-vault
Identifying problems with the current codebase
Breaking down tasks
Implementing tests before refactoring
First attempt: moving code to a dedicated service
Definition of design patterns
Examples of design patterns
Implementing Strategy Design pattern
Key takeaways
design patterns and refactoring
prioritization & planning
testing
FAQ
Using the strangler pattern to deprecate code over time
Using feature flags to mitigate risk
Introduction to leadership and content
Disclaimer:
There are a lot of really good resources to learn leadership.
The goal of this module is to introduce you to leadership and show you how to apply to software engineering.
If you want more in-depth knowledge, feel free to check for content online, or ask me!
Practicing self improvement and learning
Knowing your strengths and weaknesses
Identifying circles of control
Understanding emotional intelligence
Taking initiative
Having a clear vision
Breaking down, estimating and planning the work
Introduction to Agile mindset
Comparison with Waterfall
Think Agile instead of doing Agile
Example of how to use Agile with GameVault
Knowing the definition, severity and SLAs
How to react to an incident: communication, roles and impact
How to wrap up an incident: root cause analysis, post mortem
Example of a process
Using the Eisenhower matrix to know what to work on
Utilizing Prioritized to-do list to sort your work
Limiting effort with timeboxing
Having a focus time to boost productivity
Welcome to a transformative journey that will take you from a proficient developer to a confident tech lead. Our course, "Software Engineering: From Developer to Tech Lead," is designed to equip you with the essential skills and knowledge needed to excel in the dynamic and ever-evolving world of software engineering leadership.
Transitioning to Tech Leadership: Master Refactoring, Agile, Team Leadership, and Incident Management
Learn the art of refactoring to maintain clean and efficient codebases.
Master agile methodologies to enhance your team's productivity and adaptability.
Develop the skills necessary to lead and inspire software development teams.
Gain insights into time and incident management to ensure seamless project delivery.
Navigating Your Path to Software Engineering Excellence
In the modern realm of software engineering, the ability to seamlessly transition from a developer to a tech lead is a rare skill set that can open doors to remarkable opportunities. Our course, "Software Engineering: From Developer to Tech Lead," encapsulates the core principles, strategies, and practices required to make this transition effectively. Whether you're a seasoned programmer seeking to take on leadership roles, a junior developer curious about how to advance your career rapidly or an aspiring tech lead aiming to enhance your proficiency, this course is your gateway to honing your expertise and expanding your horizons.
This course is quite unique: it doesn't cover leadership or coding, but rather a mix of both worlds with a concrete example: a project named GameVault and hosted on GitHub. It contains those two pillars: programming and leadership ixed together with something you can apply straight away in your day-to-day work.
Course Highlights: Your Path to Success
Learn the techniques of code refactoring with moving code, using design patterns and SOLID principles.
Recognize the importance of agile practices and methodologies to have the right processes in place so you can focus on your strength: coding and leading a team.
Build effective communication, collaboration, and decision-making skills to challenge problems, not individuals.
Explore time management strategies with the Pareto principle, time boxing and focus time.
Master the art of incident management, ensuring swift resolution during the incident and mitigation post incident.
What You'll Walk Away With
Upon completing this course, you'll emerge as a software engineer with the potential to ascend to leadership roles. You'll be equipped with:
Proficiency in refactoring techniques to enhance code quality and maintainability.
Expertise in implementing agile practices to streamline development processes.
Confidence in leading software development teams, making informed decisions, and fostering collaboration.
Capability in managing time effectively and responding adeptly to incidents.
A comprehensive skill set that aligns with the demands of the software engineering industry.
Real-world experience through hands-on projects and practical simulations.