VIDEO
Former Google developer relations engineer Jessica Dene Earley-Cha walks attendees through her 7-step process to guide you during your technical interviews, and shares invaluable tips, resources, and strategies for overcoming challenges when you find yourself stuck. Get ready to level up your technical interviewing techniques!
Like what you see here? Our mission-aligned Girl Geek X partners are hiring!
- Check out open jobs at our trusted partner companies.
- Watch all ELEVATE 2023 conference video replays!
- Does your company want to sponsor a Girl Geek Dinner or Career Fair? Talk to us!
Sukrutha Bhadouria: Next up, we have Jessica, who is a Latina developer, educator and advocate in tech. Welcome, Jessica.
Jessica Dene Earley-Cha: Thanks. Thanks for having me. Appreciate it. Hello folks. I am super excited to be here, and let’s just jump right in. Let me get my slides up. Lovely. Oh, it’s always nice when technology works. Cool. We only have 20 minutes.
Jessica Dene Earley-Cha: I have a lot of content and because I sometimes can be an overachiever, I like to share all of my stuff that I do. There’s a Bit.ly link if you would like access to the slides. Highly recommend it if you are planning on using any of the content today. Let’s jump right in. I am Jessica Dene Earley-Cha.
Jessica Dene Earley-Cha: I am a developer, educator, advocate in tech. Oh gosh, let’s see, I’ve been in tech for about eight years. The last five years was with Google as a development relations engineer for Google Assistant.
Jessica Dene Earley-Cha: I’ve been involved with lots of different organizations, have done tons of dinners with Girl Geek Dinners back in the day as well. I’m really excited to be here. Angie was working at a place, when I met her, where I actually learned how to code and so this is really fun to actually be speaking at one of these events. Because I remember attending them and being like, “How cool are these folks?”
Jessica Dene Earley-Cha: Before I joined tech, I actually worked in the nonprofit space for 10 years working with at-risk female youth and folks with mental health challenges. I don’t have a very clear or straightforward career, I definitely have jumped around, and love to connect with people and chat. Because of my nonprofit background, love to support others and honestly, the reason why I have been as successful as I have been is because of community and other people helping me. If you need anything or have any questions, just let me know.
Jessica Dene Earley-Cha: This is a reduced or a smaller version of a talk that I gave a few months ago. If you want to see the full talk, I have the YouTube video, it’s about an hour long, but I did want to walk through the big portions of when it comes to interviewing, some frameworks that I’ve used that really helped me.
Jessica Dene Earley-Cha: Today we’re going to talk about some resources I have gathered up from, again, community. I asked folks in my community going, “If somebody’s trying to learn how to prep for whiteboarding, what are the great resources out there?”
Jessica Dene Earley-Cha: Then I have my scaffolding of the seven steps I think of and I go through when I actually do my technical interviews, and then tips and resources at the end. It’s going to be a little bit rushed, which is not ideal, but hopefully you’ll be able to get a lot of great information, and if you want to chat more than happy to chat as well. I could do it. I could change slides. There we go. Again, this is not just from me, this is from tons of amazing people.
Jessica Dene Earley-Cha: Here’s a list of resources of solving different problems and potentially different types of questions that could help with your interviewing prep, because there’s no point of practicing the whiteboarding portion if you haven’t done some prep work beforehand. This is really a list of great resources. All the links are again, in the slides as well.
Jessica Dene Earley-Cha: Let’s dive into when it comes to the actual interview, you’re onsite or you’re remote, this is the things I do that help me process through, think things through, and then also when my anxiety kicks in, I can go back to this and have some scaffolding, which is really nice.
Jessica Dene Earley-Cha: These are the seven steps that I have, which has to do with when they ask you the question, I restate the question, I make my test cases, I draw it out. Pseudo code. Test, code and refactor. Let’s walk through this because it’s one thing to say it’s another thing to do it. Let’s pretend there’s an interview.
Jessica Dene Earley-Cha: I’m going to be both the interviewer and the interviewee and we’re going to walk through this relatively quickly. But I want to show you how I recently have done this as I’ve been going through my own. I was looking for work, now I’m working again, which is lovely.
Jessica Dene Earley-Cha: Let’s say they give you an interview question. This one is just write a method that determines if two words are X. Part of the process I would do, I’d be like, “Okay, cool. So this problem… Or at least I would ask clarifying questions. I’d be like, “Ooh, an anagram is when there are two strings that have the same number of letters, or is it this other one?” I would make sure that I knew what those words meant because I don’t want to make assumptions, because then I would be solving the wrong problem.
Jessica Dene Earley-Cha: I always restate the question, making sure I understand what’s happening. Then I also do out test cases, which is part of my question asking a little bit. So I’m like, “Okay, cool. So do I care about capital letters? Do I care about if there’s maybe no characters? Am I working with good data?” And then writing out some of the test cases of so they said act, capitalize and eat, lowercase should be true.
Jessica Dene Earley-Cha: And then I just walk through, write a couple of them, making sure I get true, false and edge cases as well. That’s how I make my test cases as I’m clarifying what’s the problem. Then I draw this out, and this can be different for different folks. When it was traditional whiteboarding with an actual whiteboard, I would literally draw out what I would be doing. But because a lot of things have moved remotely, this is what I did this last time I had a question was, okay, cool, so I’m thinking about getting the first word putting it into a dictionary, and then for every time the letter appears, I’m going to bump up the value by one. And then the second word, I’m actually going to put that into the dictionary, a different one. Or maybe the same, not sure, I’m not committed. And I’m going to decrement, go the opposite way.
Jessica Dene Earley-Cha: And then with those two, if I compare the two, and if all the values are zero, then it should be good that it should all equal out. So that means it’s true. So that’s how I would draw it remotely versus with the actual whiteboard itself. Then after that, after I explain that, I’m like, okay, cool, this drawing makes sense. I’ve explained it to my interviewer.
Jessica Dene Earley-Cha: Then, I’ll pseudo code. I’ll go, “Okay, cool. I’m going to walk through this really quickly. I’m going to create my variable. I’m going to loop over the first word, adding the letter as a key and the value as one, then looping over the second word.” And if the letter is not in the counter, that means they don’t match, then I’m out. And then of course if the letter is in there, I’m going to subtract by one.
Jessica Dene Earley-Cha: At the end, I’m going to loop over that counter dictionary, checking the values. If they’re not all zero, then false if they are true. So that’s my pseudo code. Then after that I would test my pseudo code. I like to have this little diagram. I usually draw this out. It’s a little harder when you’re dealing with virtual, but this is what I normally do, is I put my variables on one side, the values on the other, I’m like, okay, word one is at. Word two is eight. Then I have my new variable of counter, I loop over and I actually walk through the whole process working through it as though my pseudo code is real code. This happens to me all the time where I’m in the middle of writing code or pseudo code. I’m like, “Oh, I have this other great idea.”
Jessica Dene Earley-Cha: Instead of stopping and working on that idea, I always recommend write down a little note, tell your interviewer, “Hey, thought of something, going to get back to that after. Let me finish this.” Finish your process of testing out your pseudo code. Then at the end you can go, “Oh, you know what I thought about before even doing all this work, just checking the two lengths of the strings. If they’re not the same, I could potentially come out.” Granted, there might be some white space and all that, but in theory that would work. That’s usually how I handle cases where I think of something in the middle of it, but instead of just trying to solve that thing, I might get confused. I try to finish what I’m doing, then go back to my little note for myself. And I usually tell people up front of my interviewers, found something, hold on. Cool, let’s go back.
Jessica Dene Earley-Cha: Then I add that pseudo code. After testing, you would also want to test to make sure the cases in which you have negative cases, things that should be false, actually trigger and they become false. I would test that out. We’re not going to walk through that today, but you’d walk through the whole process of testing it, then you would code. And then I put sometimes because I’ve had it where people are like, “No, this is cool, this is good.”
Jessica Dene Earley-Cha: You don’t always necessarily have to code if your logic and your pseudo coding is solid. Because after that, it’s just potentially syntax errors, which you could Google and you could look up. That’s what we do our normal day to day. But something I do do is when I go, “Oh, you want me to code this out?” And they’re like, “No, it’s okay.” If I know the time and space complexity, I upfront tell. Them that was something I know I spent a lot of time trying to learn, time and space complexity.
Jessica Dene Earley-Cha: It is a thing that most computer science people have learned about. I did it as a person who doesn’t have a CS degree, so I learned it as well as I could. And if I feel pretty confident, I will upfront tell them this is what the time complexity or space complexity is. If you don’t know, that’s okay, but whatever you do know you want to upfront versus waiting for them to ask you for it. That’s usually what I do.
Jessica Dene Earley-Cha: The times where they do ask me to code, I’m like, “Cool, I’ll code.” And the nice thing is because I already have pseudo code, it’s easier for me to write my code as well. And then of course you always want to test out the new code that you just wrote out. And then after that, refactor. And generally by then, you’re talking about refactoring, you’re not actually refactoring your code because of time as well.
Jessica Dene Earley-Cha: That’s how I would walk through it really quickly. Granted, I would have more time and show more examples. But that is the seven steps I do when I’m interviewing. What’s really nice about this is if I get lost in my pseudo code, I can go back to my visual of my actual image that I have, that I drew up. If I get lost in my coding, I can go back to my pseudo code.
Jessica Dene Earley-Cha: This is a really nice way that you could really support yourself and solve the problem abstractly and then get more granular in there. Then you could worry about the syntax and code and the scary stuff. It looks like we have six minutes left. Yes. Some tips and resources that I have.
Jessica Dene Earley-Cha: When you get stuck, and it’ll happen because we’re human beings. And this is why if you are doing this type of work, this is hard work. If it was easy then it wouldn’t be as lucrative potentially? I don’t know. That was a weird statement. You’ll get stuck and that’s okay. I usually like to, instead of going or let my anxiety kick in and, “Oh my gosh,” and freak out or go silent, that’s usually what I do.
Jessica Dene Earley-Cha: Something I learned and I tend to do now is instead of going or silent, I go, “Oh, this is interesting.” And that one phrase is my backup of like, oh, Jessica, if you don’t know what’s happening or if you’re stuck, at least say this part. And so I go, “Ooh, this is interesting. There’s something here.” I try to explain where I’m stuck. I usually phrase it as, “That’s interesting.”
Jessica Dene Earley-Cha: The reason why I do that is because society tends to not be as kind when it comes to assumptions, when it comes to women and people of color. I try to frame it as I’m excited, I’m not intimidated. I might not feel that way, but I’m presenting that way. That’s usually, ooh, this is interesting. Then it also puts me in a nice playful framework, versus “I don’t know this.” Again, that’s something I do. I really enjoy that. That’s a tip I got from a friend so I love to share that.
Jessica Dene Earley-Cha: When you get stuck, explain what you’re stuck. You can say this is interesting to help boost yourself and frame it as, no, no, no, this is collaborative, this is interesting. Let’s talk about this. Then I would recommend draw your picture again, go back to your picture, draw it out, try to unstick yourself, and then honestly too, it’s not a bad thing if you have to go, “You know what? I’ve got myself all twisted. I need to start from scratch.” Of course, depending on the actual time you have, sometimes that’s possible, sometimes that’s not.
Jessica Dene Earley-Cha: But it’s not a horrible thing to acknowledge, you know what? I think I solved this not in the best, or I was going down potentially the wrong path. Let me start again. And you can start from drawing the picture, pseudo coding, then coding as well.
Jessica Dene Earley-Cha: Some handy tips I usually let people know about is use built-in methods. It’s okay. If you have to, I don’t know, process some data and part of it is sorting it out first then you process it, use the dot sort methods. It is A-OK. The big thing is if the problem itself is about sorting, you don’t want to just do dot sort, you would want to work that through. But you could definitely use different methods.
Jessica Dene Earley-Cha: You don’t have to do everything from scratch or by hand. Another thing I like to do is I create my own helper methods of clean data and I’ll just reference it as, oh, I’ll clean the data here, and that’s a function I’ve wrote somewhere else. I’ll build it after.
Jessica Dene Earley-Cha: Sometimes, usually they don’t ask you to actually write that part of the code, which is really interesting. You could definitely use that as well where you just use that clean data. That could take out all the spaces of data or correct any errors or what have you. That way you could solve the core problem.
Jessica Dene Earley-Cha: Another thing is to share what you know. There’s many times where I’m going to go back to that sort example. If I am using that, I’ll say, “Ooh, I know in Python there’s sort and sorted. One changes it in memory and the other one returns a new array. And so I’ll drop little things like that as I’m writing my code. Or potentially especially one off errors, I usually know, ooh, there might be a one off error here. Because we’re human. Nine times out of time there’s not but at least I have flagged potentially there could be something here that once we run that code, we’ll find it as well.
Jessica Dene Earley-Cha: Upfronting what you do know is really helpful for people to understand what you know versus waiting for them to ask you. And I know that might feel strange, and so practicing that is really helpful for yourself to get used to that part because this is a whole skillset that we need to learn in regards to doing these interviews. Definitely highly recommend that.
Jessica Dene Earley-Cha: Important things: talk through your thought process, have some clear pseudo coding, ask questions, get something on the board, helper methods. Those are things that are important. Less important things. Solving it as quickly as possible, and then also the most efficient solution. Oh, I hear… Oh no. Okay. And then that’s it. Thank you so much. I think we made it right on time. I know we started a little bit late. But feel free to connect with me and then also provide feedback too. This was a reduced talk from something that’s a little longer, so feel free to check out that Bit.ly link so you can see all the resources I have for you.
Sukrutha Bhadouria: Thank you, Jessica. Thank you everyone for joining. We’ll see you at the next session. Bye.
Jessica Dene Earley-Cha: Thanks everyone. Bye.
Like what you see here? Our mission-aligned Girl Geek X partners are hiring!
- Check out open jobs at our trusted partner companies.
- Watch all ELEVATE 2023 conference video replays!
- Does your company want to sponsor a Girl Geek Dinner or Career Fair? Talk to us!