Thursday November 16, I had the opportunity to participate in a panel at the University of Ottawa on Leading Your Own Career that was organized by the Software Engineering Student Association. Thank you to all of the students who organized it, especially Melody Habbouche. I enjoyed it tremendously and really enjoyed speaking with all of you. It was really fantastic to discuss the state tech careers with other folks from a variety of companies in the Ottawa area too. I really appreciated their perspective and candour. I also enjoyed meeting you all in person!
This panel was organized as project by students as part of a class on Engineering Leadership taught by Dr. Catherine Mavriplis. What a great project!
The questions for the panelists were given to us in advance so that we would have a chance to prepare our thoughts. I wrote my notes down to prepare so I thought I’d share them. These aren’t the exact words that I used the panel, but they are pretty close. I also added some notes to reflect some comments I made during the panel.
These notes just reflect my experience. They are not intended to be advice of the path you should take in your career. I must also acknowledge my privilege. I am a straight, white, cisgender woman who was born in Canada. I grew up in a household where learning was encouraged and I had access to a computer from the age of nine since my Dad also spent his entire career in the tech industry. I also live in a city where there are many job opportunities for my skills. My husband has always been a champion for my work and shares in childcare and household responsibilities. With that caveat, here are my notes:
1. How did you figure out what kind of development work you wanted to do? E.g. what your niche is?
My approach has been to do what I like. There are lots of opportunities in software, you might as well do something that is fun every day. I don’t like front end work. I love large distributed systems, debugging them, making them more scalable and more efficient. I like learning new things, fixing them, and moving on to learn something new. I like building large build and release pipelines and seeing us ship complex open source projects from them to millions of users. It makes me happy. And I’ve been lucky to have the opportunity to work on many of them, to make the more efficient, upgrade the underlying machinations of them to new technology while they continue to run in place. That is kind of magic to me.
2. As a university student looking for internships who finds it hard to balance academic and side projects, do you look more for involvement outside of campus, side projects and taking initiatives outside the curriculum or do you value higher academic standing?
Grades are of diminishing importance the longer away you are from school. If you’re planning to attend grad school, obviously that’s a different situation. I’m interviewing interns right now for next summer. I don’t really look at the GPA. That being said, most of the people who pass our tech screening test have high GPAs because it indicates a mastery of the course material.*
What I do care about is that you can show me your approach to problem solving. Are you detail oriented? Do you have good debugging skills? How do you interact with others? Are you able to help others learn new skills or are you dismissive of people who are not at the same skill level as you on a particular toolset? Are you a self-directed learner? Can you communicate why we should use a particular technical solution?
I also think it’s really important to have a life outside of the tech industry. One of the problems I see on a recurring basis with the tech industry is that we are very disconnected from the impact of our large platforms on our local communities. So I would really encourage you to volunteer with different organizations, join athletic clubs, write for the school paper, work in theatre do something you find rewarding outside the tech bubble. Some of these volunteer opportunities will allow you to use your tech skills for good. Personally, I really regret not having more time to do different things during university. I had a lot of part-time jobs because it was a struggle for me to pay for tuition and housing. **
3. What is the coolest project you’ve ever worked on and what non-technical skills played an important role in completing this project.
This is a difficult question. I’ve worked on a lot of interesting projects. Worked a committer on two major open source projects. Eclipse was shipped to millions of users, Firefox is shipped to hundreds millions of users. After a while that feels routine because that is that just what you do every day. I’ve written a chapter for a book on open source architecture, organized events and spoken at conferences, taught a graduate student workshop on release engineering. One week when I worked at IBM I got to teach Lego Mindstorms (robotics) to girls and I always think that was a great week, because I was paid to play with Lego.
But I like to think that the thing that I have done that has had the most impact is the opportunity to mentor others, especially interns and new hires. To see people progress from understanding the code base, to help them implement a new feature or system, and deploy the code to production. And then to see them understand the limitations and potential of that code, and make suggestions about how it can be improved. I find that very experience very valuable. I read this statement few years ago, and I still think about it all the time, that the output of a senior engineer is a new group of senior engineers. It is our role to mentor others and to help them level up. So for this role, empathy, patience, understanding and sharp communications skills are needed. And by the way, you learn a lot from teaching others that gives you a fresh perspective to the work you do, and how it can be improved.
4. As a CS student, is it better to be specialized in one subject of matter or be diverse and mediocre in many subjects? and once you specialize in one field, is it hard to transition immediately to another field meanwhile keeping your seniority? Basically generalist vs. specialist.
Everything you learned in school will change and you will have to learn something else. I think school gives you the opportunity to experience a lot of different subject areas: databases, front end or back end work, mobile, cryptography, data science, different languages. What do you find interesting and what to dig into to learn more? I think if you are willing to spend time learning and work an environment that supports that growth, you will have lots of opportunities.
5. How have you managed to address either career-uncertainty when your company is facing hard times? E.g. fear of losing a large client. Or self-uncertainty when working on a project and feeling like an imposter? E.g. imposter syndrome
Career uncertainty: Well, do the work to the best of your ability. In the end some things are beyond your control. An investor may pull funding for a startup. A competitor may bring out a product that kills demand for yours. Employee morale may decline because the company focuses on the short-term stock price versus delighting customers with their products.
I read a summary of a panel on “Attracting and Retaining a Diverse Workforce” from the LISA conference a few weeks ago and one of the comments that really resonated with me was “skill up before you ship out”. In other words, if you are thinking of changing jobs, start to learn some new things so your skills are current. Keep in contact with your coworkers at the different companies you’ve worked at, they may be able to help you find your next opportunity. Ensure you have a good reputation as someone people would like to work with. Ottawa has a great meetup community for various topics – JS, Python, AWS and so on where you can learn from others in the field and make new contacts. You can present at conferences or write a blog about the work you do. This improves your communication skills and makes your work more visible to the larger tech community.
When you’re at your current job, think about what you would like to learn next, will your current company provide that? If not, make a list of companies that offer that opportunity and check every so often if they have openings or check in with people who you know at those organizations. We are really lucky that we work in an industry where there are more opportunities than people to fill them. Most people aren’t dealing with recruiter emails on an ongoing basis in other industries.
Imposter Syndrome: Imposter syndrome is your brain lying to you about what you can do. It is particularly difficult when you belong to a group that is underrepresented in the tech industry (e.g. not a straight white male) because people often challenge you to prove to them that you are indeed technical. I’ve been told multiple times at conferences, in volunteer groups or sports activities that I don’t look like a developer and asked if I really write code. And that is really frustrating to deal with, because you just want to do the work and people keep telling you that you don’t belong.
To give myself confidence, I tend to think about all the projects I’ve completed before in the past, and try to gain confidence from rethinking my past accomplishments. Go through the code or specs for a project before diving in. Ask a lot of questions when you get stuck, don’t just spin your wheels.
Find your tribe. This may be your co-workers or people in an outside group. For instance, I belong to a 2000+ women in tech Slack group and they are super supportive and helpful. There are also groups for other vectors of diversity such as LGBTQ+ or black engineers, or folks who are new Canadians . These groups can be very supportive for people who are underrepresented in tech and provide of community of people with similar experiences.
The panel closed up with some conclusions and various other comments. My closing comment was to have a life outside of tech, because sitting at a desk all day is bad for your body and Repetitive strain injury (RSI) is really painful. I also recommended reading The Manager’s path by Camille Fournier, even if you have don’t have intentions of moving into management, because it has extremely valuable advice about how to make an impact as you progress in your career. (I also wrote a review of this book)
* I thought a lot about this answer over the weekend. Unfortunately due to bias, people who are underrepresented in tech may have to reach a higher bar with grades because of bias in hiring that skews toward with the same background and interests. So they have to be seen as better to be seen as equal. The Harvard Business Review has a lot of research articles on this topic.
** I’m going to write a separate blog post about side projects because this was such a huge topic at the panel.
At the end of the panel, I set up a table with Firefox stickers and copies of Mozilla internship job descriptions at the mini-career fair. I had a lot of great conversations with students about internships. So much enthusiasm and interest! Several students remarked that they tried the Firefox Quantum that we had released on Tuesday and liked that it was so fast! That was really interesting because as a remote employee, I don’t get that sort of feedback in person often. So that felt really good. I referred them to Lin Clark’s blog post about how we made Firefox faster which is a really interesting from a software architecture perspective.
I got feedback from a few women engineers that I had inspired them. This made me so happy. They said that they were unsure about applying for internships because they weren’t sure if they had the right skills yet because they were in first or second year. I told them to act like Mindy Kaling and go through life with the confidence of a mediocre white man and apply for those internships. (Mindy Kaling’s words are actually different, but have the same sentiment).
I also had a lot of questions about how many side projects they should work on and what their GitHub profiles should look like. What do I do in my job day to day? Do I travel for work? Are there many other women on my team? What projects are do interns work on? How does the mentorship process work? What sort of projects do interns work on? What’s it like to work remotely? What do you like best about your job? What do you like the least? Can you describe Mozilla’s VR story? (Sorry had to refer you to a web page, that’s not my area of expertise). Anyways, it was a lot of fun, I enjoyed speaking to all of you. You are all an inspiration to me and I look forward to hearing about your future careers.