Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Competence builds confidence with .NET Principal Engineer Safia Abdalla image

Competence builds confidence with .NET Principal Engineer Safia Abdalla

Hanselminutes with Scott Hanselman
Avatar
4 Plays4 days ago

On this special episode of Hanselminutes, Scott reunites with .NET Principal Engineer Safia Abdalla, nearly 500 episodes and a decade after her first appearance on the show. They reflect on the arc of her career and the evolution of the developer landscape, discussing how building competence fuels confidence, how anxieties can compound in high-pressure environments, and what strategies help engineers sustain both technical excellence and personal growth over time.

This episode is sponsored by CodeRabbit and Tuple

For effortless AI code reviews, go to https://coderabbit.ai/

Check out https://tuple.app/hanselminutes for the best remote pair programming app on macOS and Windows

Recommended
Transcript
00:00:00
Speaker
Hey friends, it's Scott. i'm going to take a moment in the middle of the show here to thank our sponsors, Tuple. They make pair programming joyful. I'm chatting with Johnny Marler. Johnny, how has pair programming made your life as a dev, you know, a little less frustrating?
00:00:14
Speaker
Yeah, um I've been a developer for 15 years. And I'll say one of the most frustrating things I've come across is when you work on something for a few days, you submit that pull request, and then you find out that it's you were working on the wrong thing. And it's even worse when you get that pull request from somebody else and you know you have to be the bearer of bad news and let them know, hey, I think we've got to redo all this.
00:00:38
Speaker
Nobody's happy in that situation. um So yeah, with ah with pairing, this sort of prevents all that from happening. And the other problem with that can be frustrating is even though pairing is really nice, it's really hard to get into that pairing session.
00:00:54
Speaker
You know, like you have to sometimes set up a meeting or message somebody on Slack and, you know, just that social friction to get started sometimes just prevents people from doing it at all. So, you know, that's why I love Tuple so much. You pull up your your your UI, you it's one click to call somebody and then just another click to start sharing your screen, you're immediately in the flow with somebody else. So,
00:01:16
Speaker
Very cool. Folks can check it out at tuple.app. That's T-U-P-L-E.app. It's the best remote pair programming app on both Mac and Windows. Hi, I'm Scott Hanselman. This is another episode of Hansel Minutes. Today, I'm chatting with Safia Abdullah.
00:01:30
Speaker
She is a principal software engineer on.NET at Microsoft. And I met you when you were at Northwestern. Is that right? Yes. That's where I went to college.
00:01:41
Speaker
Was that like over a decade ago? How long ago was that? Oh my gosh, don't make me seem old. But yeah, it was over a decade ago. Was that a 10th of a century ago? it was a while. it is It is long enough that I am shocked by the passage of time and how much has happened since we first met. but Yeah, you're like a whole grown person now.
00:02:00
Speaker
Right? There's wisdom, there's maturity, there's progress, always growing. have some gray hairs now. You do? You do have like three gray hairs? Yeah. I am going to put you on the spot because I thought it was funny when we got ready to record, I could tell you were focused on something else. And I think you nerd sniped yourself.
00:02:19
Speaker
Talk about what that feels like because I had that problem happen yesterday. Oh, gosh. You know, so I was sharing, I've been prototyping and iterating on something and I feel like sometimes you have to rewrite a solution to a problem multiple times before you like get that nirvana.
00:02:36
Speaker
And so I was really close to my third rewrite of this thing that I'm working on. And I thought I was close to getting little bit closer to nirvana. And was like, oh, crap.
00:02:48
Speaker
I got to go jump into a meeting with Scott. um And so you have to like reorient yourself out of like the deep like work zone, um which I get into, but especially on a Wednesday morning where you don't like have that many meetings. It's Wednesday today. And so you can just kind of sit and code, catch a vibe, so to speak.
00:03:06
Speaker
Yep. My entire afternoon from you're my last meeting until five. So I have four hours of coding ahead of me. well I'm so happy for you. and And like yesterday i was, I mentioned this on, on blue sky that I hit the limit of free on GitHub actions. Yeah.
00:03:24
Speaker
Because apparently there's a limit of like how many hours you can use and then how many artifacts you can use, but there's no way to see the artifacts. So I'm like, I've never hit this limit before what's going on. So I coded this GitHub artifacts analyzer and I got it all so I could go and find out. It turns out that one of my things was running too often and it was dropping 200 megs every time. And I, I hit the two gig limit.
00:03:45
Speaker
So I made a cleanup, you know, check disk for GitHub artifacts and I was right. And then I left. And because my wife said, we're going to dinner. And then while I'm at dinner, people are like, you didn't put it in the NPM registry. You forgot to publish the tool.
00:03:59
Speaker
I don't want to clone it. you know And I was just like, and I really wanted to concentrate on dinner with my wife. Yes. But, you know, because it's like two things can be true. Like, I love my wife, but I did not publish this tool to the NPM registry.
00:04:12
Speaker
Yeah. And do you get a look on your face when when that happens, when you're still like nerd sniped? And my husband can always tell. He's like, I can tell you're thinking about something and you're you're not totally focused on this meal or this coffee or whatever. I'm like, yeah.
00:04:26
Speaker
Everyone wants to give that a label and say that that's like, you know, autism or a personality. I think it's just programmers. It's just like, that's just how we operate. I could not disconnect. And when I got back, it took like six minutes to publish the thing, but I needed to get it out of my brain.
00:04:42
Speaker
yeah think that's what makes it good. That's what makes a good programmer. Yeah. I think you also have to know when to stop it though. Cause I've definitely had those moments where I was holding on to a problem really hard and it was like 1130 PM at night and I really should have gone to bed. Cause know, eventually I do. And the next morning I wake up and the solution that I couldn't see the night before is like super obvious in front of me. So yeah, figuring out when you pull yourself out from the zone and when you like keep it in and all that, it's, um,
00:05:14
Speaker
I think it evolves and it depends on the context too, but it's like, it it is a thing that programmers go through. Have you always been wired that way? I think so. i think so. i people have different terms for it, right? I've heard people say flow state a lot by kind of like that experience of when you are trying to unravel a problem, it's like a big ball of yarn and and you want to get to that like satisfaction at the end.
00:05:44
Speaker
I've always been like that. i think that's what maybe also drew me to programming and kind of made it a natural fit is I had that like inclination to start. And so I discovered this thing that happened to be a really good fit for that inclination. There's probably maybe other careers I could have had, but you know programming is the one that satisfies that the most.
00:06:04
Speaker
An episode I've got coming up soon is with a gentleman named Bobby Lockhart, who's a game designer, and not just video games, but any game, board games. And he had this theory that it isn't fun unless you're learning.
00:06:18
Speaker
And that feeling that you have when you beat a boss or you do something in Elden Ring where it's like you attack the boss, like a Dark Souls boss, and you get destroyed and you have a feeling of fear.
00:06:29
Speaker
And then in two weeks, your brain literally changes. It swells. The neurons reek. then you're like, oh, I can solo this guy with my eyes closed. I think the same thing happens when you're about to attack the big ball of yarn programming problem. And then it's like, oh, no, I've done that. That's simple. Why was I even afraid of that?
00:06:46
Speaker
Yeah, you know, it's interesting because it reminds me of a perspective shift that I had since we first met over a decade ago, which a lot of the wisdom that I got when I was a wee little programmer and first entering the industry was like the fake it till you make it type of stuff, you know? And that never, never saddled with me because it, know, it felt inauthentic a little bit.
00:07:12
Speaker
I think what I learned having gone through experiences is that competence is the best way to build confidence. And what you need to do is find yourself in situations where you can take on those like big, scary challenges, technical challenges, where people will support and sponsor you if you need help getting through it or if you fail at it.
00:07:35
Speaker
But they will give you those opportunities so that you can succeed at the challenge. And then, you know, you gain that not only satisfaction in solving the problem, but sense of confidence that you could do it.
00:07:46
Speaker
And then you get the next big challenge. And so my thinking about like, what it means to, you know, not get over your imposter syndrome, but maybe conquer it a little bit is you just kind of have to do hard things in supportive environments and strengthen your self-confidence through the repetition of that behavior.
00:08:07
Speaker
That's how was kind of connecting those two things. What do you think has changed in the industry, though, in the last five or 10 years? Because in the last 10 years, you did not quit. You did not leave the industry. You did not get chased out. You didn't give up.
00:08:20
Speaker
And now you can bring the next gen in. But it feels like there's a certain kind of early in career person right now that's getting kind of chewed up. um Is it because the capitalism of us all is not giving us time to, like, let them cook?
00:08:35
Speaker
yeah Yeah, this is so interesting because i I do a lot of mentorship now that I have wisdom to share since I've gotten so old. And a lot of my mentees are early in career individuals. And I think some of the people cropping up in the industry now, having come out of university or what have you, a lot of it is like compounding anxieties.
00:08:59
Speaker
I think of all these different things you get hit with. There's this like AI thing going on. There's this supposed intensity of like how hard these um lead codes that you have to do to get a job at are.
00:09:11
Speaker
There's the kind of mental shift of you know you spend your entire life through school kind of being graded on a standard and then you go work at a company. It's like what the hell do i do I'm supposed to be progressing in my career or doing things, but you don't really have a like a structure. There's no like rubric for how you're supposed to succeed in your career.
00:09:34
Speaker
So I think it's those like compounding anxieties from a lot of the ambiguity with what's going on right now. And it's kind of hard to coach some of my mentees through all of that in a way that's like empathetic, that some things are like outside of your control and you kind of have to make peace or kind of react to it.
00:09:55
Speaker
One of the things that I'm trying to do is think about where I am and who I am and why I know these things so that I can help them with with an with a with an awareness of where I'm at, because I don't want to just be like, why do you not know this?
00:10:10
Speaker
Like, are you how do you not know this? And it's like, well, I know this because I've been here a long time. yeah And they can't know that because they haven't been here a long time. So is it simply waiting?
00:10:22
Speaker
So when I think about stuff like, i would you know, I could meet a a senior engineer and then I realized that I don't think this person understands how HTTP works. And it's not a, it's not a judgment call. It's not a, this is a, not a smart person. It's just that they never really got into the weeds yeah and sat in Fiddler or wire shark.
00:10:41
Speaker
So it's like, if they never had that opportunity, they never would get it. So if somebody comes out of, it as an example, Northwestern and they're suddenly they're, they're 22, how could they know that there wasn't a, it's always DNS class at Northwestern.
00:10:56
Speaker
Yeah, there was a very interesting networking class. But again, there's the leap you have to take from like theoretical stuff that you learn in school to like the in-practice stuff that you learn at work. And I think it goes back to the thing I was describing about building confidence through competence in supportive environments. It's like the supportive environments is the big thing.
00:11:17
Speaker
So a lot of what I do for people who are early in career is being that person who Maybe the other, you know, principal I see is on their direct team. They don't feel comfortable showing them their code or they haven't kind of established that camaraderie or vibe or trust, which, you know, is a two-way street. And I put the onus mostly on the more senior engineer to figure out how do you build a good relationship with your junior engineers on your team. So when that relationship is is lacking for them, I'm kind of the person they can go to and like run their PR past before they...
00:11:52
Speaker
open it up for review by their team, or if they have a question about code and they're not sure how to formulate it or how to structure it to, you know, somebody on their direct team, they might be nervous about speaking with being kind of that supportive environment for somebody when it's not there directly on their team, I find helps. Yeah.
00:12:11
Speaker
You just said that you put the honest on the senior, which I think is important because I feel like there's so many internship programs and mentorship programs and apprenticeship programs. And this is something I'm kicking around. And Mark Rusinovich and I have written a paper on this. that I think if you call it an internship or an apprenticeship, it puts inordinate pressure on the early in career person to pull themselves up.
00:12:35
Speaker
yeah When it should literally be my job and your job as the senior people to send the ladder back down and and pull them up. So like the whole pull yourself up by your own bootstraps is a fun thing to say.
00:12:47
Speaker
But from a physics perspective, it literally doesn't work. Like you can't physically pull yourself up by your bootstraps. yeah That resonates with me. And this is something I say when, you know, I'm speaking with mentees and they're maybe expressing frustration or like insecurity at somebody that is more senior on their team that they're working with. It's like, it's not your fault to have to do the work to kind of build the sense of like psychological safety and trust on your team. It's the person who's been there for 10 years, 15 years, five years, however long it may be.
00:13:20
Speaker
And I think another aspect to it, and it's important for senior engineers to think about it, is like, if you want to maintain a code base that is healthy or like a service that, you know, has high uptime or an open source project that is, um you know, going to have longevity, you have to think about how you maintain and grow the people as much as you maintain and grow the code.
00:13:43
Speaker
think that's kind of like part and parcel of the job. But some of those squishy things are hard to like communicate sometimes their value, you know? Yeah. when i When I met you when you were in school, you stood out because you were doing open source and running communities already.
00:14:02
Speaker
And i feel like somewhere like April of senior year, I see a lot of people go, I should probably get involved. And I'm like, it's a little late, like it' not a little late, little late. It's not literally a little late, but it's like, gosh, like April of senior year is probably not when you want to join the community.
00:14:18
Speaker
How did you discover open source? And and that at that time you were doing Python and notebooks and interact. Yes, I started contributing to open source in earnest the summer of 2015.
00:14:32
Speaker
So it's been going on like a straight decade of different things in open source. And I've, you know, had periods where I wasn't contributing to things, but let's call it a decade. And I kind of found it through my interest in Python, my early interest in like data science and the scientific Python stack, but And i was I was using a lot of the open source tools just for class or side projects for my own independent learning.
00:14:58
Speaker
Where I made the jump to like starting to contribute was a couple of things. One of them, we might have talked about this before, was a... program called Write Speak Code. And it was um a like day-long workshop series that they would run in different cities. And it was aimed at technical women in their career. And they would talk about how it was important for you to demonstrate your competence by you know writing blogs,
00:15:23
Speaker
contributing to open source and speaking at conferences. And those were like when we met almost a decade ago. Those are all things that I was doing. And that was primarily because it like clicked for me. It's like, okay, you have to kind of go and share your wisdom and writing, speaking and contributing to open source or how you do that. So that's what kind of got me thinking about like, okay, I'm using these tools. I'm learning all about them. How can I sort start to share that?
00:15:47
Speaker
And so that was what started me contributing. and opened my first PR on the Pandas project, the Python Pandas project. It's like my first official open source contribution.
00:15:58
Speaker
And then it's like a gateway drug. You just like, once you get in and you start, you figure out like the process, you can apply it to so many things. um And I think the other key thing is I was able to connect with people in real life who wanted to encourage me to contribute. There's like tons of spaces where people will do like open source hackathons. Or if you go to a conference, there'll be like sprints. Like I know Python does this a ton where there'll be coding sprints and you can kind of find physical spaces to contribute. So that was another thing that motivated me and kept me going is you figure out the technical part and then you get connected with the people and then like the two get married. And it's like, yeah,
00:16:39
Speaker
kind of nirvana. You work with smart people on interesting things and it's way funner than doing your like college CS homework. Hey friends, this is Scott. I want to take a moment to thank our sponsor CodeRabbit.
00:16:51
Speaker
You know i was chatting with Aravind from CodeRabbit about bugs that slip into production. The whole point of a code review is to not have bugs ship into production. How is CodeRabbit going to help me catch those bugs early?
00:17:06
Speaker
Absolutely, Scott. CodeRabbit automatically learns popular static analyzers, linters, and several code security tools. We run it in in combination with the generative AI reasoning models.
00:17:20
Speaker
We also add a specific technique called code graph analysis or use a better, for a better understanding, we use AST graph ah analysis to kind of like develop a deeper code understanding.
00:17:34
Speaker
and deliver the best-in-class code review feedback right in your PR context. All of that context and all of that expertise and that intelligence is all encapsulated within the code review tool. You can sign up for free, get a free trial, no credit card needed at coderabbit.ai. It's just two clicks to sign up for GitHub or GitLab.
00:17:56
Speaker
I encourage you to check it out. Give it a moment of your time and cut your code review time and your bugs in half. Big thanks to CodeRabbit. They are at coderabbit.ai. dot ai Yeah, it's interesting, though, that there are like all these different flavors and personalities of people involved in tech. And there are those that like hide out in their room, they do their thing, and they code, and then they're it's a one-person team.
00:18:20
Speaker
And then there's kind of social coders. yeah And I think you're a good mix of both because you will disappear for days. But then you also pair program, and you will sit in front of a whiteboard with the best of them.
00:18:33
Speaker
Is that two sides of the same personality that you've got? I think it depends on what part of the nerd sniping you find me in. There's definitely a part of me that, you know, I need to think deeply and synthesize a bunch of things and just like dig into something before I'm ready to kind of understand what people are saying.
00:18:56
Speaker
Okay. It's interesting. We were talking about early in career and I think, um, I'm drawing a connection to an experience that early in career people might have and that I still have when I'm in a new space or working on something new. It's like there's a bunch of people in the room talking about something and you have no idea what they're saying. um And so in moments like those, I feel like I have to kind of go hole up and figure it out myself.
00:19:19
Speaker
um And then once I've reached a certain amount of competence and competence in an area it's like okay now I feel like I can start to engage because I understand what people are saying and how I've mapped their opinions into my own understanding of the thing and so yeah I kind of jump between the two depending on how well I feel I can navigate a technical conversation which is like a skill i feel i feel 70% of the time I do okay, but then I'll be in a room with Rusinovich or you know someone, and then they'll mention some paper some ph d paper that apparently they were reading on the weekend while I was watching Dexter.
00:20:01
Speaker
And I'm just like, ah hey, did you read that paper that came out about like the new way of thinking about word vectors? And I'm like, ah no. you know or you know they've got a PhD and I didn't do a graduate degree, so then I'm like, I don't know if I have the math to understand yeah this thing.
00:20:16
Speaker
I think another skill you mentioned that is when you find yourselves in those moments and you can't just like go hide out and like try and figure it out yourself is like, how do you engage people in a discussion?
00:20:28
Speaker
And this is something that back to the early and career thing, it's like, okay, you don't know something. People are throwing words at you. You're having trouble understanding the big picture. How do you ask the question to like get people to talk or explain things in a way that makes sense to you?
00:20:43
Speaker
And I think also another thing I've been speaking with mentees about is like how to use um LLMs and all of these different tools that we have to kind of develop your understanding of something. So, you know, as you're sitting in a Teams meeting and people are throwing around words and you're trying to develop your understanding, you could do that on the side and like contribute to the conversation.
00:21:05
Speaker
So I think. Knowing how to take ownership of those moments where you don't know what the heck somebody's talking about and like turn it into a learning opportunity for yourself and others. Another thing I've learned to do over the past 10 years.
00:21:20
Speaker
this ah This paper I mentioned that Mark and I are working on where it puts a little bit more on us on the senior. Also, we believe that LLMs are allowing senior engineers to get even better, which is stressing juniors out because the juniors are still at the kind of autocomplete part of the LLM or they're not the vibe coding part where they vibe it and then they vibe a whole app.
00:21:45
Speaker
And it's too much. It's like, no, they just did all my work. So the junior experience is, i don't, this is a theory. I don't know what this just auto completed. I guess I'll go with it or the vibe, the whole thing. I don't really understand the system.
00:21:58
Speaker
So they don't even know what question to ask. Well, I'm feeling accelerated probably 25 to 50%. Once I know the right question. Yeah, that's like an interesting chicken and egg problem where you have this tool that really accelerates your ability to build things, but you have to like know a lot to know how to use the tool.
00:22:20
Speaker
Exactly. And I think one of the interesting things you mentioned is, and I i bring it up because I think this is a skill that I have seen more senior engineers tend to have by virtue of having more experience compared to juniors, is knowing when you toggle away from vibe coding and take more ownership of the process. Like when is the right place for the human to get interjected into the thing?
00:22:45
Speaker
And requires a little bit of like confidence and understanding of what's going on. i think one of the pieces of advice that I give to some of my mentees who've expressed similar things of like, we're being told to use these tools, but I don't know what I'm doing. I'm using autocomplete. Is that enough? What's agent mode? All of these things is...
00:23:05
Speaker
Start with the smallest increment and that practice of be comfortable throwing away everything the agent gives you and re-prompting. Like never accept the first thing and see, okay, wait a minute. The first time I called it, it generated this class structure. And the second time I called it, it looked like this. And so start to kind of develop your understanding of the different patterns. Yeah.
00:23:27
Speaker
And use it as an iterative learning tool where you're not like leaning at it as a crutch to just, you know, write a bunch of code that you open a PR, but kind of understand the different ways you might do something and and iterate on it.
00:23:42
Speaker
lot of it's being a good code tester too. Yeah. And also having, i always talked about the sense of code smell that one develops where I don't need to understand Rust perfectly or TypeScript perfectly, but I can know that doesn't smell right.
00:23:55
Speaker
That thing doesn't feel good. and just and And just because I don't know what I'm doing doesn't mean that the LLM does, right? Like I'm coding with this pair programmer that's really just a smart parrot and it's going to generate weird stuff every time. And I don't have to take any of those suggestions.
00:24:15
Speaker
I'm rolling the dice each time. Yeah. And this is an interesting thing too for the industry because I feel like a lot of our... You know, interview techniques, a lot of what we do in school academically is focused on producing code.
00:24:31
Speaker
There's not a ton out there that's focused on reviewing code. And that's like the more important skill if you start to do more things with AI. And so it'll be interesting to see how the like hiring pipeline and how education changes in reaction to that. Like, is there not going to be like a code review class at a university? Is that going to be it's something that you'll see kind of in an interview loop where you get a bunch of code from an LLM and you got to spot the code smells.
00:25:00
Speaker
Feels like that is competency that like we want to start like training and testing people for. You know, I've always disliked leet coding stuff where it's, I think it you get just a certain kind of personality. You're just asking for ah certain human.
00:25:16
Speaker
If you're like, come here and grind out these leet codes and then we'll hire you, you're going to get the same you know guy or gal every time. but But I'll take a less competent programmer who's a collaborative code reviewer.
00:25:28
Speaker
who will sit down and like be positive and let's get through this together. And if they have a good sense of code smell, that can be super valuable on a team. Yeah. Especially with all the tools that are available.
00:25:39
Speaker
I also agree with you. le code stresses me out so much. I much prefer the experiences where people actually build something like real and grounded in something that you might actually do at your job. And I think that also connects more with You know, we were talking about early in career and new hires and things like that. It's like making the jump from doing a bunch of lead code studying and and maybe some dev work in your internship to like, this is actual software and the messiness of it yeah It's like we need something in the interview process and the way we train that gets people at that earlier.
00:26:14
Speaker
Well, even though like this podcast site and my blog and the websites like Azure Friday are toys, they're still up twenty four seven They have dns issues. They have SSL issues. They have CDNs. They have routing. They have multiple like they are not just um a Raspberry Pi serving a website.
00:26:33
Speaker
You know what mean? like There's a global sophistication there. So... I use them as demos because they're good demos. Like we aspire-ified the podcast last week, like live and deployed it just because we wanted to see it. So it's shocking to me how many people will get all the way through even a graduate degree and have never put hello world up on the web.
00:26:56
Speaker
So there's something to be said for shipping an app, putting a thing in an app store, or like my example of like, I made this little utility, but then I had to relearn how to publish it to NPN. NPM, rather.
00:27:08
Speaker
By the way, I was looking, a small segue, you were on Hanselman's episode 554. five hundred and fifty four Wow. we at now? This is episode 1018. I saw that I was on it.
00:27:23
Speaker
The episode went out November 2016. Yeah. yeah Which I kind of want to travel back in time. Yeah. Yeah, that was that was crazy. And I found pictures of us in like Philadelphia at conferences. There was one that you were actually keynoting while you were still, I want to say, a sophomore or junior in school.
00:27:41
Speaker
Depends on the year, but sounds about right. Yeah. that that But you you had experience then. i don't know. it was like It was a couple of years. You were doing Python and Interact.
00:27:53
Speaker
Yeah. And then you transfer you've kind of transferred into.NET and did does that Did that feel weird? like Or was it just, hey, computer science is computer science. No big deal. It's all a for loop. no Talk about whiplash. So when I joined Microsoft, I was still doing mostly Python and and JavaScript. And then eventually I made a transition to the.NET team.
00:28:13
Speaker
What was attractive to me about the.NET team was I think internally... My impression of it has a reputation for being a very like technically rigorous team that's full of super smart people. So it's like, okay, those sound like the kind of people I want to work with.
00:28:29
Speaker
But it was a scary transition. Like I always talk about it as it was like kind of this critical point in my career because I jumped into something new that I had no experience with. I did not know what a DLL was.
00:28:43
Speaker
I was equally as confused about the framework and core and the what is 2.1 and what is 5 and what is 4.7 and all of the all of the things that somebody knew to.NET, you know, what would be confused by that, you know, now I'm comfortable and, like, informed about.
00:29:01
Speaker
But no, it wasn't just computer science. It's like you have to learn a bunch of stuff. You also have to learn some stuff that's kind of, like, intangible around, like, the culture of an ecosystem.
00:29:13
Speaker
like Python and.NET devs think very differently and have different priorities. You know, i think Python has a very strong academic and scientific background, in my opinion, particularly given that most of the work I was doing was in like the scientific Python stuff. And so I think that that bleeds into the ecosystem.
00:29:36
Speaker
I think Python is a little bit more focused on learning It's got less of that enterprise-y reputation that.NET might have. And then.NET comes from like a totally different origin story. And so the kind of backgrounds of the languages end up influencing the culture of the ecosystem and then the way people prioritize how different things should be built or what they lean towards the tool for.
00:30:03
Speaker
So that a big leap to make. You did come in, though, at a moment, as an at an inflection point where.NET was going cross-platform and working on Mac and working on Linux. And for me, when.NET could be run happily in a container, like I feel like, look, Mama, we made it. like That was the moment for me. I feel like that.
00:30:21
Speaker
So yeah I think that you entering the.NET community in a Windows-only, framework-only time might have been a very different experience versus this choose-your-own-adventure place that we're at now.
00:30:32
Speaker
I bet. You know, it's so funny. the meme, when I first joined the team about five years ago, I was using VS Code because I was, you know, working with Python and JavaScript. And so, I developed primarily on Mac. So that was the ecosystem that I was comfortable with.
00:30:46
Speaker
And when I joined the team, my work laptop was a MacBook. And so I was trying to do.NET development on VS Code and Mac five years ago.
00:30:57
Speaker
And I was running into all of the pain points that we have since solved. Like when I used to have to debug my tests, there was no test explorer or like integrated debugging experience. So I would literally put you know, a while loop with a wait for the debugger to attach just to be able to kind of like debug through my test. So it's come a long way since, but I'm super stubborn and I'm really particular about the tools I use. So i was like, I'm going use VS code and by and my, Unix terminal and I'm going to deal with the pain until it gets better.
00:31:30
Speaker
I had Noel Berry on a couple of episodes ago, who is the developer, the developer on the game Celeste. And he has been ah very famous indie game developer, does almost all of his work in C Sharp, only on Linux. I respect that. There's not a Windows machine to be found. And he's doing cross-platform, runs on a Switch, runs on a PlayStation, runs on an Xbox, runs on Windows.
00:31:53
Speaker
But it all starts in Linux. And he he didn't even think about.NET. He just codes. And I thought that was really, but's that's kind of a testament. Like when people like that exist, I'm like, oh, I think we made it. We've evolved. Yep. We made a good thing. ah It's a tough and impressive transition to make. So it's super cool that we've gotten to the point where, know, almost anyone can walk in and write C-sharp code and run it anywhere, develop and deploy it anywhere. It's pretty neat.
00:32:23
Speaker
The last question I wanted to ask you in the within the context of competence builds confidence, which I love that line, you need to get that on a t-shirt, like that needs to Safia branded t-shirt, is you got principal engineer year or so ago or a couple years ago.
00:32:38
Speaker
So you went from graduate of school to principal engineer in a decade. Did that feel different? Did people start like emailing you back faster when they see your title? Did people spell check email when they see your title?
00:32:52
Speaker
What did that feel like? I felt very accomplished. I think I'm the kind of person who i am very goal oriented. So I always want to like keep developing my confidence and confidence, competence and confidence.
00:33:07
Speaker
And so when I hit that milestone, it was kind of a big one for me. It was, it was really satisfying to hit. Did people treat me different? To be honest, I don't know that I was looking out for any of the quote-unquote positive markers of a promotion, like people are responding to me faster, things like that.
00:33:25
Speaker
Maybe there was a little bit of that from people more junior to me. But what I actually noticed is the the newly acquired burden of being the person who has to know stuff and figure stuff Yeah. So suddenly you became important at your job.
00:33:39
Speaker
like You know those memes on Instagram where it's like, no, yeah I've just become important at my job. have to know things. So then people look at you in the meeting and they're like, so what are we doing? Yeah. So figure it out. I'm like, oh gosh, it's me now. I'm the one who's important. It's got figure it out. That is the thing that I have kind of, it's exciting because this is kind of like the challenge I wanted. I want to be the person that people, you know, seek wisdom from.
00:34:03
Speaker
Do emails get responded to faster in Teams messages? Maybe. But it's mostly that feeling of like, crap, I gotta figure out what to do here. That's so funny. When I got promoted, um i would go to like Amanda Silver, who's like our corporate vice president, and i' like I'd be like raging, someone should do something.
00:34:22
Speaker
And then she would say, you're someone you should do something. That's literally what your title is, the person that does things. So they go and do that. So I realized I could not rant anymore about how someone should someone with power should do something.
00:34:38
Speaker
Oh, no, it's me. It's me. should the heavy burden of ownership. And thus the compounding anxieties of confidence and confidence. Cool. we appreciate them We do appreciate them.
00:34:49
Speaker
Well, it has been a joy. We'll have you on in another 500 episodes. Yes. I'll see you in 10 years again. See you in 10 Thanks so much for hanging out with me today. Thanks, Scott.
00:35:00
Speaker
We have been talking with principal engineer Safia Abdella on the.NET team. And this has been another episode of Hansel Minutes. And we'll see you again next week.