How to Get a Mentor Without Telling Them

Rate this content
Bookmark

Mentorship has a reputation of taking a lot of time and work. But what if it wasn't? Here are ways to get a mentor, be a mentor, and how to navigate it. I have always worked on getting mentors in every corner of my engineering career. I have mentors that do not even know they are my mentor. But I like it that way. I will go into how to get a mentor at any stage of your engineering career and how to be a good mentor/mentee.

30 min
21 Oct, 2022

Video Summary and Transcription

This Talk focuses on mentorship in software engineering and provides tips on being a good mentor and mentee. It emphasizes the importance of teaching and learning from each other, and highlights the concept of the Seagull effect in mentorship. The Talk also discusses the qualities of a good mentee and the benefits of mentorship in career growth. It explores the role of pair programming in mentorship and offers insights on managing pair programming and time management. Lastly, it suggests the benefits of having multiple mentors for diversification of knowledge and networking.

Available in Español

1. Introduction to Mentorship and Engineering

Short description:

I'm Erin Fox and I'm so excited to be here in London and talk to you all. This has been a passionate kind of project that I've come across lately. As I was refining key concepts and ideas for this talk, I realized that it should have been called, How To Get A Mentor Without Telling Them, or Secretly Get A Mentee. How to be a good mentor and a good mentee, I think, is very important. We don't really talk about how to be a good mentee. If you hate your job, but you love your company, or you love your company but you hate your job, I think mentorship can really help level that out and have a really successful career. We're going to go into mentorship, particularly engineering mentorship, and how I think that's a little different than the traditional mentorship. We'll talk about some tips of being a good mentor and a good mentee, and I have a fun example of a bad mentor experience that I've had that we'll talk through, and I have some really fun stories of my experience on how I get mentors without telling them. And mentorship, like I mentioned the slide in, has really become so natural for me. Up until a little bit ago, I was working on a promotion with my manager and she sat me down and said, you're really good at finding people to help you with things and you're not realizing how much you're helping them. And I was, like, oh, I thought I was just being really selfish. Like, I was just trying to get my job done and trying to, you know, do the day to day. But as I slowly started forming this talk, I was, like, dang, I am helping a lot of people. And we'll get more into the examples later. But naturally, asking for help, putting yourself out there, being in, like, vulnerable situations in order to become a better engineer not only ends up, like, progressing your knowledge in certain areas, but it has the ability to help others further their career, find out if there are certain roles that they want to become and maybe even establish a new thread of learning throughout a company or team. And so, I'm not afraid to be vulnerable. I'm not afraid to say I don't know a lot of things.

I'm Erin Fox and I'm so excited to be here in London and talk to you all. This has been a passionate kind of project that I've come across lately. As I was refining key concepts and ideas for this talk, I realized that it should have been called, How To Get A Mentor Without Telling Them, or Secretly Get A Mentee. Little change in the title there. It'll be fun.

Of course, I like setting myself up with some goals. How to be a good mentor and a good mentee, I think, is very important. We don't really talk about how to be a good mentee. Usually, it's mentor and so we'll go a little bit into that. There's always room for improvement in your career. If you hate your job, but you love your company, or you love your company but you hate your job, I think mentorship can really help level that out and have a really successful career.

Even if you guys are here today, you've come to watch my talk, you've come to React Advance, I think it's a great audience because, one, you're really excited to... Well, hopefully, you're excited, but you're here and you want to further your career, you're here to learn. I really think that's a good crowd to be talking to. How are we going to achieve these goals? As I mentioned, we're going to go into mentorship, particularly engineering mentorship, and how I think that's a little different than the traditional mentorship. We'll talk about some tips of being a good mentor and a good mentee, and I have a fun example of a bad mentor experience that I've had that we'll talk through, and I have some really fun stories of my experience on how I get mentors without telling them. I think it's very traditional to go up to someone and be like, hey, I want you to be my mentor, and it's like, I got a lot of PRs open, I don't have time. That's a big commitment, and I really see it as how you approach someone. I don't remember where I learned this, but if you approach someone straight on, that's very intimidating. Like, hey, do you want to be my mentor in your face? If you do the side step of, hey, want to teach me a little React for an hour a week, that's kind of my move, is approaching from the side from someone you want to learn something from. So we'll go into my tips there.

And mentorship, like I mentioned the slide in, has really become so natural for me. Up until a little bit ago, I was working on a promotion with my manager and she sat me down and said, you're really good at finding people to help you with things and you're not realizing how much you're helping them. And I was, like, oh, I thought I was just being really selfish. Like, I was just trying to get my job done and trying to, you know, do the day to day. But as I slowly started forming this talk, I was, like, dang, I am helping a lot of people. And we'll get more into the examples later. But naturally, asking for help, putting yourself out there, being in, like, vulnerable situations in order to become a better engineer not only ends up, like, progressing your knowledge in certain areas, but it has the ability to help others further their career, find out if there are certain roles that they want to become and maybe even establish a new thread of learning throughout a company or team. And so, I'm not afraid to be vulnerable. I'm not afraid to say I don't know a lot of things.

2. Approaching Mentorship and Titles

Short description:

But I'm willing to admit, I'm very good at getting mentors. I want you to walk away thinking that maybe you already have a mentee or you're a mentor to someone and you don't even know it. My definition of mentorship is teaching people what you know and then teaching them how to teach themselves. I want to be able to flip-flop the titles of mentor and mentee, so that we can learn from each other. A good mentorship involves someone who's willing to learn, share knowledge, help others, listen, and explain concepts in multiple ways.

But I'm willing to admit, I'm very good at getting mentors. I think the first thing that I mentioned about mentorship, it does feel very concrete. And so, I want you to walk away thinking that maybe you already have a mentee or you're a mentor to someone and you don't even know it. And, yeah. So, it's a slowly approaching from the side I think is kind of like a thread throughout this talk and we'll have some more specifics later.

So, let's break it down. So, my definition, a quick one, is teach people what you know and then teach them how to teach themselves. It could be explained a lot of other ways but for me that's the main concept of engineering specific mentorship. And so, with any mentorship relationship we have a mentor and we have a mentee. And usually the mentor is the more senior person and the mentee is the more junior person. And so, I think when you have a mentorship, let's say like now in this day and age, I don't know if that's the right thing, but it's like you're the mentor the entire time and you have a mentee. And I kind of want to break that. I want to be able to flip-flop the titles, so like sometimes you're a mentor and sometimes you're a mentee. So, say I'm really good at React. I'm here at React Advanced. I hope I know a lot React because I'm here. And I'm working with someone that's really good at Rails and I don't know much about Rails. Not that I have any magic that happens and files get added and I don't know, ActiveRecord things. And so, I want to be able to swap knowledge. So, I'll be able to be the mentor when I'm teaching about React. They'll be the mentee even though they probably have 20 years of experience because Rails is so old. But then we'll be able to flip that. When I'm trying to learn about Rails, I'm going to be the mentee and they're going to be the mentor. So it's a very flip-flopping back title. And I think that's really the big benefit of a mentorship is being able to learn from each other.

And so, let's talk about a good mentorship. Someone who's willing to learn and share their knowledge and help others. They're willing to listen and explain hard concepts in a handful of different ways. I think the smartest people, the smartest engineers that I have ever got to work with or to learn from are really great at explaining concepts like three ways. My favorite thing to do to know if someone...

3. Teaching and the Seagull Effect

Short description:

Being able to understand a complex topic and explain it in different ways helps both the learner and the explainer. A good mentor provides guidance without taking over, teaching mentees to find solutions on their own. Googling together and sharing shortcuts can make the learning process more efficient. Unfortunately, not all mentorship experiences are positive, as I learned from a Seagull effect encounter while pair programming.

I do this to my husband a lot. Do you really know that? Do you know... I've done it like three different ways, like just find out if they really know what they're talking about. And so, being able to understand a complex topic and explain it a handful of different ways for other people to understand it helps the person learn and understand it and it helps you to be able to explain things and actually understand the concept.

So, they also provide guidance by guiding them in a certain direction, not by doing it for them. Don't take over the keyboard. Don't take over the screen. How many times have we been remote pairing and it's like, oh, can you give me control? Okay, here's a function. That happens a lot. And being able to teach them to teach themselves, helping them find the right file can really make it so you don't have to have this call again. You've helped them discover how to find a file once, hopefully, they'll be able to find it again.

Google with them. I can't tell how many times if somebody asked me a question and I asked, not mean, but like, did you Google it? Did you really, like, do you know? Had to Google correctly in a way? And it's a skill. Googling really is a skill to learn. Google with them. Teach them, you're like, I don't really go to this one, I really go to, like, this file to find all my code, oh, let's just copy the Stack Overflow and see if it works. And then they learn about Stack Overflow, they learn your shortcuts, they make the time more efficient. So really teach them, teach themselves. And these little moments are really like mentorship moments that you might not even realize that you're doing.

And now, we have a good mentor. But, like, has anyone had a bad mentor or a bad experience? Because I know that I have a great example of nobody does. Okay. So as I was working as a junior engineer, I was, like, fresh, didn't really know how to Google, didn't know a lot of things. And so we're pairing probably, like, weekly on frontend React. At the time, it was React Native things. And I was leaving way more confused than when I started. And it really helped me understand and, like, create this effect that I like to call the Seagull effect. And the Seagull is when you're pair programming, and someone comes in, messes everything up, and then leaves you. And you're, like, my linting errors are going off, the console, all my tests are failing. And so it's kind of like Seagull, the bird at the beach.

4. The Seagull Effect in Mentorship

Short description:

The Seagull effect occurs when someone attempts to help but ends up leaving you in a worse situation. It can lead to feelings of frustration and self-doubt. Recognizing when this is happening and taking a step back to reassess the mentorship or pairing can be beneficial.

You know? The annoying bird? They come over and then crap all over the place and fly away. That's the Seagull effect. So they attempt to help you. They make a bunch of changes, then leave you hanging because you got overwhelmed with not knowing how to solve it. You got too busy. Or they don't know how to be a good mentor. Or they don't actually know what they're doing. They leave you in a worse situation.

And you have no solution, no confidence. And you're probably thinking, I suck at my job. I should quit. So the Seagull effect is real and also doesn't apply just to engineers. And we don't want any Seagulls in our life. But I was actually doing some great reading on Twitter today. And some British journalism came up. And I found this one. For us, that exotic bird they found was actually a Seagull covered in curry. And I thought this was great. Oh, my gosh, another Seagull effect. But I haven't had time to figure out what this metaphor would be. I feel like this one is a lot worse than the crapping all over your code and flying away. This one is like delaying your code base or something wild.

Yeah, when someone is trying to help, the crap all over your code flies away. I've been a Seagull at times, not knowing that I was. It's good to recognize when you have them. If it's happening, I think when you are in a mentorship or you're pairing with someone and it's just not working out, take a pulse check and be like, I'm not hitting my goals. Not hitting my work goals. Time to just take a step back and maybe find a better partner, take a pause. I think, side tip, that's a great thing to do. Instead of saying this isn't working out, say, oh, let's take a pause.

5. Qualities of a Good Mentee

Short description:

Now that we know how to avoid being a Seagull, let's discuss what makes a good mentee. A good mentee is open and willing to learn, shows up prepared, and takes the initiative to research and gather information before seeking guidance. Additionally, it's important for a mentee to understand their mentor's communication style and adapt to it. Learning about each other and developing a strong working relationship enhances the mentorship experience and accelerates the learning process. If you have any tips or insights, feel free to share them with me.

Let's take a break for a month or so and pick back up in a little bit and see how it is. Then it's not, I mean, obviously, you want to give them direct feedback and say, yeah, the pairings aren't really working for you right now, but I want to take a pause and kind of evaluate my goals and what's happening and take a pause.

So, now that we know don't be a Seagull, maybe you are a Seagull, there's a cure for it. What makes a good mentee? So, no one really talked about this. When I was starting off, I saw all these great mentorship, like how to be a good mentor. I couldn't find a lot on how to be a good mentee. So, I kind of have my own stuff going here. So, open and willing to learn. They show up prepared. They've googled the topic. They've watched videos. You've read blog posts. You search the company Slack. Sometimes people post a whole bunch. Slack has so much information. Just get good at searching in there. Maybe they find the right, like in the code base, they find the right file and say, oh, this is called, like new email JS. This is the page where all the new emails are. But you don't know the syntax or the code to find it. So they've done everything possible before they've shown up. I think another thing that's important for a mentee too is learn who you're working with, their communication style, and how you work with them. So, I pair with someone who wants to know exactly what we're working on ahead of time. I'll send them the PR, I'll send them a line of code, I'll send them a little blurb of what we're working on. Other times I work with people who just like to jump right in and it's a fun challenge. So learning about who you're working with is a great skill as a mentee. And I think learning about each other too when you are doing as a mentee, learning their styles, it really like helps company culture and enhances the experience and it really speeds up the learning when you are learning. I've written an article about this, how to pair programming when remote, you can be remote or not remote. It's kind of the same thing. Yeah, if you have any tips, I'd love to hear them. You can thread them in here or hit me up on Twitter, but really, really into that.

6. Benefits and Types of Mentorship

Short description:

I really do believe mentorship is a great way to spend your time. You could spend it during work or not during work. It's a good way to feel good and help people succeed in their career. Both the mentor and the mentee should show up wanting to achieve something. Mentorship can be granular, like learning rails or best practices for a React app, or even negotiating your salary. Having a ten-minute conversation with someone who has a great career can be fulfilling.

Okay. So I really do believe mentorship is a great way to spend your time. You could spend it during work with someone that you work with or not during work. It's a really good way to just like feel good. You read about all those older people like about to pass on later in life and they say, oh, what advice do you give to the younger crowd? And they're like, oh, work less and all this stuff or help people more. Help people more. You never know. You could really feel good about helping people succeed in their career. They wouldn't be maybe in their career without your mentorship that you're giving them. And it's important to know that both you and the other person, whether it's the mentor or the mentee, show up wanting to achieve something. If you don't have that two-way street, it's probably not going to work. It could be really like granular like how to learn rails, as I mentioned earlier, or like best architectural practices for a React app, or even if you're just trying to negotiate your salary and you see someone that had a great has a great career with poise and confidence, message them and be ten-minute conversation. I think that's a great, fulfilling conversation that you could have for mentorship.

7. Illustrating Career Topics

Short description:

Throughout my career, I've always had a mentor. I seek out people who have strengths in areas where I have weaknesses, and vice versa. I believe in sharing knowledge and helping others, whether it's through mentorship or giving talks. I have stories about mentorship, pair programming, and leveling up.

I walk through a lot of these theories and now I want to illustrate some specific topics that I've had throughout my career. Throughout my career, I've always had a mentor. Wherever I've worked, I always found people's strengths. I love meeting people. I love kind of like getting in there and learning about what they're really passionate about and what they're really good at. Then I seek them out to help me, which sounds really selfish, and it is. I want to be a smart, more well-rounded engineer. I want to find alleys and avenues to help me get there. The first step is to really figure out what are your weaknesses, and who has those strengths. A weakness of mine could be React. Strength is coming here and trying to find someone, do the sidestep, and say, hey, want to teach me some React? And then vice versa, what is someone's strength that I could share with others? I love more people to give talk, more people in representative groups to give talks. I'm more than willing to help people, mentor them, and to be giving more talks. So how do I get mentors without asking them? I have a mentorship story, a pair programming story, and a leveling up story.

8. Mentorship and Side Projects at ConvertKit

Short description:

I am a full stack, full time software engineer at ConvertKit. We help creators earn a living online through email marketing. When I joined, I wanted to get paired up with someone who knew their way around the company. Luckily, we had a formal mentorship program, and we've been together for over two and a half years now. Side projects have been a key factor in our successful mentorship. One project we worked on was an email signup validation project, which helped us catch misspelled email addresses and ultimately attract higher paying customers. Pair programming has been a valuable part of our mentorship experience.

I am a full stack, full time software engineer at ConvertKit. It is a creator marketing platform where we help creators earn a living online through email marketing. I should be better at this. Earn a living online through email marketing products and more recently, email sponsorships. We're about 20 engineers across five teams.

When I joined a few years ago, I knew nothing of Rails. I mostly had React Native and React experience. I was becoming full stack engineer, so I wanted to get paired up with someone who's been at the company long enough because I have no idea how to search files in Rails so hard. So I wanted someone who was there for a while and knew their way around. And luckily we had a formal mentorship program, so you tell what your goals are, you get paired up with someone, and it was fantastic. I didn't ask him. I just signed up for a program and I got a mentor. And initially the program was quarterly, so you could switch mentors if you want, but we've stuck together for over two and a half years now. We meet once a week or every other week. And the reason ours, other than what I've already mentioned about a good mentee and A reason that I think it's been so successful is because of side projects. Sometimes if you have a mentor and you don't really know what to work on, side projects is really fun. So I know there's some projects maybe at work that you're like dying to change or dying to do. And this is a great example of what you can. So the code that kind of lies between the squads never really gets completed. And so we ended up working on an email signup validation project. And so what that means is, we learned that historically people who sign up at ConvertKit with a Gmail account, traditionally later on in the funnel, end up being higher paying customers. And so we wanted to be able to catch their misspelled email through login. And so there are a lot of people spell, they forget the dot in dot com, or they do Gnail instead of Gmail. And so we were able to work on a vendorship project where we could do a full stack project and catch these and eventually get to see a lot of the data come through of us getting higher paying customers. And so from the mentorship perspective, from the mentors perspective, he was able to really work on a passion project of his that he would never have gotten to do. And so if you hear someone mention, oh, it would be so great if we had better authentication or if we have life cycle components and we want to use hooks, like those are good opportunities and you know you never really get the chance to do. But if you want to do it, you can find a mentor, you can find a mentee, do it once a week for an hour or so, and get that through. So the whole time that we're doing these projects, we do it through pair programming. And when I started, there was no pair programming at my company. And I love pair programming.

9. Pair Programming and Career Growth

Short description:

So I wanted to see if we could make it more common and more real practice across our remote engineering team. Again, I'm selfish, so that's why I wanted to bring pair programming to the company, because that's how I learn the best. Pair programming is a great way to have these little micro mentorships, sessions without asking for a mentor. And lastly, can you level up in your career? Mentoring can open up doors for career opportunities. Maybe you don't know if you want to be a manager yet, so maybe mentoring can help you see if want to be a tech lead. It doesn't have to be a heavy label. It can be mini pairing sessions. It's not a large time commitment if you don't want it to be, and it's a great way to learn different career paths that you're into. And so putting yourself out there, and being open to learning as a mentee or mentor can really inspire other people to want to do the same, and that's why I'm here. Setting up a mentorship program with your company, focusing on side projects, pair programming, really enhances your career and others' career, and that's what I hope you get from this talk, just to learn about these ways to get a mentor without telling them, or maybe secretly get a mentee, and again, this is a real rising passion of mine. I think about it probably more than I think about code lately, so thank you for listening.

So I wanted to see if we could make it more common and more real practice across our remote engineering team. Again, I'm selfish, so that's why I wanted to bring pair programming to the company, because that's how I learn the best. Actually, more engineers pair every day at ConvertKit now, and it really helps build a culture of engineers working together, as I mentioned earlier in his talk, go further together. That's kind of the goal. Through participation and encouragement of pair programming, and by bringing and starting to work together more, the entire team is better for it. I think a simple flack, like a public channel in your company of, hey, I don't really understand use effects. I went to a couple of talks at React Advanced, but I'm still confused. Does anyone have time to help me with it? That's a great mini mentorship opportunity. Hop on a call, be able to talk about their lives, great company culture, and then be able to share your knowledge, and everyone's learning. Pair programming is a great way to have these little micro mentorships, sessions without asking for a mentor. And lastly, can you level up in your career? Another teammate and I started working. I wanted to learn more about Tailwind. In the beginning, I never really knew how that worked. I wanted some help learning more frontend stuff. Not only was I getting a lot of great frontend UI debugging experience, but they were learning how to be a mentor, and I would ask them for career advice, I would ask how their kids are doing, I would ask them what architecture would you recommend I do for this. They were discovering that they really liked it. They really liked mentoring. And eventually an engineering managing role opened up, and since they had concrete examples, they had experiences to pull from from working with me, they got the manager role. And so mentoring can open up doors for career opportunities. Maybe you don't know if you want to be a manager yet, so maybe mentoring can help you see if want to be a tech lead. It doesn't have to be a heavy label. It can be mini pairing sessions. It's not a large time commitment if you don't want it to be, and it's a great way to learn different career paths that you're into. And so putting yourself out there, and being open to learning as a mentee or mentor can really inspire other people to want to do the same, and that's why I'm here. Setting up a mentorship program with your company, focusing on side projects, pair programming, really enhances your career and others' career, and that's what I hope you get from this talk, just to learn about these ways to get a mentor without telling them, or maybe secretly get a mentee, and again, this is a real rising passion of mine. I think about it probably more than I think about code lately, so thank you for listening.

Thank you. Thank you so much, Erin, step into my office. It's been a while since I've been able to actually sit down and do a Q&A live, so it's good to chat. First of all, how are you feeling? That was a great talk, by the way.

QnA

Pair Programming and Mentorship Communication

Short description:

When pair programming, being organized and prepared can help build confidence. It's important to have a list of to-dos and questions ready before starting. Remember that everyone gets nervous when coding in front of others, but we all have the ability to spell. Communication is key in a mentorship. Regularly check in with your mentor to discuss how the mentorship is going and provide feedback. If you need a break or feel that the mentorship isn't working, be open and honest about it. It's important to find a mentor whose teaching style aligns with your learning style.

Thank you. I'm good. Good, good, good. So we've got a few questions coming in from the audience, coming in, and one of them is more just about pair programming. You talked a little bit about pair programming, and asking for tips to build confidence and prevent anxiety. I mean, I've done live demos, I've done pair programming, and just there is this magical thing about when someone's looking at you type, everything goes crazy. So any tips for anxiety and confidence when you're pair programming?

Yeah. I think for me, I like to be super organized before I pair program. So like I mentioned, I do all the Googling, I like to have the files up, I like to have the, like, slacks up. I have a list of to-dos, and I have a list of questions. So I think being prepared really helps before you even hop on a call or sit next to someone, and that helps with my confidence level. But I think nobody could type in front of anyone. Everyone gets so scared of live demos, so it's like we're all the same. So it's hard to not be scared, but we all can spell.

Yeah, absolutely. I feel like I've been there where your hand starts shaking, and you can't actually type. I've been there. One thing you talked about which I loved, and, like, I'm not going to try to flash back to any breakups I've had, but when you talked about like, oh, we need to take a break, maybe for a month, we're going to pick it back up. How do you let a mentor know, right, I would like a break? But you also do want to give that mentor that feedback as to what maybe they could be doing better to be a better mentor to you, to be a better mentor to someone else. How can you communicate that in a positive way?

Yeah, I think regularly throughout a mentorship, you should always have some pulse checks of like, hey, how's this going? Is this the right time of the week? Do you need it on Tuesdays instead of Fridays, or how's it going? Are you getting anything out of this? And if you're not, that's totally fine. Just be open and honest with them if it's working. I think it's really important to tell them if it is working because sometimes they don't know, and it's good to know. I've had times where it was the whole Siegel thing. That was the first time I had to have been like, I think you're really busy right now. And Sally's not, so I'm going to go. I'm going to get some help from Sally today, and maybe we could pick back up in a couple weeks when you're not as busy. I'm trying to learn the different styles, and I'm not quite connecting with the way that you're learning. I'd love to give you some tips, but I really got to get this project done. So thanks for your time.

No, I totally get that, and I think that's a great approach.

Managing Pair Programming and Async Mentorship

Short description:

When you're busy and pair programming doesn't seem like a priority, it's important to assess the project and its timeline. Taking a pause on pair programming to focus on essential work is normal. Setting a time frame for resuming pair programming after a busy period can be helpful. If your teammate prefers texting over pair programming, try alternatives like screen sharing or scheduling a demo. Async mentorship can be achieved through Slack by posting requests for pair programming or text-based collaboration without strict deadlines.

And one thing you spoke about, you kind of dropped being busy, because one thing that happens is sometimes there's deadlines coming up, and we need to focus. And sometimes, things that are good practices become the first to go. And pair programming might be one of them. So how do you manage that when, for example, as a sort of organization, as a team of developers, you start getting busy, and pair programming doesn't necessarily seem as high on the list of priorities? But how do you make sure you can still fit it in?

Yeah, I think that's a great question. I think it depends on the project. So I mentioned with the passion projects, the side projects that we get to work on. If we're at the end of the cycle, and nobody really has time, and everyone's frantically trying to get their work done, we won't have the pair session. So I think if it's a pair session for a project, or depending on your timeline and your goals for what you need, I think taking a pause on pair programming. I do a lot of pauses I guess. Taking a pause on the pair programming for a bit to get essential work done is totally normal.

Yeah, and I love when you talked about giving a pause, taking a pause, also sometimes setting a time frame. So it could be, can't do a pause because I'm busy right now, but in a month or after this deadline, let's pick it back up. And someone asked a question which I find very interesting, which is, how do I get my teammate to do pair programming with me, when they prefer texting?

Oh, yeah. That's tough. Because some people just don't really enjoy texting, you mean just on Slack? So a part of me thinks it's like a Slack, either they'd rather just answer questions rather than sit with you. Yes. If you're okay, feel free to clarify. Yeah, I work with people that are totally into more text based, too. I think that could be just their style of communication and they don't want to be on video and that's totally fine. I think you could go screen share and not be on video. I do that all the time too with some people. So you don't actually have to be on video to do it. Part of me is like, I just say I can't, I don't really understand this, can you explain in a different way and so if they end up just typing a lot and you ask them three times and you still don't understand, be like, ah, it's not really clicking for me, I'd love to do a demo. Like, do you want to schedule time or do you know anyone else that has time that can help me? No, I totally get that. One thing you kind of spoke about is you spoke about different ways, maybe it could be a video. How do you, because I, for example, I know at work we're trying to do a lot more async. So how would you do like async mentorship? Is there such a thing as async mentorship? Yeah, I think posting in Slack, and if anyone has time in the next week or so, pair program with me or text it out, I guess, if that's what you want to do. I think just not setting deadlines on mentorship or pairing makes it more approachable in a way. So, yeah, I think just posting about it on Slack.

Balancing Mentoring and Time Management

Short description:

Posting on Slack and setting up time with others is the best way to achieve the goal. To avoid the seagull effect, it's important to know what you don't know and seek help from others who have more knowledge in specific areas. Balancing mentoring and personal work requires effective time management and open communication about availability and commitments. Categorizing mentors based on their expertise can be helpful, having different mentors for different areas of focus.

So, yeah, I think just posting about it on Slack. Be like, can I set up time with anyone, either today or tomorrow? Give options. I think that's the best way to gain the goal.

And kind of other question that's come in, because I know some people in this room might be mentors themselves, and I think this is a good one, which is what are the things you've done to the co-op to avoid dishing out the seagull effect? As a mentor.

Yeah, I think knowing what I don't know. So, like, if I went in and tried to do some, like, Kubernetes stuff, I would be a seagull. Or some Docker stuff. Like, just knowing what you know and what you don't know to be able to help someone is good to know. I would be like, oh, let's go talk to Chris. Like, they know so much more about it and I want to learn too, so I'm going to stay on the call. So I think knowing that the seagull effect is a thing is good. And then knowing other people that can help you not be a seagull.

Nice. And as you sort of... People grow and become from starting off as junior developers, become senior developers, self-developers, principals, leads. Their time becomes much more higher in demand. How does someone who maybe does have a busy schedule, how do they balance mentoring others and getting their own work done?

Yeah. I think time management is really huge. I think my mentor that I mentor with, now we were going once a week and it was a lot. So now we go every other week. I think just being open and honest of what you can work on. And if you don't have time for a side project, maybe someone just needs a lot of help understanding hooks. And so you'll just have 30 minutes of hooks practice or something like that. I think understanding how much time commitment they can have and how much you have, the communication there just from the beginning.

That makes total sense. I know people still feel free to add more questions, but one question that I've kind of had is like sometimes I have a mentor and maybe there's a mentor in a specific scope or a specific thing, kind of like what you spoke about in different languages. When you think about your mentors, is there any way you categorize them or is just every mentor kind of generalist or do you have mentors you go to for specific things? Oh yeah, I have like 10. For a different reason. Like one is like career advice, another one is rails, another one's React. I think having just the mini ones makes it a lot easier than just having one that is limited on their knowledge.

Benefits of Having Multiple Mentors

Short description:

Having multiple mentors is like diversification, not just for stocks but also for mentors. It's beneficial to have different mentors for career advice and specific areas like React. Networking and maintaining connections with people in different roles can be valuable.

And then it's less of a time commitment. I just know like, oh, this is who I go to for career advice, this is who I go to for React advice. And I think it's beneficial to have it that way because you're like networking and you keep connections with people that have older jobs. And you just ... Yeah. Yeah. No, I totally get that. I think having multiple ... It's like diversification, right? You shouldn't just do it with your stocks, do it with your mentors as well. No, thanks so much. Really, really appreciate having you here, Erin.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
Becoming a web engineer is not easy, but there are tons of resources out there to help you on your journey. But where do you go from there? What do you do to keep growing, and to keep expanding the value you bring to your company? In this talk we’ll look at the different kinds of impact you can have as a web engineer. We’ll walk through what it means to take on bigger, more complex projects, and how to scale yourself, and grow the community around you. By driving our own development we can all grow our impact, and in this talk, we’ll discuss how to go about this.
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Tech lead sounds like a lot of work. And not the fun coding kind either. Why would you ever want that? What does it feel like when you get it?In this talk Swizec explains why he took the step towards technical leadership, how his priorities changed, and why it means he’s doing more engineering than ever. A whole new world where writing code is the easy part.
10 min
Emma Bostian: I landed my dream job by sharing my blogs on Twitter
Top Content
Featured Article
Software engineer, lecturer, podcast host, author — is there something Emma Bostian hasn't done? She moved from America to Sweden, started working at Spotify, and took up a few challenges along the way. And now she has some career tips to share.

What led you to software engineering? 
I was raised in the ecosphere of tech because my dad is a software engineer at IBM, and my mom was a designer there, too. My dad always encouraged me to join STEM and take a look at computer science — however, I was convinced I wanted to be a medical doctor. In my first year of college, I declared a biology major and quickly realized I was not too fond of it. In my second semester, I switched to an actuarial science major where I took Introduction to Computer Science, and the rest is history. In my second year of college, I declared a computer science major and began my journey from there.
What is the most impactful thing you ever did to boost your career?
Writing blog posts and documenting my learning journey on Twitter has far been the best career boost. I wrote purely for myself to reference the things I learned over time, and I even utilized my design skills in Figma to create custom graphics depicting difficult concepts like CSS specificity. By sharing my blogs on Twitter and engaging with the people reading them, I was able to grow an audience extremely quickly. I began receiving conference speaking opportunities, podcast requests, and course invitations to teach with LinkedIn Learning and Frontend Masters.
Ultimately, I landed my job at Spotify through Twitter, too, when a friend and follower of mine asked if I would be interested in interviewing. Now I live in Stockholm working my dream job. It still blows my mind how tweeting about my blog led me to some of the most amazing career opportunities.
What would be your three tips for engineers to level up their career? 
First, be patient. I often see posts on Twitter or LinkedIn about developers who were promoted to a senior position after a year. And while this is wonderful, I think we forget that each company has a different standard for what constitutes a senior developer, and everyone's journey will be different.
Second, don't be afraid to ask questions. If you try your best to solve a problem or answer a question you have, but you can't figure it out after a reasonable amount of time, ask a team member or mentor for help.
And lastly, invest in the right resources for learning. When I started my journey, I didn't know which platforms worked for me to learn. Now, I have a few trusted platforms such as Frontend Masters, Free Code Camp, or Level Up Tutorials that I go to when I need to learn a new skill.
You're currently working as a software engineer at Spotify. What does a typical day of yours look like there?
I begin my day answering emails. Then we have a team breakfast and a standup remotely as we're all still remote at Spotify. After that, we might have a web tech sync with the other squads in our business unit. The day usually includes some form of pair or mob programming, depending on the work stream. 
My team always has Fika, a traditional Swedish coffee break, scheduled every afternoon. Every couple of Fridays, we have team games planned to release some stress. 
Also, I tend to have a lot of free time to focus, which is nice but makes for a boring answer to this question!
Do you have some rituals or tools that keep you focused and goal-oriented?
I'll admit that I've been struggling with staying motivated in the time of remote work. I've been remote with Spotify since onboarding a year ago, but my team is wonderful, and they help me when I'm down.
Apart from that, I use Todoist to keep track of my tasks, and, naturally, I listen to Spotify while working. But other than that, not really. Maybe I should adopt some new tools to keep me on track!
My current favorite Spotify playlist is Brand New Chill: https://open.spotify.com/playlist/37i9dQZF1DX6uQnoHESB3u?si=380263b3c853442e
I also love Chillout Daily: https://open.spotify.com/playlist/7ozIozDp260fjNOZy1yzRG?si=66d6c839ec9b458a
You wrote a book called De-coding the Technical Interview. What was the impulse to do it?
I wanted to give the community a manual of the essentials of computer science knowledge to ace the technical interviews. The book covers data structures like stacks, queues, or linked lists, tackles algorithms, and deals with systems design. You'll also learn about the interview process from start to finish, get tips on how to submit an amazing take-home project, or understand how to problem solve. You'll also gain knowledge on the frontend coding skills needed to excel at a frontend interview.

If you could stress one piece of advice on surviving a technical interview, which would it be?
Do not lie your way through an interview. If you don't know the answer to something, just admit it. There's no shame in admitting you don't know the answer to something. There is shame in faking it and pretending like you do know the answer.
What's the single best practice everyone who writes code should follow?
Remember that while you are technically writing code for computers, you're also writing it for humans. Your code should be readable and have as little complexity as possible without sacrificing accessibility or performance.
In addition to the book, you co-host the Ladybug Podcast. What inspired you to enter this field, and what are the podcast's main topics?
We talk about everything tech and career on the podcast, from Java and GraphQL to how to start a business and cross-cultural communication. The podcast is a way for me and my co-hosts to share our experiences in tech, having taken different paths. And I'm really glad for doing it — it has allowed me to meet so many incredible people, learn many new things, and support my dream of teaching.
What pieces of your work are you most proud of?
My technical interview book was a huge feat for me as well as my courses with LinkedIn Learning on building a tech resume. I enjoy creating things that help other people advance their careers, so I'm also proud of my courses with Frontend Masters on design systems and CSS.
***
Follow Emma on Twitter
14 min
Kent C. Dodds: Consume, build, and teach — and level up your career
Top Content
Featured Article
Even though his bio offers quite a hefty reading, he only applied for one job in his career. The rest came along as he was building his name as a renowned speaker, teacher, and a prolific figure of the open-source community. How did Kent do it? “Commit to creating high-quality content,” he says.


What led you to programming?
I had a friend when I was a teenager who was really into it, and he tried to teach me. But I just couldn't get it — it didn't make any sense to me. So I never really thought I'd get into programming, but I liked computers a lot, and I ended up going to school for electrical engineering. 
Well, that didn't work because I'm not good at math. But right when I started the program, I got a job at a company uploading videos to YouTube and that sort of thing. The work was tedious, so I decided to write a computer program to automate lots of the work I was doing with the knowledge I had about programming. And that was the first spark of things for me to use programming to solve real-world problems. 
What is the most impactful thing you ever did to boost your career? 
Committing to creating high-quality content. That might sound obvious because I'm a full-time educator now, but I would not have gotten my job at PayPal if I hadn't been so active with my blog. In fact, lots of my jobs came out of me being involved in the community around meetups, conferences, or open-source projects. 
How do you choose topics for the content you create, be it for your blog or podcast?
I don't think too much about the content other people are creating. And I don't often consume it. My ideas come from the things that I'm working on, things that I'm learning myself, or — when I was working with a team of developers — the things that I had to remind people of in code reviews regularly. Anytime that I would have a code review comment that was pretty long to describe my position, that was an excellent opportunity for a blog post. Also, if people ask me about a topic regularly, I'll make a blog post rather than answer that question multiple times.


What would be your three tips for engineers to level up their career? 
The number one thing I tell people is to be a nice person. I know that sounds fluffy or silly, but it cannot be overstated. You will get so much further in your career and just in life in general if you're a nice person. That doesn't mean that you take people being jerks lying down, but how you interact with others is out of kindness. You could be the best engineer in the entire world, but if you're not a nice person, you will not reach your full potential or accomplish your goals, whatever they may be.
Second, it's just as important to decide what you are not going to learn as it is to decide what you are going to learn. You could jump into countless things — and there are successful people who are polyglot programmers, but I can't speak to that a whole lot. All I can tell you is that in my experience, focusing on specific things that I want to be truly good at has worked out great for my career. That doesn't mean that I closed myself off to other things. With my website rewrite, I have been doing a lot of dev ops-related work and a lot of back-end stuff that I've typically not been involved in. You want to keep your head up on what's going on outside of what you're doing so that you know what direction to go in when you come across problems you need to solve. However, finding a focus on what you want to be good at has helped me a lot. That way, you feel a little less stressed.
And the third one? 
Learn how to learn effectively. It's a three-step process: you consume, build, and teach. The consumption of newsletters and Twitter and whatever inspires you, but you don't want to spend too much time doing that — implementing it into actually building something matters. This happens naturally if you work at a company, but maybe you're not making the things you want to learn, so you may want to start a side project. The building phase is where you get experience, but you also want to solidify that experience. How? You start teaching. You don't necessarily have to teach it to people, it could be stuffed animals. The goal of the teaching is to retain in your mind what you've learned through the building process.
What are you working on right now? 
The big thing I'm working on right now is a rewrite of my website. It'll be much more than just a developer portfolio — I'll have user accounts, and there'll be fun things that you can do with it. And because it's more than just a website, I'm using Remix, a new cool framework in the React ecosystem. I'm also working on updating my material on TestingJavaScript.com and a TypeScript course as well. 
So, whatever I'm working on, it ends up resulting in lots of opportunities for content.


Do you have some rituals that keep you focused and goal-oriented? 
I have a notepad where I keep all of my notes of what I'm going to do for the day so that when I'm checking things off, I'm not distracted notifications. I've tried apps for that, and that does not work well for me. 
I also am a firm believer in inbox zero. I have my work inbox and my personal inbox, and I keep them both at zero. And I kind of use that as a to-do list. 
And if I'm not feeling excited about working for some reason, I will often hop on my Onewheel, which is an electric skateboard that only has one giant wheel in the middle. It's just a total blast, and I'll hop on that with my backpack and a charger, and I'll go to a Starbucks or a park just to declutter my mind.
What things in the React universe are you excited about right now?
React version 18 is coming out soon. The experimental version is out there, and it's fun to play with. I'm just really thrilled that it's no longer a concurrent mode but concurrent features that you can opt into. Cool things like that will enable React server components in the future. 
But the biggest thing I'm excited about is Remix. That's huge. It eliminates a lot of problems that are solved well other tools, but when I'm using Remix, I don't have those problems, so I don't need those clusters.
You already said that teaching is an integral part of the learning process, and you stand your word since you're also a full-time educator. What inspired you to enter this field?
I have been a teacher for as long as I can remember. I grew up in a church where you talk in front of your peers from a very young age, and my mom was an elementary school teacher, so teaching has just always been a part of me. 
I really just enjoy sharing what I'm learning with others. As far as teaching technical topics, I gave my first workshop when I was still a student at Brigham Young University. With my fellow, we taught how to use AngularJS, and I got Firebase to sponsor pizza so they would show up, and that was pretty fun.
Then I started teaching on the side at egghead.io right after I'd graduated. That was when I first got a paycheck for teaching. And I realized that teaching could be quite lucrative and support my family and me as a full-time endeavor. So I did it — I quit my job. I'm a very risk-averse person, so I'd done teaching as a side hustle for four years just to verify that I could make this work.
When TestingJavaScript was released, and I got that paycheck, I realized that I didn't need my PayPal salary anymore. I could just focus my daytime on teaching and give my evenings back to my family, which was a nice trait.


Apart from that, how has teaching impacted your career? 
Earlier I mentioned that pretty much all of my jobs came because I was perceived as an expert. After the first job, where I was an intern and then converted into full-time, I never applied to another. I worked for four different companies, and they wouldn't have recruited me if they didn't know who I was and what I was doing. My content is how they knew who I was — I just made it easy for them to find me. Teaching made that impact. It made my career. 
We talked about React and Remix. Are there any other open-source projects that you'd recommend keeping an eye on or contributing to?
I have some myself. React Testing Library is probably the biggest one that people are familiar with. And if React isn't your jam, then other framework versions of the testing library. 
React Query is also really popular. If you're using Remix, you don't need it, but if you're not, I strongly advise using React Query cause it's a stellar, fantastic library, and Tanner Linsley, the creator, is a stellar and fantastic person. 
What pieces of your work are you most proud of? 
Probably the biggest thing I've ever done is EpicReact.Dev. It has helped tens of thousands of people get really good at React, improve their careers and make the world a better place with the skills that they develop. My whole mission is to make the world a better place through quality software, and I feel like I've done that best with Epic React. 
There are things that I've built at other companies that are still in use, and I'm proud of those cause they've stood the test of time, at least these last few years. But of everything, I think Epic React has made the biggest impact.
***
Follow Kent on Twitter and listen to his favorite Spotify playlist
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Your communication skills affect your career prospects, the value you bring to your company, and the likelihood of your promotion. This session helps you communicate better in a variety of professional situations, including meetings, email messages, pitches, and presentations.
6 min
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
Featured Article
When it comes to career, Charlie has one trick: to focus. But that doesn’t mean that you shouldn’t try different things — currently a senior front-end developer at Netlify, she is also a sought-after speaker, mentor, and a machine learning trailblazer of the JavaScript universe. "Experiment with things, but build expertise in a specific area," she advises.

What led you to software engineering?My background is in digital marketing, so I started my career as a project manager in advertising agencies. After a couple of years of doing that, I realized that I wasn't learning and growing as much as I wanted to. I was interested in learning more about building websites, so I quit my job and signed up for an intensive coding boot camp called General Assembly. I absolutely loved it and started my career in tech from there.
 What is the most impactful thing you ever did to boost your career?I think it might be public speaking. Going on stage to share knowledge about things I learned while building my side projects gave me the opportunity to meet a lot of people in the industry, learn a ton from watching other people's talks and, for lack of better words, build a personal brand.
 What would be your three tips for engineers to level up their career?Practice your communication skills. I can't stress enough how important it is to be able to explain things in a way anyone can understand, but also communicate in a way that's inclusive and creates an environment where team members feel safe and welcome to contribute ideas, ask questions, and give feedback. In addition, build some expertise in a specific area. I'm a huge fan of learning and experimenting with lots of technologies but as you grow in your career, there comes a time where you need to pick an area to focus on to build more profound knowledge. This could be in a specific language like JavaScript or Python or in a practice like accessibility or web performance. It doesn't mean you shouldn't keep in touch with anything else that's going on in the industry, but it means that you focus on an area you want to have more expertise in. If you could be the "go-to" person for something, what would you want it to be? 
 And lastly, be intentional about how you spend your time and effort. Saying yes to everything isn't always helpful if it doesn't serve your goals. No matter the job, there are always projects and tasks that will help you reach your goals and some that won't. If you can, try to focus on the tasks that will grow the skills you want to grow or help you get the next job you'd like to have.
 What are you working on right now?Recently I've taken a pretty big break from side projects, but the next one I'd like to work on is a prototype of a tool that would allow hands-free coding using gaze detection. 
 Do you have some rituals that keep you focused and goal-oriented?Usually, when I come up with a side project idea I'm really excited about, that excitement is enough to keep me motivated. That's why I tend to avoid spending time on things I'm not genuinely interested in. Otherwise, breaking down projects into smaller chunks allows me to fit them better in my schedule. I make sure to take enough breaks, so I maintain a certain level of energy and motivation to finish what I have in mind.
 You wrote a book called Practical Machine Learning in JavaScript. What got you so excited about the connection between JavaScript and ML?The release of TensorFlow.js opened up the world of ML to frontend devs, and this is what really got me excited. I had machine learning on my list of things I wanted to learn for a few years, but I didn't start looking into it before because I knew I'd have to learn another language as well, like Python, for example. As soon as I realized it was now available in JS, that removed a big barrier and made it a lot more approachable. Considering that you can use JavaScript to build lots of different applications, including augmented reality, virtual reality, and IoT, and combine them with machine learning as well as some fun web APIs felt super exciting to me.


Where do you see the fields going together in the future, near or far? I'd love to see more AI-powered web applications in the future, especially as machine learning models get smaller and more performant. However, it seems like the adoption of ML in JS is still rather low. Considering the amount of content we post online, there could be great opportunities to build tools that assist you in writing blog posts or that can automatically edit podcasts and videos. There are lots of tasks we do that feel cumbersome that could be made a bit easier with the help of machine learning.
 You are a frequent conference speaker. You have your own blog and even a newsletter. What made you start with content creation?I realized that I love learning new things because I love teaching. I think that if I kept what I know to myself, it would be pretty boring. If I'm excited about something, I want to share the knowledge I gained, and I'd like other people to feel the same excitement I feel. That's definitely what motivated me to start creating content.
 How has content affected your career?I don't track any metrics on my blog or likes and follows on Twitter, so I don't know what created different opportunities. Creating content to share something you built improves the chances of people stumbling upon it and learning more about you and what you like to do, but this is not something that's guaranteed. I think over time, I accumulated enough projects, blog posts, and conference talks that some conferences now invite me, so I don't always apply anymore. I sometimes get invited on podcasts and asked if I want to create video content and things like that. Having a backlog of content helps people better understand who you are and quickly decide if you're the right person for an opportunity.What pieces of your work are you most proud of?It is probably that I've managed to develop a mindset where I set myself hard challenges on my side project, and I'm not scared to fail and push the boundaries of what I think is possible. I don't prefer a particular project, it's more around the creative thinking I've developed over the years that I believe has become a big strength of mine.***Follow Charlie on Twitter

Workshops on related topic

React Summit 2022React Summit 2022
75 min
How To Design A Sustainable Freelance/Contracting Career + Speedcoding Challenge
WorkshopFree
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn from the world’s largest fully distributed workforce in the world.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
At the end of the workshop there will be a Q&A session with a Freelance Developer who can answer your questions and provide insights and tips into their own success.
During the Workshop break, we will be running a speed-coding challenge! At the end of the workshop, we will award a prize for the winner and display the leaderboard.
We will have you login to our portal and complete the challenge as fast as you can to earn points. Points are assigned based on difficulty and the speed at which you solve the tasks. In case you complete all tasks, you get extra points for the remaining time. You’ll see your score, ranking, and the leaderboard once you complete the challenge.
We will be giving away three Amazon Gift Cards ($200, $100, $75) for the top three winners.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA
React Summit Remote Edition 2021React Summit Remote Edition 2021
121 min
Landing Your Next Developer Job
WorkshopFree
Renaud Bressant (Head of Product), Nathanael Lamellière (Head of Customer Success and Solution Engineer), Nouha Chhih (Developer Experience Manager) will be looking at the different developer jobs that you can accounter when looking for your next developer role. We'll be explaining the specifics of each role, to help you identify which one could be your next move. We'll also be sharing tips to help you navigate the recruitment process, based on the different roles we interviewed for as recruiters, but also as candidates. This will be more of an Ask Us Anything session, so don't hesitate to share your thoughts and questions during the session.