ARTY: Hi everyone. This is Episode 154 of Greater Than Code. I am Artemis Starr, and I'm here with my fabulous co-host, John Sawers. JOHN: Thanks, Artemis. And I'm here with Jacob Stoebel. JACOB: Hello. And it's my pleasure to announce our guest of the week. His name is Ambreen Hasan. Ambreen first started her career in marketing and quickly learned it wasn't for her. She always loved working with computers as a young girl and decided to try the art of computering. For the past several years, Ambreen has worked as a Software Engineer at various companies ranging in all sizes and has written in various programming languages. Currently, she is exploring Node, JavaScript, and the wonderful world of Promises. Welcome to the show. AMBREEN: Hello. Thank you for having me here. Happy to be here with you all. JACOB: What is your superpower and how did you acquire it? AMBREEN: I was going to ask this question and I never really know how to answer it because I guess I don't think I really have any superpowers. I mean, we all do, but I was trying to think of like either a technical one or not. My non-technical one is that I'm really good at zoning people out, which is kind of like a weird superpower to have. But if I'm in the middle of a conversation and I'm not really feeling it, I'm really good at appearing like I'm listening, but I'm really not. And that is my superpower. JACOB: And there's a lot we have to do as technologists because we have our hands in so many levers, we're controlling or we're influencing really complicated systems. Sometimes, we have to know how to filter out input when we know that it's not useful. AMBREEN: Sure. JACOB: Is that sort of the idea? AMBREEN: Yeah, I mean, I think from day to day too, you're having so many different types of conversations and you're learning about different things. And so, my superpower is sort of like, what is the necessary information I need to learn from this conversation? ARTY: It sounds like you're distilling the most important information possible from this interaction that's occurring and deciding what to filter. And it sounded like, if I think about, because I'm fairly dissociated myself. This is the first time I've ever sort of even thought about it, "This is a superpower?" Because I certainly don't add a lot too, and I think one of the things I noticed in zoning out, it allows you to decrease the amount of external input such that you can increase the amount of internal looping that you're doing internally. And so dissociatedness tends to also be coupled with other sort of internal mode powers and stuff, like you can turn on stuff in your own head. So I want to hear, you said you had like kind of two opposites of superpowers. And so you said zoning people out is one side and then, so what's your technical superpower then? AMBREEN: Well, I guess my technical superpower is, this is going to sound like I'm really flattering myself, but I think that whatever sort of challenge I've been given, I'll try to just do it, even if I don't know any sort of background about it. I've had previous jobs where people were sort of like, "Here's the docker thing, go do something with it." And I'm just sort of like, "I don't know anything about docker. I don't know anything about this." But I think that challenge has always been kind of a drive for me to be like, "Okay, I don't know this thing. I'm going to go figure it out," even if I have no background or history on it. Even in my current job, I have no background in Node, in JavaScript. Promises sometimes make me cry. But I think that's kind of a superpower for me is just kind of going for it. Jumping in the deep end and trying to figure it out. ARTY: It takes a lot of, what's the right word? The first words that came to mind were courage, bravery. But it's almost like it's a willingness to sit with yourself in a place of not knowing and then trust that, "I've got some skills. I trust my ability to figure out the thing. I figured out things before." And even when you're in that place of uncertainty where you've got all these things to learn, all these things you don't know how to do. "Good, I got this. I just chip away at things and have figured it out." And the superpower is in comfort, I would say, with being in that place of uncertainty, being in that place of not knowing and trusting in your own capabilities. That's a pretty cool superpower, I'd say. JOHN: It really is. I almost want to say [hutzpah] but that's also not quite right. [Chuckles] JACOB: I had a professor that used the term of being productively lost, which is like differentiating from, I guess being hopelessly lost or something like that. But it's like when you have no idea what the answer is or how to get there, you at the very least have, I guess either wisdom or experience or intuition of what I can do that might lead me to a trail out of the desert in terms of whether it's typing something into your search engine or who knows what. That's what it made me think of. ARTY: The second part of this question is what is your superpower and how did you acquire it? We've talked about the style of just being able to jump into the mess, feel good enough about your skills to be able to get out of the mess, and it's a certain mindset. And so I'm curious, where do you think that mindset came from? AMBREEN: I went to a bootcamp, that bootcamp, rest in peace, it's like just anywhere, but they had taught us about sort of this idea of like fixed mindset versus growth mindset. And this idea of like there's only so much you can learn and you're just going to be in this mindset for the rest of your life. And then versus this growth mindset of like, there's so much for me to learn and so much for me to grow and I don't know everything. But there's also this idea of like, I don't know everything that is okay and being able to kind of move up from there. And so I think, learning more about that I think kind of gave me understanding to like, "It's okay to not know everything." And there are ways and there are resources for you to kind of figure it out and to kind of use those resources as well to your advantage. If you have teammates who know more about it, ask them. If you have managers or people that you can talk to, talk to them about it. So, definitely I feel that maybe it's always kind of been there, but I think having that sort of understanding and reading more about that sort of solidifies what exactly that was. Because I think for me too, when I was kind of growing up, I felt that like not knowing something was a bad thing, and then kind of relearning that it's okay to not know everything. JOHN: Yeah. I sometimes struggle with that feeling of like when I move into a new platform or a new technical context where you just sort of flounder around and trying to figure out what's going to be there. And sometimes I forget that I can learn and that I can be comfortable in this state of just like, "Oh, all right, I'm just going to be Googling the heck out of this for a week." And when I can, I'd be like, "Oh well, I can just relax. This is where I am." But I don't always remember that. But I think that's really cool that you sort of have that default attitude when you get into that situation that, "Oh yeah, I can do this." ARTY: I think it also changes our attitude a lot of how we treat other people around us and being able to encourage other people and create safe space for not knowing all the things and not like, "You didn't know that thing?" You notice the ways that we judge ourselves, we tend to reflect on others. If we feel certain way about ourselves, then we're critical of others in that same sort of way. And if in ourselves we shift to this growth mindset, if we shift to this place of it's totally okay to not know, then we also invite other people to be free in not knowing that way too. And we open the possibilities for learning by creating that kind of culture around us. That's pretty cool. JOHN: Yeah. I always try and do that by just demonstrating, like just doing it by saying, "Hey, I didn't know this thing. It was really hard to learn it but I did it." ARTY: I'm curious now. Are there other sorts of hobbies and stuff you have outside of software? What kind of things do you do? AMBREEN: I'm kind of an amateur photographer. I sort of adopted my dad's old film camera. And then years ago, I had saved up for a DSLR as well. So I kind of got into sort of different modes of photography. I still call myself an amateur because I feel like there's still a lot to learn. A lot of my hobbies too, they have to do with being able to zone out. So it's like, photography is about zoning out because it's sort of like you had to have to think about the picture and the position at hand and being able to ignore everything else. I guess it's one hobby of mine. I do random things. But that one I think is the one that stands out the most for me. ARTY: I was asking because I was wondering if the willingness to jump in and learn new things also translate into jumping in a whole bunch of other things outside of technology things too. So that was kind of what my curiosity led me down. But it sounds like photography and stuff, it doesn't sound that's the case that it led to like a flourishing and these other things. It sounds like you find a certain amount of peace in being able to kind of like zone out within yourself and that's like good, happy, safe space. AMBREEN: Yeah, I've definitely ventured into a lot of different hobbies and things like that. Some that I've only sort of adopted for maybe a month or two and I was like, "Eh, not really for me." But yeah, I think that definitely a lot of the things I kind of look for are sort of just like, one is like what is something that will challenge me and, two, what will sort of give me a sense of peace or being able to kind of think about things in a more sort of molecular way. I don't know, sort of in a smaller way. Yeah. ARTY: In a molecular way. I kind of want to dig into that a little bit. I'm curious what you mean. AMBREEN: I'm also curious what I mean. [Laughs] ARTY: It's an interesting choice of word and it was clear when you stopped and paused and were looking for a word, you're like, "There's not a word for what I'm trying to say, but this is sort of like the closest proxy I can think of in the moment." And so it's like there's a whole bunch of unpacking there of molecular. AMBREEN: Yeah. I'm trying to think too, what did I mean by that? When I think about code as well, you think of things as small components or individual components, especially when you're learning how to code or just coding, you want to think about things one step at a time. That's how I like to think about even just when you're learning something new too, like when you're learning something, you're just sort of like, "Oh, there's so much." There's like an entire world, and I think that entire world can become very overwhelming. But being able to kind of take chunks at a time, I think that could be really helpful. Especially when you're learning something new, it's kind of like my learning process too, like how do you take things from a small thing or something really big and try and make it into small little components that are understandable, if that makes sense. JOHN: And it strikes me as a good learning technique is if you can break down the big concepts into the small things that you can learn that you just knock those little things down. And then it's also not daunting but also easy to measure progress. And just like with code, small, easy to understand chunks are great for everyone. ARTY: And maybe that's what gives you that sense of confidence when you're going in tackling some new space and new domain is you can go, "Oh, I'll just break this down into little pieces and focus on the little pieces one thing at a time and I don't have to worry about all this stuff. Just this one little bit." Something like that. AMBREEN: Yeah, especially when I was learning how to code too, when I was going through Dev Bootcamp, it's like a 19-week intensive course. You're getting thrown things at you. And I think that a lot of people kind of freak out because it'd be like, "I don't know everything." And I didn't know everything either, even when I was going from one lesson to the next lesson, I didn't understand everything. I would tell myself, "You know what? It's okay. If I don't know everything, it will all click at the end." That's the promise I kept telling myself. It will all click at the end, even if I don't understand it now. JACOB: And did it? AMBREEN: It did. Yeah. At least you have to trust your instincts. JOHN: Yeah. So it strikes me almost at the core of that skill is being comfortable, being uncomfortable. You can say, "I don't remember anything right now. It probably feels not great, but I can have some faith that eventually it will and it's okay to be here where I am right now." I mean, that's valuable in all sorts of different situations. I really like that. ARTY: You started with this backstory in your bio of this past life career in marketing, and I assume you went down some path where that seemed like the direction you wanted to go. And then you had some significant event in life of some sort, I'm assuming, that caused you to reconsider and decide to change direction. Would you mind telling us a bit about your journey in your marketing career and what made you decide to change direction? AMBREEN: I graduated as a Bachelor of Arts in English. I think at that time too, when I had graduated, there's a lot of "natural" sort of jobs that I feel like people with certain majors kind of get pushed into, whether they want to or not. They're sort of like, these are the natural choices for you because of your major. Teaching was one of them and marketing and sales, and content writing. So a lot of kind of writing-oriented jobs. I actually had a lot of sort of sales related jobs in college. So I was like, "Maybe I'll try my hand at marketing." And it was more like content writing within marketing that I got into. I was like, "Well, I've been writing for four years, so let's try more writing." [Laughs] For me personally, I didn't find it very challenging because I felt there's certain sort of repetition to what I was doing over and over again. And so I thought, "I don't think this is really for me." And I thought about too, maybe it's just the job, maybe it's just the position I'm at. Maybe I should other options, things like that. But I wasn't sure. But I had sort of this intuition to just be like, I don't think this is really for me. I don't know if I'm going to last very long in this career. I want to say naturally, my family is literally all engineers. A lot of them are engineers. And so, I don't know if me being an English major was like a rebellion. But it was sort of something that I wasn't really sure about. I started to kind of like, "What are my career options out there?" When I saw that my dad and my brothers, they're engineers doing technical roles. So I was like, "Maybe I can try my hand at this too." And I took some computer science classes and things like that to try to kind of see. And then when I kind of learned from that -- actually, I failed my first programming out of college course. I got like a D in my C++ because it was just such a terrible language to learn as a first language. [Chuckles] But even though I failed at it, I still liked it because I felt that it was challenging. I felt that I was learning something new, that there was a billion ways to solve one thing. And I love that. When I was sort of writing or I was doing different things, there's only really one way to do this. It's like I needed a way to stretch my brain and I think that's what I was craving. So I think taking those engineering courses really helped me even though I failed at it, I really failed at all my courses, I was like, "I still like this." But I thought that maybe the language, it's the wrong language, it's the wrong approach to learning. So that's when I then looked into bootcamps at that time, which I think was like 2014 with bootcamps were sort of coming out. I mean, it's not a very interesting story, but it's sort of the story of how I transitioned into software engineering. ARTY: I thought that was a great story. Just the words you used of stretching your brain are interesting. In contrast, seeing the situation where something starts to feel repetitive and something that interesting feeling goes away and you get bored and don't feel like your brain is growing. And then there's this joy that comes from learning new things and stretching your brain. And I'm guessing it sounds like your superpower that you talked about of being able to go into the zone where you can really spend a lot of time with your own thoughts to know only the things that are relevant to what's going on in your brain when you're coding or whatever. I mean, that's a powerful skill when you're working. And then at the same time, finding that love of stretching your brain as the thing that you gravitate toward becomes super powerful. It also makes me think about like in general when you're going to school and you're trying to figure out what is it I want to do with my life, what is it that I love that is my gravity. And I found there are certain subjects that are like a wilderness of possibilities that you can see different ways that you can learn an infinite amount about. And there's always more to learn. There's always more to get excited about because it's one of these cool wilderness living things to explore. And when you find one of those really cool wilderness to explore that you fall in love with the wilderness. If you can find a way to build a career, somehow that allows you to experience the joy of stretching your brain to better understand more of the wilderness, that that becomes like a joy fountain in your life that you can find a way to do a career that you'll never get bored with, basically. There's always more cool things to learn, whether it's like let's say if I'm really into horses or something. If I really, really, really love learning all the things that are about horses, how can I turn that into a career? And there's so many ways to turn a love into a career with technology these days. And I think that's the key though, is finding something that you can genuinely fall in love with. AMBREEN: Yeah, definitely. I've had a professional career now since 2015 and I mean since then too, as I mentioned in my bio, I've just been jumping around. I've done a lot of Rails and I started off with Ruby in Rails and then I made a weird transitioning to go. And then Docker, and then now I'm like in Node. And so, I like being the Jane-of-all-Trades. I may not be able to be the master, but I like just jumping around and learning things. JACOB: That's kind of amazing because unfortunately I think I've got the shortest career, I think among all of us here. But it seems to me that most employers are not that forward thinking in terms of hiring someone say like, "We need someone for Node and you don't know Node, so how could you possibly be successful at this job?" What I always tell is like asking a carpenter like, "What kinds of woods are you used to working with?" But yeah, how did you manage that jump? Or was it within the same company? How did you do that? AMBREEN: Early on, first two companies, I worked a lot within the same domain. I was working with a lot of Ruby on Rails projects, even just like Ruby framework projects like Sinatra as well and stuff. And then one day I went up to my manager and I said, "You know, I kind of want to do something different. I've been doing the Rails thing for a bit. Give me a new challenge." They were like, "Well, we have some Go projects that need a little bit of love. Would you like to try your hand there?" And I said, "Sure. Let's try that." And so I think I've been kind of lucky enough to be able to work in companies that have allowed me to jump into different things and having managers who, "I trust you in that, but also I want you to learn." I think that's very important. I mean, yeah, that's kind of how I've done it. And with my current place too, it's probably one of the first places where I've not truly touched anything [inaudible] in like six months, which is like huge for me. I think it's like going for challenges that you're not sure about, but then also being lucky and privileged enough to be able to work with managers who want you to branch out. I think that's very important. JOHN: We were talking earlier about how you're so good at jumping into new topics and feeling, if not comfortable, at least confident that you can learn the things you need to learn and how that gives you a sense of empathy for other people who are in that situation and how you don't criticize people for not knowing things because you just have to learn things. And so, it's not really a problem. And so, I want to sort of jump into the topic of empathy in engineering a little bit more in detail because I think it's a really valuable thing to discuss. ARTY: One thing that makes me think about, as you mentioned this dissociative sort of thing, do you notice other people around you that do the zoning out thing too? Does recognizing the zoning out change how you interact with people? AMBREEN: Would I have noticed that people potentially are zoning out? Like for example, if I'm explaining something and they're kind of zoning out. I get to kind of feel that maybe I'm not explaining this correctly or maybe I need to try this a different way. I think as a part of the learning process too, I've seen people sort of zone out when -- this is how I'm interpreting it. I don't know if they're doing this because of this. But they're potentially zoning out because maybe the concept or the way that I'm explaining something is like I'm not doing it well and then I've got to try a different way to explain something. I think once, I was trying to explain how a message bus system worked with someone and I guess I noticed that the person kept looking around and not where I was writing. And so I wasn't sure if the person just didn't understand what I was saying or they're zoning out because they're super distracted. That's what I kind of know. I was like, "Maybe I need to explain something different or maybe we just need a break. It's been a long day." And so that's kind of the patterns that I've kind of seen within the workplace, at least with potentially other coworkers or colleagues. ARTY: It's interesting to me because I have a pretty significant auditory focus handicap with just being able to focus on conversations is one of the reasons I slant so heavily towards visual and wanting to take notes and things like that because it makes it easier for me to listen. So I found ways, it's not like I can't listen at all, but I use various visual means as a way to help my brain anchor and be able to focus on the conversation. And my auditory fatigue, if I think about it building up over time, you hit a level of fatigue and then it's like I can't take more input, my input is full. And even if someone is making more words, I can't hear anymore. I need a break, I need to get away. But the thing is though, I've realized since I'm dissociative though too that when other folks are kind of tuning out and things, I'm more sensitive and aware to them tuning out but also forgiving and that it's not necessarily personal. They're living inside their [inaudible] as I've come to call it. They're full on input. They had a stressful day. They got other stuff going on in their head. And one of the things I've noticed in the world right now is a lot of folks are very emotional and stressed out about all the things going on. And one of the things that happens is people get pulled into their head. You've got all this emotional stress and everything get pulled into, playing movies in your head. And so I see a lot more people that are in this sort of dissociative mode. And what ends up happening is interesting because on one hand you have someone's like, "Ah, I can't handle any more of this." Just giving you the hand. And then if the people on the other side take that defensively, take it personally, this is rejection or something wrong with them, then you end up with these sort of escalating patterns, when it really has nothing to do with that situation at all. It's just everyone's stressed out. Maybe we do just need to go for a walk. "I need a Twitter break right now." I was just like, "I'm going to post flowers in the morning and I'm not going to look at anything in Twitter," because the intensity is so high. It has this real vortex effect that pulls you into these addictive loops and then you've got this whole system that's based on this attention treadmill and it's super easy to get caught up in. And it's super easy to get caught up and read in all the things until you just go mad with getting pulled into this world. I'm curious just with, if you look at the patterns of disassociation on just the context of your development team, where you see those patterns happen and what kind of places that you see maybe disconnected conversation when people were kind of in their own heads. AMBREEN: Yeah, I have noticed this a lot I think while pair programming just because I think with pair programming, there's like constant discussion, just constant conversation which can be really exhausting. It could be really exhausting for people because you're constantly having to filter your brain in this way that people can understand what you're saying. Those are some of the patterns that I've kind of seen at least when you're pair programming. And if you're pair programming without taking breaks, like frequent breaks, like maybe every 45 minutes, maybe every 30 minutes depending on your schedule. But it's sort of like when you're not taking those constant breaks, you're kind of seeing people kind of getting exhausted. Maybe the conversation's not going as smoothly or maybe when you're working on something you're like talking even more. It's sort of like when you're in this state of anxiety or just really tired, you start doing more to be like, "I don't know where I'm going with this, but I'm just going to keep talking," a reverse effect that you could have sometimes. I'm not sure if I'm answering your question. ARTY: Oh, that was good. It makes me think about pair programming versus mob programming is trendy these days too. And it makes me think or wonder if that certain programming styles select out people that have more kind of dissociative, auditory focus handicap because they get exhausted from that type of interaction. And it's not that you can't, you can find other ways to interact. Sometimes even just interacting with certain people. Some people are just like, "I can't handle the intensity coming out of you. I need to go over here so I can be okay." And some people, we jive and connect in harmony with. And other folks, it's not that we can't connect, but it can take more effort. It can be exhausting. You can have a lot of talking past each other and a lot of effort that's required. You're trying to say a thing and they're like, "I don't really understand you." And you have disconnected conversations and it's frustrating. When it takes a whole bunch of patience to overcome the communication barriers, then it can be really isolating and difficult. We talk a lot about the importance of diversity and there's all of these challenges that come into play when we think differently of figuring out how do you overcome those barriers in different sorts of ideas, different sorts of language. And there's this theory that if we throw everyone in the same room and we code as a mob, that all those problems go away. And I don't know if that's really true. There's this assumption that everyone in the room understands equally what is going on. Is that really true? JACOB: [Laughs] [Inaudible] your own question. ARTY: I mean, it's something to think about where we have these theories about things and I don't think mob programming is a bad idea or anything. I've seen people do really interesting things in that sort of context and create really interesting sort of learning experiences in that sort of context. And at the same time, it seems like the more deviant you are from how your ideas are from the rest of the group, the more difficult it is to overcome those communication hurdles that I can easily see it becoming a common norm that becomes isolating because people don't want to put in the energy to necessarily get you up to speed. And so, you just stop trying. And I can see those turning into silent effects or silent things that happen as opposed to things that are like, "Oh, we're doing the mob programming thing. Everything is great. We all understand." I'm curious how often in context people actually speak up about those things versus just pretend like everything's all fine. Pretend like I understand and it's all good. JACOB: Yeah. Because when I'm writing, when I'm working, ideally, I am engaged in a very tight feedback loop between me and the system I'm interacting with, like the code base, and how you may interact your sort of feedback loop may have a completely different rhythm and different style than mine. So it's like, maybe we're working and my brain is like, I would really just love to drop a debugger right there and just look around. And I don't even know what I'm looking for. I just really want to know. And if I can't get my mind past that, then I can't be productive with anything else because my brain is just sort of stuck on that one question that I'm just dying to know about. And it just seems to me that if we've got a group of people, I don't know how we can all sort of satisfy that need to sort of learn and answer those tiny questions all at the same time and also drive towards sort of one product. I don't know how we do that. ARTY: That is the core challenge of our industry, is it not? Everything kind of comes back to communication. AMBREEN: Yeah. And Jacob, you bring up a point about different styles of life learning, too. I think potentially, especially when you're pair programming, there's probably one person that's sort of like, "Boom, boom, boom, boom, boom. Let's just kind of go through this." And there's one person that was like, "But wait, what is the value of that thing? I can't move forward until I know what the state of that thing is. Or just like how to accommodate different styles of learning or different styles of coding, et cetera, when you're kind of working with a group of people or with a single person. I think that's kind of been one thing to kind of think about too is like when you're working or collaborating with other people, how do you accommodate all the different styles of learning, one thing. And then can you change your way of being able to help someone learn a particular way or how do you learn? And I don't know if pair or mob programming has necessarily helped with that in terms of accommodating different styles of learning. Maybe it can, but I think it's interesting to think about. JACOB: I can't cite specific sources on this, but I feel like there's been some conversation maybe in the last year about pair programming that when you and I talk about pair programming, we actually might not be on the same page about what we mean even though we're pairing together. And it sort of seems like teams that are allowed to sort of slip in and out of pair programming as they need to are probably going to be the most successful. So it's like if I'm someone that pairs when I need to ask a question and at other times, I'm not. Or if I like to pair to sort of sketch out where I'm going to go with this problem. But once I've sketched it out, I need to sort of go off on my own and sort of type it all out because that's how I think. It's sort of like if a team has sort of enables to make that a sort of a fluid process, it seems like that's going to be successful. AMBREEN: Yeah. I mean, I've been in situations and companies where I was like, like 90% - 95% coding. And then I've been in companies where there was zero coding. I've also been in companies where it's kind of a hybrid where it's sort of like the code or you pair as needed. Especially in environments where I was able to pair as needed just to kind of help you get unstuck. Yeah, I definitely agree. JOHN: I found thinking about working at Pivotal gives me the heebie jeebies, like doing solid eight hours every day two keyboards. I'm sure it would grow my skills at pairing a great deal, but I think I would be exhausted to the point of falling over at the end of every day. And so, I'm much happier with a sort of ad hoc way of doing that. Although I do keep an eye out for opportunities to do it a little bit more frequently rather than just when I'm stuck on things. AMBREEN: Yeah, I think having like a conversation, even with me sometimes. I was kind of getting stuck on what's the difference between npm install and npm update because I can't figure out what the difference is. And so, sometimes I'll bring that out, like bring it up in a Slack channel and just be like, "Let's have a conversation about this. What are these things even really doing?" Because the Stack Overflow, people are not helping as usual. And so, what do I do? As Arty already mentioned, open communication. Keeping communication open, even if you're not pairing all the time. Pairing isn't just one way of collaboration and communication. ARTY: As a generalist that has all these different skills and different languages, do you find yourself helping to bridge those gaps with peers on your team? Because it's kind of like being able to speak a whole bunch of different languages. And even if the folks around you, maybe they know three of the languages but you're fluent in like 10 of them or something, then you kind of become this bridge person, it seems like. AMBREEN: I think everyone can kind of bring something to the table. I know one thing about something, but it's like, I know a little bit about this aspect of JavaScript, but there's another person on my team that's actually really good, an engineer knows JavaScript really well. And being able to have those conversations, to be like, "Okay, this is my understanding. This is your understanding. How do we bring this together?" To be like, "Oh, this is how this thing works." ARTY: Do you find that you bring idioms and ideas from one language to another in terms of ways of thinking? Because one of the things I've definitely heard about people that learn lots of different languages is one of the things they enjoy is each language is a different way of thinking about the problem. It's a different abstraction, a way to sort of describe your ideas to the machine. I'm curious if there's crossover, like ideas from one context spill over into another and if there's anything that jumps to mind. AMBREEN: Yeah, one example is going from Ruby to JavaScript. It's sort of like synchronous programming, asynchronous programming and sort of learning how to think about something in a way where when you're in Ruby and even just like Go and other languages, the expectation is, "These lines will go in according to how I wrote them." And then there's JavaScript where it's like, "I might run this line first, then maybe I'll wait for that one and then I'm going to run this one." To answer your question, I've always tried to find ways that I can try to use my understanding of other languages. I think JavaScript has actually been one of the harder language to learn because it's such a different way of programming and different ways to think about it. But I think one thing that I have tried but I can never navigate over is the tools and how to think about structure. For example, being in Rails. Rails being a very opinionated framework, it has structure and ways of doing things whereas I didn't find Node to be. Node in my opinion is [inaudible]. It's sort of like the Sinatra, just do whatever kind of it does best. And there's different tools that help you. But me and then I have another member of my team who has written in Rails. So, we kind of go back and we try like, "Okay, this is how it's done in Rails. Does that architecture kind of work for this project and would help with this project? Should we have our routes like this? Should we have business logic here?" I think being [inaudible] differently kind of helps in terms of navigating others in terms of like, I think it's helped with like at least software instruction, design and stuff, for sure. JOHN: Do you have thing that you do when you're working with someone specifically that helps increase the amount of empathy in a relationship or specific techniques or do you find it just spreading the knowledge around the team or techniques around the team or is it something you do specifically with an individual? AMBREEN: When joining any new team, it's helpful to not assume everything. And what I mean by this is, you can come into a new language, you can come into a new project and you're like, "Why did you do this? Why did you do this? Why would anyone ever do it this way?" Don't come with those opinions. There's a reason why something happened. You can have empathy for those team members, ask them. "I noticed that this style is all functional programming. Why did we do this?" Or, "This project here, we have some way of doing stuff. Why did this happen?" Don't say weird stuff. One of the things when I'm joining a new team is definitely don't assume and ask questions about things rather than tell people why you don't like something. ARTY: So this is the part of the show where we wrap up and do reflections and take a minute to think about all the different threads for the show, wrap up any kind of final thoughts or takeaways. JOHN: I think the thing that's going to stick with me is your talk early on about being comfortable in new unknown situations. As I was saying before, being comfortable/being uncomfortable I think is a really valuable skill that sometimes I'm able to achieve and I would like to achieve more. So thinking about it a little bit more explicitly and trying to be intentional about recognizing uncomfortable learning situations and explicitly saying to myself, "It's going to be fine. We're going to figure this out." I think it's going to be a good thing for me. As you were saying, I'm right in the middle of like a deep dive on Docker and so I feel completely lost on a lot of the stuff, but I'll get there. JACOB: You mentioned earlier about how basic biological needs sometimes impair our ability to communicate or listen to each other. And it just got me thinking about, we talk about this on the show all the time, how my biological or emotional state, I guess you can sort of use those interchangeably here, really does matter at work. And somehow we have to find a way where work isn't therapy, work isn't our family where we're talking about all of our feelings and are accountable for, it's a different context than that. But somehow we've got to be in a place where we as professionals acknowledge that someone's biological state or emotional state has relevance to their ability to do work. And it's something that we can actually talk about within appropriate boundaries. ARTY: Interesting. I keep thinking back to this thread of changing paths from marketing to engineering and to get to a point of realizing, "Okay, I'm going down this path and this isn't really what I want to do." Stepping into a totally new zone with new skills, new space, giving up your existing career you've built so far and going on new adventures. It's that same spirit of, "I'm okay, I can break it down, I can figure out the thing." And I think about the challenges I've had in my own life. And one of the big things I've struggled with is that inertia around being able to try new things. I mean even when you're talking about hobbies, it's like, "Tried that one out for a couple months and stuff." Try something out for a couple of months, that's hard for me anyway. Breaking outside of my zone often requires someone else helping pull me over that edge. And I think realizing that you have a gift and being able to be comfortable in that space and not everyone does that if you see others that have trouble with overcoming that kind of inertia of trying new things that maybe you can kind of be a force in the world for getting people outside of their boxes and finding that same place within themselves where they can be chill, they can be okay with not knowing, I think is something that you have a lot to offer with that. AMBREEN: Thank you. I really like what Jacob said earlier about being productivity lost. I guess I didn't really think about it that way. I just thought it's just like you are lost, as Arty already mentioned, like you're in this wilderness, you know where you're going, but there's progress being made. And I also really like later discussions about pair programming too and different styles of learning. I feel like I was always in this group where people are like, "Pair programming is the way. It's the way, it's the way." I found it very comforting to be in a group where it's sort of like, "Uhhh, maybe, maybe not." I really appreciate this conversation. ARTY: Thank you. Ambreen. This was really great. It was pleasure to have you on the show. AMBREEN: Thank you. This was really fun.