To build anew or to rebuild? Many developers have a knee-jerk reaction to start building existing software systems from scratch because they think that is the easiest way forward.
Today, we talk with John Ousterhout. John is the Bosack Lerner Professor of Computer Science at Stanford University. His current research focuses on new software stack layers to allow data center applications to take advantage of communication and storage technologies with microsecond-scale latencies. He is the author of the book "A Philosophy of Software Design", co-creator of the Raft consensus algorithm, and creator of the Tcl scripting language and the Tk toolkit. He tells us about the software designs of legacy systems, why incremental changes of legacy systems are inevitable, and how to resist the impulse of rewriting large software systems from scratch.
When you finish listening to the episode, connect with John on Twitter, read his book, and join his discussion group on software design.
Mentioned in this episode:
John on Twitter at https://twitter.com/johnousterhout?lang=en
John’s profile at Stanford University at https://web.stanford.edu/~ouster/cgi-bin/home.php
A Philosophy of Software design at https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201
Raft Consensus Algorithm at https://raft.github.io
TCL/Tk at https://www.tcl.tk/about/language.html
John’s Software Design Discussion Group at software-design-book@googlegroups.com
Working on legacy code is never easy, but some programming languages make it more enjoyable.
Today, we talk with Richard Feldman, the creator of the Roc programming language, the author of Elm in Action, and the creator of the Frontend Masters courses Introduction to Elm and Introduction to Rust. Richard tells us about the advantages of the Elm, Rock, and Rust languages and why they are more enjoyable to work with than other languages.
When you finish listening to the episode, connect with Richard on Twitter, check out his book and courses, and take a look at the Roc programming language.
Mentioned in this episode:
Richard on Twitter at https://twitter.com/rtfeldman
Roc programming language at: https://www.roc-lang.org
Elm in Action at https://www.manning.com/books/elm-in-action
Richard’s Frontend Masters courses at: https://frontendmasters.com/teachers/richard-feldman/
Product teams are scared of technical debt and refactoring. They press on to make something new, not to question what they have already created. However, the urgency to deliver new products carries the risk of technical debt.
Today, we talk with Andreas Creten, a software engineer turned CTO. Andreas is a co-founder of Made With Love, a company that helps startups and scaleups to get out of technical trouble. Andreas tells us how to work with product teams to address technical debt in the early stages of software development, what tools to use, and what mistakes to avoid.
When you finish listening to the episode, connect with Andreas on Twitter or LinkedIn and visit madewithlove.com.
Mentioned in this episode:
Andreas on Twitter at https://twitter.com/andreascreten
Andreas on LinkedIn at https://www.linkedin.com/in/andreascreten
Made With Love at https://madewithlove.com
How can cooking help you have a better team?
Today, we talk with Kimberly Fox. Kimberly leads virtual and in-person cooking classes and is a recipe developer and writer for her blog, From Market to Table. Building on more than ten years of experience working in STEM and witnessing gender inequalities and micro-cultures in corporate settings, Kimberly developed her signature corporate cooking experiences helping leaders to build more inclusive and diverse teams.
When you finish listening to the episode, start following Kimberly on Instagram and check out her blog, From Market to Table.
In this episode, we are talking with Michael Kennedy, Python expert and the founder and host of two podcasts - Talk Python To Me and Python Bytes. He also runs Talk Python Training which provides online courses for Python developers. Michael tells us about the reception of Python version changes and the most challenging aspects of the transition to ARM processors.
When you finish listening to the episode, connect with Michael on LinkedIn and Twitter, subscribe to his podcasts, and check out his training courses.
Mentioned in this episode:
Michael on Twitter: https://twitter.com/mkennedy
Michael on LinkedIn: https://www.linkedin.com/in/mkennedy
Talk Python To Me Podcast: https://talkpython.fm/
Python Bytes Podcast: https://pythonbytes.fm/
Talk Python Training: https://training.talkpython.fm/
Software security has become one of the most important topics affecting the lives of millions of people.
Today we talk with Rob Dickinson, a co-founder, and CTO of Resurface Labs, a data-driven API security solution. He tells us how can security be woven into the culture of a software team, how to build more secure software, and how to adapt traditional security tools to the challenges of cloud computing.
When you finish listening to the episode, connect with Rob on Twitter and check out resurface.io.
Mentioned in this episode:
Rob on Twitter at https://twitter.com/robfromboulder
Resurface Labs at https://resurface.io
We design software within a particular context. When that context changes, so should the software. But change is often difficult.
Today we talk with João Rosa, an independent consultant focused on helping organizations to make strategic decisions when building software. João is one of the authors of Software Architecture Metrics, the curator of the book Visual Collaboration Tools, and the host of the Software Crafts Podcast.
João tells us how to ensure that our software is evolving with the problems it is designed to solve and how can we evolve along with it.
When you finish listening to the episode, connect with him on Twitter, visit his website and grab his book.
Mentioned in this episode:
João on Twitter at https://twitter.com/joaoasrosa
João’s website at https://www.joaorosa.io
Software Crafts Podcast at https://www.softwarecraftspodcast.com
Software Architecture Matrics at https://www.oreilly.com/library/view/software-architecture-metrics/9781098112226/
Visual Collaboration tools at https://leanpub.com/visualcollaborationtools/
Jurgen Appelo, Management 3.0 at https://www.amazon.com/Management-3-0-Developers-Developing-Addison-Wesley/dp/0321712471
Jurgen Appelo, How to Change the World at https://www.amazon.com/How-Change-World-Management-3-0/dp/9081905112/ref=sr_1_1?crid=20PZS97XNXCVG&keywords=Jurgen+appelo+how+to+change+the+world&qid=1665953837&s=books&sprefix=jurgen+appelo+how+to+change+the+worl%2Cstripbooks%2C318&sr=1-1
If you try to fix broken things in JavaScript, you will probably break the Internet because the entire Internet expects those "mistakes" to be there. Today we talk with David Neal, a family man, geek, musician, illustrator, international speaker, software developer, and Microsoft MVP. David shares the quirkiest things he loves to hate in JavaScript and tells us about the most challenging aspects of working with legacy JS applications.
When you finish listening to the episode, connect with David on Twitter and visit his website at https://reverentgeek.com.
Mentioned in this episode:
David on Twitter at https://twitter.com/reverentgeek
David's website at https://reverentgeek.com
Legacy becomes legacy only when the memory of how the system works is gone. This is where observability kicks in.
Today we talk with Hunter Madison. Hunter is the cloud architect for Instana, an observability platform for IBM. He has a decade of software development experience covering everything from e-commerce to database development. He tells us about the significance of observability for maintenance work, when using observability is most helpful, and how to adapt observability tools to match the needs of the system.
When you finish listening to the episode, you can reach out to Hunter at hunter.madison@ibm.com.
Mentioned in this episode:
Hunterr’s email at hunter.madison@imb.com
Instana at https://www.ibm.com/cloud/instana
The world as we know it wouldn't exist without open-source software. We have learned to rely and depend on these free products that magically get maintained and updated by communities of volunteers. In our over commercialized world, the very plausibility of projects like Linux, Android, and Apache might seem incomprehensible to some. And yet, they make the world go round.
Today we talk with Naomi Ceder. She helps us understand the longevity and impact of successful open-source projects. Naomi served as the Chair of the Python Software Foundation Board of Directors, and is the recipient of its Distinguished Service Award. Naomi is also a co-founder of the Trans*Code Hack Day - a coding event focused on the trans and non-binary community and its allies.
When you finish listening to the episode, connect with Naomi on Twitter and visit her website at https://www.naomiceder.tech.
Agile has become the mainstream in software engineering, and agile principles should feel natural to legacy code menders.
Today we talk with Michael Toppa, the Senior Engineering manager at FastRuby.io. Michael has been a developer, product owner, and engineering director for over 25 years. He had worked for many organizations, including E-TRADE, Ask.com, the University of Pennsylvania, ActBlue, and many others. He is a passionate advocate of agile and lean practices, and today he tells us how to apply them when working with legacy code.
When you finish listening to the episode, connect with Michael on Twitter or contact him via FastRuby.io.
Imagine if you could refactor legacy code with a single CLI command? Well, you can, at least if you are working with PHP.
Today we talk with Matthias Noback, a long-time web developer and the author of several programming books, including Rector - The Power of Automated Refactoring, which he co-wrote with Tomáš Votruba. Matthias tells us how to use Rector in your daily workflow, how it automates repetitive maintenance and refactoring tasks, and what is the potential of this approach for other programming languages.
When you finish listening to the episode, connect with Matthias on Twitter, visit his website at https://matthiasnoback.nl, and grab his book Rector - The Power of Automated Refactoring.
Mentioned in this episode:
Matthias on Twitter at https://twitter.com/matthiasnoback
Matthias’ website at: https://matthiasnoback.nl
Rector - The Power of Automated Refactoring at https://leanpub.com/rector-the-power-of-automated-refactoring/
The Mikado Method at http://mikadomethod.info
Corgibytes at https://corgibytes.com
There is a lot of buzz around Kotlin, a new Java-based programming language that many think might eventually replace Java. But is all this talk justified, and are the predictions of replacement realistic?
Today we talk with Duncan McGregor and Nat Pryce, the authors of Java to Kotlin. They reveal to us all the advantages of Kotlin, why and when you would want to transition to it from Java, and how to facilitate the refactoring in a painless and efficient way.
When you finish listening to the episode, connect with Duncan and Nat on Twitter and check out their book Java to Kotlin.
Mentioned in this episode:
Duncan on Twitter at https://twitter.com/duncanmcg
Mat on Twitter at https://twitter.com/natpryce
Kotlin to Java, 1st edition at https://www.amazon.com/Java-Kotlin-Duncan-McGregor-ebook/dp/B09CT5KZLM
Kotlin Programming Language at https://kotlinlang.org
Joshua Bloch, Effective Java, 3rd Edition at https://www.amazon.com/Effective-Java-Joshua-Bloch-ebook/dp/B078H61SCH/ref=sr_1_1?crid=3CG84SQ8VU5ET&keywords=effective+java+josh&qid=1653917364&s=digital-text&sprefix=effective+java+josh%2Cdigital-text%2C260&sr=1-1
Corgibytes at https://corgibytes.com
We all want our code to be stable and resilient to future challenges. But we need to strike the right balance between testing our systems and the cost of failure. This is much harder to achieve than it sounds.
Today we talk with Melanie Frank, Managing Vice-President of Cyber Engineering at Capital One. Her teams innovate boldly to secure the enterprise while obsessing over excellence. Before Capital One, Melanie worked at Honeywell at NASA Goddard Space Flight Center, where she tested software that conducted scheduling, command, and control for space network communication satellites.
Drawing from her experience in the aerospace and financial industry, she tells us about the significance of testing and how to do it right for your product.
When you finish listening to the episode, connect with Melanie on LinkedIn.
Mentioned in this episode:
Melanie on LinkedIn at https://www.linkedin.com/in/melanie-frank-06b3675/
Capital One at https://www.capitalone.com
NASA Goddard Space Flight Center https://www.nasa.gov/goddard
Corgibytes at https://corgibytes.com
Empathy in Tech at https://empathyintech.com
We all strive to write an ideal code - easily readable, functional, and clean. We use many tools to achieve this. However, we often forget why we need our code to be tidy.
Today we are talking with Samuel Taggart, President of GDevCon N.A. and the owner of SAS Workshops. Sam is a natural teacher, and he enjoys sharing what he learned with others. We talk with Sam about the tools and methods that make our code clean - refactoring, retrospectives, and style guides. While they are all meant to keep us and our code in check, we forget that these tools and methods also need to be under control. Sam reminds us of a crucial question that will help us do just that.
When you finish listening to the episode, connect with Sam on LinkedIn and Twitter and visit the SAS Workshops website at www.sasworkshops.com.
Mentioned in this episode:
Samuel Taggart on LinkedIn at https://www.linkedin.com/in/taggartsam/
Samuel Taggart on Twitter at https://twitter.com/sasworkshops
GDevCon N.A. at https://gdevconna.org
SAS Workshops at https://www.sasworkshops.com
Mikado Method at https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/
Legacy Code Rocks - Living Documentation with Cyrille Martraire at https://www.legacycode.rocks/podcast-1/episode/2fd0fdeb/living-documentation-with-cyrille-martraire
Zettelkasten Method at https://zenkit.com/en/blog/a-beginners-guide-to-the-zettelkasten-method/
Corgibytes at https://corgibytes.com
Imagine if you could compare concepts side-by-side between a programming language you know and one you don't. Well, now you can!
Today we talk with Sarah Withee, a polyglot software engineer, international tech speaker, and robot tinkerer. Sarah is also the author of Code Thesaurus, the polyglot developer reference tool. She tells us about the reasons behind the creation of the thesaurus, its continuous development, and what you can do to make the thesaurus even better.
When you finish listening to the episode, connect with Sarah on Twitter and LinkedIn and check out the Code Thesaurus project on GitHub.
Mentioned in this episode:
Corgibytes at https://corgibytes.com
Sarah in Twitter at https://twitter.com/geekygirlsarah
Sarah on LinkedIn at https://www.linkedin.com/in/sarahwithee/
Sarah’s website at https://geekygirlsarah.com
Code Thesaurus at https://codethesaur.us
Code Thesaurus project on GitHub at https://github.com/codethesaurus/
Coders spend most of their time reading rather than writing code. Yet, when you look at the undergraduate programs, boot camps, and conferences, everything seems to be dedicated to code production.
Today we talk with Felienne Hermans. Felienne is an associate professor at the Leiden Institute of Advanced Computer Science at Leiden University and the author of the book The Programmer's Brain. She also developed Hedy, a new programming language that makes it easier for kids to learn textual programming. She tells us how to help young programmers better understand both the code they are working with and their own cognition.
After you finish listening to the episode, connect with Felienne on LinkedIn and Twitter, visit her website at https://www.felienne.com, and make sure to check out her book.
Mentioned in this episode:
Felienne on Twitter at https://twitter.com/Felienne
Felienne on LinkedIn at https://www.linkedin.com/in/felienne
Felienne’s website at: https://www.felienne.com
Hedy Programming language at https://hedycode.com
The Programmer’s Brain at https://www.manning.com/books/the-programmers-brain?utm_source=felienne&utm_medium=affiliate&utm_campaign=book_hermans2_programmers_12_8_20&a_aid=felienne&a_bid=d7c7c538
Empathy in Tech at https://empathyintech.com
Some of the biggest risks for cyber security frameworks come from employees meant to maintain them. The reason for that is simple, and it couldn't be more human - people who don't feel well don't perform well.
Today we talk with Nyota Gordon, the founder, developer, and all-around do-gooder at Transition365, a cyber resiliency firm that helps cybersecurity professionals increase their leadership and life skills.
Nyota digs deep into the intersection between cyber security, resiliency, and personal wellness. She shares with us some mental health strategies that will improve our well-being and, as a consequence, our work performance.
When you finish listening to the episode, make sure to connect with Nyota on LinkedIn.
Mentioned in this episode:
Nyota on LinkedIn at https://www.linkedin.com/in/nyotagordon/
Transition365 at https://transition365.com
Brené Brown, Shame Resilience Theory at https://journals.sagepub.com/doi/10.1606/1044-3894.3483
Symantec Cyber Resiliency White Paper at https://informationsecurity.report/whitepapers/symantec-white-paper-the-cyber-resilience-blueprint-a-new-perspective-on-security
Amy C. Edmondson, The Fearless Organization at https://www.amazon.com/gp/product/B07KLT8RKM/ref=dbs_a_def_rwt_hsch_vapi_tkin_p1_i0
Charles Feltman, The Thin Book of Trust at https://www.amazon.com/Thin-Book-Trust-Essential-Building/dp/0988953862/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1646648424&sr=1-1
Empathy in Tech at https://empathyintech.com
When you finish listening to the episode, connect with Prabhjot on Twitter and LinkedIn and visit Pyze's website at https://www.pyze.com.
Mentioned in this episode:
Prabhjot on LinkedIn at https://www.linkedin.com/in/psinghsf/
Prabhjot on Twitter at https://twitter.com/psinghsf
Pyze at https://www.pyze.com
Today we talk with Clare Sudbery. Clare is a lead engineer at Made Tech, and she is the host of the Making Tech Better podcast. Clare tells why it is so important to be compassionate to ourselves and shares with us some techniques on how to achieve this.
When you finish listening to the episode, connect with Clare on Twitter and dive deeper into the subject of empathy in tech by joining our new community.
Mentioned in this episode:
Clare on Twitter at https://twitter.com/ClareSudbery
Making Tech Better Podcast at https://podcasts.apple.com/us/podcast/making-tech-better-made-tech/id1558845124
Made Tech Academy at https://www.madetech.com/careers/academy/
Self-Compassion by Dr. Kristin Neff at https://self-compassion.org
Empathy in Tech at https://empathyintech.com
Everyone wants their software system to be resilient - to continue carrying out its mission-critical tasks in the face of disruption or adversity. But resiliency has its cost, and not just in a material sense. With resiliency, your system becomes more complex and harder to maintain. That is why we always have to balance our resiliency requirement with other non-functional requirements around the system.
Today we talk with Briana Augenreich, a Senior Software Engineer at HubSpot. Briana wears many hats in the software engineering world, but she officially calls herself backend and infrastructure engineer. Briana has extensive experience working with large and complex mission-critical systems. This gives her unique insight on finding the right measure while striving for resiliency.
When you finish listening to the episode, connect with Briana on LinkedIn.
Mentioned in this episode:
Briana on LinkedIn at https://www.linkedin.com/in/briana-augenreich-93b4a191/
David Woods, The Theory of Graceful Extensibility at https://www.researchgate.net/publication/327427067_The_Theory_of_Graceful_Extensibility_Basic_rules_that_govern_adaptive_systems
We all get excited about that new, shiny code, but more often than not, our company can live without it. On the other hand, some old and boring lines of code laying around are usually the backbone of our entire business system. And while inventors tend to get all the praise, those who keep the wheels running smoothly are content with, well, the wheels running smoothly.
Today we talk with Tramaine Darby, a Senior Manager of Content, Subscriptions, and Insights Engineering at Red Hat. She tells us how to manage teams responsible for maintaining the systems that make companies run and how to defend these systems from hard-cuts and radical changes.
When you finish listening to the episode, connect with Tramaine on LinkedIn and Twitter.
Mentioned in this episode:
Tramaine on LinkedIn at https://www.linkedin.com/in/tramainedarby/
Tramaine on Twitter at https://twitter.com/tdarby4
Red Hat at https://www.redhat.com/
Making widespread changes to a codebase can be hard! Your team starts a long-lived branch that is difficult to maintain and often impossible to merge; you and your team-mates agree to improve the code slowly over time, but you all forget this agreement, and the improvement never happens. But what if there were a tool that keeps you on track to steadily improve your code without making you feel like losing control over these improvements?
Today we talk with Craig Spence, a senior engineer at Spotify and a creator of Betterer - a tool that helps with incremental improvements of big codebases and legacy systems. Craig tells us how Betterer works, how it differs from other debugging tools, and what are the plans for its improvements.
When you finish listening to the episode, connect with Craig on LinkedIn and Twitter, and be sure to check out Betterer on GitHub.
Mentioned in this episode:
Craig on LinkedIn at https://www.linkedin.com/in/craig-spence/
Craig on Twitter at https://twitter.com/phenomnominal
Betterer on GitHub at https://phenomnomnominal.github.io/betterer/docs/introduction
Touca at https://touca.io
Kubernetes with James Sturtevant
As applications grow to span multiple containers deployed across multiple servers, operating them becomes more complex. While it is possible to maintain these growing applications manually, most will reach out to an orchestrator to help them with the tasks. As applications grow to span multiple containers deployed across multiple servers, operating them becomes more complex. One of such orchestrators is Kubernetes.
Today we talk with James Sturtevant, Principal Software Engineering Lead at Microsoft. James is a coauthor of the book Kubernetes for Windows. He helped blaze the trail for Windows support in upstream Kubernetes for enterprises, and now he helps us understand how Kubernetes work and why you would want to use it.
When you finish listening to the episode, connect with James on LinkedIn, visit SIG-Windows and Kubernetes channels on Slack and grab a copy of Kubernetes on Windows.
Mentioned in this episode:
James on LinkedIn at https://www.linkedin.com/in/jamessturtevant/
Jay Vyas, James Sturtevent, Kubernetes on Windows, at https://www.manning.com/books/kubernetes-on-windows
SIG-Windows Channel on Slack at https://kubernetes.slack.com/?redir=%2Fmessages%2Fsig-windows
Kubernetes Channel on Slack at https://slack.k8s.io
The power of software is enormous, but the code can only be as good as the humans who write it. Despite popular belief, "being good" has nothing to do with character predisposition. It is a product of an intentional effort to nurture care and compassion.
Today we talk with Liz Acosta, a software engineer and a developer advocate at Stacklet. Liz's past professions as a copywriter, social media manager, and odd job freelancer give her a unique perspective on software development and enables her to help teams collaborate with empathy.
When you finish listening to the episode, connect with Liz on LinkedIn or find her on Stacklet.
Mentioned in this episode:
Liz on LinedIn at https://www.linkedin.com/in/lizacostalinkedin/
Liz on Stacklet at https://stacklet.io/blog/author/liz-acosta
Exercism at https://exercism.org
Empathy in Tech at https://empathyintech.com