Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beginning an open source journey - how we used Python to survive as a code school and help other code schools by Sheena O'Connell

Beginning an open source journey - how we used Python to survive as a code school and help other code schools by Sheena O'Connell

Umuzi is an NGO dedicated to finding high potential youth, teaching them mad skillz, and placing them in good jobs. When the COVID hit the fan (wow, what a scary thought) we had to react quickly. Our training was orignally done in person, we had about 250 students sharing an office and kitchen, and our breakout rooms were cosy to say the least.

When COVID landed in SA we acted quickly to get our students set up to work remotely. Simple things like checking attendance, runnning workshops, and making sure people's learning needs were met became non-trivial. What we needed was a learner managment system, but nothing out there fitted our needs.

And so we built.

Of course we built in Python, by leveraging well established tools like Django, DRF and Airflow we managed to do more than just stay afloat. We built a self-driven, collaboarative and agile to the core learning platform that helps our students stay on track, and learn like real dev-teams work. Our sweet-like-candy syllabus-as-code approach to course design let us unlock all sorts of efficiencies - and all the goodness of git of course.

And it turns out we aren't unique in our needs. And so the African Coding Network was born.

Basically, we want to help as many people as possible so we opened the flood gates. Our tooling and syllabus is now 100% open source, and we are actively working to recruit entire code schools across Africa to join our network. We want to let as many people as possible leverage our tools and hard won learnings.

We already have students from as far afield as Nigeria working through our courses and interacting with our local students. We've also managed to use the platform to run an end-to-end learner selection bootcamp in order to find geeklings worth investing in. We won the most scalable solutiuon prize in Ashoka Skills Innovation Challenge. And we have a growing list of schools ready to get onboard.

In this talk I'll share some tails from the trenches, and a few of our plans.

And yes, we teach Python too ;)

7b0645f018c0bddc8ce3900ccc3ba70c?s=128

Pycon ZA

October 08, 2020
Tweet

Transcript

  1. BEGINNING AN OPEN SOURCE JOURNEY From on premises training provider

    to open source community
  2. HI, I'M SHEENA

  3. HI, I'M SHEENA @sheena ZATech Slack

  4. HI, I'M SHEENA @sheena ZATech Slack CTO of Umuzi

  5. HI, I'M SHEENA @sheena ZATech Slack CTO of Umuzi Been

    coding in some form for > 15 years
  6. HI, I'M SHEENA @sheena ZATech Slack CTO of Umuzi Been

    coding in some form for > 15 years I � Python
  7. ONCE UPON A TIME, IN AN APARTMENT BLOCK FAR FAR

    AWAY... (if you are far from JeppesTown, JHB)
  8. None
  9. None
  10. None
  11. UMUZI means "home" (Sort of)

  12. UMUZI means "home" (Sort of) Not for profit

  13. UMUZI means "home" (Sort of) Not for profit Find high

    potential young people
  14. UMUZI means "home" (Sort of) Not for profit Find high

    potential young people Pay them to learn
  15. UMUZI means "home" (Sort of) Not for profit Find high

    potential young people Pay them to learn Train them in high value digital skills
  16. UMUZI means "home" (Sort of) Not for profit Find high

    potential young people Pay them to learn Train them in high value digital skills NQF level 5 certification
  17. UMUZI means "home" (Sort of) Not for profit Find high

    potential young people Pay them to learn Train them in high value digital skills NQF level 5 certification Help them get jobs, help them keep jobs
  18. UMUZI

  19. A DAY IN THE LIFE... BC (BEFORE COVID)

  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. AND THEN CAME COVID

  27. � � LOCKING DOWN � �

  28. � � LOCKING DOWN � � 250 odd students and

    a bunch of staff on site
  29. � � LOCKING DOWN � � 250 odd students and

    a bunch of staff on site Computers, insurance, data, medical aid, transport...
  30. � � LOCKING DOWN � � 250 odd students and

    a bunch of staff on site Computers, insurance, data, medical aid, transport... And most of our junior team mates were leaving for TIH in the near term...
  31. � � LOCKING DOWN � � 250 odd students and

    a bunch of staff on site Computers, insurance, data, medical aid, transport... And most of our junior team mates were leaving for TIH in the near term... team_size = team_size/2
  32. EVERYTHING WE HAD BEEN DOING NEEDED TO CHANGE

  33. EVERYTHING WE HAD BEEN DOING NEEDED TO CHANGE

  34. AND SO WE BUILT...

  35. FIRST THERE WAS ATTENDANCE...

  36. BUT WHAT WE REALLY CARE ABOUT IS PRODUCTIVITY

  37. BUT WHAT WE REALLY CARE ABOUT IS PRODUCTIVITY Bums in

    chairs at specific times �
  38. BUT WHAT WE REALLY CARE ABOUT IS PRODUCTIVITY Bums in

    chairs at specific times � Accountability mechanisms � �
  39. BUT WHAT WE REALLY CARE ABOUT IS PRODUCTIVITY Bums in

    chairs at specific times � Accountability mechanisms � � Async interactions � �
  40. BUT WHAT WE REALLY CARE ABOUT IS PRODUCTIVITY Bums in

    chairs at specific times � Accountability mechanisms � � Async interactions � � Self-paced learning � �
  41. WE HAD NEEDS

  42. WE HAD NEEDS Admin, track, and deliver training...

  43. WE HAD NEEDS Admin, track, and deliver training... Report on

    progress
  44. WE HAD NEEDS Admin, track, and deliver training... Report on

    progress Manage multiple learning tracks
  45. WE HAD NEEDS Admin, track, and deliver training... Report on

    progress Manage multiple learning tracks Did we need an LMS?
  46. LEARNER MANAGMENT SYSTEM

  47. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text)
  48. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site
  49. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources
  50. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources ... We can just use Youtube though.
  51. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources ... We can just use Youtube though. Track competencies with assessments and projects
  52. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources ... We can just use Youtube though. Track competencies with assessments and projects ... Most of the assessment mechanisms are completely insufficient
  53. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources ... We can just use Youtube though. Track competencies with assessments and projects ... Most of the assessment mechanisms are completely insufficient Allow people to move through syllabus, a piece at a time
  54. LEARNER MANAGMENT SYSTEM Allows set up of curriculums by filling

    in forms (rich- text) ... our syllabus already exists as a hugo static site Allows uploading of videos and other resources ... We can just use Youtube though. Track competencies with assessments and projects ... Most of the assessment mechanisms are completely insufficient Allow people to move through syllabus, a piece at a time ... but it doesn't resemble real work
  55. WE AIMED A LITTLE HIGHER

  56. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering
  57. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering reduce dependency on staff!
  58. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering reduce dependency on staff! simulate real work environment as much as possible
  59. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering reduce dependency on staff! simulate real work environment as much as possible promote healthy dev-team habits and practices
  60. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering reduce dependency on staff! simulate real work environment as much as possible promote healthy dev-team habits and practices Integrate with Github
  61. WE AIMED A LITTLE HIGHER Integrate with our existnig syllabus

    without too much pain/suffering reduce dependency on staff! simulate real work environment as much as possible promote healthy dev-team habits and practices Integrate with Github smoke detection
  62. AND SO WE BUILT...

  63. INTRODUCING TILDE Yes, this thing: ~

  64. Also this thing

  65. A DAY IN THE LIFE...

  66. MANAGING A GROUP

  67. ADMIN

  68. DATA REQUESTS AND SCRIPTING

  69. None
  70. UNDER THE HOOD

  71. SYLLABUS AS CODE

  72. None
  73. None
  74. None
  75. None
  76. KISS

  77. GREAT SUCCESS!

  78. GREAT SUCCESS! Learners are doing fine

  79. GREAT SUCCESS! Learners are doing fine Our staff are doing

    fine
  80. GREAT SUCCESS! Learners are doing fine Our staff are doing

    fine Successfully ran end to end recruitment bootcamp
  81. SIDE QUEST

  82. Infrastructure ==

  83. Infrastructure == People's homes and property + human interactions

  84. None
  85. Infrastructure == Cars + human interaction

  86. INFRASTRUCTURE ++

  87. LET'S TALK ABOUT US

  88. LET'S TALK ABOUT US Infrastructure == Code schools + human

    interaction
  89. GOALS ++

  90. GOALS ++ Make it cheaper and easier to run code

    schools
  91. GOALS ++ Make it cheaper and easier to run code

    schools Increase quality of code school output
  92. GOALS ++ Make it cheaper and easier to run code

    schools Increase quality of code school output More schools, more grads, more high quality coders
  93. GOALS ++ Make it cheaper and easier to run code

    schools Increase quality of code school output More schools, more grads, more high quality coders Less support needed for junior coders, cheaper to manage
  94. COLLABORATION ++

  95. COLLABORATION ++ collaboration between students and staff of different schools

    via main instance
  96. COLLABORATION ++ collaboration between students and staff of different schools

    via main instance Allow other schools to improve on the platform (open source for the win)
  97. COLLABORATION ++ collaboration between students and staff of different schools

    via main instance Allow other schools to improve on the platform (open source for the win) Allow other schools to improve on syllabus
  98. COLLABORATION ++ collaboration between students and staff of different schools

    via main instance Allow other schools to improve on the platform (open source for the win) Allow other schools to improve on syllabus Allow industry partners to improve on syllabus
  99. COLLABORATION ++ collaboration between students and staff of different schools

    via main instance Allow other schools to improve on the platform (open source for the win) Allow other schools to improve on syllabus Allow industry partners to improve on syllabus Easier in for volunteers and mentors across network
  100. TRUST ++

  101. TRUST ++ Every alt ed code school is different =>

    new industry partnerships == risky
  102. TRUST ++ Every alt ed code school is different =>

    new industry partnerships == risky schools can leverage quality checking mechanisms built into platform
  103. TRUST ++ Every alt ed code school is different =>

    new industry partnerships == risky schools can leverage quality checking mechanisms built into platform Partners get easy access to student stats and reports, see growth, progress, code
  104. TRUST ++ Every alt ed code school is different =>

    new industry partnerships == risky schools can leverage quality checking mechanisms built into platform Partners get easy access to student stats and reports, see growth, progress, code Partners get to vet the syllabus, actually look at how outcomes are proven
  105. TRUST ++ Every alt ed code school is different =>

    new industry partnerships == risky schools can leverage quality checking mechanisms built into platform Partners get easy access to student stats and reports, see growth, progress, code Partners get to vet the syllabus, actually look at how outcomes are proven Risk --
  106. AND SO THE AFRICAN CODING NETWORK WAS BORN

  107. None
  108. LINKZ Hactoberfest event Tilde repo Syllabus repo Umuzi ACN homepage

    ACN on Medium