[00:00.000 --> 00:12.000] Okay, all right, is the mic working? [00:12.000 --> 00:13.000] Yeah. [00:13.000 --> 00:14.000] Yeah. [00:14.000 --> 00:15.000] All right. [00:15.000 --> 00:16.000] Great. [00:16.000 --> 00:17.000] Okay. [00:17.000 --> 00:18.000] All right. [00:18.000 --> 00:19.000] Welcome, everyone. [00:19.000 --> 00:22.800] I'm going to talk about a program that I've started at Red Hat called Kernel Development [00:22.800 --> 00:29.360] Learning Pipeline that I run with a small group of engineers kind of as a side project. [00:29.360 --> 00:35.280] So first, I'll talk about what it is, first of all, why it's a good idea, why we think [00:35.280 --> 00:40.000] it's a good idea and we're doing it, a little bit about the program and some of the growth [00:40.000 --> 00:46.760] that we've had in the program over the past year, two years approximately, and then conclude [00:46.760 --> 00:50.960] with some resources about the program. [00:50.960 --> 00:53.240] So first of all, what is KDLP? [00:53.240 --> 00:57.760] So that stands for Kernel Development Learning Pipeline, credit for that acronym to Julia [00:57.760 --> 01:05.280] Denham, actually, and we are building a comprehensive pipeline for Linux kernel talent and low-level [01:05.280 --> 01:11.200] talent more generally, because as it turns out, there's not a lot of younger people getting [01:11.200 --> 01:12.200] into the kernel. [01:12.200 --> 01:18.520] It's not an extremely popular area of study, it's barely really taught in school. [01:18.520 --> 01:24.920] So right now, the main component is we have a course that we're teaching at UMass Lowell [01:24.920 --> 01:28.440] and also on the Linux Foundation's platform. [01:28.440 --> 01:33.720] We are trying to recruit interns from this course and from this program and through kind [01:33.720 --> 01:35.360] of our network. [01:35.360 --> 01:39.040] We bring people in and then they serve as TAs and help develop the course and improve [01:39.040 --> 01:40.880] the content. [01:40.880 --> 01:46.240] And then ideally, we bring them in and recruit them full-time, that's the goal. [01:46.240 --> 01:48.640] So yeah, why is this a good idea? [01:48.640 --> 01:54.600] So like I was saying, a lot of senior Linux kernel engineers are getting somewhat close [01:54.600 --> 01:55.600] to retirement. [01:55.600 --> 01:59.800] That's kind of, definitely a much higher, I think, average age in kernel and in like [01:59.800 --> 02:05.280] low-level engineering, at least in the US that I've noticed, than in other areas of [02:05.280 --> 02:06.280] software engineering. [02:06.280 --> 02:11.480] And it takes a very long time for people to learn the Linux kernel, especially today, [02:11.480 --> 02:16.640] because a lot of people don't even learn C in school and they're generally separated [02:16.640 --> 02:20.280] from a lot of the low-level computer science concepts. [02:20.280 --> 02:25.040] Things that people 20, 30, 40 years ago, so I'm told, were learned kind of as a standard [02:25.040 --> 02:26.040] thing. [02:26.040 --> 02:30.240] Today, it's sort of a niche topic. [02:30.240 --> 02:35.560] There are people getting into it, but only kind of in-ditch communities at certain schools [02:35.560 --> 02:40.800] if you're exposed to certain people or certain online communities. [02:40.800 --> 02:43.560] So the kernel itself is barely taught. [02:43.560 --> 02:46.680] People take maybe one class in opening systems and a lot of the tools, like some of the more [02:46.680 --> 02:50.000] advanced get usage, for example. [02:50.000 --> 02:51.360] It's difficult to learn that kind of stuff. [02:51.360 --> 02:54.760] How do people learn how to do email patches without trying and failing and just getting [02:54.760 --> 02:55.760] roasted online? [02:55.760 --> 02:58.160] It's kind of difficult. [02:58.160 --> 03:02.080] So for a lot of companies, it's difficult to find talent. [03:02.080 --> 03:07.160] I mean, I know at Red Hat, it can be somewhat difficult to find people who have some Linux [03:07.160 --> 03:11.000] kernel knowledge and are actually interested in doing it. [03:11.000 --> 03:14.240] There's lots of people who are capable of doing it and just maybe don't like it that [03:14.240 --> 03:15.240] much. [03:15.240 --> 03:20.320] So, of course, the way that we're pitching this to Red Hat and the way that it's a good [03:20.320 --> 03:24.240] idea for any company is that we think we can bring more value to the company for a lower [03:24.240 --> 03:25.240] cost. [03:25.240 --> 03:29.680] But for the community, what we are trying to bring is to train the next generation of [03:29.680 --> 03:34.840] developers from all sorts of different backgrounds, as opposed to just people who happen to bump [03:34.840 --> 03:38.320] into somebody at a recruiting event, which is how I got into the kernel. [03:38.320 --> 03:42.480] I just happened to run into somebody at an event that he wasn't even supposed to be [03:42.480 --> 03:45.600] at, in fact. [03:45.600 --> 03:48.080] So a little overview. [03:48.080 --> 03:51.480] So there's kind of three main sections of the program. [03:51.480 --> 03:57.920] So the first is this kernel development course that we've developed that is taught at UMass [03:57.920 --> 03:58.920] Lool. [03:58.920 --> 04:02.840] So we've created this from scratch using, originally based on the Linux device drivers [04:02.840 --> 04:05.600] third edition book, but we've kind of gone further from that. [04:05.600 --> 04:09.760] That's actually one of the latest books on Linux kernel engineering and it's published [04:09.760 --> 04:12.920] in 2005. [04:12.920 --> 04:18.040] But yeah, so we've been working on developing our own curriculum with a number of different [04:18.040 --> 04:26.440] labs and some slide decks and kind of a whole, you know, a set of things that people could [04:26.440 --> 04:28.600] do to learn the kernel. [04:28.600 --> 04:32.560] And then from there, we tried to bring people into internships as we're able to do that [04:32.560 --> 04:38.120] or other kind of more second level or hands on experiences where they can further develop [04:38.120 --> 04:42.920] those skills and then ideally bring them in as full time engineers at Red Hat or I mean [04:42.920 --> 04:46.000] the beauty of open source is if they get recruited somewhere else or if they go work [04:46.000 --> 04:49.280] somewhere else in the open source community, that's still, that's a win for everyone in [04:49.280 --> 04:50.280] the community. [04:50.280 --> 04:52.960] It's a win for all the companies working with the community because everyone working on [04:52.960 --> 04:57.160] the kernel is working on the kernel. [04:57.160 --> 04:59.200] So a little more about the course. [04:59.200 --> 05:02.520] The goal is to introduce students to Linux kernel development. [05:02.520 --> 05:05.280] You know, obviously we can't teach them the entire kernel. [05:05.280 --> 05:09.520] We can barely even introduce them to one subsystem, but the goal is to teach them kind of what [05:09.520 --> 05:14.080] they need to learn to teach themselves and to teach them what they need to know to work [05:14.080 --> 05:19.080] in one of these open source communities, specifically the Linux kernel community, but those skills [05:19.080 --> 05:24.840] I think are pretty applicable to other kind of more niche open source areas that can be [05:24.840 --> 05:28.400] somewhat intimidating for a lot of people to get into. [05:28.400 --> 05:31.160] We mostly just require C language skills. [05:31.160 --> 05:34.480] I mean that's obviously the most important thing when you're working in the kernel. [05:34.480 --> 05:41.120] That's a basic Linux experience, some programming experience in general, but not need a ton [05:41.120 --> 05:46.680] of Linux kernel experience to get started, but really the most critical thing to see. [05:46.680 --> 05:54.480] So we teach kind of an overview of just various kernel features and subsystems, kind of describe [05:54.480 --> 06:02.280] like a map of the kernel, what there is, what, you know, how the different pieces connect [06:02.280 --> 06:05.280] together, how you can interact with it. [06:05.280 --> 06:10.360] We approach through device driver development, that's a good way to get people into, you [06:10.360 --> 06:14.040] know, to work with a lot of the different APIs, because to write a device driver you [06:14.040 --> 06:18.520] need to interact with a lot of different areas and you end up building something that's somewhat [06:18.520 --> 06:24.480] kind of complete piece that works on its own, and then we introduce people to more advanced [06:24.480 --> 06:25.480] usage of Git. [06:25.480 --> 06:27.800] I mean people may be familiar with GitHub, but you know, believe it or not, a lot of [06:27.800 --> 06:31.000] people don't know the difference between Git and GitHub. [06:31.000 --> 06:36.140] So we help out with that and get them started with email patches and rebases and things [06:36.140 --> 06:37.640] like that. [06:37.640 --> 06:42.000] We also talk about BPF Trace and other tracing, which are things that they, I don't think [06:42.000 --> 06:46.760] BPF Trace or BPF in general is taught in any school that I know of, at least not in undergrad [06:46.760 --> 06:52.400] courses, you know, NCSCope and other ways to explore large projects and repositories, [06:52.400 --> 06:57.600] because you know, in a computer science program people generally don't get exposed to working [06:57.600 --> 06:59.720] on like large ongoing projects. [06:59.720 --> 07:04.160] You know, you work on some, you know, one and done thing, and you know, then you send [07:04.160 --> 07:06.880] it in and no one else looks at it and you get your grade and you move on, right? [07:06.880 --> 07:11.520] So we're introducing people to work on larger code bases, which is something that's somewhat [07:11.520 --> 07:13.560] unusual for a university course. [07:13.560 --> 07:17.960] So of course, all these course materials and the assignments completely open source. [07:17.960 --> 07:22.920] We've linked it, it's all on our website, and we're continuously improving it. [07:22.920 --> 07:27.360] You know, the source for the website is also on GitHub, you know, if anyone has any suggestions [07:27.360 --> 07:30.440] or changes, we're always open to them. [07:30.440 --> 07:34.240] So we have undergraduate and graduate level university courses that run at UMass Lowell [07:34.240 --> 07:36.960] that we've created over the past couple of years. [07:36.960 --> 07:41.320] It became kind of a full-fledged course in the fall semester of last year. [07:41.320 --> 07:43.000] So it's relatively new. [07:43.000 --> 07:47.560] And this semester we were also running it as a kind of dual program with the Linux Foundation's [07:47.560 --> 07:50.000] mentorship platform. [07:50.000 --> 07:53.960] So we have people applying on there to, I will also talk a little bit more about that [07:53.960 --> 07:54.960] later. [07:54.960 --> 08:01.560] We run through the course and kind of work with at the same schedule and at the same [08:01.560 --> 08:05.840] pace as the people at UMass Lowell, but they're from around the world and they don't need [08:05.840 --> 08:07.200] to be enrolled as students. [08:07.200 --> 08:09.040] They can come from anywhere, right? [08:09.040 --> 08:13.560] And kind of the bottom line is we try to reimagine how to teach this kind of material from first [08:13.560 --> 08:16.920] principles because it doesn't really make sense to teach it from a typical, like memorize [08:16.920 --> 08:20.560] this and do the exam kind of perspective, right? [08:20.560 --> 08:25.820] The goal is to get people to be able to explain things in their own words and to work on open [08:25.820 --> 08:29.320] source projects and work in open source communities. [08:29.320 --> 08:33.760] So we've replaced exams with presentations where they actually explain the work that [08:33.760 --> 08:38.480] they've done in their own words to their peers. [08:38.480 --> 08:43.480] So from there we recruit people as interns and try to bring them in. [08:43.480 --> 08:50.440] So we find people in the course who are enthusiastic and capable about so by the time we bring [08:50.440 --> 08:53.560] them in to the internship, they also have a lot of prerequisite knowledge that they [08:53.560 --> 08:55.320] would need. [08:55.320 --> 08:59.400] And so they're able to hit the ground running and do a lot more in their three to six month [08:59.400 --> 09:05.160] period or longer than they otherwise would have because actually, so I had a, the manager [09:05.160 --> 09:09.440] who hired me at Red Hat originally as a co-op, he said he didn't like to do summer internships [09:09.440 --> 09:13.480] in the kernel because by the time three months are over, they've just gotten on boarded. [09:13.480 --> 09:18.000] They've just started to understand how to work with a Linux kernel and then it's over [09:18.000 --> 09:19.600] and then they got to go. [09:19.600 --> 09:21.000] So he only really did co-ops. [09:21.000 --> 09:24.360] But the goal with this is if we kind of vet people ahead of time and we give them the [09:24.360 --> 09:27.360] skills that they need and give them kind of, you know, the get skills and the, you know, [09:27.360 --> 09:30.800] they compile the kernel and they have the background, they actually can get some value [09:30.800 --> 09:36.000] from an internship and we're more likely to bring people into internships who actually [09:36.000 --> 09:39.080] want to work in the kernel and then they're more likely to go off and, you know, and work [09:39.080 --> 09:43.380] in the kernel in general or work in open source communities. [09:43.380 --> 09:47.560] So we pair them up with rail engineers and, you know, they work on various initiatives [09:47.560 --> 09:53.600] within Red Hat that are, you know, that are, need people to learn these kind of new and [09:53.600 --> 09:57.040] old combinations of old and new skills. [09:57.040 --> 10:01.320] But the goal is to train these new people to work in those areas. [10:01.320 --> 10:04.840] So we also bring them in to help with our program and we've had people come in, they [10:04.840 --> 10:07.760] take the course and then they come in and they turn around and then they're TAs and [10:07.760 --> 10:09.200] they work on improving the course. [10:09.200 --> 10:12.080] Maybe they do a couple lectures here and there. [10:12.080 --> 10:17.000] They do some grading and they kind of service TAs. [10:17.000 --> 10:22.080] So another thing that we are doing is we have this kind of new kernel devs group within [10:22.080 --> 10:24.680] Red Hat, which I thought I'll just briefly mention. [10:24.680 --> 10:28.840] It's a little bit tangential, but, you know, once people get into Red Hat and when people [10:28.840 --> 10:35.520] are working in the kernel, especially in a remote job, which a lot of these positions [10:35.520 --> 10:41.560] are, people get very separated, they get very siloed, there's not a lot of socialization. [10:41.560 --> 10:46.160] So we run a group to, you know, just bring people together with, for a meeting with very [10:46.160 --> 10:47.160] little agenda. [10:47.160 --> 10:51.160] You know, occasionally we have a presentation here and there, but just to talk about things [10:51.160 --> 10:57.160] and share concepts and tools and questions and, you know, it's a Red Hat specific thing, [10:57.160 --> 11:01.120] so they can ask about specific things related to their job and a place where, you know, [11:01.120 --> 11:05.200] there's, I mean, managers are allowed, but it's not a specific structured meeting for [11:05.200 --> 11:06.200] a business purpose. [11:06.200 --> 11:10.160] And I think people who, you know, you might get that in an office somewhere when you're [11:10.160 --> 11:14.520] just walking around and talking to people, but it's a little bit more difficult to get [11:14.520 --> 11:15.880] when you're in a remote position. [11:15.880 --> 11:21.520] So we also bring interns who we've recruited into that group, you know, and people from [11:21.520 --> 11:25.640] elsewhere within Red Hat who are interested in the kernel and they can ask questions and [11:25.640 --> 11:30.840] find resources and, you know, if they enjoy it, they can switch into the kernel. [11:30.840 --> 11:34.280] Because there are actually a number of people who are interested and they just don't know [11:34.280 --> 11:35.280] where to start. [11:35.280 --> 11:39.980] They're just not a lot of good resources. [11:39.980 --> 11:45.440] So now I'll talk about some of the growth of this program over the last couple of years. [11:45.440 --> 11:51.160] So first of all, we've partnered with Red Hat's main educational initiative, Red Hat Academy, [11:51.160 --> 11:54.720] which we found out about only through doing this program. [11:54.720 --> 12:00.400] But they work with universities mainly on delivering and facilitating kind of systems [12:00.400 --> 12:06.400] management, you know, what do you call it, system administration and cyber reliability [12:06.400 --> 12:12.400] engineering, kind of the more, you know, the standard kind of Red Hat certifications that [12:12.400 --> 12:13.920] they do. [12:13.920 --> 12:15.680] But they don't have much software engineering. [12:15.680 --> 12:18.840] In fact, I don't think they had any software engineering component at all. [12:18.840 --> 12:24.400] So they were happy to work with us and, you know, we're happy to work with them. [12:24.400 --> 12:28.480] And they made us these nice posters, which we have down here if anyone's interested. [12:28.480 --> 12:33.840] Or I guess they're called like leave behind sheets, technically. [12:33.840 --> 12:39.880] We also ran a workshop last year for interns and co-ops in Ireland. [12:39.880 --> 12:44.000] And that was just kind of every other week, kind of a casual thing, you know, over time [12:44.000 --> 12:45.960] we had fewer and fewer people, to be honest. [12:45.960 --> 12:50.240] But the people who stayed around really enjoyed it and I think hopefully some of them will [12:50.240 --> 12:56.480] end up working in the space or, you know, in open source generally, hopefully the feedback [12:56.480 --> 13:00.160] for them was generally fairly positive. [13:00.160 --> 13:03.600] We've also been connecting to various educational programs in different countries. [13:03.600 --> 13:07.560] A lot of this stuff's very preliminary, but we're hoping to kind of package what we've [13:07.560 --> 13:12.480] done in our course in a way that can be replicated at other places and other universities and [13:12.480 --> 13:16.200] other countries to bring people in from different places in the world. [13:16.200 --> 13:20.080] And then we've also partnered with the Linux Foundation, specifically their mentorship [13:20.080 --> 13:24.480] platform, which I will talk about next. [13:24.480 --> 13:27.760] So like I was saying, the Linux Foundation. [13:27.760 --> 13:36.600] So we have just put our course on the Linux Foundation's platform essentially as a mentorship, [13:36.600 --> 13:39.680] but it's the same thing as the course. [13:39.680 --> 13:43.400] We've worked with Shua Khan, she's been very helpful. [13:43.400 --> 13:48.360] She runs this Linux Foundation's mentorship platform and, you know, great person to get [13:48.360 --> 13:52.600] in touch with if you're interested in learning the kernel or have questions about this. [13:52.600 --> 13:57.280] She's also a kernel maintainer if you're not familiar. [13:57.280 --> 14:03.160] So we are running the same course, and this is kind of experimental, we're running the [14:03.160 --> 14:08.720] same schedule with the same assignments with a group who are doing the course for credit [14:08.720 --> 14:15.560] at UMass Lowell, and at the same time, people who are just, they just apply it online, and [14:15.560 --> 14:16.720] they're just doing it. [14:16.720 --> 14:19.800] There are people, you know, just on random continents, some of them are students, some [14:19.800 --> 14:24.560] of them are working, some of them are doing, you know, I have no idea, honestly, some of [14:24.560 --> 14:31.120] them are just probably, you know, having a good time, but they're doing the same assignments [14:31.120 --> 14:35.600] and on the same schedule, and, you know, they submit their assignments to a different mailing [14:35.600 --> 14:42.040] list than the UMass Lowell cohort, but they're in a shared Discord server and they're interacting, [14:42.040 --> 14:46.960] and, you know, we're seeing how that goes, and it's an extremely diverse group of mentees. [14:46.960 --> 14:52.480] We have people from, I think like five different continents, you know, people from various places [14:52.480 --> 14:57.920] in Europe, a couple in America, South America, someone in Mexico, like three or four from [14:57.920 --> 15:00.360] Africa, Nigeria, Kenya. [15:00.360 --> 15:06.720] So a very interesting group, a couple in India as well. [15:06.720 --> 15:10.080] So a couple of statistics on what we've been able to do. [15:10.080 --> 15:14.400] It's a fairly new program, but I am happy to show some results. [15:14.400 --> 15:20.280] We were able to hire two people full-time from internships who originally did the, went [15:20.280 --> 15:21.780] through the class. [15:21.780 --> 15:23.720] This was during a year that was very difficult to hire people. [15:23.720 --> 15:29.000] There was a hiring freeze, so I think two is still, it's a lot more than zero. [15:29.000 --> 15:33.340] Two people who did co-ops or internships with us were recruited to Amazon and Microsoft, [15:33.340 --> 15:36.760] but one of them liked Red Hat so much and liked working with Open Source so much better [15:36.760 --> 15:41.240] than Amazon that he is pretty interested in coming back, leaving Amazon and coming back [15:41.240 --> 15:43.920] to Red Hat, which is pretty cool. [15:43.920 --> 15:47.640] But overall, we've had seven interns and co-ops who have been trained and have gone [15:47.640 --> 15:52.800] through this particular program via this KDLP thing. [15:52.800 --> 15:57.400] And last semester, we had our biggest class, well, until this semester, we had 12 students, [15:57.400 --> 16:01.640] undergraduate, mostly graduate students, graduate and undergraduate courses are the same, which [16:01.640 --> 16:04.920] I found out, same content. [16:04.920 --> 16:08.680] And we have about a dozen, a couple more than a dozen students this semester, and the course [16:08.680 --> 16:09.960] is actively going on right now. [16:09.960 --> 16:15.800] It just started a couple of weeks ago, and I think about a dozen in the LFX mentorship [16:15.800 --> 16:16.800] as well. [16:16.800 --> 16:23.680] And this is by far the most diverse group by gender and location, which is pretty interesting. [16:23.680 --> 16:27.680] So now, just briefly, some program information. [16:27.680 --> 16:30.000] So the team is, well, it's me. [16:30.000 --> 16:31.280] Julie Denham is a program manager. [16:31.280 --> 16:36.360] I think she's in the chat answering questions, if anyone's interested, back in Boston. [16:36.360 --> 16:41.000] Charles Marabelle, he's the content lead for the course. [16:41.000 --> 16:45.920] And Dennis Alexandrov, he is an intern who's been extended and also TA. [16:45.920 --> 16:50.880] He's been working on the course since last summer, originally went through the course [16:50.880 --> 16:54.480] from McGill University. [16:54.480 --> 16:55.480] And yeah, acknowledgments. [16:55.480 --> 17:00.640] I just want to give a shout out to two Red Hatters in particular. [17:00.640 --> 17:03.720] First Heidi Dempsey, the research and innovation director in North America. [17:03.720 --> 17:07.480] She's been a longtime supporter of this program from the beginning, from like, you know, before [17:07.480 --> 17:11.200] it was even an idea, you know, when we were talking about doing something in, like, February [17:11.200 --> 17:12.200] 2019. [17:12.200 --> 17:20.240] So her support's been great, and, you know, recommend, you know, doing research and innovation [17:20.240 --> 17:22.960] with her if anyone's, you know, interested in doing that. [17:22.960 --> 17:26.960] And of course, Mike McGrath, the vice president of RELL, who is the executive sponsor for [17:26.960 --> 17:29.920] this program within Red Hat. [17:29.920 --> 17:32.520] Now, a couple resources. [17:32.520 --> 17:37.360] We have a mailing list, which is linked up there, which we pretty much just used for [17:37.360 --> 17:41.320] giving a quarterly update newsletter, which we just started this quarter. [17:41.320 --> 17:45.520] And it's read only, so you're not going to get spammed with a ton of information. [17:45.520 --> 17:50.360] If you subscribe to that mailing list, you get invited to a weekly office hour session. [17:50.360 --> 17:56.480] That happens Tuesday at noon Eastern Standard Time, which just for asking questions about [17:56.480 --> 18:01.320] the program or the kernel in general, or you can just send me or one of us an email. [18:01.320 --> 18:03.120] And then on the right, we have our website. [18:03.120 --> 18:08.520] We have a section of our website that talks about the information, specifically the structure [18:08.520 --> 18:10.720] and content of the course. [18:10.720 --> 18:14.040] We have the page on the UMass Law Catalog that talks about the, you know, that just has [18:14.040 --> 18:18.640] a course description, so in case anyone's interested in checking that out. [18:18.640 --> 18:21.600] And the mentorship page on LFX. [18:21.600 --> 18:26.080] Then down there on the bottom right, we do have a crowdfunding page on LFX. [18:26.080 --> 18:32.320] If you want to support the program development and diverse engineers, it's a very, you know, [18:32.320 --> 18:37.160] we'll be able to bring people on through that platform as TAs, potentially give them, you [18:37.160 --> 18:41.760] know, bring them on and continue them kind of beyond what we're able to do with just [18:41.760 --> 18:42.760] Red Hat. [18:42.760 --> 18:49.760] All right, any questions? [18:49.760 --> 19:08.280] Hi, I think there is an offer and demand problem. [19:08.280 --> 19:14.520] If you consider every Linux developers, it will be like 1,000 JavaScript developers. [19:14.520 --> 19:19.000] And also people at the university, if you give them the choice between JavaScript and [19:19.000 --> 19:23.280] Linux, they will have more opportunities going with the JavaScript. [19:23.280 --> 19:24.280] They cannot do a mistake. [19:24.280 --> 19:28.960] However, if they go with the kernel, like, I don't know, in my country, for example, there's [19:28.960 --> 19:33.620] a lot of, there's a lot less jobs and you have less opportunities. [19:33.620 --> 19:35.200] So what's your opinion on this? [19:35.200 --> 19:44.040] Does people know the choice between like classic software development and kernel software development? [19:44.040 --> 19:51.400] So if I understand that correctly, you're saying there's fewer jobs in the kernel. [19:51.400 --> 19:58.760] And so, you know, what would I say about, just about what, it was like 1,000 to one [19:58.760 --> 20:05.640] or something, you said, well, I mean, that's true, but the competition for those jobs is [20:05.640 --> 20:06.640] much more intense. [20:06.640 --> 20:11.200] It's much kind of broader, you know, skill area. [20:11.200 --> 20:15.600] I mean, it's definitely, you know, I'm not condemning JavaScript developers. [20:15.600 --> 20:16.600] JavaScript's fine. [20:16.600 --> 20:20.920] It's necessary, you know, the web runs on it for all its problems. [20:20.920 --> 20:26.760] But it's also true that, I mean, working in the kernel, you know, the Linux kernel, there [20:26.760 --> 20:33.640] are fewer jobs, but there are a number of very solid jobs, and it doesn't, learning [20:33.640 --> 20:38.480] Linux kernel skills is somewhat transferable to other areas of development. [20:38.480 --> 20:40.480] You don't have to work as a Linux kernel developer. [20:40.480 --> 20:44.680] You don't have to, you know, go to Red Hat and work on RHEL and do backports or whatever. [20:44.680 --> 20:45.680] Right? [20:45.680 --> 20:46.680] You can kind of just do it on your own. [20:46.680 --> 20:51.760] You can do, you know, just some other low-level project and just having knowledge of the kernel [20:51.760 --> 20:55.560] and how it works and the knowledge necessary to work on the kernel, I think, could benefit [20:55.560 --> 21:01.760] people in many other areas and just is an overall boost to people's skills that is somewhat [21:01.760 --> 21:03.520] rare to find these days. [21:03.520 --> 21:06.800] So even for a JavaScript developer, if they know how the kernel works and if they know, [21:06.800 --> 21:11.480] you know, behind the scenes, you know, what's going on at a system level, I think that is, [21:11.480 --> 21:22.240] you know, can't be anything but a good thing. [21:22.240 --> 21:23.240] Thanks for the talk. [21:23.240 --> 21:29.040] I have a question about the audience, so is it mainly targeting students at the college [21:29.040 --> 21:34.080] level and then partnering with university, or do you also consider a conversion program [21:34.080 --> 21:38.960] like existing software developers that want to switch to more low-level kernel development? [21:38.960 --> 21:44.920] Yeah, so the course at UMass Lowell is, you know, a course at UMass Lowell for people [21:44.920 --> 21:48.720] enrolled at UMass Lowell, but the program on LFX, the whole idea of putting it on there [21:48.720 --> 21:54.720] is that we could accept people from anywhere in the world doing anything, students, non-students, [21:54.720 --> 21:57.080] you know, U.S., non-U.S., whatever. [21:57.080 --> 22:02.320] So any background, as long as they have some knowledge of C, good internet access, decent [22:02.320 --> 22:06.920] English and a computer, then we can take them. [22:06.920 --> 22:12.160] The only limitation is our ability to grade the assignments and handle that many students [22:12.160 --> 22:15.480] and like the resources that we have to work on the program, because this is, you know, [22:15.480 --> 22:19.800] for the three engineers and, you know, potentially a couple more people who are interested and, [22:19.800 --> 22:23.240] you know, a couple of interns, right, it's, this is all a side project for us. [22:23.240 --> 22:25.680] Like, I'm mainly a RELL engineer. [22:25.680 --> 22:26.680] That's my main job. [22:26.680 --> 22:30.720] Like, this is just a side project, so we don't have a ton of resources and, yeah, we're basically [22:30.720 --> 22:35.160] limited by how much time and resources we have to run the program. [22:35.160 --> 22:39.080] But we're, yeah, we encourage people to apply from all sorts of different backgrounds. [22:39.080 --> 22:49.680] Okay, thank you. [22:49.680 --> 22:55.960] So back in the day when I used to participate in the development of kernel, it required [22:55.960 --> 22:59.880] us to basically build the entire mainline. [22:59.880 --> 23:03.800] Your slide showed something with Raspberry Pis. [23:03.800 --> 23:08.960] Is it feasible to build the entire kernel using a Raspberry Pi? [23:08.960 --> 23:13.120] So, that originally comes from, we used to do a lot more stuff with Raspberry Pis before [23:13.120 --> 23:14.120] the chip shortage. [23:14.120 --> 23:17.880] It became more difficult to get them and then, you know, I think generally like a lot of [23:17.880 --> 23:24.720] the introductory stuff we were doing didn't require them as much, so we moved somewhat [23:24.720 --> 23:25.720] away from them. [23:25.720 --> 23:30.040] But, yes, we did work with Raspberry Pis and we were compiling the kernel on the Raspberry [23:30.040 --> 23:31.040] Pi. [23:31.040 --> 23:36.920] So I was able to do it on, on the three, it took a lot of weird tricks and it took like [23:36.920 --> 23:41.720] a day, you know, because I think it was like single threaded, and on the four, I could [23:41.720 --> 23:42.720] do it. [23:42.720 --> 23:46.720] It was a little bit faster, but if you didn't have cooling, the system would overheat unless [23:46.720 --> 23:49.640] you used fewer than four cores. [23:49.640 --> 23:54.200] But you can do it, and in fact, you can install Fedora, you can install CentOS, and you can [23:54.200 --> 23:55.200] install Rail. [23:55.200 --> 23:56.200] Oh, yeah. [23:56.200 --> 23:57.200] Yeah, I know that. [23:57.200 --> 24:04.200] Yeah, all right, that was my question, thank you. [24:04.200 --> 24:27.200] Hey, he had said, with the, the alternate, the non-university rate for doing it, you've [24:27.200 --> 24:32.680] got people here working at the same time, possibly, I was just wondering, since it's [24:32.680 --> 24:36.600] also, you've got the same assignment schedule, what is the time commitment like for someone [24:36.600 --> 24:40.160] trying to get into it, but might have full-time work? [24:40.160 --> 24:42.320] What is the time commitment like? [24:42.320 --> 24:47.360] Because it depends how quickly you complete the assignments. [24:47.360 --> 24:57.480] Okay, so it's, well, the, the lectures are the, the sessions that we have, which are, [24:57.480 --> 25:02.520] you know, on, on Google Meet, they're also recorded and we post them there about their [25:02.520 --> 25:08.040] two of them per week, generally, and they're, they're each an hour and 15 minutes, and it [25:08.040 --> 25:11.520] goes for, you know, like a standard 12-week semester. [25:11.520 --> 25:17.760] In terms of the assignments, I mean, if you're, you know, I think at the beginning, setting [25:17.760 --> 25:21.680] up the environment, send email patches, if you haven't done that before, and compiling [25:21.680 --> 25:25.920] the kernel, and, you know, we have one assignment where you write a shell, you know, that can [25:25.920 --> 25:31.520] be, I mean, yeah, it depends how familiar you are with, with some of the concepts. [25:31.520 --> 25:38.480] But, you know, I think of it as, it's just a, like, same commitment as a, you know, maybe [25:38.480 --> 25:44.880] medium to, like, junior to senior level undergraduate computer science course, approximately. [25:44.880 --> 25:49.200] I mean, that's, that's how we're designing it. [25:49.200 --> 25:50.200] Sure. [25:50.200 --> 25:53.520] Hiya, thanks for the talk. [25:53.520 --> 25:58.880] Any of these courses, like, I'm, I'm curious about back, back-porting and forward-porting [25:58.880 --> 25:59.880] stuff. [25:59.880 --> 26:04.000] So, when, when, when you're doing this course work, are you working on a specific version [26:04.000 --> 26:05.000] of the kernel? [26:05.000 --> 26:10.640] Like, yeah, this course is going to be on 6.2, because I find that a lot of problems that [26:10.640 --> 26:15.920] I run into is, okay, this driver was just introduced, let's say, in October, but I need [26:15.920 --> 26:22.160] it on 5.13, so I need to back-port it, and that might be trivial, right, might just be [26:22.160 --> 26:27.440] copying some files, but if the API has changed in some way, it can be really difficult to [26:27.440 --> 26:32.760] figure out how it changed, because the documentation, to my knowledge, is not great there. [26:32.760 --> 26:39.280] So, is that some, something that you actually sort of discuss in these courses? [26:39.280 --> 26:42.560] We haven't done back-porting specifically. [26:42.560 --> 26:45.200] We don't, I don't think we even, we don't have any assignments that's specifically [26:45.200 --> 26:50.000] asked for, for back-ports, because we have to, we design them in a way that, you know, [26:50.000 --> 26:53.520] each student is doing, like, relatively unique work, so it's kind of, you know, and they're [26:53.520 --> 26:58.920] all posting it in a, in a public mailing list, so, you know, we need to figure out how we [26:58.920 --> 27:04.240] can kind of either generate assignments or, or figure out assignments that are basically [27:04.240 --> 27:09.560] by design, difficult to impossible to, to just, to cheat in. [27:09.560 --> 27:11.960] And so, so with back-porting, I mean, we could figure something out. [27:11.960 --> 27:13.120] We haven't really looked into it. [27:13.120 --> 27:17.480] We talk about, you know, get cherry-pick and rebase, and we talk about the, the background [27:17.480 --> 27:22.640] that you would need to do that, and I think we may have done a demonstration of it in [27:22.640 --> 27:23.640] the course. [27:23.640 --> 27:26.640] But that's a good idea. [27:26.640 --> 27:41.440] Do you anticipate that the recent admission of Rust as a programming language, at least [27:41.440 --> 27:46.280] for driver development in the Linux kernel, will cause renewed interest, especially among [27:46.280 --> 27:47.560] younger talent? [27:47.560 --> 27:50.680] And are you already anticipating for that in the program? [27:50.680 --> 27:54.200] Potentially, yeah, we've, we've discussed it, and we've heard some people talking about [27:54.200 --> 27:55.200] it. [27:55.200 --> 27:58.360] We had a few people who were in the course, who were excited about Rust, and Rust in [27:58.360 --> 27:59.360] the kernel. [27:59.360 --> 28:01.920] So we, we have seen some interest in the kernel. [28:01.920 --> 28:07.320] Probably, yeah, it's probably increased interest from young people, I would say. [28:07.320 --> 28:09.120] But personally, I need to, I need to learn Rust. [28:09.120 --> 28:10.120] I don't know Rust. [28:10.120 --> 28:31.640] Do you mind if I do a little bit of, oh, sure, yeah, they're here, but people take us [28:31.640 --> 29:00.760] with them. [29:00.760 --> 29:08.000] where you were asked, you know, to work on vice-drivers and then, you know, non-handling [29:08.000 --> 29:14.000] veterans and so on, actually, when we fly, so they were teaching us since, I think it's [29:14.000 --> 29:20.000] never been more, you know, for the people, maybe like, what are you, and you're a serious [29:20.000 --> 29:21.000] person. [29:21.000 --> 29:22.000] I mean, I'm probably fine. [29:22.000 --> 29:23.000] Sorry, let me get the mic away from you. [29:23.000 --> 29:24.000] Oh, okay. [29:24.000 --> 29:25.000] Yeah. [29:25.000 --> 29:26.000] Yeah. [29:26.000 --> 29:33.000] All right.