Dawn Andrews is the Founder and CEO of Free Range Thinking, a boutique Business Strategy Consultancy that enables entrepreneurs to lead their businesses with unwavering confidence, intelligence, and passion.
She’s an executive leadership coach, growth strategist, and acclaimed trainer and speaker. Her work includes collaborations with Maria Shriver, Shriver Media, and leading Women’s History Month programming for global pharmaceutical titan AbbVie. She’s been behind the scenes with the creative genius responsible for the feel-good blockbuster of summer 2023. No need for names – all you need to know is over one billion at the box office and counting.
Up and down the “rolodex” (despite being fluent in cutting-edge communications tech, she still keeps it old school), her clientele’s achievements are EYE-POPPING: from being front and center on the campaign trail to building educational infrastructures in Africa, to catalyzing the end of the ‘Don’t Ask, Don’t Tell’ policy, to winning Oscars, Emmys, and Tony awards, leaving indelible marks on audiences worldwide.
Part of her power comes from her unique, creatively analytical approach, crafting growth strategies, enhancing communication skills, and augmenting leadership performance, all while amplifying organizational efficiency. Part of it comes from her no B.S., super real, super empathetic self. Always love. It may be tough sometimes, but it’s always love. And it ensures not just insane professional growth but thriving personal lives.
She’s also the host of the She’s That Founder podcast, like your morning coffee, but for your soul and career ambitions. As the Female Leadership Accelerator (FMxLA) founder, she’s committed to amplifying the influence of the next generation of female leaders to make their reverberations felt in their communities, in the US, and across the globe.
Her insights and perspectives have been sought by platforms such as The Oprah Winfrey Network, CBS, and CNN.
And her passion project? What gets her up in the early am and keeps her up way past midnight? Advancing women. Because while the future might be female, Dawn’s making sure that future is now.
This week, we discuss AI’s impact on Stack Overflow, Docker’s Hardened Images, and Nvidia buying Groq. Plus, thoughts on playing your own game and having fun.
Watch the YouTube Live Recording of Episode 554
Please complete the Software Defined Talk Listener Survey!
Photo Credits
This episode of The Modern .NET Show is supported, in part, by RJJ Software's Strategic Technology Consultation Services. If you're an SME (Small to Medium Enterprise) leader wondering why your technology investments aren't delivering, or you're facing critical decisions about AI, modernization, or team productivity, let's talk.
"So the interest plays a lot of a huge role. Like for example a security issue, it can take you maybe half a day to fix, or maybe one hour to fix; so it's very easy to fix. But if you don't fix it, you get so... you'll get so many angry users that it may be, it maybe, it will cost you your entire business; you see. So this can be seen as an interest."— Patrick Smacchia
Hey everyone, and welcome back to The Modern .NET Show; the premier .NET podcast, focusing entirely on the knowledge, tools, and frameworks that all .NET developers should have in their toolbox. I'm your host Jamie Taylor, bringing you conversations with the brightest minds in the .NET ecosystem.
Today, we're joined by Patrick Smacchia to talk about NDepend, technical debt and the interest it accrues (something that's often forgotten about), and how NDepend can help you to keep your tech debt (and it's interest) low.
"But the thing we see is that the edge code is usually the code where you get the bugs. So you end up writing some quick tests that can cover 90% of your code, but your 10% here is not tested. And because it's not well implemented and it's likely to contain the bug. So, maybe you should refactor your code and make your class testable."— Patrick Smacchia
Along the way, we talked about the common pitfalls that most developers make when writing code, and how to keep your code both testable and easy to maintain.
We also took some time to talk about bug reports, the things that you and I can do to ensure that our bug reports are read, providing positive feedback, the Visual Studio teams' velocity, and some of the amazing new features in Visual Studio 2026 like the ... well, I'm getting ahead of myself. You'll have to listen in to the episode to find out what those features are.
Before we jump in, a quick reminder: if The Modern .NET Show has become part of your learning journey, please consider supporting us through Patreonor Buy Me A Coffee. Every contribution helps us continue bringing you these in-depth conversations with industry experts. You'll find all the links in the show notes.
Anyway, without further ado, let's sit back, open up a terminal, type in `dotnet new podcast` and we'll dive into the core of Modern .NET.
The full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-8/ndepend-with-patrick-smacchia-scaling-net-code-quality/
Remember to rate and review the show on Apple Podcasts, Podchaser, or wherever you find your podcasts, this will help the show's audience grow. Or you can just share the show with a friend.
And don't forget to reach out via our Contact page. We're very interested in your opinion of the show, so please get in touch.
You can support the show by making a monthly donation on the show's Patreon page at: https://www.patreon.com/TheDotNetCorePodcast.
Music created by Mono Memory Music, licensed to RJJ Software for use in The Modern .NET Show.
Editing and post-production services for this episode were provided by MB Podcast Services.
One predictable pain point with contrast-color() is that it only returns black and white named colors. From a design systems perspective, that’s not ideal because you want your colors. You want your harmonious brand and the colors you and your team spent thousands of man hours in meetings deciding on. Those colors.
In fact, an earlier version of Safari had color-contrast() (confusing I know, naming is hard) which allowed you to pass in a list of best candidates to choose from. I beleive that proposal got mired in standards discussions, color contrast algorithms, and competing proposals; and contrast-color() is what survived which got simplified down to a binary result.
In the future though, we can use contrast-color() and if() together to help pick the value we want. Alas, at the time of writing no browser supports both if() and contrast-color(). But we can use Lea Verou’s --contrast-color() workaround to experiment with how this will work in Chromium today.
See the Pen contrast-color() powered design system colors by Dave Rupert (@davatron5000) on CodePen.
The CSS to get this working looks something like this:
@property --captured-color {
syntax: "<color>";
inherits: true;
initial-value: white;
}
/* https://lea.verou.me/blog/2024/contrast-color/ */
@function --contrast-color(--bg-color) {
--l: clamp(0, (l / var(--l-threshold, 0.623) - 1) * -infinity, 1);
result: oklch(from var(--bg) var(--l) 0 0);
}
:root {
--ds-text-white: wheat;
--ds-text-black: darkslategray;
}
button {
background-color: var(--ds-button-bg);
--captured-color: --contrast-color(var(--ds-button-bg));
color: if(
style(--captured-color: oklch(1 0 0)): var(--ds-text-white);
else: var(--ds-text-black);
);
}
And that’s it! Using (a form of) contrast-color() you can select the proper tokens from your design system. Cool.
One quirky bit needed to make it work is defining a type for --captured-color using CSS @property, a trick I learned from Roma Komarov. To be honest I don’t fully understand the why behind Registered Custom Properties and the Computed Value Time Behavior superpower, but my simple brain created a rule “If you’re going to compare a variable to a <color> in a CSS if() statement, make sure to register the variable as a <color>.”
If/when any of the browsers start supporting both features, I expect we’ll have to update oklch(1 0 0) in the style query to white or rgb(255 255 255). At least, I hope it works that way.
One unexpected challenge that I encountered with this demo was that if I abstracted out the if statement out into its own custom function, it would break. I’m not 100% sure why but I think it’s based on how CSS functions cache results. I’ll have to dig into this more, but I’m happy the inline if statement works. Hopefully someone smarter can figure it out.
Anyways, exiting times. And can we pause for a moment and marvel at how this is all vanilla 2026 CSS?! What a world.