Advanced Software Engineering Course - Morehouse College
Diversity, Inclusion and Belonging (DIB) are fundamental to the success of GitLab and the collaboration with Morehouse College, an HBCU, is an example of GitLab living our values. The Engineering organization has developed a curriculum that provides a holistic education for Computer Science students. This course will teach students about:
- Software Development Tools
- Real-world Software Development Roles & Responsibilities
- Real-world Software Development Lifecycle
- Remote work environment best practices
GitLab Benefits
- Partnering with HBCUs will provide an opportunity for GitLab to diversify it’s talent acquisition pipeline, and enhance its commitment to diversity.
- Opportunity to diversify and to our Community of Contributors
- Evangelizing GitLab software to future Engineers
- Opportunity to diversify our talent acquisition pipeline
Student Benefits
- Develop an actual feature for GitLab, a software used by 40 million users
- Multiple Subject Matter Experts (Engineering, User Experience, Quality Assurance, Product Management, etc.) will instruct classes
- Due to our workforce spanning global time zones, office hour support will be very flexible
- Students will have a real-world experience and understanding of delivering software solutions to users applying a modern JavaScript web framework technology to build web applications when given customer requirements.
- Dive into Real-world Development Cycle
- Access to Software Engineers experts that are fully distributed across the globe
- Ability to apply for Apprenticeships or Full Time Employment based on availability
Organization
- Darva Satcher, Director, Engineering
Instructors
The GitLab instructors below have volunteered their time to create the course content that made this course possible. A special thanks goes out to each person listed below:
- Brendan O’Leary, Senior Developer Evangelist
- Michael Friedrich, Developer Advocate
- Darren Murph, Head of Remote
- Paul Slaughter, Senior Frontend Engineer
- Tim Zallmann, Director of Engineering
- Ash McKenzie, Staff Backend Engineer
- Florie Guibert, Senior Frontend Engineer
- Taurie Davis, Product Design Manager
- Darren Eastman, Senior Product Manager
- Ezekiel Kigbo, Senior Frontend Engineer
- Dave Smith, Engineering Manager, Reliability
- Andrew Kelly, Senior Security Engineer
- Alishan Ladhani, Backend Engineer
- David O’Regan, Engineer Manager
- Dennis Tang, Frontend Engineering Manager
- Thomas Randolph, Senior Frontend Engineer
- Eric Schurter, Senior Product Manager
- Sean Carroll, Engineering Manager
- Sharif Bennett, Mid Market Account Executive
Career Stories
The GitLab team members have shared their personal life experiences starting from their time in university up until their employment here at GitLab in an effort to show students several different career paths available to them. A special thanks goes out to each person listed below:
- Interview with GitLab Product Manager Darren Eastman
- Interview with GitLab Product Designer Timothy Noah
- Interview with GitLab UX Researcher Katherine Okpara
- Interview with Senior Frontend Engineer Ezekiel Kigbo
- Interview with GitLab Backend Engineer Serena Fang
- Interview with GitLab Support Engineer Brie Carranza
- Interview with GitLab Software Engineer in Test Mark Lapierre
- Interview with GitLab Mid Market Account Executive Rashad Bartholomew
- Interview with GitLab Security Engineer Juliet Wanjohi
- Interview with GitLab Senior Engineering Manager Darva Satcher
Topics Covered in the Course
- GitLab Overview
- Using GitLab for Software Development
- Continuous Integration (CI) and Continuous Delivery (CD)
- Markdown
- Working Remotely
- GitPod
- CSS
- JavaScript
- User Experience
- Product Management
- Frontend Engineering
- Backend Engineering
- Reliability Engineering
- Building a GitLab feature: How does a file viewer work?
- Building a GitLab feature: Getting Something on the screen
- Building a GitLab feature: Setting up a component architecture in Vue
- Handling Reviews
- Polishing a Merge Request
- Quality Engineering
- Security Engineering
Instructor FAQs
What technology is used to teach the lecture?
- All lectures are conducted over Zoom, the Zoom link will be in the Google Calendar invite.
Who will review the course homework?
- Homework will be reviewed by the Instructor unless otherwise organized.
When is the homework reviewed?
- Homework is to be reviewed once the due date has expired.
Should there be any breaks during the session?
- Have a small break every 10-15mins or so, allowing time for questions, feedback, etc.
How we use GitLab to run this course
For those interested in using GitLab to support a course whether it is Face to Face or online, please use the table below as a guide. GitLab turned out to be an excellent collaboration tool for offering an organized learning environment.
GitLab Feature | How this feature is used in this course |
---|---|
Pages | The course website runs using GitLab Pages. |
Projects | Used as an environment for working on their homework and receiving more confidential feedback. |
Issues | Used for classroom discussions and for turning in some assignments (by linking to their personal projects). |
Merge Requests | Used to contribute to GitLab. |
GitLab CI (Continuous Integration) | Used to build and test the software when students push code to production. |
GitLab CD(Continuous Deployment) | Used to push every day code changes into the production environment resulting in continuous deployments to production. |
Requirements | Used for homework assignments to mimic real world environments where you have customers who submit requirements to engineering teams. |
Designs | Used for homework assignments to provide a visual for the Handbook Pages they will contribute to |
GitLab Handbook | Students will learn to update the GitLab Handbook and they will also use some Handbook content as supplemental lecture material. |
GitLab Docs | Students will use GitLab docs as supplemental lecture material. |
e30f31b6
)