Last week, I spoke at CUSEC (Canadian Undergraduate Software Engineering Conference) in Montreal. I really enjoy speaking with students and learning what they are working on. They are the future of our industry! I was so impressed by the level of organization and the kindness and thoughtfulness of the CUSEC organizing committee who were all students from various universities across Canada. I hope that you all are enjoying some much needed rest after your tremendous work in the months approaching the conference and last week.
Some of of their thoughtful gestures included handwritten thank you notes to speakers. They had organized speakers lunches and dinners. They arranged times for AV checks hours before the your talk. They gave speakers a gift bag of things that might be useful during the conference – lip balm, kleenex, hand sanitizer, snacks, a tuque, a t-shirt. I felt so welcome and will be recommending this conference to others. Neither the organizing committee nor the speakers were all pale and/or male. I think a lot of organizers of other conferences could learn a lot from these students because a lot of industry conferences fail at this metric. I really enjoyed the other speaker’s talks as well and wish I could have stayed for the rest of the conference. I’ll have to watch them online as I had to leave Thursday night because I had an appointment I had to attend in Ottawa on Friday.
My talk was about one of my favourite things to do, replacing parts of running distributed systems. Thank you to Sébastien Roy for inviting me to speak and to Anushka Paliwal for introducing me before my talk.
I really enjoyed preparing and delivering this talk. (Sidebar: I took the picture on the title slide while snowshoeing in Gatineau Parc near Wakefield, which is spectacular). When I’m preparing for a talk I really spend a lot of time thinking about the background of the audience and what they can get out of a talk. The audience is mostly students, and they are studying different areas of software engineering so I tried to make the talk pretty general. Understanding existing code bases, how to read them and how they evolve is a useful skill to share. I had a lot of positive feedback from attendees about the talk – how talking about the release process is great because this is a often an overlooked part of software development.
The talk was 20 minutes in length exactly. When I was writing the talk, I had about 10 other slides that I removed. Perhaps some day I could give this talk in an expanded format. There is certainly a lot of material to cover in this subject area.
After my talk, I talked to a lot of students and gave away a lot of fox stickers. Here are some of the questions that came up that I thought I could answer here as well
- How many lines of code changed during the Firefox Quantum release? See https://blog.mozilla.org/firefox/the-new-firefox-by-the-numbers/
- What is the process to I apply for an internship at Mozilla? The internship process at Mozilla starts in the fall for summer internships. The interview process usually starts in October/November and continues until each position is filled. There are still internship positions listed on the web page, so if you are interested, now is the time to apply.
- What do you look for when interviewing intern candidates? I interviewed many candidates for our Python internships this past fall. At Mozilla, we have a online technical screening test for applicants. If you proceed past that, you will have some more interviews that dig deeper into technical questions and your approach to problem solving as well as your communication skills. Personally, I like to focus on past work as a predictor of future performance. So we would have conversations about past work and school projects you worked on. I wrote a blog post a couple of years ago about preparing for interviews, with the caveat that it is more geared toward hiring for fulltime positions. Also, I have a very strong no asshole rule when interviewing candidates and have some questions to weed that out.
- Are you considered a team player if you go home on time? You should do your work during the work day and then go home and do non-work stuff. Otherwise you could burn out or get RSI. Being a team player is getting your work done and helping your coworkers succeed, not being at work all the time so that the rest of your life suffers.
- What Beyonce song are the lyrics from? On slide 24 I include some Beyonce lyrics about saying goodbye as a way to illustrate the how you may feel about about deleting code you’ve worked on for many years. The lyrics are from “It’s Hard to Say Goodbye” from the Dreamgirls soundtrack.
- How do deal with people leaving rude comments on your PRs in open source? Well, we’ll have to meet for coffee for that because that’s a long conversation.
If you are ever invited to speak at CUSEC, I highly recommend saying yes. The organization is impeccable, the organizers were kind and thoughtful, and the talks were interesting and came from diverse perspectives. Huge kudos to everyone involved.