Welcome to The Rabbit Hole, the definitive developers podcast. If you are a software developer or technology leader looking to stay on top of the latest news in the software development world, or just want to learn actionable tactics to improve your day-to-day job performance, this podcast is for you.
315. Happy Holidays from the definitive developers podcast
In this special holiday episode, we reflect on the year gone by. In a time full of challenges, we extend warm holiday wishes to our listeners, acknowledging the turmoil present in the tech industry and the world at large.
12/22/2023 • 2 minutes, 15 seconds
314. XP Value - Respect
Following our series of discussions on XP values, this conversation covers the idea of respect and how things change when it is upheld. Tune in to hear a breakdown of why it is so integral to success and what it means for our relationship with code as well as one another.
12/12/2023 • 9 minutes, 12 seconds
313. XP Values - Courage
In today’s episode, we explore the crucial concept of courage in programming. It may be a far cry from slaying dragons, but courage in programming is not for the faint of heart. You need to be able to make bold decisions, such as discarding flawed code and initiating architectural changes, even if you and your team have spent weeks working on it.
11/14/2023 • 9 minutes, 46 seconds
312. Feedback From Humans and Non-Humans Alike
In this episode, we delve into the world of feedback in software development. We explore how feedback, in the context of Extreme Programming (XP) values, goes beyond traditional human communication. We uncover the various sources of feedback, from pair programming to CI/CD pipelines, and how it plays a pivotal role in improving code quality and project management.
10/24/2023 • 6 minutes, 48 seconds
311. XP Values - Simplicity
Extreme programming (XP) continues to gain popularity as more and more teams are using it to enhance their development procedures. In today’s episode of The Rabbit Hole, we explore one of the core values of XP: simplicity. Tuning in, you’ll find out how keeping things as simple as possible can reduce complexity and make the delivery of high-quality software easier, enabling your team to not only deliver a better product faster but stay sane in the process!
10/4/2023 • 6 minutes, 51 seconds
310. XP Values - Communication
In this episode, we delve into the world of Extreme Programming (XP) values, with a particular focus on communication as key. We discuss the importance of effective communication in software development, especially in a remote work environment.
9/20/2023 • 10 minutes, 10 seconds
309. 9 Roles for Creating Results or Growing a Team w/ Esther Derby (Replay)
On today's episode, Dave, William and Steven have a conversation with the esteemed Esther Derby about the various roles that we take on as Team Members and Leaders when we're responsible for the team's results ORRR for the team's growth. Plus, an update straight out of the Bronx by our very own Michael Nunez about babies, software and otherwise, and the long road to 100. Regardless if you're Pair Programming, Mentoring the team, Mob programming, or Reviewing Code, these nine roles described by Champion, Kiel & McLendon really sum up ways that we can help our teammates. The roles include: Counselor, Coach, Parther Facilitator, Teacher, Modeler Reflective Observer, Technical adviser, Hands-on Expert. ^ Growth, Results > References: 6 Rules for Change (Esther Derby) - soon to be 7 rules! https://www.youtube.com/watch?v=BDyoUdVHwbg 9 Consulting Roles (Kiel, McLendon) https://www.researchgate.net/figure/Typical-Role-Statements-from-the-Consulting-Role-Grid-Champion-Kiel-Mclendon-1990_fig3_281781473
9/5/2023 • 27 minutes, 46 seconds
308. BDD (Replay)
On today's replay episode, our host Dave Anderson and producer William Jeffries discuss end to end testing.
8/22/2023 • 24 minutes, 19 seconds
307. Motivation (Replay)
In today’s episode, we are talking about motivation — what keeps us up at night and what gets us out of bed every single day? We are joined by a special return guest and friend of the show, Kevin Thomas.
8/8/2023 • 22 minutes, 22 seconds
306. Imposter Syndrome (Replay)
Today on the show we are joined by none other than our host, Michael Nuñez’s brother, Steven Nuñez! Steven will be helping us in our discussion about a very special topic and one that is very common amongst developers, imposter’s syndrome! Sound familiar? Feel familiar? Well, chances are at some point in your professional career (and beyond) you have probably felt like an imposter.
7/25/2023 • 26 minutes, 8 seconds
305. Mastering the Art of Closure- Conquering WIPs in Life and Work with Brian Lam
In agile development, it’s important to eliminate work in progress (WIP) as much as possible, since it can reduce productivity, scatter focus, and increase wait time for new functionality. But what if the same were true for WIP challenges we face in life? That was the revelation of today’s guest, Brian Lam, whose recent new role as the father of a newborn has presented him with some tricky WIP issues in his daily life.
7/11/2023 • 12 minutes, 44 seconds
304. Testing Tango — Arrange, Act, and Assert
In today's episode, we delve into the testing tango and the art of Arrange, Act, and Assert (AAA), a practice that is essential when writing tests in order to structure them in a way that is coherent to other developers who may come across them. We discuss how to go about Arranging variables, how to use those variables (or Act), and then Asserting those specific behaviors. You’ll learn about the importance of having only one assertion per test and the benefits of leaving blank spaces or new lines for future reference.
6/27/2023 • 7 minutes, 47 seconds
303. Testing Tango: Red, Green, Refactor, and Why It’s Important To Follow Those Steps
The red, green, refactor approach helps streamline testing and development processes, improve code quality, and foster collaboration. It promotes a disciplined and iterative approach to software development, resulting in more reliable and maintainable systems. Join us in this captivating episode as we explore this mysterious testing approach that transforms software development.
6/20/2023 • 9 minutes, 49 seconds
302. Is AI a Friend or Foe? Can We Get Ahead of It??
Artificial Intelligence (AI) has the potential to bring significant benefits and advancements to various fields, including healthcare, transportation, education, and more. It can automate tedious tasks, improve efficiency, and enhance decision-making processes. However, AI also presents challenges and risks that need to be addressed. It is crucial to promote responsible AI development, ethical guidelines, and appropriate regulations to harness the benefits of AI while mitigating its risks.
6/6/2023 • 17 minutes, 46 seconds
301. Introducing a New Podcast - Scaling Tech with Debbie Madden!
Today on The Rabbit Hole we are sharing an episode from Scaling Tech with Debbie Madden, who is the Founder and Chairwoman here at Stride. The podcast is well worth checking out and listeners can expect to hear some great conversations between Debbie and top tech leaders and experts on a wide variety of contemporary issues facing the industry. Here we are airing the chat that Debbie had with Josh Seiden, in which they cover the valuable idea of outcomes over output, a subject on which Josh has literally written the book!
5/23/2023 • 40 minutes, 38 seconds
300. GitHub... And Actions!
Have you tried GitHub Actions? In this episode, we talk about experimenting with GitHub Actions and why YAML will be the programming language of the future. You’ll hear what GitHub Actions is and how it works, using the example of the creation of a pull request. We discuss other things that GitHub Actions can do and the biggest problem we’ve run into with it when it comes to testing.
5/10/2023 • 8 minutes, 16 seconds
299. Seven Senses and Software Development
Created by occupational therapists, a “sensory diet” is a treatment strategy designed to help children feel calm, ready to learn, and in control of their bodies. Do you ever fidget with a pen during a meeting? Or take a walk to combat the after-lunch lull?
4/25/2023 • 12 minutes, 52 seconds
298. When the application development is no longer Juicy
As we continue to learn from the XP book, Extreme Programming Explained, today we discuss what it means for software systems to go sour and how to prevent this from happening. We talk about what happens when the cost of making changes or defects rises so much that the system must be replaced and how XP creates and maintains a comprehensive suite of tests to counteract this risk. Tune in to learn more about how pair programming can help prevent the system from going sour, what to do when you are writing legacy code, the types of tests you should write and focus on, and so much more!
4/12/2023 • 8 minutes, 23 seconds
297. False Feature Rich may make you poor!
Continuing in the series of XP explained, today we discuss false feature rich, the idea that software has many potentially interesting features that are fun to program but don't provide much value to the customer.
3/29/2023 • 6 minutes, 36 seconds
296. Schedule Slippin’, Fallin’, Can't Get Up? Use XP to Prevent That!
According to the book Extreme Programming Explained: Embrace Change by Kent Beck, “The basic problem of software development is risk.” One of these risks is that of the schedule slip. In this episode, we discuss how to use XP to prevent schedule slips when developing software. Tuning in, you’ll hear about how XP addresses the problem of schedule slips through short-release cycles, what a Big Bang release is and why you want to avoid this, and the value of prioritizing the most important features in your schedule first.
3/15/2023 • 8 minutes, 3 seconds
295. Side Projects (Replay)
Today, we’ll be talking about side projects and why developers like to pick them up. Whether it’s to explore a personal interest, a new idea, or give back to your community; there are tons of great benefits to having a side project.
2/28/2023 • 24 minutes, 41 seconds
294. User Stories: Why "gathering requirements" is not a gorram story (Replay)
As much as we hate breaking bad news to you, we have no choice today. If you think gathering requirements is a user story, you are wrong and we’ll tell you why. William, who is especially fired up about the topic, gets us started by explaining that usually gathering requirements is conflated with other components, such as a spike, task or research and there are also often delusions about what stories are.
2/21/2023 • 18 minutes, 13 seconds
293. Will ChatGPT Take our Jobs? — Let's Talk about it with Planning Poker
In case you haven’t heard of it yet, ChatGPT is an AI-powered chatbot created by the OpenAI platform. Using prompts, ChatGPT can craft original jokes, plan trips, explain complex topics, and even write code. This begs the question: will ChatGPT take our jobs? To test this theory, we asked ChatGPT to write a 10-minute script for an agile software development podcast where the topic is Planning Poker, a consensus-based agile estimation and planning technique.
2/15/2023 • 10 minutes, 39 seconds
292. Buy vs. Build (Replay)
All developers will understand the difficulty that comes along with deciding whether to build or to buy. In today’s episode, we discuss why it’s so important to think about this decision before you make it; there are so many factors to take into consideration and you don’t want to act hastily. Co-hosts Michael and Dave discuss the pros and cons of building and buying, tiers that exist within the build or buy spectrum, and something that they would never build. They share a question that you should always ask yourself before diving in, and some red flags to look out for. If you’re in the market to buy, this episode is also full of examples of great places you can do so!
2/7/2023 • 15 minutes, 53 seconds
291. Prime Directive (Replay)
Star Trek fans will know that the Prime Directive is the unbreakable mission statement of the Starfleet. It's a guiding principle, deciding the course and tone for whatever the team encounters. As you’ll learn in today’s episode of The Rabbit Hole, however, the prime directive is an important concept for software developers too! Michael Nunez, Dave Anderson, and Sophie Creutz dive into Norm Kerth’s Retrospective Prime Directive and break it down phrase-by-phrase to illustrate how it applies to an agile workflow. We also share some of the other prime directive texts that we discovered, including the Team Building and Futurospective Prime Directives, and touch on their focus on psychological safety and bringing people together for a specific cause. All this and more when you tune in today!
1/31/2023 • 18 minutes, 1 second
290. Benefits of Colocation (Replay)
On a whole, the pandemic has made us, as a society, more anxious about a lot of things, including working in offices with other people where our risk of being exposed to the coronavirus is heightened. Although there are a lot of great tools which have been developed to try to make home offices mirror actual offices, there are various benefits which come from working in the same space as other people which cannot be replicated online. Nevertheless, working from home, at least some of the time, may continue to be part of our reality well into the future.
1/24/2023 • 23 minutes, 33 seconds
289. Stronger Strong Types (Replay)
Today on The Rabbit Hole we are talking about strongly typed and loosely typed languages. There is very little industry consensus about what these terms mean and it is not uncommon to find often contradictory definitions, so we take it upon ourselves to uncover the truth and what we find is rather surprising! Languages that we initially thought of as strong proved not to be as iron-clad as we thought and our previous thinking about loosely typed language also had some holes.
1/17/2023 • 22 minutes, 56 seconds
288. Launch Plans
If you think you don’t need a launch plan, you may need to think again. In today’s episode, Alex Bernardin, Lead Product Manager at Stride, joins us to explain the circumstances under which having a launch plan is very important and how you can ensure that it goes to plan.
1/10/2023 • 19 minutes, 40 seconds
287. Resetting in the New Year (Replay)
After such a wild year, most of us can understand the need to turn ourselves off and back on again. Today hosts Michael Nunez and David Anderson discuss how you can reset yourself and build positive habits. We dive into the topic after a quick reminder that this is the last week to respond to our listener survey. As we explore how you can reboot your brain, we touch on the benefits of being helpful, exercising, maintaining your social connections, eating more healthily, learning something new, and keeping a consistent sleep routine. We apply this advice to the coding environment, showing why and how these general life tips are relevant to software engineers. Later, we talk about strategies to enact change like starting with small habits and recruiting an accountability buddy. Tune in for more insights on starting 2021 with your best foot forward.
1/3/2023 • 24 minutes, 37 seconds
286. Let's talk about Anti-Goals (Replay)
As we enter into the new year and bid farewell to 2021, the topic of goals and goal-setting seems like an appropriate one to give some attention to. Today we are approaching it from a slightly different direction, looking at the idea of 'anti-goals', and how these might help you in your work and personal life. Simply put, anti-goals are a way to work backward from an undesirable outcome and use these as motivation and an incentive to avoid the actions or circumstances that might facilitate it. In our conversation, we look at the two different methods for coming up with anti-goals that we can think of and also relate these ideas to other goal-setting approaches we have spoken about in the past. Top tips that arise in our chat include the need for specificity, building a diverse toolkit for achieving success, and the need for different approaches in each situation or project. So to hear it all, make sure to come down the rabbit hole with us, today!
12/27/2022 • 18 minutes, 3 seconds
285. Bus Factor (Replay)
How many coders can you afford to lose to a series of inexplicable bus accidents before your project fails? As morbid as it sounds, your bus factor is an important means of measuring how risky your project is. Today we unpack the bus factor while touching on the top ways that you can boost your team’s capabilities while increasing project resilience. While exploring the topic, we look at the benefits of pair programming, documenting your coding journey, temporarily locking team members out of projects, and rotating coding roles so that your team develops a better sense of your codebase.
12/20/2022 • 20 minutes, 8 seconds
284. Toast to Failure (Replay)
Today we will be talking about toasting to failures. We will get into what a toast to failure is and share some stories that pertain to failing and we will, of course, toast to them. We don’t have any drinks or apple juice in the recording session with us, but we will pretend that we have glasses and we will put them in the air as we toast to our failures. A toast to failure is when one fails at his or her particular task or at their job but it’s celebrated, which we feel is very important. It’s a little counterintuitive and you don’t want to just go out there and fail all the time. So stay tuned as we go over how failures should not only be celebrated, but should also be seen as a learning opportunity so that you and your colleagues can learn from the mistake. All this and more inside today’s episode.
12/13/2022 • 18 minutes, 51 seconds
283. Boris Strikes Back (Replay)
Creating a good piece of content is a bit like pair programming, except you get to steer the wheel without ever having to listen to your navigator. With a bunch of hot Udemy courses under his belt and his book Pandas in Action about to hit the shelves, Stride full-stack developer Boris Paskhaver knows a thing or two about creating content, and he joins us today to give us some better tips than the one you just heard! We start by picking Boris’s brain about just what makes Udemy such a great platform to learn from, and then we dive into the pros and cons of creating content for video versus book formats.
12/6/2022 • 22 minutes, 46 seconds
282. Death By a Thousand IFs with Jacob O'Donnell (Replay)
On today’s show, we have the honor of welcoming Jacob O’Donnell as our special guest. Jacob is a consultant at Stride and we are very happy to have such a good friend and experienced programmer join the show this time around.
11/29/2022 • 25 minutes, 29 seconds
281. Centering & Entering (Replay)
The reality of the workplace means that entering a new team or having someone enter your team is likely and some of the centering and entering techniques shared in the episode allow for these transitions to be managed smoothly.
11/22/2022 • 23 minutes, 24 seconds
280. Vacations (Replay)
Ever wondered whether time away from the screen can lead to any positive outcomes? On today’s episode, we talk about the benefits of vacation, and how they far out way the negatives, while allowing for more productive, alert developers within your team. We touch on all kinds of aspects and kinds of vacation including unlimited vacation, mandatory time off, sabbaticals, and the chaos vacation monkey. Learn how spending time away from work can help your team as much as yourself! Get in touch with us @radiofreerabbit on Twitter and leave a review on Apple Podcasts. Catch you guys next time!
11/15/2022 • 22 minutes, 19 seconds
279. The Definitive Developers Guide to Career Clarity with Jeff Perry
In today’s world of rapidly-changing technologies and job descriptions, it can be difficult to know which path to pursue. As a result, it often feels simpler to fall into a pattern where we are funneled down the path of least resistance, rather than taking ownership of what we truly want. That’s where career clarity comes in. Today on the show we are joined by the fantastic Jeff Perry, a talented engineer, leadership coach, career coach, and founder of More Than Engineering, a company that helps engineers make intentional career transitions.
11/8/2022 • 31 minutes, 24 seconds
278. Stand-up and don't hold the team up. Be quick with 3 simple questions
Whether you call it a Stand-Up, a Daily Scrum, a Huddle, or a Roll Call this daily check-in is a powerful tool you and your team can use to maximize productivity. During today’s episode, you will learn how to do a Stand-Up, what a Stand-Up consists of, and some pitfalls that you may be deterred by along the way. Most importantly, you need to keep a Stand-Up as simple as you can, based on three basic questions. That’s it! Sometimes you’ll include Parking Lots as modifiers. Tune in to hear what that means, along with why there is no reason to ask questions during the Stand-Up. Thanks for tuning in!
11/1/2022 • 3 minutes, 21 seconds
277. Spiking Feature work -- Best practices to figure the unknown unknowns
Often, developers will be asked to work on a story, but nobody knows quite how to deal with it. That why, today, we are discussing spiking feature work. We are joined by Rob O’Brien, one of the partners here at Stride, and a self-confessed “strongly opinionated product manager.” Rob was formerly one of the principal product managers involved in building out our product practice, and while he has transitioned into a partner role, he continues to do product management work.
10/26/2022 • 18 minutes, 42 seconds
276. How To Stand Out as a Software Engineer? (with Dan and Genesis)
Companies receive a large number of applications during the recruitment process which places extra pressure on candidates to stand out amongst the masses. How do you present your resume professionally while ensuring you catch the attention of recruiters? In today’s conversation, we talk to two people who work in the world of talent acquisition to give us insider knowledge on how to get the attention of recruiters while presenting your worth to the company. Dan Chessin and Genesis Osorio are both involved with talent acquisition at Stride, with many years of experience in the recruiting sector.
10/18/2022 • 24 minutes, 2 seconds
275. The Rules of Simplicity - Are you following them when building software
In this episode of The Rabbit Hole, we're talking about The Rules of Simplicity and why you should be following them when building software. We break down the four Rules of Simplicity first laid out in the book Extreme Programming Explained: Embrace Change by Kent Beck and discuss how they relate to other rules and principles that we’ve discussed on this podcast in the past. For a quick crash course on The Rules of Simplicity, why you should be practicing them, and how to go about applying them today, don’t miss this episode!
10/11/2022 • 9 minutes, 15 seconds
274. Two Websites to Keep in Your Back Pocket for Javascript
Today, we're going to talk about two websites to keep in your back pocket for JavaScript. If you are currently doing JavaScript development in your projects, there are two websites or repositories that can make your life a lot easier. In this episode, you’ll hear all about You-Don’t-Need-Lodash-Underscore and 30 Seconds of Code and some of the many JavaScript functions that you can find on these sites for things like CSS, React, and Python, among others. Tune in for some helpful and time-saving tips!
10/4/2022 • 6 minutes, 9 seconds
273. Working Agreements
The remote work landscape calls for conscious congruity amongst teammates, now more than ever. The best way to ensure everyone’s on the same page is to construct a working agreement that everyone is on board with. In this episode, we explain what working agreements are and why you need one! We break down how to optimize your working agreement, the pitfalls to avoid, and how to run a seamless work agreement meeting. Tune in to find out all you need to know about working agreements, from where to find templates to how to handle rule-breaking and more!
9/27/2022 • 15 minutes, 9 seconds
272. The Five S's, and How to Start Writing Efficient Software!
According to Wikipedia, the Five S’s are a workplace organization method that uses a list of five Japanese words, Seiri, Seiton, Seiso, Seiketsu, and Shitsuke, to describe how to organize a workspace for efficiency and effectiveness. It does this by helping people to identify and store items used, maintain the area and items, and sustain the new order. In this episode, we are going to delve into what specifically the five S’s are and how you would use them in the workplace. Then we are going to apply these concepts to software developers and agile teams to see how they could be used for writing software more efficiently. Don’t miss it!
9/20/2022 • 9 minutes, 56 seconds
271. Niko-Niko — Team Assessments Using Smileys :D
Niko-Niko is a visual calendar tool that can be used to track the emotions of your team members, similar to that of a happiness index or a mood board. It contains a column for your team members’ names and provides them the opportunity to record their emotions at the end of every workday with emoticons and other graphics, allowing you to track patterns and improve the morale of your staff. Tune in today as we discuss all things Niko-Niko: what benefits it may provide to your team, what potential pitfalls may arise from its use, and how it could possibly be improved.
9/13/2022 • 12 minutes, 36 seconds
270. Extreme Programming (XP) with Kevin Thomas (Replay)
Today on The Rabbit Hole we are talking about extreme programming and to help us with this we welcome our very own Kevin Thomas. Kevin is a consultant at Stride and a strong proponent of extreme programming! During the conversation we’ll cover the values that typify XP and unpack the importance of each of these after looking briefly at a definition for the term.
9/6/2022 • 24 minutes, 11 seconds
269. Tailwind CSS -- Is it worth learning?
Welcome back to the podcast everyone and thanks for sticking with us through our little hiatus! Today Michael is riding solo and talking about Tailwind CSS. You can expect to hear his thoughts on the pros and cons of using it, some comparisons, and delivering a verdict on whether he would continue to use it in the future. We also share some thoughts on BEM and offer suggestions on which developers Tailwind might best suit. So, if you want to learn more about this today, make sure to press play!
8/30/2022 • 11 minutes, 4 seconds
268. What the CORS?!
If you’ve ever run into issues with CORS (cross-origin resource sharing), just know that you are not alone! In today’s episode we ask, ‘What the CORS?!’ and delve into the mechanics of CORS, the purpose it serves, and how to keep from freaking out when you receive a baffling error message in your browser. Learn how CORS is engineered to protect multiple parties, including servers, functionality, and users. You’ll also get an overview of the various error messages you may encounter, the primary reason behind most of them, along with directions on how to solve them. If you’ve ever asked yourself whether CORS is really your friend, then make sure you tune in today!
8/23/2022 • 13 minutes, 33 seconds
267. Continuous Delivery (Replay)
Building on last week's episode about continuous integration, today we explore the idea of continuous delivery and whether it is the best way forward. We start off with some basics, defining continuous delivery and what can truly fall into this category. From there we weigh the value of a deployment button and the difference that this single step in the process can make. William makes a strong case for why full automation and real continuous delivery is a better approach and how this philosophy will force developers to take up more responsibility and acquire better tools for their part in the process.
8/16/2022 • 15 minutes, 2 seconds
266. Continuous Integration (Replay)
Continuous integration is the peanut butter to the jelly of continuous delivery, and it’s also the topic of today’s episode. We are talking all things CI, including some of the benefits and downsides and a whole lot more. We kick off with a definition of CI, where we discuss how it helps reduce bugs.
8/9/2022 • 19 minutes, 11 seconds
265. Product vs. Developers with Rob O'Brien - Part 2 - Product Strikes Back (Replay)
In today’s episode, we complete the ultimate showdown between product and developer! In this round, it will be the developers who are on the defensive as Dave and Michael account for their faux pas as developers. Rob O'Brien returns to the show with plenty of ammunition. Our conversation starts with a friendly exploration of the type of faux pas a developer might generally commit, as we repeatedly return to the importance of a team-based mindset and why developers need to be invested in user outcomes. We explore how a developer’s role goes beyond completing their delegated tasks and some handy tips for working with designers. The crew also outlines the many benefits of building rapport with your co-worker including having more resilience when things get stressful and having a more cohesive team working environment. Tuning in you’ll hear a thrilling, action-packed discussion on the merits and flaws of developers and how to make your team a badass trifecta of efficiency!
8/2/2022 • 28 minutes, 45 seconds
264. Product vs. Developers with Rob O'Brien (Replay)
In today’s episode, we have the ultimate showdown between product management and developers. Meet our guest Rob O’Brien. His career started in information science technology, giving him a good grounding in app development. He has since gained extensive experience managing engineering teams as well as coaching product employees and building product teams. O’Brien shares what he believes to be the biggest missteps that product managers can take and illustrates why product managers should be available for feedback throughout the development process. Hear why it’s important to have good communication between product management and developers and why the entire team should be present during stakeholder feedback. We also discuss how to identify what should be the company’s top priority at any given time, and how you can use the RICE or MoSCoW methods to objectively determine what to pursue at a particular point in time without conjecture. Join us for an energetic discussion on all things development, product management, and teamwork!
7/26/2022 • 27 minutes, 31 seconds
263. Circling Back to Programming Idioms (Replay)
We had so much fun last time out talking about programming idioms that we thought it was worth revisiting the topic and exploring a few more. To kick things off we talk about the idea of 'bike shedding', the supposed history of the term, and how it can apply to various situations in which something trivial is more engaging than an important matter. From there, we turn to the more common idiom of the hammer and everything appearing to be a nail. We see this problem arising when programmers tend to lean into their own expertise or method, which is not always the most appropriate. We also cover the overuse of refactoring, the detrimental effects this can have, and why rubber duck debugging can be such a satisfying experience. Tune in to hear it all!
7/19/2022 • 10 minutes, 59 seconds
262. Programming Idioms (Replay)
Each programming language has its own set of idioms or patterns of code used to express some standard kind of computation. Today on The Rabbit Hole, we’re talking about the programming idioms or expressions that we use on the regular; which are not to be confused with idiomatic programming or regular expressions! Tune in to learn what it means to shave a yak, boil the ocean, and grok a concept, as well as the difference between FUBAR and foobar, what turtles have to do with the problem of infinite regress, and so much more!
7/12/2022 • 19 minutes, 33 seconds
261. Psychological Safety (Replay)
Today, we’ll be talking about psychological safety. We’ll go into what is psychological safety and how important is it in the work space. Having a team that has more cohesive and safe environment is actually more important for performance of the team as a whole than having those 10x developers really cranking out code.
6/28/2022 • 30 minutes, 38 seconds
260. Vacations (Replay)
Vacations help developers stay energized at work and avoid burn out, but sometimes it's hard to pull ourselves away from our computers for even a weekend away.
6/21/2022 • 22 minutes, 19 seconds
259. Remote Pair Programming with Ben Orenstein(Replay)
On today’s episode, we are joined by special guest, Ben Orenstein, to talk about remote pair programming. Ben is a developer, who after many years of working for other people decided to strike out on his own. He is the cofounder of an app called Tuple, which is specifically for remote pair programming.
6/14/2022 • 26 minutes, 26 seconds
258. Pragmatic Folks Part 3 - The Dogmatic Developer (Replay)
On the final episode of our three-part series with Dave Thomas and Andy Hunt, we discuss the nuanced nature of programming and why the idea of a “best practice” is often idealistic and not equally relevant to everyone.
6/7/2022 • 26 minutes, 40 seconds
257. Pragmatic Folks Part 2 - Own Your Environment (Replay)
Today's episode is the second of a three-part Pragmatic Folks series and we are joined again by Dave Thomas and Andy Hunt, authors of The Pragmatic Programmer, to talk more in-depth about how you are in control of your own destiny even when it seems like you’re not.
5/31/2022 • 21 minutes, 57 seconds
256. Pragmatic Folks Part 1 - Feedback Loops(Replay)
Today's episode is the first of a three-part Pragmatic Folks series and we are joined by Dave Thomas and Andy Hunt to talk about the 20th anniversary edition of The Pragmatic Programmer. This new edition was not only an opportunity for them to revise the material but also to revisit their thinking and see how ideas have changed over the course of twenty years.
5/24/2022 • 18 minutes, 22 seconds
255. Developer Friendly Reminders (Replay)
What is your ritual for starting the day? Are you starting out by choosing a deliberate practice that can help skyrocket your productivity? Welcome back to another episode of The Rabbit Hole, co-hosting today with me, Michael Nuñez, is Dave Anderson. Today we are giving you developer-friendly reminders! Things that you can do with your life that will take five minutes that you should be doing, every now and then. So stay tuned as we share some friendly reminders to help you get through your day!
5/17/2022 • 18 minutes, 5 seconds
254. The Art of Gathering (Replay)
As the world slowly reopens after more than a year of COVID-19 shutdowns, coming together is more important than ever. Today’s episode takes a human-centered approach to how to create more meaningful gathering spaces and some simple tips you can follow to do so. From committing to a clear purpose to asking how your gathering impacts the wider world, we share some of the rules outlined in Priya Parker’s fascinating book, The Art of Gathering: How We Meet and Why It Matters, and we discuss the benefits of Jefferson Dinners, where there is only one topic of conversation. Tune in today for some insight into the art of gathering!
5/10/2022 • 17 minutes, 41 seconds
253. SOLID - Single Responsibility Principle (Replay)
Do you know how you can feel overwhelmed when you have too much on your plate? Well, your code can feel the same way. This is why it’s important to follow the Single Responsibility Principle, SRP, which is what the ‘s’ in SOLID stands for. Today we do a deep dive into the SRP and how you can ensure that your class or object only does one thing at a time. We take a look at some of the benefits of following the SRP, such as ease of testing and greater flexibility with making changes. When there is more than one responsibility designated to a class, it can quickly become confusing when you need to alter a piece of code. We also look into why you should try to keep classes as small as you can, how to know if a class or object has more than one responsibility, and why you should always be ready to refactor.
5/3/2022 • 16 minutes, 7 seconds
252. Motivation (Replay)
In today’s episode, we are talking about motivation — what keeps us up at night and what gets us out of bed every single day? We are joined by a special return guest and friend of the show, Kevin Thomas. Kevin is a Principal Consultant and Director at Stride. There are some obvious motivating factors, such as money as well as less obvious ones such as purpose and autonomy.
4/19/2022 • 22 minutes, 22 seconds
251. Remote Teams (Replay)
On today’s show we welcome David Rataczak. David works remotely for GitHub on their payments team. Prior to working at GitHub, David had been working remotely for about five years after working at a fully onsite company in San Francisco for a year.
4/12/2022 • 25 minutes, 26 seconds
250. Imposter Syndrome (Replay)
Today on the show we are joined by none other than our host, Michael Nuñez’s brother, Steven Nuñez! Steven will be helping us in our discussion about a very special topic and one that is very common amongst developers, imposter’s syndrome! Sound familiar? Feel familiar? Well, chances are at some point in your professional career (and beyond) you have probably felt like an imposter.
4/5/2022 • 26 minutes, 8 seconds
249. Comments Considered Harmful, Comments Considered Helpful (Replay)
Today, we’ll be talking about whether comments are considered harmful or helpful. We’re pretty sure that there are many different comments you may have run into in your careers. Comments are something that is really common to every programmer, everyone can relate to them – whether they’ve been tormented or blessed by them. We’ve come across some pretty funny comments in the past like, “Holy crap, WTF is this?” or “Drunk, will fix later,” or “Magic, do not touch,” or just the standard, “I’m sorry.” Aside from their entertainment value, comments can be useful for a multiple of other reasons – such as documentation and setting to do reminders for a team. But how can we utilize comments most effectively to avoid the shame game? In this episode, we discuss how best to use comments for to-tasks, writing tests, the value of user stories, the dangers of tech debt and the almighty perils of the copypasta driven development boys. In addition, we will also discover how scout’s honor applies to code (as well as to developers from the Bronx), why a comment is the only code that can lie to you and how you can quite simply avoid comments altogether.
3/29/2022 • 24 minutes, 21 seconds
248. Common Mistakes Tech Leads Make with Kelly Wu (Replay)
Today on the show, we welcome special guest, Kelly Wu. Kelly is a software consultant and as a consultant has worked with many different tech leads and teams throughout her career. Most engineering teams will have a tech lead and have experience either working with a tech lead or actually being one.
3/21/2022 • 30 minutes, 26 seconds
247. Pull Request Anti-patterns
Everybody knows one of those senior dev gatekeepers for codebase who just swat PRs away and block every code review that comes through. Today we talk about some healthier ways to deal with the gauntlet of approvers and the benefits of mob programming code reviews. Tuning in you’ll hear about the pros and cons of code review posses, the problem of people who just approve code without really looking at it, and the question of how nitpicky we should be. Our hosts also discuss personal code styles versus agreed-upon code practices and explain the reasons why they will block a PR. To discover the benefits of mob programming, tune in today!
3/15/2022 • 17 minutes, 17 seconds
246. Pair Programming Antipatterns
There are a lot of ways pair programming can go wrong. Thankfully, it’s possible to pair well simply by avoiding pairing poorly and, by steering clear of some of the common mistakes that we outline in this episode, you’ll automatically up your chances of success! Today, on The Rabbit Hole, Michael Nunez, Sophie Creutz, and Dave Anderson talk pair programming antipatterns, from multiple disruptions to over-philosophizing, from keyboard hogging to decision fatigue. For some simple tips on how to make pair programming a great tool for knowledge sharing and team building rather than a chore, tune in today!
3/8/2022 • 25 minutes, 59 seconds
245. Seven Wastes of Software Development (Replay)
In this episode of The Rabbit Hole, we are unpacking The Seven Wastes of Software Development! Dave and Michael break down the seven points as they appear in the book Implementing Lean Software Development by Mary and Tom Poppendieck and chat about their experience and thoughts on each.
3/1/2022 • 27 minutes, 49 seconds
244. Trunk Based Development vs Gitflow (Replay)
Today on the show we will be talking about Git Workflows. It seems like everybody is always using Gitflow or Trunk Based Development. Gitflow defines a strict branching model designed around the project release. It assigns very specific roles to different branches and defines how and when they should interact. Trunk Based Development is a source-control branching model, where developers collaborate on code in a single branch called ‘trunk’. Advances to source-control technologies have made Trunk Based Development more (and sometimes less) prevalent. However, it has been a branching model that many have stuck with through the years. In this episode we’ll be getting into more of what we prefer, whether it is Gitflow or Trunk Based Development and we’ll get to some of the pros and cons behind the two.
2/22/2022 • 25 minutes, 14 seconds
243. Circling Back to Programming Idioms
We had so much fun last time out talking about programming idioms that we thought it was worth revisiting the topic and exploring a few more. To kick things off we talk about the idea of 'bike shedding', the supposed history of the term, and how it can apply to various situations in which something trivial is more engaging than an important matter. From there, we turn to the more common idiom of the hammer and everything appearing to be a nail. We see this problem arising when programmers tend to lean into their own expertise or method, which is not always the most appropriate. We also cover the overuse of refactoring, the detrimental effects this can have, and why rubber duck debugging can be such a satisfying experience. Tune in to hear it all!
2/15/2022 • 10 minutes, 59 seconds
242. Senior Engineering Superpowers (Replay)
Becoming a senior engineer is a defining moment in an IT professional’s career. Yet, this moment might not make itself obvious. Today hosts Michael Nunez and David Anderson talk about when they realized that they had become senior engineers and the traits that come with this increase in status. After sharing some back-and-forth banter about their engineering superpowers, Michael and David discuss when they achieved their seniority and what it felt like.
2/8/2022 • 21 minutes, 26 seconds
241. Programming Idioms
Each programming language has its own set of idioms or patterns of code used to express some standard kind of computation. Today on The Rabbit Hole, we’re talking about the programming idioms or expressions that we use on the regular; which are not to be confused with idiomatic programming or regular expressions! Tune in to learn what it means to shave a yak, boil the ocean, and grok a concept, as well as the difference between FUBAR and foobar, what turtles have to do with the problem of infinite regress, and so much more!
2/1/2022 • 19 minutes, 33 seconds
240. Ubiquitous Language
Having a ubiquitous language within your organization means that when someone on the developer team refers to “the foo bar,” the people on the design team, the service team and all the other teams, know exactly what they mean. Although a general understanding of the term is the most important aspect of ubiquitous language, we’d recommend not using terms like “the foo bar,” and rather applying principles of domain driven design to your naming system so that your glossary actually makes sense in the real world! Join us today as we share our experiences of dealing with ubiquitous and non-ubiquitous language in our working environments, and the importance of bringing up this topic as early on in any job as possible.
1/25/2022 • 18 minutes, 47 seconds
239. Open Source Ethos & Pathos
Thanks for tuning in to another episode of the Rabbit Hole! Joining Michael in conversation today is one of our favorite cohosts, Sophie Creutz. Open source ethos and pathos form the springboard for our conversation, which spans the benefits and barriers to paying and not paying for information. Our discussion delves into practical territory, suggesting a simple way to start contributing to open source and describing how you can begin to grow into a core contributor. You’ll also hear some common fears around starting an open source project and why consistent contribution is the most constructive way to build a reputation for yourself. Join us for an enlightening conversation today!
1/18/2022 • 14 minutes, 40 seconds
238. Gamification
The idea of gamification has gained a lot of traction in the last few years and is increasingly being used in various aspects of modern life to aid commitment and learning, through enjoyment and engagement. Today we will be speaking about the topic of gamification, and in particular how it can be applied to professional development in our field. We have all experienced the power of 'learning by doing' and gamifying an approach doubles down on this idea. One of the principal powers of gamified learning also relates to memory, and how we remember better when we are experiencing enjoyment. It is possible that as developers, we also have an increased tendency to enjoy tracking progress, and the way that games allow you to gauge your level and the points you accrue, will surely appeal to a lot of our audience too! So for a quick look at a great way to get your stats up, and a few direct routes to lessons that can potentially be applied to your job immediately, be sure to listen in with us on the show!
1/11/2022 • 25 minutes, 49 seconds
237. Let's talk about Anti-Goals
As we enter into the new year and bid farewell to 2021, the topic of goals and goal-setting seems like an appropriate one to give some attention to. Today we are approaching it from a slightly different direction, looking at the idea of 'anti-goals', and how these might help you in your work and personal life. Simply put, anti-goals are a way to work backward from an undesirable outcome and use these as motivation and an incentive to avoid the actions or circumstances that might facilitate it. In our conversation, we look at the two different methods for coming up with anti-goals that we can think of and also relate these ideas to other goal-setting approaches we have spoken about in the past. Top tips that arise in our chat include the need for specificity, building a diverse toolkit for achieving success, and the need for different approaches in each situation or project. So to hear it all, make sure to come down the rabbit hole with us, today!
1/4/2022 • 18 minutes, 3 seconds
236. Editor Picks 2021
To celebrate the close of the year, and another year's worth of fun and illuminating conversation on this podcast, we are doing our customary round of editor's picks, where we look at highlights from the last 12 months. After the upheavals of 2020, in some ways, 2021 felt a little more settled, and discussions were able to move forward into some exciting and inspiring directions. From the 'bus factor' to 'quality without a name,' we covered some great ground here on the show and we look at all the standout moments, talking about their continued value. We get into the episode we had with Kara Swisher about influencing companies, the benefit we all accrued while discussing our notetaking habits, practices, and processes for improvement and education, our series on Aristotle, and a whole lot more. So, if you enjoyed these episodes as much as we did, or are looking to go back and catch up on some great content, join us today. We look forward to reconnecting with you all in the new year!
12/28/2021 • 20 minutes, 22 seconds
235. Flow
Flow or being in a flow state is something that is defined by Wikipedia as what happens when a “person performing some activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.” Today we are joined by Sophie Creutz and Raymond Lam to discuss flow, a subject quite adjacent to some of the topics we’ve discussed recently on the podcast. In this episode, we talk about what flow is, what being in a flow state feels like, the nine components of flow, and the four different flow profiles. We also discuss how a software developer can achieve flow and some of the different things you can do to help yourself get into that flow state. Tune in for all this and much more!
12/21/2021 • 23 minutes, 9 seconds
234. Notetaking
This week on The Rabbit Hole podcast we are joined by two of our favorite guests, Sophie Creutz and Raymond Lam, to discuss note-taking! When you’re working on software development for eight hours plus, you’re more than likely to lose track of everything you’ve covered and learned. In our conversation, we discuss our approaches to note-taking and how they support long-term memory integration, lifelong learning, and giving feedback during standup meetings. We discuss the plethora of apps that are available for all your note-taking needs and measure the benefits of different types of note-taking, like physical writing, typing, and even recording voice notes. Hear about the different methods for note-taking, like the Zettelkasten method, Flow-based note-taking, and the Cornell method, and what we love about each of them. Tune in to discover the best options for note-taking, how to keep track of it all, and more!
12/14/2021 • 18 minutes, 10 seconds
233.What do you listen to when programming?
In today’s episode of The Rabbit Hole, we pose the question: what do you listen to when you are programming? Co-hosts, Micheal Nunez and Sophie Creutz, and returning guest, Raymond Lam, discuss their favorite tunes for different situations; from smooth jazz for solo coding and ambient noise for focusing on the problem at hand to soundtracks for reading and classical piano for relaxing. We also give you the opportunity to share the music that pumps you up while programming on our collaborative Spotify playlist, so stay tuned to find out more!
12/7/2021 • 12 minutes, 49 seconds
232. Energized Work
Working longer hours does not result in greater or higher quality output. Rather, it is often how we spend our time outside of working hours that plays the biggest role in our performance from nine to five. These ideas are well captured in the principle of ‘energized work’ found in James Shore’s The Art of Agile. Today on the show we dive into the meaning of energized work and discuss our individual methods of attaining it. We are also lucky enough to have Raymond Lam, Principal Software Engineer at Ginkgo Bioworks, join us for the ride! We begin our conversation with the actual definition of energized work as it appears in The Art of Agile. The text also describes the concept in the form of a Haiku poem, and we make sure to include that in our discussion. We move on to speak about how workers laid the foundations for energized work before social distancing and how leaders can manage their teams in ways that encourage it in our current situation. Our conversation draws to a close with Dave, Michael, and Raymond’s personal rituals for winding down, with a highlight being that Dave’s dog does most of his scheduling for him!
11/30/2021 • 14 minutes, 20 seconds
231. Prime Directive
Star Trek fans will know that the Prime Directive is the unbreakable mission statement of the Starfleet. It's a guiding principle, deciding the course and tone for whatever the team encounters. As you’ll learn in today’s episode of The Rabbit Hole, however, the prime directive is an important concept for software developers too! Michael Nunez, Dave Anderson, and Sophie Creutz dive into Norm Kerth’s Retrospective Prime Directive and break it down phrase-by-phrase to illustrate how it applies to an agile workflow. We also share some of the other prime directive texts that we discovered, including the Team Building and Futurospective Prime Directives, and touch on their focus on psychological safety and bringing people together for a specific cause. All this and more when you tune in today!
11/23/2021 • 18 minutes, 1 second
230. Progressive Performance
In some respects, we have moved on from the trend to overload web pages with too many features, but it is still worth emphasizing why performance should be at the top of your list of priorities. Today we talk about progressive performance and some interesting ways to approach and think about creating the most user-friendly websites possible. To do this, we break down why this is necessary and how to go about it; from tools and tricks to the studies that have shown how users react to load times, and buggy pages. So to hear about how you can get away with slightly slower speeds, and why learning about the tools that you will be using to tackle these issues is so important, make sure you come down the Rabbit Hole with us, today!
11/16/2021 • 21 minutes, 58 seconds
229. Agile Manifesto
In today's episode of the Rabbit Hole, we are joined by our friends Sophie Creutz and Raymond Lam to take a shot at unpacking the Agile Manifesto! We often speak about the Agile approach and thought we would take it down to the foundational level, speaking about the components of this essential tool for developers and teams.
11/9/2021 • 21 minutes, 36 seconds
228. When to Pair Program
In today’s episode of The Rabbit Hole, Dave Anderson and Sophie Creutz attempt to answer the question: when should you pair program and what should you pair on? We apply the basic principles of pair programming to a non-programming task like reading documentation, using an article about learning organizations as an example. Hate pair programming? Well, we also touch on how you can reframe it as deep collaboration and view it as a skill that you can work on. Stay tuned for practical advice and helpful resources, plus so much more!
11/2/2021 • 13 minutes, 24 seconds
227. Facebook's DNS Woes with Sophie Creutz
In this episode of The Rabbit Hole, we unpack the recent outages of Facebook's servers, looking at why this might have happened, some of the more ludicrous theories that have been offered as explanations, lessons to take away, and why the downtime was worse than just a day of limited social media access for many people. With Facebook, Whatsapp, and Instagram offline for the better part of a day, many small businesses could not function, normal communications were halted for some, and a general air of curiosity spread across the globe. Our friend, Sophie Creutz, joins us to go through the most important points to reflect on, The Five Whys, and how Facebook and smaller companies can learn from mistakes such as this to safeguard against further issues in the future.
10/19/2021 • 20 minutes, 45 seconds
226. Aristotle Project - Impact
This episode is the final one in our Aristotle Project series. Over the past few episodes we have covered psychological safety, dependability, structure and clarity, meaning and last but not least, impact. Impact has a variety of ways that it can be defined, which makes for an interesting discussion. Traditionally, profitability has been the main measure of impact, but in today’s world, impact also has strong social and environmental components. Join us as we delve into some of the factors to take into consideration when determining the type of impact that your work is having.
10/5/2021 • 21 minutes, 17 seconds
225. Estimations and the different variations of pointing
In today's episode, we dive into the subject of estimations and pointing. For most teams, there needs to be a way to communicate the size, complexity, and difficulty of any task or project, and the different frameworks that have gained popularity have degrees of utility, strength, and weakness. To get to grips with these, we discuss, planning poker, t-shirt sizes, dog breeds, board games, and the interesting case of gummi bears! So to hear all about some ideas that you may find useful, or completely useless, tune into the Rabbit Hole, today!
9/28/2021 • 21 minutes, 29 seconds
224. Aristotle Project -- Meaning
Financial security, building working relationships, having a positive impact on the people around you; which of these examples resonates with the way you find meaning in your work? It could be one of them, or all or them, or you may have completely different sources of meaning. In today’s episode, my guest, Sophie Creutz, and I, share how we personally find meaning in the work that we do, and why we believe this to be a very important topic. Google recently did some research on the subject too, so we also share some of those findings. Tune in today to hear it all!
9/21/2021 • 22 minutes, 40 seconds
223. Aristotle Project - Structure and Clarity
Leading up to today’s discussion, we have talked about the psychological safety, and dependability of the Aristotle Project. Today, we tackle structure and clarity. We discuss a statement that lists understanding of job expectations, the process for fulfilling them, and knowing the consequences of one’s performance as important pillars for team effectiveness. We unpack OKR goal setting, how this enables individuals flexibility in choosing how to reach a predetermined goal, how OKRs can add structure and clarity around roles and responsibilities, and how setting team OKRs can create a danger of ‘bike shedding’, which isn’t a problem in individual OKR setting. We close with the suggestion that each person writes their own OKRs in order to create even more structure and clarity around their job expectations. We hope you join us today!
9/14/2021 • 21 minutes, 16 seconds
222. Aristotle Project — Dependability with Sophie Creutz
Today we continue our exploration of the Aristotle Project, and we are joined by Sophie Creutz to discuss dependability. Dependability is one of the factors that Google found to be most impactful on the success of a team and to kick things off we run through this list again, as well as some of the surprising things that are not correlated to a team's success. With Sophie's help, we look at the efficacy of a Scrum of Scrums, how to balance informative communication with remaining concise enough, prioritizing the team mentality, avoiding the bystander effect, and a whole lot more. We believe that the measures you take for your team or set of teams are essentially there to foster dependability in light of the fallibility of humans and that a lack of ownership and a negative herd mentality are the biggest enemies to your team's success. So for this brief yet enlightening chat on how to sure up your projects and the teams that work on them, join us down The Rabbit Hole!
9/7/2021 • 21 minutes, 32 seconds
221. Aristotle Project - Psychological Safety
Safety in an office environment might not be something most people think about. Unlike working in a job that requires manual labor, dangers in an office are less visible. That does not make them more serious. In today’s episode, we discuss psychological safety and what this entails. There is a range of definitions for the concept, but it should be underpinned by mutual respect and acceptance. We discuss what happens when this is lacking in the workplace and then also delve into what you can do to foster it. Being open, vulnerable, and willing to show that you do not know everything goes a long way. Tune in to hear it all!
8/31/2021 • 25 minutes, 27 seconds
220. Pre-Mortem
Are premortems as morbid as their name suggests or are they difficult but necessary measures to take for identifying possible future threats? This is the topic we explore today and we have our guest extraordinaire Sophie Creutz back on the show to help us tackle it. Our discussion is filled with strong arguments from both sides of the table. On the one hand, premortems could be seen as pointless for the most part because they take up precious time focussing on threats everybody is already aware of. On the other hand, they allow teams to get the challenges that lie ahead into the open which builds the psychological safety that is so vital to the development process. We also explore the most appropriate times to run premortems and how they should be structured so that threats can be placed in three buckets, tigers, paper tigers, and elephants. Tune in and dive down the rabbit hole of premortems with us today!
8/24/2021 • 21 minutes, 25 seconds
219. Dungeons & Developers
Today we have a really fun episode in which we are joined by our friend Sophie Creutz to discuss the parallels between Dungeons & Dragons and the world of software development! There are clear links and common threads that seem to run between these two worlds and we start off this conversation considering why the game of D&D might immediately appeal to developers. A lot of this might have to do with rules and the concept of a journey or quest, but we also consider further counterparts from the two spaces. Sophie shares some of her deep knowledge from the role-playing game, and we even have time to think about the character attributes that make a good developer! So from product managers to DMs, to quests and careers, be sure to listen in as we explore what we as developers can learn from the amazing game of D&D!
8/17/2021 • 28 minutes, 34 seconds
218. Deep Practice & Becoming a better developer
Welcome back to The Rabbit Hole podcast! This week we’re diving into the subject of deep practice and how to become a better developer. Dave and Michael reflect on how learning to play a musical instrument taught them important lessons about intentional practice and how they’ve applied those lessons to coding. Hear how test-driven development and pair programming can be effective methods for intentional practice, and how you can pick up valuable lessons by actively observing peers and reading code. There are also opportunities for small, everyday exercises that can improve your coding on programs like LeetCode and Exercism. Tune in today as we discuss deep practice, The Matrix, mindful learning, and plenty more!
8/10/2021 • 21 minutes, 55 seconds
217. Remote Work for Introverts vs. Extroverts
The transition to remote work in early 2020 was abrupt for everyone, but some found themselves thriving more than others, in many cases, thanks to their personality type. With work-from-home setups becoming the new norm in the age of COVID, many might assume that remote working environments are ideal for introverts, while extroverts are rearing to return to the office but, as you’ll learn from this episode, this isn’t necessarily the case! Today, Michael Nunez, Dave Anderson, and William Jeffries speak about introversion and remote work, sharing their personal experiences and elaborating on how they believe it relates to their individual personality types. We also touch on introversion versus social anxiety, the value of flexibility and creative thinking, and what Michael has in common with Spiderman, so make sure to tune in today to learn more!
8/3/2021 • 19 minutes, 48 seconds
216. The Art of Gathering
As the world slowly reopens after more than a year of COVID-19 shutdowns, coming together is more important than ever. Today’s episode takes a human-centered approach to how to create more meaningful gathering spaces and some simple tips you can follow to do so. From committing to a clear purpose to asking how your gathering impacts the wider world, we share some of the rules outlined in Priya Parker’s fascinating book, The Art of Gathering: How We Meet and Why It Matters, and we discuss the benefits of Jefferson Dinners, where there is only one topic of conversation. Tune in today for some insight into the art of gathering!
7/27/2021 • 17 minutes, 41 seconds
215. Digital Nomad
In today’s episode, we get together with our third host William Jeffries, who has been traveling the globe for the past few months, to discuss the pros and cons of living the lifestyle of a digital nomad. We hear from William about the challenges of working in different time zones and how daylight savings time in the US affected his capacity to co-host The Rabbit Hole podcast. William breaks down the difference between being a fast or a slow digital nomad and shares some of the logistical challenges he faced, like finding fast reliable internet in India and building a social network abroad. Later we discuss the tax and visa challenges inherent to the digital nomad lifestyle and how the US tax code differs from the rest of the world. Join us today as we dive into the digital nomad lifestyle and find out our hosts’ dream digital nomad travel destinations!
7/20/2021 • 27 minutes, 35 seconds
214. GitOps
In today’s episode, we get together with William Jeffries to ask all our most pressing questions relating to GitOps. Tuning in you’ll hear why GitOps uses a pull-based system instead of a push-based system and how GitOps can facilitate better security practices through an improved threat model. William explains when and how to apply GitOps to your project and why he is so excited about the work being done by the Cloud Native Computing Foundation. For all this and much more, tune in today as we get to the bottom of what GitOps means for the future of development!
7/13/2021 • 11 minutes, 32 seconds
213. Benefits of Colocation
On a whole, the pandemic has made us, as a society, more anxious about a lot of things, including working in offices with other people where our risk of being exposed to the coronavirus is heightened. Although there are a lot of great tools which have been developed to try to make home offices mirror actual offices, there are various benefits which come from working in the same space as other people which cannot be replicated online. Nevertheless, working from home, at least some of the time, may continue to be part of our reality well into the future.
7/6/2021 • 23 minutes, 33 seconds
212. 7 Common Content Marketing Mistakes with Stephanie Morillo
In today’s episode, we welcome back content creation aficionado, Stephanie Morillo. Stephanie is a technical program manager at Microsoft and specializes in content strategy. She is the author of the acclaimed book The Developer's Guide to Content Creation. In our conversation we discuss the contents of her blog post 7 Common Content Marketing Mistakes Developers Make and How to Avoid Them. We cover relatable mistakes like not dedicating enough time to the editing process and not adding detailed descriptions to multimedia content. Stephanie shares constructive feedback and tips for how to avoid these mistakes and how to take your developer content to the next level! For all this and much more, tune in today!
6/29/2021 • 27 minutes, 53 seconds
211. Tuning up your hiring process
There is a lot going down in the world right now. Whether it is because of the pandemic or not we can’t say but people are leaving their jobs in record numbers. However, there is a hidden opportunity lurking in this crisis, both for people to get new jobs and for companies to get new employees. So in today’s episode, we’ll be talking about tuning up your hiring process! We want everyone to have the best hiring process, so we consider how to interview in ways that are appropriate for the skills you're looking for and how to evaluate candidates in a way that is respectful of their time and abilities. We try to come up with a model for interviewing that feels equitable, considering evaluating practices such as iterating on your interview process, whiteboarding, querying algorithm knowledge, take-home tests, and more. We also speak about the kindest ways of judging whether candidates will fit in with and even add to company culture. Join us and get up to speed with our take on hiring best practices today!
6/23/2021 • 21 minutes, 38 seconds
210. Developer Friendly Reminders
What is your ritual for starting the day? Are you starting out by choosing a deliberate practice that can help skyrocket your productivity? Welcome back to another episode of The Rabbit Hole, co-hosting today with me, Michael Nuñez, is Dave Anderson. Today we are giving you developer-friendly reminders! Things that you can do with your life that will take five minutes that you should be doing, every now and then. So stay tuned as we share some friendly reminders to help you get through your day!
6/16/2021 • 18 minutes, 5 seconds
209. Getting Started with Technical Writing with Stephanie Morillo
Many developers harbor dreams of creating content, whether it’s writing a blog, broadcasting on a YouTube channel, or posting on Instagram. In today’s episode, we get together with the esteemed Stephanie Morillo for advice and inspiration. Stephanie works as a technical program manager at Microsoft, but she is also a content strategist by trade who currently specializes in Developer Content Strategy. She is also the author of the book The Developer's Guide to Content Creation. We talk with Stephanie about all sorts of content-related topics, from how to migrate your blog posts to choosing the right platform when you’re starting out. Stephanie offers plenty of wisdom and practical tips to address common issues like ‘scope creep’ and struggling with priorities. One salient point is her observation that many people have a tendency to overthink their blog posts and that the best way to combat this is to get some distance from your writing and to approach it again as an editor when you have some perspective. It was great having Stephanie on the show and we’re inspired to apply everything we’ve learned from her! For all this and more, join us today!
6/8/2021 • 25 minutes, 12 seconds
208. Buy vs. Build
All developers will understand the difficulty that comes along with deciding whether to build or to buy. In today’s episode, we discuss why it’s so important to think about this decision before you make it; there are so many factors to take into consideration and you don’t want to act hastily. Co-hosts Michael and Dave discuss the pros and cons of building and buying, tiers that exist within the build or buy spectrum, and something that they would never build. They share a question that you should always ask yourself before diving in, and some red flags to look out for. If you’re in the market to buy, this episode is also full of examples of great places you can do so!
6/1/2021 • 15 minutes, 53 seconds
207. QWAN: Quality Without A Name
In today’s episode, our hosts cover the elusive concept of QWAN: Quality Without A Name. Hear how they first came across the term in The Art of Agile Development: Pragmatic Guide to Agile Software Development and their subsequent quest to disseminate its meaning. Michael and Dave do an impressive pull of a C2 Wiki article that breaks down QWAN’s four attributes: Usability, Readability, Configurability, and Profoundness. Tuning in you’ll gain insight into how each of these attributes presents. Learn which apps succeed at achieving the attributes of QWAN, from Instagram’s usability to ESLint’s Profoundness. You may be surprised! Join us today for a taste of just how deep the Rabbit Hole of QWAN can go!
5/25/2021 • 18 minutes, 57 seconds
206. Product vs. Developers with Rob O'Brien - Part 2 - Product Strikes Back
In today’s episode, we complete the ultimate showdown between product and developer! In this round, it will be the developers who are on the defensive as Dave and Michael account for their faux pas as developers. Rob O'Brien returns to the show with plenty of ammunition. Our conversation starts with a friendly exploration of the type of faux pas a developer might generally commit, as we repeatedly return to the importance of a team-based mindset and why developers need to be invested in user outcomes. We explore how a developer’s role goes beyond completing their delegated tasks and some handy tips for working with designers. The crew also outlines the many benefits of building rapport with your co-worker including having more resilience when things get stressful and having a more cohesive team working environment. Tuning in you’ll hear a thrilling, action-packed discussion on the merits and flaws of developers and how to make your team a badass trifecta of efficiency!
5/18/2021 • 28 minutes, 45 seconds
205. Product vs. Developers with Rob O'Brien - Part 1
In today’s episode, we have the ultimate showdown between product management and developers. Meet our guest Rob O’Brien. His career started in information science technology, giving him a good grounding in app development. He has since gained extensive experience managing engineering teams as well as coaching product employees and building product teams. O’Brien shares what he believes to be the biggest missteps that product managers can take and illustrates why product managers should be available for feedback throughout the development process. Hear why it’s important to have good communication between product management and developers and why the entire team should be present during stakeholder feedback. We also discuss how to identify what should be the company’s top priority at any given time, and how you can use the RICE or MoSCoW methods to objectively determine what to pursue at a particular point in time without conjecture. Join us for an energetic discussion on all things development, product management, and teamwork!
5/11/2021 • 27 minutes, 31 seconds
204. Live Coding with Melissa Wahnish
These days it seems that every Tom, Dick, and trash collector is live streaming. In today’s episode of The Rabbit Hole Podcast, we speak with Melissa Wahnish about her experiences with live coding. Melissa has been live coding for years and even has her own website full of tips and tutorials called Ruby Thursday as well as a YouTube channel of the same name. We talk all about how Melissa got started and the many ways that audience feedback can help you get unstuck when you can’t solve a problem. The experience is also useful for young coders who have an opportunity to realize that even experienced coders get stuck and need to consult Google when they run into problems. It takes bravery to take on live coding but having a sense of humor and willingness to be vulnerable online are indispensable allies that help you access the many benefits of live coding. Melissa shares some of her early stumbles and what she learned from them. We also get a great run down for first-time live coders on how to set up their first live coding session, along with plenty of tips to help make it an awesome experience. It turns out that live coding is an excellent way to access the broader community, share knowledge, and hold yourself accountable to finish projects and keep that momentum going. For all this and more, join us today!
5/4/2021 • 26 minutes, 36 seconds
203. Definition of Done
Today we are speaking about getting things done! What does it mean when we say something is done and how can you and your team get a better handle on the concept for better products? At times, as developers, we might feel like we are done as soon as the code is written and passed, but in reality, there are more steps in the process, and to get to a real state of being finished we need to formulate a proper framework or checklist for being done! This is one of the issues with working with different teams, as responsibility can sometimes get a bit lost, and so putting some time in, to develop an appropriate way to measure completion can lead to fewer issues and confusion down the road. In today's episode, we also look at the important aspects of feedback and corrections, and how 'done' might be a relative term, especially as your products gets increasingly complex. So for all this and a few more thoughts on how you can move things into that beautiful 'done' column, come with us, down the Rabbit Hole!
4/27/2021 • 12 minutes, 52 seconds
202. International bootcamps, learning programming, etc. with Alex Oh
While many companies still look for programmers who have CS degrees, there is often a gap between what colleges teach and the skills the industry requires. This is a gap that bootcamps are trying to fill and today we have Alex Oh, founder of Seoul-based bootcamp WCoding, here to share his perspectives on this newer approach to learning code. We start our conversation on the subject of the many paths into programming by sharing pieces of our own code learning journeys.
4/20/2021 • 28 minutes, 2 seconds
201. Metrics as Incentives
Many managers assess developer performance as if they were runners, where how many lines of code you write determines how good you are. Instead, developers are like baseball players, where a suite of metrics is needed to measure performance. In today’s episode, we unpack how metrics are used to judge coding performance and how metric incentives can create less than desirable coding behaviors. After chatting about how vaccine eligibility metrics can incentivize binge eating, we chat about the ins-and-outs of using test coverage to measure project health. We then discuss how managers are weighing their team’s efforts in the age of remote work. While reflecting on when it can be useful to look at how many lines of code someone has written, we explore how incentivizing individual performance can damage a team project. Later, we share some of our successes with AB testing. Using metrics as incentives can lead to both positive and negative unintended consequences. Join us to hear about how these knock-on effects can impact your work.
4/6/2021 • 23 minutes, 46 seconds
200. How to start learning tech with Beege (part 2)
While it may be true that coding is something that anybody can do, that doesn’t take away from how difficult it is to learn. Join us for the second part of our conversation with brilliant software engineer and instructor Bryan Berry as we dive into what it takes to learn to code. Early in our conversation, we focus on the extra non-language-specific skills that you need to pick up to become a fully-fledged developer. From specializing in certain roles to deciding what type of programmer you want to be, we talk about the difficult choices that beginner coders need to make. After reflecting on why programming involves continual learning, Bryan shares some anecdotes from The Codeless Code website. Later, we discuss how early coders can overcome imposter syndrome before touching on why networking is so useful to growing your skills. Tune in for more insights on learning how to code.
3/30/2021 • 23 minutes, 56 seconds
199. How to start learning tech with Beege (part 1)
While everybody who wants to learn how to code will approach this challenge in their own way, most programmers would agree that having the help of a supportive community is hugely beneficial. Today we talk about the process of learning programming with Bryan Berry, AKA ‘Beege’. Bryan started CodeSeoul, an international community dedicated to connecting coders of all levels and backgrounds, and today he shares a bunch of ideas that anybody interested in getting into tech would find very helpful. We discuss the different learning paths available to beginners as well as a few languages and different reasons why each one might be a good option to learn first.
3/23/2021 • 27 minutes, 5 seconds
198. Bus Factor
How many coders can you afford to lose to a series of inexplicable bus accidents before your project fails? As morbid as it sounds, your bus factor is an important means of measuring how risky your project is. Today we unpack the bus factor while touching on the top ways that you can boost your team’s capabilities while increasing project resilience. While exploring the topic, we look at the benefits of pair programming, documenting your coding journey, temporarily locking team members out of projects, and rotating coding roles so that your team develops a better sense of your codebase.
3/16/2021 • 20 minutes, 8 seconds
197. Terraform the Planet
Today we shine the spotlight on our very own William Jeffries to talk about the virtues of Terraforming and why it’s such a smart software tool for coding. Kicking things off we first dive into infrastructure as code and why we use it before we tackle the benefits of using Terraform. We find out that Terraform allows you to use a variety of languages designed for infrastructures like HCL or the HashiCorp language. We then ask William about CloudFormation and why Terraform can offer so much more. He continues by explaining how terraforming works with containers and Kubernetes, as well as explaining some of the associated limitations. Toward the end of the show, William then shares his experience with multi-clouds, what makes Terraform providers so versatile, and why the industry is moving toward Terraform. To find out more, be sure to join us today!
3/9/2021 • 21 minutes, 2 seconds
196. Can Good Developers Sway Companies From Evil? with Kara Swisher
Many new tech companies have dreams of changing the world. But chasing revenue and market share has led the majority of big tech companies to engage in unethical practices. Today we speak with Kara Swisher, one of Silicon Valley’s “most powerful tech journalists,” about the role that developers play in swaying companies from evil. We open our conversation with Kara by exploring what evil means in a real-world context. After sharing examples of how tech companies have failed to take responsibility for their negative impact, we unpack why these organizations are slow to change and often ‘lead from behind.’
3/3/2021 • 1 hour, 2 minutes, 50 seconds
195. Continuous Delivery
Building on last week's episode about continuous integration, today we explore the idea of continuous delivery and whether it is the best way forward. We start off with some basics, defining continuous delivery and what can truly fall into this category. From there we weigh the value of a deployment button and the difference that this single step in the process can make. William makes a strong case for why full automation and real continuous delivery is a better approach and how this philosophy will force developers to take up more responsibility and acquire better tools for their part in the process.
2/23/2021 • 15 minutes, 2 seconds
194. Continuous Integration
Continuous integration is the peanut butter to the jelly of continuous delivery, and it’s also the topic of today’s episode. We are talking all things CI, including some of the benefits and downsides and a whole lot more. We kick off with a definition of CI, where we discuss how it helps reduce bugs.
2/16/2021 • 19 minutes, 11 seconds
193. Senior Engineering Superpowers
Becoming a senior engineer is a defining moment in an IT professional’s career. Yet, this moment might not make itself obvious. Today hosts Michael Nunez and David Anderson talk about when they realized that they had become senior engineers and the traits that come with this increase in status. After sharing some back-and-forth banter about their engineering superpowers, Michael and David discuss when they achieved their seniority and what it felt like.
2/9/2021 • 21 minutes, 26 seconds
192. Creating a Lean Software Toolkit
If you find yourself listening to this, and you can relate to having some waste problems in your company, it’s going to be one of seven things. We have called them the seven wastes of software development. To find out more about those, please go back and listen to Episode 82. Today, however, you’ll find out how to solve for each of the seven wastes; more specifically, you’ll learn about creating a lean software toolkit.
2/2/2021 • 18 minutes, 3 seconds
191. Boris Strikes Back
Creating a good piece of content is a bit like pair programming, except you get to steer the wheel without ever having to listen to your navigator. With a bunch of hot Udemy courses under his belt and his book Pandas in Action about to hit the shelves, Stride full-stack developer Boris Paskhaver knows a thing or two about creating content, and he joins us today to give us some better tips than the one you just heard! We start by picking Boris’s brain about just what makes Udemy such a great platform to learn from, and then we dive into the pros and cons of creating content for video versus book formats.
1/26/2021 • 22 minutes, 46 seconds
190. CSS Animation
With Flash set to discontinue from January 12th and the HTML blink tag obsolete, how will we animate our websites from now on? With this issue in mind, we decided to dedicate today’s show to the wonderful topic of animation! We discuss how best to tame this powerful and often misused beast as well as get into the tools at our disposal for doing so in CSS, JavaScript, and by using prebuilt libraries too. Animation definitely has a place in UI, but can easily look tacky and overdone, so we start our chat off exploring some best practices for keeping things tasteful and useful. From there, we get into a few of the technicalities of building animations in CSS, highlighting the power of keyframes as well as some of the kinks in this new feature that still need to be worked out. Toward the end of our chat, we speak about the great functionality provided by animation frameworks like React’s Spring library, animate.style, and the Web Animations API. So even though Flash is a thing of the past, there is no need to cry, because there are plenty of tools in CSS and JavaScript that will keep us building beautiful animations on our websites well into the foreseeable future. Tune in to learn more!
1/19/2021 • 21 minutes, 18 seconds
189. Resetting in the New Year
After such a wild year, most of us can understand the need to turn ourselves off and back on again. Today hosts Michael Nunez and David Anderson discuss how you can reset yourself and build positive habits. We dive into the topic after a quick reminder that this is the last week to respond to our listener survey. As we explore how you can reboot your brain, we touch on the benefits of being helpful, exercising, maintaining your social connections, eating more healthily, learning something new, and keeping a consistent sleep routine. We apply this advice to the coding environment, showing why and how these general life tips are relevant to software engineers. Later, we talk about strategies to enact change like starting with small habits and recruiting an accountability buddy. Tune in for more insights on starting 2021 with your best foot forward.
1/12/2021 • 24 minutes, 37 seconds
188. Why not start a Tech Podcast
As the unusual year of 2020 draws to a close and we celebrate another year of The Rabbit Hole, we thought we would sit down with our friend and podcast coach, Michael Sharkey! Today we will be discussing what it takes to start a successful tech podcast, and in fact, any kind of podcast. We reflect on our journey thus far, with Sharkey, offering some external observations and timely perspectives on the factors that have allowed us to keep going and grow our audience along the way. We discuss format, bringing energy and reigning in the chaos, why disagreement is more interesting than agreement, and the array of benefits that we have accrued from hosting this show.
1/5/2021 • 33 minutes, 37 seconds
187. Editor Picks of 2020
It’s that time of year, where we reflect on the year gone by, look forward to the holidays, and plan for the year ahead. It’s time for The Rabbit Hole editor picks for 2020! What did we learn this year? What were some of our favorite episodes? Tune in to hear 2020 wrapped with Michale Nunez, Dave Anderson and – coming to you live from the other side of the world – producer, William Jeffries.
12/29/2020 • 19 minutes, 36 seconds
186. 10x vs 1x Developer
What is best, a 10X developer or a 1x developer? And on what would you base the decision of hiring the one versus there other? It seems that a 10X developer is a legend. It's someone out there that has the strength of 10 men, or women. Whereas, a 1X developer is someone that is empathetic about the work that they do and they may not know everything but are willing to Google the solutions for certain things.
12/22/2020 • 20 minutes, 35 seconds
185. Flaky Tests
They’re not quite as exciting as pastries, but flaky tests are an important part of the programming process. Flaky tests are those frustrating tests that both pass and fail periodically without any changes to code, and finding the crux of the problem can be time-consuming, confusing, and sometimes costly. In this episode, we talk with our producer and extraordinaire William Jeffries about all things flaky, diving into a range of different tests and the unique testing methods behind different languages like Ruby on Rails, Javascript, Python, and more.
12/15/2020 • 33 minutes, 11 seconds
184. Prototyping Best Practices with Stephen Meriwether
In today’s episode, we’re going to dive straight into some prototyping tips and tricks, what you should do and should not do, and best practices to keep in mind. Of course, we couldn’t have a prototyping episode without our very own, Stephen Meriwether, programmer, and director at product development agency, Sprout Labs.
12/8/2020 • 25 minutes, 13 seconds
183. Things in Tech We're Thankful for
While 2020 has been a messy year for all, today we get into the Thanksgiving spirit by celebrating the top things in tech that we’re most grateful for. Show producer William Jeffries opens the conversation by highlighting his love for test-driven development (TDD) — he also talks about how he implements TDD into his coding workflow. A godsend to many, we then discuss GitHub’s squash and merge button and how it takes the frustration out of many projects. Reflecting on how work-from-home has become the new normal, we express our gratitude for remote pair programming software like Tuple. After touching on the joys of listening to music while pair programming, host Michael Nunez discusses his enjoyment of teaching interns his old tips and tricks, and how this forces him to re-examine how he codes.
12/1/2020 • 20 minutes, 49 seconds
182. Starting Something - Do you need a single page app with Stephen Meriwether
Can you imagine a world where you can fast-track your idea, turn it into a feature-filled app, and perfect its development with speed and technical finesse? For Stephen Meriwether, that future is now. As today’s guest, Stephen talks to us about single-page apps, prototyping, and how he uses his skills and experience to help small businesses and entrepreneurs build products.
11/24/2020 • 18 minutes, 56 seconds
181. Starting Something - Are all the good ideas taken?
It’s the middle of the night and you are lying in bed when you get a lightning-strike idea. You reach for your phone and type your idea into Google only to discover that someone has beat you to it. Today we speak about this common scenario and answer the question — should you start something new when all the good ideas have been taken? As we discuss early on, the existence of Ask Jeeves didn’t stop Larry Page and Sergey Brin from creating Google. After exploring this example, we talk about how discouraging it can be to see that someone else has built a company using your idea.
11/17/2020 • 19 minutes, 5 seconds
180. Acronyms for Fun and Profit
BaaS, FaaS, and ASS. The tech world is inundated with acronyms that often make communication more frustrating. There’s even an acronym for ‘Things Without an Interesting Name,’ or TWAIN. Today we talk about the convenience and cost of acronyms, an important topic considering that software developers spend a lot of energy naming things. We open our conversation by touching on the awkwardness of the ever-present ‘As a Service’ acronyms before focusing on niche companies that create acronyms to differentiate themselves.
11/10/2020 • 15 minutes, 59 seconds
179. Django vs Rails, why python won
There’s a perception that web development using Ruby on Rails has already peaked, with more damning critics shouting that “Rails is a dying language.” Conversely, Python, and Django by extension, seem to be ever-increasing in popularity. Today we’ve set up a grudge match — it’s Django versus Rails, with the winner declared the better language. We open our conversation by exploring perceptions of Rails and Django, along with why Python’s many libraries give it a leading edge.
11/3/2020 • 22 minutes, 8 seconds
178. Code Formatting - Friend or Foe
Is code formatting a blessing or is it killing the art of writing beautiful code? Today we weigh in on the arguments for and against formatting and how this might affect your coding process. An early point against formatters, we talk about how they limit nuance and some of your ability to communicate through your code. Following this, we chat about how projects can be held up because of someone’s “opinion on how code should look.” A problem that’s solved by formatters.
10/27/2020 • 18 minutes, 31 seconds
177. Remote Collaboration & Screen Sharing
As remote work gains more traction, we have to find the best ways to communicate from a distance, so today on the show we discuss our favorite screen sharing and remote collaboration apps. From pair programming and code sharing software to video chat applications boasting drawing functionality and cool screen widgets, you’ll hear our take on the landscape of tools that allow you to connect with your friends and co-workers from the comfort of your home. We talk about how our beloved Screenhero got butchered by Slack and whether its predecessor, Screen.so is doing a good job of carrying the baton. Zoom, Slack and Google Meet all support video conferencing and a limited degree of extra features, but there is some bias as to what people prefer. We move on to discuss more programmer-centric apps that allow remote control and code sharing and which work best for your preferred IDE.
10/20/2020 • 22 minutes, 33 seconds
176. Kubernetes VS Serverless
Kubernetes versus serverless – the battle of the decade! Both deserve their status as exciting and powerful platforms that offer organizations tremendous boosts in agility, scalability, and computing performance, but it is easy to forget that Kubernetes offers advantages that serverless alternatives don’t — and vice versa. In this episode, Michael Nunez, Dave Anderson, and William Jeffries discuss the pros and cons of each platform, what it is like working with Kubernetes versus serverless on a project, and compare the complexity, load, function call and time cost, as well as comparing different cloud hosting services. Tune in today for all this and so much more!
10/13/2020 • 20 minutes, 10 seconds
175. Awesome Podcasts!
After discovering that we made it on to a list of awesome podcasts about tech, we decided to use this episode to look at that list and share some of our favorite podcast content and what we are currently listening to! To start off we share different ways and times to consume podcast content, from the shower to the car! We run through the best tech media out there, with Dave talking about Python Bytes and Michael sharing his love for the Ladybug Podcast. Following that we move onto non-tech shows, highlighting The Legion on Zoom and the ever-popular, topical and informative 99% Invisible. To finish off we talk about some funny shows we enjoy, Underunderstood, and how Michael has improved this very show by listening to Your Podcast Coach!
9/29/2020 • 22 minutes, 9 seconds
174. XP vs Scrum
“Agile is a devastated wasteland. The life has been sucked out of it.” Those are the words of Kent Beck, creator of Extreme Programming, and co-signer of the Agile Manifesto. According to Kent, many development teams have adopted Agile methodologies without understanding their purpose. In today’s episode, we’ve recruited Aaron Foster Braylin and Steve Solomon for a deep dive into Agile, with a special focus on comparing Extreme Programming (XP) and Scrum. We begin by exploring what stand-ups mean for each guest before discussing Scrum’s openness to incorporate processes, so long as they work.
9/22/2020 • 38 minutes, 6 seconds
173. Job Descriptions
“We’re stoked to hire a 10x Software Ninja with a coffee obsession who loves to work hard and play harder.” Looking for an engineering job requires you to wade through cringy job descriptions. Inspired by changes in the market, in this episode we explore good, bad, and ugly job descriptions. We start by looking at a recent posting by Tuple, who presents a masterclass in writing good job postings.
9/15/2020 • 24 minutes, 39 seconds
172. Accessibility 2
Imagine you’re browsing a web page using only a keyboard. A loud and looping video pops up that’s impossible to close without a mouse. Now you’re trapped there. Forever. This horror story is commonly experienced on websites that haven’t been designed with accessibility in mind. This episode continues our discussion on what you should do to improve your accessibility. After talking about using tools like voice-over commands to understand what’s needed from the user’s perspective, we touch on the challenge of learning the right commands to navigate the web with your eyes closed. We then tackle the rest of UC Berkeley’s list on making accessible websites, highlighting key considerations including color choice, how you should design forms, not using tables in place of styling, ensuring that everything can be accessed through a keyboard, and making dynamic content accessible. We also chat about ARIA roles and landmarks and why creating accessible websites leads to a better experience for able-bodied users. Tune in for more insights on making great and accessible websites. Not only will it expand your user-base but it’ll help ensure that no one ends up within the dreaded carousel of modals.
9/8/2020 • 26 minutes, 32 seconds
171. Accessibility
We’ve all been there. You’re trying to close an ad on your browser, but the button is too small and you’ve accidentally opened it instead. Poor web design can easily frustrate even the most agile-fingered, able-bodied techies. Imagine what it’s like for users with challenges that can range from visual impairment to limited motor function. On today’s episode, we explore how and why you should build accessible websites. We start by talking about alt text and how the show’s hosts have, to their shame, often neglected to create informative alt text. We then touch on the work that W3C is doing to establish guidelines on making accessible websites.
9/1/2020 • 23 minutes, 39 seconds
170. 4 day workweek
More workers are calling for a four-day workweek, with many claiming that it increases productivity, revenue, and workplace satisfaction. In today’s episode, we dive into the subject with show producer William Jeffries who is in the enviable position of having the mythic four-day workweek. While it didn’t seem impactful to him from the outset, William lays down the math showing that moving to a four-day workweek shifts the workday to the weekend ratio from 2.5 to one to 1.3 to one. We talk about William’s other atypical work arrangement, which is that he works in South Korea while his team is in California.
8/25/2020 • 18 minutes, 48 seconds
169. SOLID - Dependency inversion principle
Today’s show marks our reaching of the final letter in our discussion of SOLID, the D, which stands for the Dependency Inversion principle! We kick things off with a bit of research on exactly what the Dependency Inversion principle states, and from there we unpack what implementing it in the real world might look like. Our conversation is all about the idea that pieces of your code should be decoupled and you can do this using interfaces. We discuss how the Dependency Inversion principle might be applied when you are connecting to databases, how it relates to inversion of control and ways of implementing it other than dependency injection.
8/18/2020 • 13 minutes, 25 seconds
168. SOLID - Interface specificity principle
We’re back on SOLID ground. Today we explore the ‘I’ in SOLID, A.K.A the interface segregation principle or ISP. After debating how inappropriately the principle is named, we dive into what it means, that “no client should be forced to depend on methods it does not use.” We drill even further into what this means by using the metaphor of a Swiss Army knife and what it would take to code an athlete in Java. We discuss why you should apply the ISP and later share experiences where we’ve abandoned the principle, intentionally or not.
8/11/2020 • 16 minutes, 5 seconds
167. Pandemic Job Market Shifts
Around the globe, tens of millions of students are using Codecademy to learn programming during the pandemic. Just ask MLB pitcher Jared Hughes who learned Python to analyze his performance. This episode, we talk with Zach Sims, co-founder of Codecademy, all about the shifting job market and how people are going online to learn how to code. Early in the conversation, Zach provides his insights into how coding skills can give you a competitive advantage, regardless of your field. Unfortunately, not everyone has equal access to Codecademy though. We speak about the digital divide and how many people don’t have the tech or broadband needed to learn online.
8/4/2020 • 24 minutes, 55 seconds
166. SOLID - Liskov Substitution Principle
For those of you who have been waiting for the next letter of the SOLID series, we are happy to finally discuss the 'L' in SOLID, which is the Liskov substitution principle, or as we like to call it, the LSP. If you’re like us and the LSP conjures up an image of a long-gone mathematician, think again. It is actually a principle developed by Barbara Liskov, an American computer scientist. In this episode, we get into a simple definition of the LSP, which is that objects should be replaceable with their sub-types, and this should not alter the functioning of the program. To clarify, we use an example of shapes in a program and how the principle would be applied. We also look at how the LSP relates to inheritance, and why inheritance should only be used in certain circumstances. Along with this, we touch on our feelings about interfaces and learn more about William’s experience with TypeScript. Tune in today!
7/28/2020 • 12 minutes, 42 seconds
165. What's the Best Agile? with Diana Larsen
Today, we’re asking the question: What is the best Agile? To help us answer that question, we have invited Diana Larsen to join us for today’s episode. Diana is the co-founder of FutureWorks Consulting in Portland, Oregon, and she partners with leaders around the world to design work systems, improve team performance, and transition to Agile methods. She is also the author of a number of books about Agile and, in this episode, we start with the best ways to approach Agile depending on what it it you’re trying to accomplish. Diana takes us through the limits and constraints a team might encounter, how to avoid a backlog of work, and how Agile has focused our attention on necessary software, meeting budgets, and keeping deadlines. We also discuss the different zones needed for a successful product, from optimizing to strengthening, and Diana shares a bit about what the Agile Fluency Project does and the tools that they use. For all this and more, tune in today!
7/21/2020 • 47 minutes, 9 seconds
164. Remote Spaces with Esther Derby
As developers, we have likely had experiences with remote work before the pandemic, but now, the context of remote working has completely changed. The blurred lines between work and home life have brought an array of stressors that people have to face. Joining us today to talk about how to make this new kind of remote work the best it can be is a friend of the show, Esther Derby! As a programmer who was promoted to manager, Esther realized that management required an entirely different set of skills that are often taken for granted, and she now dedicates herself to making work more humane. In this episode, we talk about how not sharing physical space can affect collaboration. So many opportunistic conversations and interactions are possible when you are around your teammates. While this can happen remotely, it requires more intention and effort to get to know your team members outside of work. Esther and Dave share experiences of how they have done this on projects they have worked on. We also get into how managers should deal with this type of remote work. Esther believes that there needs to be a move away from micromanagement and a shift towards more flexible, trust-filled work experiences. She shares some of the ways managers can foster trust and collaboration, while still allowing great freedom. Along with this, we also touch on facilitation and ensuring everyone feels they have opportunities to contribute, why managers need to have one-on-one time with the individuals on their teams, and why remote work can be more productive than in-office work. Tune in today!
7/14/2020 • 40 minutes, 6 seconds
163. SOLID - Open-Closed Principle
As part two of our series that explores the SOLID software design principles, this episode dives straight into the topic of the open-closed principle — that’s the ‘O’ of SOLID for those who are counting. As a software principle created in 1988, back in the days of C++, the essence of this principle states that you should create code that’s “open for extension but closed for modification.” Using the example of needing to create a calculator that measures the areas of rectangles, we talk about how the open-closed principle makes it easier to create an extension to your area calculator if you suddenly need to calculate the area of a circle. While this principle makes it easier for developers to add features to your software, we discuss how needing to perform “shotgun surgery” on your code may be a sign that you haven’t adhered to the open-closed principle. For a real-world example, we share how we’ve implemented the open-closed principle into an intranet project that we’re developing. Near the end of the episode, we talk about how following the open-closed principle helps ensure that you’re following the other SOLID principles. Listen to this episode and learn how important the open-closed principle is to writing good code.
7/8/2020 • 13 minutes, 57 seconds
162. SOLID - Single Responsibility Principle
Do you know how you can feel overwhelmed when you have too much on your plate? Well, your code can feel the same way. This is why it’s important to follow the Single Responsibility Principle, SRP, which is what the ‘s’ in SOLID stands for. Today we do a deep dive into the SRP and how you can ensure that your class or object only does one thing at a time. We take a look at some of the benefits of following the SRP, such as ease of testing and greater flexibility with making changes. When there is more than one responsibility designated to a class, it can quickly become confusing when you need to alter a piece of code. We also look into why you should try to keep classes as small as you can, how to know if a class or object has more than one responsibility, and why you should always be ready to refactor.
6/30/2020 • 16 minutes, 7 seconds
161. Debugging Strategies
No-one likes bugs, and while we can’t entirely avoid them, there are some tried and tested techniques to squash those little pests. In today’s show, we dive into some of these strategies. While Mike’s initial reaction is denial and he runs the code repeatedly, there are other techniques as well, like writing tests, Googling, and reading the docs. These all have their merits and we delve into what they are. We also discuss how talking to a rubber duck or a toddler can help you work through a problem or even just how stepping away from the computer and hitting that mental refresh button can help you on your debugging quest. Along with this Mike and Dave, both share some of their debugging experiences and which tactic they are going to make greater use of. Be sure to tune in today!
6/23/2020 • 21 minutes, 59 seconds
160. Programming as a Story: How we tell three different stories when developing apps
A lot goes into writing an application that knocks it out of the park. One of the ways to look at the different components of success is to view programming as a story with three layers. In this episode, we dive into these separate, but very interlinked aspects that go into the storytelling of programming. We kick off the show with a look at the first layer, which is the story you, as a developer, tell the computer.
6/16/2020 • 18 minutes, 23 seconds
159. Bug Bash
Unless you’re William and write perfect code every time, as a developer, you’ll likely have encountered a bug or two in your time. One way to get rid of these pests, is through a bug bash, which we talk about in today’s show.
6/9/2020 • 24 minutes, 6 seconds
158. Positive Reinforcement and Agile
We know that we can learn a great deal from the animal kingdom, so today we’re exploring the relationship between positive reinforcement for dogs and Agile. We kick the show off with Dave sharing some of the lessons he learned from Don’t Shoot the Dog, a book he read after adopting his dog. While the title may suggest it’s strictly about dogs, he feels that the lessons can be more broadly applied. We then talk about providing positive reinforcement to the humans that you work with.
6/2/2020 • 15 minutes, 56 seconds
157. Vue - New Hotness or New Hype
We know with JavaScript, there’s a new framework basically every week, so it can be hard to separate the hotness from the hype. If you're ready to move on from jQuery, then Vue is a worthy candidate. Since its inception in 2013, Vue has steadily been gaining popularity, and today we dive in to see what all the fuss is about. We kick the episode off by learning more about the origins of Vue and how it took all the best parts of Angular but made it more lightweight.
5/26/2020 • 18 minutes, 46 seconds
156. Surviving Remote Work - Pandemic Edition
We have spoken about working remotely before, but working remotely during a crisis is a very different reality, so today, we share our thoughts on working from home during this pandemic. We kick off the show by finding out more about William’s quarantine in South Korea, why he’s there, and what the experience has been like for him.
5/19/2020 • 30 minutes, 9 seconds
155. "I don't know anything" -- It's OK to not know, It's what you do after you know you don't know
Admitting that you don’t know something can often be a bitter pill to swallow. Rather than beating yourself up about it, why not see it as an opportunity to learn something new? So rather than saying, “I don’t know,” choose to say, “I don’t know YET.” This way you can remain open to delving deeper into a subject, no matter how experienced you are.
5/12/2020 • 21 minutes, 4 seconds
154. Releasing software in Big Bang Fashion -- what to avoid...
When it comes to making changes and updates to software, there is one of two options: either you make incremental changes or you roll out a large update in a big bang fashion. But we’re not talking about life-or-death software like pacemakers or massive impact ones related to rocket launches—of course, those need to be treated with extra care and come with a host of regulations! We’re talking about your everyday applications like Slack, for example. Companies like Facebook have made the mistake of suddenly making big changes to their platforms, creating a sink or swim experience for users, which, as you well know, they raged at. It’s is in our human nature to resist change, so how does a software engineer go about implementing much-needed updates without offending the heck out of users? In this episode, we unpack the advantages and disadvantages of doing big bang rollouts versus smaller, systematic changes that people hardly notice, pointing out the considerations for each approach and giving you pointers for getting it right.
5/5/2020 • 27 minutes, 12 seconds
REMIX - Comparing Programming Languages with Sandi Metz
We are very excited to welcome the amazing and wonderful Sandi Metz as our guest on this episode of The Rabbit Hole! We are going to be talking to Sandi about her book 99 Bottles of OOP and the new edition that is currently in the works. This new edition will take the ideas that Sandi had written about for Ruby and expand them to other programming languages. Thus our conversation takes the form of comparing the differences, strengths and weaknesses of the languages in question.
4/28/2020 • 30 minutes, 26 seconds
153. Google Design Sprint and You - Part 2
It’s Tuesday morning at the Google Design Sprint. We all have our Crocs, our snacks, and our playlists... For part two of our series on the Google Design Sprint, we had Kirsten Nordine and Stephen Meriwether join us again to share all their experiences about day two, three and four! We discuss how all the participants were introduced to each other's ideas on Tuesday morning using Post-it Notes and a dot voting process. From there we get into the way the winning idea was chosen and then fleshed out using a storyboarding process.
4/21/2020 • 25 minutes, 17 seconds
152. Google Design Sprint and you - Part 1
If you’re like us, and just hearing the word ‘sprint’ is enough to break you out into a cold sweat, you’re not alone. Luckily today, we’re not talking about a physical sprint. Instead, we're unpacking the Google Design Sprint, which sounds about as energy-consuming as a running sprint, only more exciting and less painful.
4/14/2020 • 30 minutes, 6 seconds
151. Interfaces + Design Patterns
Dave recently used Golang for a project he was working on, and today he shares his experience of interfaces and design patterns in the language. We kick off the show by talking about the Gang of Four, where Mike reveals what we have long suspected – he’s not a real developer after all! We then talk about how Go is different from other languages in that you have to explicitly define the interface and then you have a file with an interface in it. This means that when you write the code that implements the interface, you don’t explicitly say what it’s doing. It's all a big secret!
4/7/2020 • 17 minutes, 25 seconds
150. Serverless - Where did it go?
You don’t need servers, you don’t need roads, but you still need pants though, even though everybody is working from home now. You probably need roads too. Really though, serverless is the future and so today we’ll be talking about serverless architecture, what it is and why you would want to use it! Michael has been spending a lot of time developing in AWS recently and speaks about all of the cool things that can be done in Lambda.
3/31/2020 • 21 minutes, 8 seconds
149. Go!
We all get stuck in ruts sometimes and now and then learning a new language can help switch things up. Or maybe we have to just learn one so that we can keep our jobs. Either way, there are some cool languages out there, one of which is Go Lang, which is the topic of today’s episode. Dave recently had to learn Go for a job, so he’s here giving the low down. In this show, we find out more about Go’s history and why it’s still a baby in the language landscape. Dave also sheds light on what the Go community is like.
3/24/2020 • 24 minutes, 1 second
Bonus: COVID-19 hideout in the rabbit hole
Welcome back to the Rabbit Hole Podcast where we are practicing our social distancing. We have been working from home for about a week now since COVID-19 started spreading. In this episode, we check in from our homes with the latest facts we’ve learned, how we’ve been adjusting to remote work, and what our best tips and tricks are for keeping a level head while working remotely. To hear all about how we are experiencing the COVID-19 and give us your feedback!
3/23/2020 • 6 minutes, 24 seconds
REMIX - Pragmatic Folks Part 1 - Feedback Loops
Today's episode is the first of a three-part Pragmatic Folks series and we are joined by Dave Thomas and Andy Hunt to talk about the 20th-anniversary edition of The Pragmatic Programmer. This new edition was not only an opportunity for them to revise the material but also to revisit their thinking and see how ideas have changed over the course of twenty years. Their seminal publication codified processes that people had been doing without having a vocabulary for it. An example of this is what they call rubber ducking, which is a useful technique to use for problem-solving.
3/17/2020 • 20 minutes, 12 seconds
148. Managing and deleting your dead code
Today we’re talking about the Zombies of the developer’s world — dead code and how to get rid of it once and for all. What happens to dead code is that it dies and then rises again to wreak havoc on your codebase! In this episode, we get into why you should attack your dead code with a vengeance and talk about the tools you need to find the Zombie code living in your codebase.
3/10/2020 • 16 minutes, 46 seconds
147. Client Side Caching
Caching is notoriously difficult. In fact, according to Dave, it might be one of the two (or three) hardest problems in computer science. In this episode, dedicated to all the cache money millionaires, we are talking about client-side caching. We look at how it’s different from server-side caching and why, if you want to improve user experience, it’s the way to go. While client-side caching only helps the client currently using the machine, there are some definite benefits that we walk through, particularly on larger websites.
3/3/2020 • 23 minutes, 46 seconds
Remix - Remote Pair Programming with Ben Orenstein
On today’s episode, we are joined by special guest, Ben Orenstein, to talk about remote pair programming. Ben is a developer, who after many years of working for other people decided to strike out on his own. He is the co-founder of an app called Tuple, which is specifically for remote pair programming. After Screenhero got shut down, Ben saw that there was a gap in the pairing market which had not been filled.
2/25/2020 • 27 minutes, 42 seconds
146. Physical Boards and Informative Workspaces
Working in the hyper-collaborative but dispersed way we tend to as developers, we know it important to track progress both for ourselves and for our teams. There are many ways to do this. We can either make use of physical boards or virtual ones, of which Informative Workspaces are XP’s newest iteration. The idea of these boards and workspaces is to get as much information as fast as possible from the piece of data you’re looking so. So, for instance, if your project manager sees you’re lagging on your sprint, they can crack the whip and make you speed up. In this episode, we will look at some of the common virtual boards and their shortcomings. We know that some software (not mentioning names, Jira) is tailor-made for developers but it is too complicated and can even slow the project down.
2/18/2020 • 21 minutes, 4 seconds
145. Shadow of a Deadline
No matter how organized you are or how well a project is going, an impending deadline always get hearts racing. While we could argue and say that all projects could do with more time, some deadlines are objectively unreasonable. One app that certainly didn't have enough time or money is the IowaReporterApp, which has been splashed across the headlines. The app, which was developed to help with voters in the Iowa Caucus was riddled with problems.
2/11/2020 • 21 minutes, 16 seconds
144. Ballmer Peak: Has drinking ever helped you program better?
Today on the show we’ll be talking about Ballmer Peak, the blood alcohol level between 0.129% and 0.138% that gives you superhuman programming ability, and whether or not this has helped us to get better at programming. Ballmer Peak was discovered by Steve Ballmer, CEO of Microsoft, and is certainly a topic of interest to most programmers out there. The concept was made popular by webcomic xkcd who imagined programmers being driven to alcohol by the frustrating task of coding.
2/4/2020 • 15 minutes, 58 seconds
Remix - 9 Roles for Creating Results or Growing a Team with Esther Derby
Today we’re throwing it back again, this time to our 100th episode where Esther Derby joined us. Esther is an esteemed guide and consultant, specializing in teamwork optimization. She is on a mission to change work environments so that teams and individuals can flourish. In this episode, we discuss responsibility for results versus responsibility for improvement, in terms of management and team style.
1/28/2020 • 29 minutes, 24 seconds
Remix: The DRY Principle is Misunderstood with Steven Solomon
Today on The Rabbit Hole, we are doing another remix, this time going back to an episode with Steven Solomon on how the DRY principle is misunderstood. Steven has been a programmer since 2007 and has been fortunate to work in many contexts. In this episode, Steven unpacks what the DRY principle is and clears up some common misconceptions about it. Commonly when developers see two lines of the same code, they are tempted to extract that into a method based on their understanding of DRY-ing.
1/21/2020 • 23 minutes, 24 seconds
Remix: Open Source Sustainability and Ethical Advertising with Eric Holscher
In the world of open source, finding the cash to stay afloat while still being able to look at yourself in the mirror can be rough. Individual donations are pretty much a non-option and the ethical tradeoffs of paid advertising at the other end of the scale are hard to stomach. Our guest on the show today is Eric Holscher and as one of the co-founders of Read the Docs, sustaining an open-source project is a daily concern for him.
1/14/2020 • 27 minutes, 21 seconds
143. Pets in the Office
We all know a dog person and some of these dog people happen to be our colleagues, our bosses, our pairing partners, or maybe that dog person is even you! Although it may seem trivial, having pets in the office can be a touchy topic, as they can have a huge impact on your well-being, productivity, and the overall atmosphere of your workspace. Today on the show, we talk about bringing your pets to work: Is it a distraction, is it helpful, how does it make you feel?
1/7/2020 • 18 minutes, 6 seconds
142. Stride picks 2019
Welcome back to the last episode of the year! Today on the show we are recapping our top picks for 2019. But first off, we just want to say Happy Holidays to all of your listeners out there and thank you for the incredible year that we’ve had. We also want to thank all our special and regular guests for making this podcast the success that it is.
12/31/2019 • 12 minutes, 48 seconds
141. Pair Programming Advanced
Pair programming is an agile software development technique in which two programmers work together at one workstation. If you’ve ever worked in part of a pair programming duo, you’ll know that it can easily be equated to the intimacy of spooning or child-rearing. Pair programming can be an intensive, illuminating, and challenging partnership that at some point in your career, you’re going to experience.
12/24/2019 • 20 minutes, 19 seconds
140. Pair Programming Redux
Today’s topic of conversation on The Rabbit Hole Podcast is pair programming! We decided to dig it up again since we last spoke about it because we have better mics and a bigger budget now, and Mike forgot what it is so we’re going to remind him. After beginning with some quick definitions, we then get into the different ways to set up a pair programming scenario (see the spooning video in the show notes).
12/17/2019 • 20 minutes, 55 seconds
139. Work-life Balance and how to find it
The popular term “work-life balance” is starting to rack-up a whole set of new names: work-life fit, work-life integration, work-life interface, and even work-life sway! A lot of the time, work is seen on one side of us, and our lives on the other.
12/10/2019 • 24 minutes, 12 seconds
138. User Stories: Why "gathering requirements" is not a gorram story
As much as we hate breaking bad news to you, we have no choice today. If you think gathering requirements is a user story, you are wrong and we’ll tell you why. William, who is especially fired up about the topic, gets us started by explaining that usually gathering requirements is conflated with other components, such as a spike, task or research and there are also often delusions about what stories are.
12/3/2019 • 18 minutes, 13 seconds
137. When to roll your own
Welcome to this episode of The Rabbit Hole where we get into the pros and cons of importing libraries versus rolling them yourself! Opting to import a library is a common choice due to its pre-written functionality, but sometimes we import huge ones, just so they can perform a few functions. We then get left with bloated code containing a bunch of unnecessary scripts. In those instances, it can be very helpful to roll your own, but that can also turn nasty quickly as problem piles on problem, most of which have probably already been solved by a pre-existing library somewhere in any case!
11/26/2019 • 22 minutes, 28 seconds
136. Music to Code to
Welcome to this episode of The Rabbit Hole, in which we pick each other’s brains about the best (and worst) music to code to. We don’t just talk music though, but podcasts too, and even the sounds of the outside world set to the tempo of a metronome. Michael feels that the easier the coding problem, the more he can handle lyrics.
11/19/2019 • 18 minutes, 58 seconds
135. Stronger Strong Types
Today on The Rabbit Hole we are talking about strongly typed and loosely typed languages. There is very little industry consensus about what these terms mean and it is not uncommon to find often contradictory definitions, so we take it upon ourselves to uncover the truth and what we find is rather surprising! Languages that we initially thought of as strong proved not to be as iron-clad as we thought and our previous thinking about loosely typed language also had some holes.
11/12/2019 • 22 minutes, 56 seconds
134. How much is too much risk
Today on the show, we are discussing risk and it's role in any company. The conversation contemplates the balance of risk versus safety and how this push and pull can be managed in the best possible way.
11/5/2019 • 18 minutes, 52 seconds
133. Motivation
In today’s episode, we are talking about motivation — what keeps us up at night and what gets us out of bed every single day? We are joined by a special return guest and friend of the show, Kevin Thomas. Kevin is a Principal Consultant and Director at Stride. There are some obvious motivating factors, such as money as well as less obvious ones such as purpose and autonomy.
10/29/2019 • 22 minutes, 22 seconds
132. Ways to Get Involved at Conferences with Veronica Hanus
In today’s episode, we are once again joined by special guest, Veronica Hanus, to talk about ways to get involved in conferences. We have already talked about the topic multiple times in other episodes, so we are adding these past discussions.
10/22/2019 • 28 minutes, 43 seconds
131. Developer Attitudes to Comments! with Veronica Hanus
On today’s episode, we are joined by special guest, Veronica Hanus, to talk about developer attitudes to comments. Veronica is a second career, self-taught developer as well as a tech public speaker and has also done some of her own informal research related to the use of comments.
10/15/2019 • 29 minutes, 35 seconds
130. Traversing through new code bases
On today’s episode, we discuss some tips to follow when starting a new code base. It can often feel like you are climbing Mount Everest with no path when you traversing through these new, unexplored territories. If you tackle them in a methodical, structured way it does not need to be overwhelming.
10/8/2019 • 20 minutes, 48 seconds
129. There's No Me in Team, But it's all About Me (TM) with Doc List
On today’s episode, we are joined by special guest, Doc List, to talk about team dynamics, how to be more effective as an individual and how to work better as a team. Doc comes from a family of psychotherapists and despite being educated in the field, has never worked in practice.
10/1/2019 • 28 minutes, 28 seconds
128. Coding on a Plane, Coding on Train
On today’s episode, Dave, who is in Cleveland and William, who is in Hyderabad, talk about coding while traveling, something they both have experience with. Since the Internet has been available on planes, it has opened up enormous possibilities in terms of being able to code while traveling.
9/24/2019 • 17 minutes, 21 seconds
127. Remote Pair Programming with Ben Orenstein
On today’s episode, we are joined by special guest, Ben Orenstein, to talk about remote pair programming. Ben is a developer, who after many years of working for other people decided to strike out on his own. He is the cofounder of an app called Tuple, which is specifically for remote pair programming.
9/17/2019 • 26 minutes, 26 seconds
126. Functional vs Object Oriented Paradigms with Sandi Metz
On today’s show, we are joined by a very special guest, Sandi Metz, to talk about functional versus object-oriented paradigms. Sandi is arguably the most famous Rubyist and is the author of several books on the subject.
9/10/2019 • 33 minutes, 20 seconds
125. Comparing Programming Languages with Sandi Metz
We are very excited to welcome the amazing and wonderful Sandi Metz as our guest on this episode of The Rabbit Hole! We are going to be talking to Sandi about her book 99 Bottles of OOP and the new edition that is currently in the works.
9/3/2019 • 28 minutes, 20 seconds
124. Performance Testing
Today on the show we unpack performance testing and everything you need to know about it! William Jeffries is back from his travels and we are excited to have our full team together again to tackle this important topic!
8/27/2019 • 28 minutes, 7 seconds
123. Pragmatic Folks Part 3 - The Dogmatic Developer
On the final episode of our three-part series with Dave Thomas and Andy Hunt, we discuss the nuanced nature of programming and why the idea of a “best practice” is often idealistic and not equally relevant to everyone.
8/20/2019 • 26 minutes, 40 seconds
122. Pragmatic Folks Part 2 - Own Your Environment
Today's episode is the second of a three-part Pragmatic Folks series and we are joined again by Dave Thomas and Andy Hunt, authors of The Pragmatic Programmer, to talk more in-depth about how you are in control of your own destiny even when it seems like you’re not.
8/13/2019 • 21 minutes, 57 seconds
121. Pragmatic Folks Part 1 - Feedback Loops
Today's episode is the first of a three-part Pragmatic Folks series and we are joined by Dave Thomas and Andy Hunt to talk about the 20th anniversary edition of The Pragmatic Programmer. This new edition was not only an opportunity for them to revise the material but also to revisit their thinking and see how ideas have changed over the course of twenty years.
8/6/2019 • 18 minutes, 22 seconds
120. Unconferences, Open Spaces with Doc List
On today's episode, we are joined by special guest, Doc List to talk about Open Spaces and unconferences. Doc is an educator, speaker and Open Space facilitator. With a background in software technology, he was thrust into the world of Open Space and has not looked back since.
7/30/2019 • 25 minutes, 27 seconds
119. Efficiently Entering and Navigating Teams with Ka Mok
On today’s episode, Ka Mok joins us to talk about how to effectively enter and navigate teams. Ka has been in the industry for four years and is currently a software engineer consultant at Stride Consulting.
7/23/2019 • 24 minutes, 50 seconds
118. Monitoring
Today the whole team is back talking about monitoring and what to do to mitigate failure. Crashes are not only inevitable, but they look different based on different systems and requirements, so it is important to know how to prevent them from happening in the first place.
7/16/2019 • 22 minutes, 25 seconds
117. Logging
Welcome back to the Rabbit Hole, the definitive developers Podcasts live from the boogie down Bronx. Today we'll be talking about logging; the uses of it, what it is, and how to structure your log messages so that it makes sense when you're looking through your logs.
7/9/2019 • 20 minutes, 48 seconds
116. Documentation Hell and Documentation Heaven with Eric Holscher
On today’s podcast we have Eric Holscher joining us again – this time to talk about documentation. Eric is the co-founder of Read the Docs and Write the Docs and his mission is to elevate the status of documentation in the software industry, so there is no one better to address this topic!
7/2/2019 • 24 minutes, 38 seconds
115. Continuous Learning as a Lead Dev
The focus of today's show is the recent discussion between Sandi Metz and David A. Black about continuously learning as a lead developer.
6/25/2019 • 21 minutes, 54 seconds
114. Open Source Sustainability and Ethical Advertising with Eric Holscher
Our guest today on The Rabbit Hole is Eric Holscher, who is the co-founder of Read the Docs and Write the Docs. Aiming to elevate the status of documentation in the software industry, Eric talks to us about the sacrifices he has had to make in serving the programming community, not getting paid and having thousands of people depending on him to keep the platform running smoothly.
6/18/2019 • 25 minutes, 26 seconds
113. The DRY Principal is Misunderstood with Steven Solomon
Today on the show we are joined by the one and only Steven Solomon! We are going to talk about The DRY Principle and how and when it can be useful. Steven helps us unpack the types of situation that require drying out, when things get too dried out and what constitutes necessary action in this regard.
6/11/2019 • 21 minutes, 39 seconds
112. Senior Engineer Interviews
Today on the show we are looking at the contestation that senior developers are being shut out of jobs in the interviewing process. This idea opens up a few areas of discussion, namely the pros and cons of popular interview techniques and how skills translate in these scenarios.
6/4/2019 • 23 minutes, 26 seconds
111. Refactoring: Quotes and Experiences
On the show today we welcome back our great host, Michael Nunez, from his baby leave! We are talking about refactoring, something that Mike is easing back into after his break.
5/28/2019 • 16 minutes, 40 seconds
110. Stop DDoS'ing Yourself
Welcome back to The Rabbit Hole Podcast. Today on the show, we dive into part five in the “Stop Doing Stuff” series. Our aim is to help programs to stop DDoS’ing themselves with the hope that if you stop doing the wrong thing, you’ll become a better developer and engineer in your organization.
5/21/2019 • 20 minutes, 31 seconds
109. Cross Team Collaboration
Welcome back to the Rabbit Hole, the definitive developers podcast. Today on the show we'll be talking about cross team collaboration, understanding why it hurts and why you should do it in the first place.
5/14/2019 • 24 minutes, 46 seconds
108. Overseas Assignments
On today’s episode, we discuss overseas assignments, which is a fitting as William is departing to India for a four-month assignment.
5/7/2019 • 18 minutes, 1 second
107. Lessons from Marie Kondo w/ Meredith
Joining us today on the show is Meredith Edwards, a software development consultant who wrote a blog post on what Marie Kondo taught her about software consulting. You might wonder how the renowned KonMari method is applicable to this industry, but today Meredith shares with us how Marie’s show on Netflix has helped her to be more organized with her code writing process.
4/30/2019 • 23 minutes, 11 seconds
106. Centring & Entering
On today’s show, Dave and William are once again joined by Emmanuel Genard to discuss the idea of centring and entering.
4/23/2019 • 23 minutes, 24 seconds
105. BDD
On today's episode, our host Dave Anderson and producer William Jeffries discuss end to end testing.
4/16/2019 • 24 minutes, 19 seconds
104. Steering a Kubernetes Migration - a Non Technical Team Member's Voyage
On today’s episode, we are joined by Chris Grande, a business analyst at 2U, an online higher education website that has partnered with some top universities to make higher education more accessible than ever.
4/9/2019 • 24 minutes, 10 seconds
103. Art of Programming with Sumana Harihareswara
On today’s episode, multi-talented Sumana Harihareswara returns; this time to talk about how art and programming can work together.
4/2/2019 • 29 minutes, 10 seconds
102. Digging Into JavaScript w/ Jonathan Wexler
On today’s episode, we are joined by Jonathan Wexler, a software engineer who specializes in web development and teaching concepts related to development.
3/26/2019 • 24 minutes, 21 seconds
101. Sustainability in Open Source with Sumana Harihareswara
On today’s episode, we are joined by Sumana Harihareswara, a programmer, technology executive, and open source expert.
3/19/2019 • 31 minutes, 4 seconds
100. 9 Roles for Creating Results or Growing a Team w/ Esther Derby
On a Very Special episode 100, Dave, William and Steven have a conversation with the esteemed Esther Derby about the various roles that we take on as Team Members and Leaders when we're responsible for the team's results ORRR for the team's growth. Plus, an update straight out of the Bronx by our very own Michael Nunez about babies, software and otherwise, and the long road to 100. Regardless if you're Pair Programming, Mentoring the team, Mob programming, or Reviewing Code, these nine roles described by Champion, Kiel & McLendon really sum up ways that we can help our teammates. The roles include: Counselor, Coach, Parther Facilitator, Teacher, Modeler Reflective Observer, Technical adviser, Hands-on Expert. ^ Growth, Results > References: 6 Rules for Change (Esther Derby) - soon to be 7 rules! https://www.youtube.com/watch?v=BDyoUdVHwbg 9 Consulting Roles (Kiel, McLendon) https://www.researchgate.net/figure/Typical-Role-Statements-from-the-Consulting-Role-Grid-Champion-Kiel-Mclendon-1990_fig3_281781473
3/12/2019 • 27 minutes, 46 seconds
44. Onboarding with Ben Jackson
Our guest today on the show is Ben Jackson. Ben works in people operations and runs a company called for the win which helps companies to better their culture and create an optimized working environment for its employees.
3/5/2019 • 30 minutes, 15 seconds
99. Salaries and Skills in 2019 with Steve Thompson
In today’s episode we get hyped up about the creative possibilities of The Art of Python as a mini art festival at PyCon US 2019. Steve Thomsen, senior technical recruiter for MDI Group, joins us to guide our discussion on salaries and skills in 2019.
2/26/2019 • 35 minutes, 2 seconds
55. Organizing a Conference - Saron Yitbarek
This is a special throwback re-release of one of our favorite past episodes, as we lead up to our 100th episode! Today on the podcast we welcome the awesome and the infamous, Saron Yitbarek. If you haven’t heard of her before, Saron is a developer, speaker, the Founder of Code Newbie and is heading up the 2018 Code Land Conference kicking off in May this year in NYC.
Welcome back to The Rabbit Hole Podcast. Today on the show we are addressing the topic of linting your code. Linting is the process of running a program (or linter) that will automatically analyze your code for potential errors and patterns that don’t adhere to certain style guidelines.
2/12/2019 • 23 minutes, 45 seconds
69. Becoming a Manager with Kyle Rush from Casper
This is a special throwback re-release of one of our favorite past episodes, as we lead up to our 100th episode! On today’s episode of The Rabbit Hole, we welcome our friend Kyle Rush, VP of Engineering at Casper to help us discuss becoming a manager. Kyle is a great example of a developer who made the change to a successful managerial role, a transition that oftentimes has its challenges.
2/5/2019 • 36 minutes, 38 seconds
97. Mocks vs Classical with Jacob O’Donnell
On the show today we are welcoming back our friend Jacob O’Donnell to talk about some different approaches to testing.
1/29/2019 • 20 minutes, 49 seconds
83. Remote Only
This is a special throwback re-release of one of our favorite past episodes, as we lead up to our 100th episode! This episode of The Rabbit Hole is wholly concerned with remote work and to help us unpack this issue we welcome back our friend Jonathan Belcher from Automaticc.
1/22/2019 • 35 minutes, 20 seconds
96. Health Check
On today’s show we talk about team health checks. You have to check on the team, see how they’re doing and multiple squads throughout your organization.
1/15/2019 • 22 minutes, 55 seconds
76. Stop talking about Tech Debt with Dane O'Connor
This is a special throwback Thursday re-release of one of our favorite past episodes, as we lead up to our 100th episode! On today’s show, we welcome our friend Dane O’Connor, who is here to tell us why we need to stop using the term ‘tech debt’. As a commonly used phrase in today’s developer community and in so much business, there can be a lot of sensitivity and potential issues that are connected to the term.
1/10/2019 • 32 minutes, 30 seconds
95. The Shackles of Frameworks
In this episode of The Rabbit Hole we welcome our friend Jacob O’Donnell to help us talk about the shackles of frameworks.
1/1/2019 • 16 minutes, 59 seconds
94. Editor Picks 2018 + Mailbag
Welcome back to another episode of the Rabbit Hole, the definitive developer’s podcast. Today on the show we are talking about the top editor picks of 2018, meaning the top picks we chose here on the Rabbit Hole.
12/25/2018 • 20 minutes, 38 seconds
93. Stop Eating Al Desko
Welcome back to the Rabbit Hole. Today we are here to tell you all to stop eating al desko! What even is “eating al desko”? Well, simply put, it’s eating at your desk.
12/18/2018 • 21 minutes, 4 seconds
92. The Death of the Object with Jacob O'Donnel
In this episode of The Rabbit Hole we welcome our friend Jacob O’Donnell to help us talk about the decline of object oriented programming.
12/11/2018 • 18 minutes, 53 seconds
91. Stop Preassigning Tickets
Welcome back to another episode of The Rabbit Hole Podcast. Today we are talking about the evils of preassigning tickets!
12/4/2018 • 31 minutes, 1 second
90. GraphQL Takeover with Azat Mardan
Welcome back to another episode of The Rabbit Hole, everybody! Today on the show we are talking about one of our favorite recent subjects, GraphQL.
11/27/2018 • 37 minutes, 43 seconds
89. Dealing with Third Party Software
On today’s show, we are going to be talking about the software we didn’t write and using third-party services.
11/20/2018 • 18 minutes, 57 seconds
88. Testing Pitfalls and Blunders
On the show today, we’ll be talking about testing pitfalls and avoiding common testing blunders. We wanted to get a word that felt like the things we deal with in testing. “Blunders” is that word! Blunders are those common mistakes we find ourselves making when we are testing.
11/13/2018 • 17 minutes, 59 seconds
87. Developer vs Engineer
On today’s show we discuss whether we can call developers engineers! For a long time, the term software engineer has been thrown around but there has also been some debate about its accuracy and whether it is appropriate to use these titles so interchangeably.
11/6/2018 • 22 minutes, 9 seconds
86. Building a Personal Brand as a Developer
Welcome to another episode of The Rabbit Hole. Today on the show we’ll be diving into the topic of building your brand as a developer, where we are going to help you build up your own brand.
10/30/2018 • 24 minutes, 3 seconds
85. Introducing a new podcast - Evil Geniuses
Today, we have a special episode with some special guests. We welcome our Rabbit Hole Veteran, Emmanuel Genard and our previous guest and friend, Meredith Edwards. Today we are shedding some light on a secret new podcast that aims to take over the entire podcasting empire. Founders of the podcast, Emmanuel and Meredith, have been working on this secret new software development podcast (whose name will be revealed at the end of the episode) for quite some time and they are here to tell us all about it
10/23/2018 • 22 minutes, 9 seconds
84. Volunteering as a Software Engineer
Welcome back to the podcast everyone! Today we will be talking about the idea of volunteering as a software engineer and the jumping off point for this discussion is our producer extraordinaire’s recent travels to Mozambique.
10/16/2018 • 18 minutes, 45 seconds
83. Remote Only
This episode of The Rabbit Hole is wholly concerned with remote work and to help us unpack this issue we welcome back our friend Jonathan Belcher from Automaticc.
10/9/2018 • 33 minutes, 27 seconds
82. Seven Wastes of Software Development
In this episode of The Rabbit Hole we are unpacking the The Seven Wastes of Software Development! Dave and Michael break down the seven points as they appear in the book Implementing Lean Software Development by Mary and Tom Poppendieck and chat about their experience and thoughts on each.
10/2/2018 • 27 minutes, 49 seconds
81. More Books
Welcome back to another episode of The Rabbit Hole. Today on the show we are continuing our conversation on the books we’ve read within the last couple of months. This episode of books is a little different, because none of the books that we’ve currently read were programming books!
9/25/2018 • 19 minutes, 17 seconds
80. Building a scrum team
Welcome back to another episode of The Rabbit Hole. Today we welcome Blake Deboer, also from Stride, to help us unpack the topic of Scrum!
9/18/2018 • 25 minutes, 50 seconds
79. GraphQL in Python with Patrick Arminio: Pycon Italia Part 3
Welcome back to another episode of The Rabbit Hole. Today on the show we have another interview from Dave’s time at PyCon Italia, the last of a three part series.
9/11/2018 • 14 minutes, 58 seconds
78. Realtime Applications with Django, with Iacopo Spalletti - PyCon Italia - Part 2
Today on The Rabbit Hole we give you Part 2 of Dave’s adventures to PyCon Italia. While over there giving his speech, Dave interviewed Iacopo Spalletti, the Founder and CTO of Nephila, an open source and Django web company based in Florence, London, and Zürich.
9/4/2018 • 17 minutes, 35 seconds
77. Make The Lightbulb Want to Change with Mikey Ariel - Pycon Italia Part 1
Today’s episode is a field recording all the way from Florence, Italy where our very own Dave Anderson interviewed Mikey Ariel about her presentation at PyCon Italia. Mikey presented a keynote titled “Can We Make The Lightbulb Want to Change?” and Dave gets the low down from her about what this means in the context of documentation and the transfer of knowledge.
8/28/2018 • 24 minutes, 15 seconds
76. Stop talking about Tech Debt with Dane O'Connor
Welcome back to another episode of The Rabbit Hole! On today’s show we welcome our friend Dane O’Connor, who is here to tell us why we need to stop using the term ‘tech debt’. As a commonly used phrase in today’s developer community and in so much business, there can be a lot of sensitivity and potential issues that are connected to the term.
8/21/2018 • 29 minutes, 37 seconds
75. GraphQL Hot Takes with Stephen Meriwether
On today’s episode of the The Rabbit Hole we are talking GraphQL and getting some hot takes from our guest Stephen Meriwether! Although GraphQL definitely has its proponents, it certainly has its critics and there are a number of reasons for this.
8/14/2018 • 22 minutes, 27 seconds
74. Authorization with Roberto
Welcome back to another episode of The Rabbit Hole. Today on the show we are joined by Roberto Pedroso, and we’ll be talking about authorization and how to keep people out of our websites.
8/7/2018 • 29 minutes, 23 seconds
73. Front End Build Systems
In this episode of The Rabbit Hole we tackle the world of front end build systems. The field has come along very quickly and things have developed at an almost breakneck space with new systems and frameworks popping up all around us.
7/31/2018 • 24 minutes, 2 seconds
72. Feedback with Meredith and Madelyn
On the episode today we welcome our colleagues and friends Meredith Edwards and Madelyn Freed to help us discuss feedback and how to do it properly. As an integral and challenging part of any professional environment, feedback can always be improved and given more attention and that’s what we are here to help you with today! During our discussion we look at just why feedback is so vital to a nurturing workplace before looking at the RAB framework for delivering feedback. We expand on making the process receivable, actionable and balanced. From there Madelyn and Meredith sketch out the structure of successful feedback and pinpoint some common hazards to this. We finish off the episode by playing out some examples and scenarios and going through some of the panel’s personal experiences, both good and bad. For all this and more, tune in and come with us down The Rabbit Hole!
7/24/2018 • 31 minutes, 18 seconds
71. Common Mistakes Tech Leads Make With Kelly Wu
Today on the show, we welcome special guest, Kelly Wu. Kelly is a software consultant and as a consultant has worked with many different tech leads and teams throughout her career. Most engineering teams will have a tech lead and have experience either working with a tech lead or actually being one.
7/17/2018 • 30 minutes, 26 seconds
70. Mentorship with Kimberly Suazo and Avielle Wolfe
On this episode of The Rabbit Hole we delve into the subject of mentorship! To help us along the path we welcome Avielle Wolfe and Kimberly Suazo who are both developers at Stride.
7/10/2018 • 24 minutes, 17 seconds
69. Becoming a Manager with Kyle Rush from Casper
On today’s episode of The Rabbit Hole, we welcome our friend Kyle Rush, VP of Engineering at Casper to help us discuss becoming a manager. Kyle is a great example of a developer who made the change to a successful managerial role, a transition that oftentimes has its challenges.
7/3/2018 • 33 minutes, 49 seconds
68. Why not use Elixir?
On today’s show we welcome back our special and esteemed guest Steven Nuñez, as we ask, ‘Why not use Elixir?” Steven is an avid Elixir user and an expert on the question at hand. During the chat he details the switch he made from Ruby and what brought this about, describes some the stand out features of the language and then assesses Ruby and Elixir, side by side and notes their relationship to each other.
6/26/2018 • 27 minutes, 38 seconds
67. Tech Debt and Trust
On today’s episode, we welcome two guests, Madelyn Freed and Sam Handler to help us discuss the topics of tech debt and trust. These ideas may not be new to the field of software development but our guests really help us unpack these topics in a way that can be beneficial to all listeners. It is a common experience for coders to come across what is termed ‘tech debt’ and the need to pay back time and energy into code for something that was not written perfectly in the past.
6/19/2018 • 28 minutes, 20 seconds
66. AGILE Principles
On today’s episode, we welcome back Kevin Thomas to help us as we unpack the principles of Agile! This discussion takes the form of the team going through each of the twelve principles of the Agile Manifesto and pitching in their experiences and thoughts on each. As we cycle through, the principles are weighed for their utility and thus the whole system is ultimately judged for its impact.
6/12/2018 • 18 minutes, 23 seconds
65. Extreme Programming (XP) with Kevin Thomas
Today on The Rabbit Hole we are talking about extreme programming and to help us with this we welcome our very own Kevin Thomas. Kevin is a consultant at Stride and a strong proponent of extreme programming!
6/5/2018 • 23 minutes, 12 seconds
64. Learning Culture
On today’s episode of the Rabbit Hole we are talking about learning culture and just how vital it is to a functioning and successful organization. In an industry such as tech, where things are changing at the speed that they do, without a productive learning culture, there is no way a group of people, no matter the size and experience, will not get left behind.
5/29/2018 • 24 minutes, 10 seconds
63. Monoliths
On today’s episode, we are talking about monoliths! That’s right, they’re back. Not quite from the dead but definitely from a deep sleep and the unfavored sock drawer. So why exactly are we seeing a resurgence in the popularity of this form of coding right now?
5/22/2018 • 21 minutes, 43 seconds
62. Diversity and Inclusion with Derek Parham
On today’s episode we are talking about the important topic of diversity and inclusion and to help us with our discussion we are pleased to host Derek Parham, CTO of JOOR. As much as is said on this issue, for some, it still may seem challenging and so we are here to try and clear up some of the troublesome areas.
5/15/2018 • 29 minutes, 42 seconds
61. Guilds in the Workplace
On today’s episode of The Rabbit Hole Podcast we are talking guilds. What are guilds? Are you a part of one? Why should you join or form one?
5/8/2018 • 22 minutes, 3 seconds
60. Machine Learning II With Tom Benham
On today’s episode of the The Rabbit Hole we welcome back Tom Behnam to continue our exploration of machine learning. After the broad introduction of part one, we’ll be getting into a bit more of the specifics and addressing some examples to help explain the concepts.
5/1/2018 • 35 minutes, 5 seconds
59. Agile for ALL THE THINGS
Today, we’ll be talking about Agile. Agile for all the things. Everything from top to bottom. Left to right. Your whole life. We’ll be talking about different ways we’ve found to best use Agile, particularly in the production of this podcast. If you are not yet familiar with the Agile methodology, in short Agile is a time-boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
4/24/2018 • 20 minutes, 7 seconds
58. Death by a Thousand IFs with Jacob O'Donnell
On today’s show, we have the honor of welcoming Jacob O’Donnell as our special guest. Jacob is a consultant at Stride and we are very happy to have such a good friend and experienced programmer join the show this time around.
4/17/2018 • 25 minutes, 29 seconds
57. Imposter Syndrome
Today on the show we are joined by none other than our host, Michael Nuñez’s brother, Steven Nuñez! Steven will be helping us in our discussion about a very special topic and one that is very common amongst developers, imposter’s syndrome! Sound familiar? Feel familiar? Well, chances are at some point in your professional career (and beyond) you have probably felt like an imposter.
4/10/2018 • 26 minutes, 8 seconds
56. Comments Considered Harmful, Comments Considered Helpful
Today, we’ll be talking about whether comments are considered harmful or helpful. We’re pretty sure that there are many different comments you may have run into in your careers. Comments are something that is really common to every programmer, everyone can relate to them – whether they’ve been tormented or blessed by them. We’ve come across some pretty funny comments in the past like, “Holy crap, WTF is this?” or “Drunk, will fix later,” or “Magic, do not touch,” or just the standard, “I’m sorry.” Aside from their entertainment value, comments can be useful for a multiple of other reasons – such as documentation and setting to do reminders for a team. But how can we utilize comments most effectively to avoid the shame game? In this episode, we discuss how best to use comments for to-tasks, writing tests, the value of user stories, the dangers of tech debt and the almighty perils of the copypasta driven development boys. In addition, we will also discover how scout’s honor applies to code (as well as to developers from the Bronx), why a comment is the only code that can lie to you and how you can quite simply avoid comments altogether.
4/3/2018 • 24 minutes, 21 seconds
55. Organizing a Conference - Saron Yitbarek
Today on the podcast we welcome the awesome and the infamous, Saron Yitbarek. If you haven’t heard of her before, Saron is a developer, speaker, the Founder of Code Newbie and is heading up the 2018 Code Land Conference kicking off in May this year in NYC.
3/27/2018 • 29 minutes, 5 seconds
54. The Terror of Public Speaking
In today’s episode, we’re speaking about the terror of public speaking. Public speaking is scary for a lot of people, ourselves included. Almost everyone has had a universally bad experience with public speaking – maybe yours happened in college where you froze up in front of the entire lecture hall.
3/20/2018 • 23 minutes, 18 seconds
53. Dope Python Tools - Darlin from Mighty.com Guest Stars!
On today's show’s we talk about a few great tools that you can use with Python. We are joined by Darlin Alberto from mighty.com to help us unpack some of these tools and break down what’s good and what’s not. We look through a list of current tools and compare and critique their utility for your listening pleasure. We also chat about the latest update to version 3.0 from 2.7 and how this might affect compatibility and unity among developers. We are sadly missing William Jeffries today but we hope we can make up for this with our great guest and discussion. Without further ado let’s get down to business! Listen in to hear all about it!
3/13/2018 • 25 minutes, 27 seconds
52. Is 2018 the year GraphQL kills REST?
The focus of today’s episode is GraphQL. The team break down the language and how it might just be the way to go for the foreseeable future. Dave shares much of his experience and opinions on using GraphQL and we look at how it can fit into the rest of your operations. During the show we also look at instances in which GraphQL may not be the best query language and why this may be. In addition to the usual teach and learn section, we give you the best overview of GraphQL, covering all angles and imagining its utility in different settings. So, let’s get into it!
3/6/2018 • 22 minutes, 41 seconds
51. Why bother with 1-on-1 meetings?
Today we’ll be talking about how to have effective one on one meetings and why you should bother having them. There’s nothing worse than a manager cornering you at the coffee station and saying, “We need to talk”. One on one meetings are scary enough, but the truth is they don’t have to be if they are initiated and conducted right. One on one’s are a vital way to get to know your team, check in with their individual needs and aspirations and give constructive feedback without the pressure of a group. But how do you go about them
2/27/2018 • 25 minutes, 38 seconds
50. Refactoring
On today’s show we talk about refactoring. As most of us know, refactoring can be a very important part of tidying code and making it more useable in the future. But for a few reasons it is not always the highest priority on a project, which can lead to the process being neglected.
2/20/2018 • 24 minutes, 46 seconds
49. Machine learning with Tom Benham
On today’s episode we talk to Tom Benham about machine learning. Tom has worked in finance and risk services and has studied data science machine learning. Although the term seems to be used widely and frequently it can also be an area in which information is not always readily available. Tom gives us some insight into how algorithms are becoming useful in his field of work as well as some other professional examples. We chat about the positive sides of this, such as the reduced chance of human error, as well as looking at the shortcomings of present configurations such as data biases. If you want an introduction to a vital concept and area of the contemporary world as well as a gateway to more info on the subject, we got you! Listen in to hear all about it!
2/13/2018 • 28 minutes, 29 seconds
48. Context Switching
On today’s show we discuss context switching. We all know how much time can be spent on changing between projects and how distracting arising issues can be. The data around just how much time is wasted is quite startling, but how do we manage the multi-project nature of most of our work? We break down a few different strategies for minimizing wasted time and the ensuing frustration. Whether the distractions are internal, external, necessary or not, we could all do with a bit more control of what we afford our attention at what time and for how long. Listen in to hear all about it!
2/6/2018 • 18 minutes, 54 seconds
47. DevOps with Brian Guthrie
Today’s show deals with the sometimes confusing, sometimes misleading term ‘DevOps’. We chat to Brain Guthrie who has worked at a host of different big companies including Soundcloud and ThoughtWorks and has many years of experience in and around the fields that the term DevOps is supposed to bridge. Is DevOps a goal? Is it a job description? Is it a part of the work of both the development and operations teams? We try break this down and get to the core of the idea. During the episode we also try to imagine how DevOps can fit into a more holistic approach in companies and Brain gives us great insight into the way he envisaged the subject being useful. So jump right into The Rabbit Hole, let’s go!
1/30/2018 • 25 minutes, 40 seconds
46. The Last Responsible Moment
On today’s episode we break down the idea of ‘The Last Responsible Moment’. We talk about the benefits of leaving certain decisions to the latest possible time before finalizing them. Although this might sound like a bad idea and perhaps slightly irresponsible there really are times when only doing what is absolutely necessary at any give point can work in your favor. During this chat we try to figure when that is and when that is not. We also go down the rabbit hole on the concept of ‘You Ain’t Gonna Need It’, or YAGNI, which is helpful in understanding The Last Responsible Moment. On top of this the chat veers into shaving yaks, Yik Yak and some other things that do not involve yaks. Listen in to hear all about it!
1/23/2018 • 20 minutes, 43 seconds
45. Resolutions and How to Keep them
Today we have a very special New Year edition of the podcast! We chat about the idea of new year tech resolutions and the things we hope to achieve in the coming 12 months. Everyone knows that it can be hard to stick to and measure your success with resolutions, so we have a few suggestions in keeping yourself on course. The main suggestion is the the SMART goals approach which we discuss and unpack that a bit during the episode. We even apply the system to our own personal goals for 2018 for your entertainment and educational benefit. So happy new year and tune in to hear all about this and more!
1/16/2018 • 23 minutes, 52 seconds
44. Onboarding with Ben Jackson
Our guest today on the show is Ben Jackson. Ben works in people operations and runs a company called for the win which helps companies to better their culture and create an optimized working environment for its employees.
1/9/2018 • 28 minutes, 58 seconds
43. Editor Picks of 2017
12/31/2017 • 11 minutes, 48 seconds
42. Max Jacobson Guest Stars! There are no rules
On todays show we welcome Max Jacobson. We’ll be discussing the differences between Ruby and other current languages and get Max’s perspective on which language is better for certain applications. In the ever changing landscape of coding and building, everyone seems to have their own preferences, favorites and special skillsets, this conversation aims to bridge some of these gaps.
12/26/2017 • 24 minutes, 46 seconds
41. Make Organizational Change Stick
In our industry, change is inevitable and today on the podcast we are going to be talking about how to make organizational change stick. When you try to make changes in an organization, it could be very difficult from the top down and from the bottom up.
12/19/2017 • 22 minutes, 25 seconds
40. The Batman Support Rotations
Today on the show we will be talking about the Batman and support rotations. The Batman or Batwoman is a real role and not just a superhero. In the context of software engineering and our day to day lives, the particular role of the Batman is that of a support role and a particular sprint. For example, suppose there were several stories but in their sprint, a lot of bugs had surfaced from the previous iteration.
12/12/2017 • 16 minutes, 25 seconds
39. Toast to Failure
Today we will be talking about toasting to failures. We will get into what a toast to failure is and share some stories that pertain to failing and we will, of course, toast to them. We don’t have any drinks or apple juice in the recording session with us, but we will pretend that we have glasses and we will put them in the air as we toast to our failures. A toast to failure is when one fails at his or her particular task or at their job but it’s celebrated, which we feel is very important. It’s a little counterintuitive and you don’t want to just go out there and fail all the time. So stay tuned as we go over how failures should not only be celebrated, but should also be seen as a learning opportunity so that you and your colleagues can learn from the mistake. All this and more inside today’s episode.
12/5/2017 • 18 minutes, 51 seconds
38. Test Coverage & Legacy Code
Today we’ll be talking about test coverage and working with legacy code base, going from bad to good and knowing when to do it.
11/28/2017 • 22 minutes, 39 seconds
37. Semantic Versioning
Today we are going to be talking about semantic versioning. When you should do it, when you shouldn’t do it, and what the heck it is? Joining us on this episode is special guest, Kevin Thomas. Kevin is a Software Consultant at Stride Consulting. Semantic Versioning is a more rigorous system where the first number is the big breaking changes, ideally. The second version is when you add new features, and the third one is like small patches, and sometimes there’s a fourth one just for security fixes.
11/21/2017 • 19 minutes, 51 seconds
36. Leet Terminal Hacks
Today on the show we will be taking about Leet terminal hack skills. Throughout our working career, we have had to deal with terminal on many occasions and today we will share some of our favorite key bindings and tools that we use to make our lives a little easier in the terminal.
11/14/2017 • 22 minutes, 54 seconds
35. Salaries
Today on the podcast we will be talking about salaries. Ever wonder how much money you're making comparable to other developers? Well, that is our topic for today. Joining us for the conversation is our special guest, the Talent Acquisition Partner of Stride, Hayley Ricks. On today’s episode Hayley is on as our specialist who can talk about salaries but can't really talk about salaries, and we'll get to the nooks and crannies of all of that. Stay tuned as we go over the rights you have as an employee when negotiating salary, what resources to use to find out more about your industry pay scale, as well as increasing the transparency around salaries within your workplace.
11/7/2017 • 32 minutes, 1 second
34. Styles (CSS + JS)
Today on the show we welcome Ian McNally. Ian is a Software engineer specializing in the web. He currently works at Schoology as a UI architect, where he is helping shape and deliver their design system. Ian also actively writes on his blog, Ianmcnally.me, and contribute to open source projects like Create React App, Webpack, Storybook, and other personal projects.
10/31/2017 • 30 minutes, 22 seconds
33. Role Models
Today on the show we will be talking about tech role models. Inside this episode we are going to be discussing people who we want to be when we grow up, who we strive to be, and who we want to work with.
10/31/2017 • 25 minutes, 26 seconds
32. What Makes a Good Test?
Today on the show we’ll be talking about unit testing. Unit testing is the most important thing that we do for our clients and we will be talking about unit testing best practices. So, what does make a good unit test? We have seen some good ones and some bad ones; what sets a bad one a part from the good ones?
10/24/2017 • 25 minutes, 32 seconds
31. Psychological Safety
Today, we’ll be talking about psychological safety. We’ll go into what is psychological safety and how important is it in the work space. Having a team that has more cohesive and safe environment is actually more important for performance of the team as a whole than having those 10x developers really cranking out code.
10/17/2017 • 30 minutes, 38 seconds
30. Trunk Based Development vs. Gitflow
Today on the show we will be talking about Git Workflows. It seems like everybody is always using Gitflow or Trunk Based Development. Gitflow defines a strict branching model designed around the project release. It assigns very specific roles to different branches and defines how and when they should interact. Trunk Based Development is a source-control branching model, where developers collaborate on code in a single branch called ‘trunk’. Advances to source-control technologies have made Trunk Based Development more (and sometimes less) prevalent. However, it has been a branching model that many have stuck with through the years. In this episode we’ll be getting into more of what we prefer, whether it is Gitflow or Trunk Based Development and we’ll get to some of the pros and cons behind the two.
10/10/2017 • 25 minutes, 14 seconds
29. Feedback
On today’s episode we’ll be talking about feedback, both giving and receiving feedback. Why is feedback so important? Well we’re here to answer that question. We’re discussing why we as developers specifically, need to be giving and receiving feedback, using feedback to your advantage, knowing how best to both give and receive feedback and realizing that there are different kinds of feedback. We also get into the format of feedback, we hear some tips for giving constructive criticism and why facts needs to be stated and examples need to be given. Want to hear more? Give it a listen!
10/3/2017 • 48 minutes, 39 seconds
28. Team Building
Today’s episode is brought to you all the way from the Plattekill Mountains, at a ski lodge in upstate New York. In the show today we are talking about team building and the many different ways to do it. We also jump into how it could help the overall energy that it brings to your team, as well as your projects and the things that you are working on. The keys to building between coworkers starts with vulnerability of leaders and voluntary participation from employees. Tune in to hear more about the different types of team building exercises, how to truly start building trust between coworkers, and what an open space, unstructured platform can do for your employees. This, and much more on today’s episode. Take a listen!
9/26/2017 • 19 minutes, 58 seconds
27. Functional Programming
Today we’ll be talking all about functional programming together with special guest, Adam Trilling. Adam is the Director of Service Delivery at Stride and has a lot of knowledge, insight and tips about functional programming. Today we’ll be tackling concepts from object oriented programming, immutability, Mapping, Filtering, Reducing and the advantages of functional programming. We’ll also be getting into some debates about how Java Script is going to take over the world, why functions are treated as first class citizens and what the best functional programming language is. Functional programming is a complete different thinking process and all of the languages that most coders use, actually have functional programming features in them. Ultimately, we hope that this discussion might give you some insight as to how you should be using functional programming in the workplace… or in the ghetto. Take a listen!
9/19/2017 • 26 minutes, 35 seconds
26. Story Points and Scope Creep
On today’s episode we’re talking story points, story sizes and story planning. What happens when you’re working as team, and find out that a two is actually secretly a five? What happens when stakeholders come in and add additional scope creep? Today we discuss how to derive those story sizes and some of the things that happen when the point system that you used gets used (and perhaps misinterpreted) by humans. From scope creep, to edge cases, to Planning Poker, sandbagging and YOGONY – How do we handle external pressure and continue to ship it real good? Take a listen!
9/12/2017 • 22 minutes, 18 seconds
25. Knowledge Sharing
On today’s show, we will be talking about knowledge sharing. As developers, we gain knowledge and we try to disperse that knowledge to other people on our teams. Our main concern is that we as developers just want to make sure that we can capture the many different ways that knowledge can be dispersed. As consultants, we find ourselves bouncing from client to client and the first thing that we need to obtain in knowledge sharing is the domain knowledge itself. This includes industry specific buzz words or even vocabulary that is specific to the company. In this episode we dive into the different methods for gathering knowledge, strategies for knowledge sharing, as well as the differences between in-person and remote learning.
9/5/2017 • 22 minutes, 20 seconds
24. Workspaces, Workstations, & Working Agreements
On today’s episode, we’ll be talking about workspace, workstations, and working agreements. It cannot be underestimated how effected we are by our surroundings. From posture to desk positioning, to office snacks – there are often many overlooked factors that effect our performance and overall wellbeing.
8/29/2017 • 36 minutes, 13 seconds
23. Scrum, Kanban & Prioritization
Today on the show we will be talking about Scrum, Kanban and Scrumban, and what exactly that all means. We are joined by our featured guest, Charles Quirin, a Software Engineer at Stride Consulting with over 7 years of experience improving tech operations. In this episode we dive deep into the practices of Scrum and Kanban, as well as the differences between the methods, how they relate, and the situations in which either method is better suited. We also discuss the possibility of a mixed approached dubbed “Scrumban” and why it may be the best option for your team.
8/22/2017 • 21 minutes, 39 seconds
22. Incremental Design
Today we will be talking all about incremental design: How working on this design using the act of process will help your team build better products, gain effective feedback and how that can help you boost sales at the end of the day. In this episode, we are joined by special guest, Conrad Benumb, the Principal Consultant from Stride. Although there might be some risk and uncertainty involved, we do believe that incremental design can help you, and the company you’re working for, to build products. So in this episode, we will be discussing the ways in which you can make the most out of incremental design, using the feedback loop and various other helpful methods. Take a listen!
8/15/2017 • 23 minutes, 46 seconds
21. Side Projects
Today, we’ll be talking about side projects and why developers like to pick them up. Whether it’s to explore a personal interest, a new idea, or give back to your community; there are tons of great benefits to having a side project. But managing a side project, on top of your day job, laundry and Youtube video addictions – can be more tricky than you might have thought! On today’s episode I talk with Emanuel Genard, Liam Jeffreys and Dave Anderson, about the side projects they’ve picked up in the past and the opportunities they unlocked, how they manage their time, and what they’re into at the moment. Take a listen!
8/8/2017 • 24 minutes, 41 seconds
20. Building Bridges
On today’s episode, we welcome Rachel Ober. Rachel is a Ruby on Rails developer based in New York City. A true Renaissance woman, Rachel has significant experience in and a passion for user experience, user interface, and cognitive design. Rachel is a Platform Engineer at Harry’s where she works on the Ruby on Rails platform of the Harry’s store and subscription services as well as serves as a technical mentor to junior developers. As a co-founder, Rachel encourages other women developers to hone their skills through Write/Speak/Code. Founded in 2013, Rachel organizes and volunteers her time to teach women and underserves minorities in technology Ruby and Ruby on Rails through RailsBridge NYC. In today’s episode, we are talking to Rachel all about building bridges.
8/1/2017 • 31 minutes, 19 seconds
19. Tech Debt
Every project, from the greenest greenfield code to the most legacy of PHP applications, inevitably accrues tech debt, code was easy to write in the first place but requires more effort to work around in the future. Michael, William and Dave discuss Tech Debt and how to deal with it in all of its forms, from Code smells and Piles of TODO’s to elephant graveyards of tech debt tickets.
7/25/2017 • 18 minutes, 48 seconds
18. Editors
The text editor is a developer's most constant companion and an important tool for everyday productivity. Almost everyone has a strong opinion about their favorite editor and the folks from the Rabbit Hole are no exception. Michael, Dave and William share their opinions about text editors from Emacs & Spacemacs to ViM, Atom and Visual Studio Code and what makes a editor useful. Get in touch with us @radiofreerabbit on Twitter and leave a review on iTunes. Catch you guys next time!
7/18/2017 • 21 minutes, 55 seconds
17. Deadlines
7/11/2017 • 30 minutes, 39 seconds
16. Remote Teams
6/27/2017 • 25 minutes, 26 seconds
15. Conferences
6/20/2017 • 23 minutes, 40 seconds
14. Learning New Languages
6/13/2017 • 23 minutes, 22 seconds
13. Knowledge Decay
6/6/2017 • 34 minutes, 51 seconds
12. Code Tests
5/30/2017 • 27 minutes, 37 seconds
11. Organizing A Tech Meetup
Meetup is one of the most popular platforms for bringing people in the tech industry together in real life for networking, sharing information and having fun times. All of us at the Rabbit Hole enjoy going to tech meetups, but many of our coworkers (and surely some of you) have wondered what it would take to start something new! Sarah Cassidy is a community specialist with Meetup.com. At Meetup, she is focused on community development, helping regular folks create the best possible meetups every day. Sarah coaches us through the process of creating a meetup, from the very first step of choosing the scope of your meetup, finding a venue and getting people to show up all the way to growing your meetup and avoiding the worst case scenarios. Whether you’re into Elixir or Ruby, are agoraphobic or under 5’7”, we hope you find something helpful in this episode to get out there and just start a new gathering of like minded techies today.
5/23/2017 • 28 minutes, 47 seconds
10. Books
In this episode of the Rabbit Hole podcast, we talk about software development books and literature. We talk about tow of our favorites in some detail, but also discuss the concepts of software development books more broadly (in the sense of what they can offer and why people might choose to read them). In general, these books (such as Practical Object-Oriented Design in Ruby: An Agile Primer by Sandi Metz) offer insight that encourages you to rethink your overall approach, technique, and mindset. Learning transferrable concepts, skills, and ideas is a strong motivator behind reading programming books, since there are other resources for simple references. One example of a book that offers this is The Phoenix Project, a novel that one of the panelists compares to being like Ayn Rand’s works in terms of being allegorical and a teaching tool. In the episode, we also talk about hard skills versus soft skills. “Soft” doesn’t mean “weak” in this context,and soft skills have great value. This is summed up in a Portuguese expression, “água mole em pedra dura tanto bate até que fura.” We finish things up with a teach-and-learn moment about RSpec Bisect, and a toast to failure involving vcr. Tune in to learn more and to hear our thoughts on a couple of great books!
5/16/2017 • 22 minutes, 26 seconds
09. Vacations
Vacations help developers stay energized at work and avoid burn out, but sometimes it's hard to pull ourselves away from our computers for even a weekend away. On the Rabbit Hole this week, we touch on all kinds of aspects and kinds of vacation including unlimited vacation, mandatory time off, sabbaticals and the chaos vacation monkey. Learn how spending time away from work can help your team as much as yourself! Get in touch with us @radiofreerabbit on Twitter and leave a review on iTunes. Catch you guys next time!
5/9/2017 • 22 minutes, 19 seconds
08. Starting a New Project
5/2/2017 • 26 minutes, 20 seconds
07. Mentorship vs. Management
Managers and mentors are both crucial for guiding our career growth as developers. We discuss how management and mentorship works at Stride, dig into the similarities and differences between habits of good managers and good mentors and delve some deep metaphors to illustrate these traits. While a mentor relationship may be less formal and come with some level of confidentiality, both roles help set and achieve goals and are heavy on active listening and empathy for situations that the fellow developer is experiencing. We discuss how you can find a mentor and what different shapes that can take because having a manager is a near certainty and organization-based mentorship is less common, so. This may range from repeated online interactions to casual friendships with more experienced developers to more formal apprentice-like working arrangements. In this week’s Teach and Learn, we also chat about software archaeology and learning about the adjacent possibility of things like React and Angular from an older framework such as moustache.js. Get in touch with us @radiofreerabbit on Twitter and leave a review on iTunes. Catch you guys next time! Links and Resources Stride Consulting The Rabbit Hole on Twitter The Rabbit Hole on iTunes Moustache.js
4/25/2017 • 24 minutes, 59 seconds
06. Rolling Off a Project
In this episode of The Rabbit Hole, we consider the bittersweet experience of rolling off a project. Whether you are transitioning to a new role and responsibilities at a different company, or just taking on a fresh project within the same organization, it’s inevitable that time with all good projects must end. We explore how to end your time on a project in the most responsible way, while leaving a lasting legacy, saying goodbye the right way and maintaining personal connections with everyone on your old team. Leave that team better than you found it and keep that bus number high by listening with us on this episode! Get in touch with us @radiofreerabbit on Twitter and leave a review on iTunes. Catch you guys next time! Links and Resources Bus number Stride Consulting The Rabbit Hole on Twitter The Rabbit Hole on iTunes
4/18/2017 • 15 minutes, 32 seconds
05. Retrospectives
In this episode, we’ll talk about retrospectives. To be clear, we’re using the term in reference to retrospective meetings in the Scrum framework, not about art or other retrospectives (though we’ll touch on that in the episode!). In short, a retrospective is a regular, recurring time to air grievances and make suggestions for how to move forward and make the team better. Its focus is generally on how things went, not about how people behaved, so it doesn’t tend to devolve into a blame game. And it’s important to keep in mind that a good retrospective addresses positive things as well as constructive things. Generally, the people in the retro should be the people who were involved in the sprint it’s addressing (and who were in the planning meeting for that sprint). In some cases, though, it may be beneficial for an outsider to run the retro. A good retro should have three distinct phases. First, the ideation phase gives everyone a chance to put everything out there. This is the “yes, and” phase. The second phase is more constructive and involves grouping ideas. This is the “yes, but” phase. Finally, the third phase is where you focus in on key points and is based around action items. That should give you some sense for what a retrospective is and why it’s important. To learn much, much more, tune in to this episode! In This Episode: [00:22] - We start off with a teach-and-learn moment about Vim. [01:38] - Another of the panelists managed to teach someone sync settings on Atom, he explains. [02:53] - What is a retro? In short, a meeting that is one of the recommended ceremonies in the Scrum framework. Its purpose is to look back on what happened over the course of the last sprint. [03:55] - Somewhat surprisingly, retros don’t tend to devolve into blame games. [05:36] - We learn about the etymological root of the word “retrospective,” and what that means in terms of these meetings. [07:27] - The purpose of the retrospective is to do better during the next sprint. It allows you to make a plan for how to get better. [08:54] - Who should go to the retrospective? Should anyone who isn’t part of the team show up? [10:55] - The panelists discuss how long a retro generally takes. {12:28] - We hear about the good things that can come out of a retro. [16:09] - After the break, the panelists kick things off by talking about the phases of a retro. [18:20] - In the brainstorming phase, does everyone write down ideas? If not, how do the ideas come up without allowing certain people to dominate the conversation? In response, the panelists also discuss the pros and cons of anonymity. [22:11] - We move onto the part of the retro that involves identifying trends. [23:17] - William expands on what he meant about this being the “yes, but” phase. They then discuss the tendency to pile onto the popular topics. [25:58] - The third section of a retro involves action items. [28:37] - When do you check on the previous retro’s action items? [30:29] - One of the positives of the Scrum recommendations on which ceremonies to have is that they cover your bases. The panelists then discuss some reason why people may push back against Scrum. [32:55] - We hear some tips and tricks for having a successful retro that runs smoothly. [36:18] - The panelists share their closing thoughts on retros, including that every team should have one. [36:58] - We hear the picks that the panelists want to discuss for the upcoming week. Links and Resources: Stride Consulting Rabbit Hole on Twitter Practical Vim: Edit Text at the Speed of Thought Scrum
4/4/2017 • 38 minutes, 5 seconds
04. Pair Programming
In this great episode, we discuss the concepts and uses of pair programming, remote programming, and mob programming. Don’t worry if you’re unfamiliar with any of those terms; we’ll talk about them in more depth in the episode, and explore what is (and isn’t) cool about each one. Just to give you a short preview to help you decide whether to tune into this episode (hint: you should!), let’s take a moment to define what we’re talking about, at least for our main focus of the episode. Pair programming is when you have two programmers working on the same task, usually at the same workstation. This offers an incredible array of benefits compared to typical, solo work. For example, if you’re in a pair programming setup, there’s no way you’re going to be checking your email, phone, and social media while you’re working. That means you’ll be more focused; in fact, one of our panelists points out that pairing can lead to being tired (in a good way) because you’ve been so productive. Pair programming also offers great motivation to be your best, because you don’t want to let your team down by not giving 100%. Tune in to hear more about pair programming and its benefits and potential pitfalls, and to learn about remote programming and mob programming too! In This Episode: [00:52] - We hear a basic definition of pair programming. [02:02] - What were the panelists’ first experiences with pair programming? [03:39] - Pair programming can be incredibly valuable in that it doesn’t allow you to get distracted or lose focus the way you might if you were working by yourself. [05:50] - We learn about the use of chess timers in pair programming. We then hear how pair programming can be valuable when you’re learning a new language. [08:12] - Have the panelists seen Livecoding.tv? [10:35] - The panelists move on to talking about remote programming, initially emphasizing the importance of a strong, fast internet connection. [12:32] - If you’re pairing with someone remotely, the person who is sharing is (almost) always the bottleneck. [13:26] - What kind of editors do the panelists usually use on their projects? They mention, for example, Screenhero, AtomPair and Floobits. [16:47] - The problem with all of these editor plugins is that they don’t tackle the shared browser bit. [18:46] - One of the panelists brings up an issue that happened to him in pair programming but not remote programming. [20:02] - The panelists discuss Dvorak in more detail, explaining what it is and why it’s a good choice for people with wrist injuries, for example. [20:55] - We hear the story of how one of the panelists inadvertently introduced a coworker to pair programming. They then talk about various modes of pair programming, particularly “evil mode.” [27:20] - We move on to mob programming, with the panelists sharing their experiences with it. The consensus is that it’s fun because it’s so collaborative. [30:45] - Mob programming can often be with some subset of the team instead of the entire team. Even if it’s with only three people, though, it can be helpful in breaking ties. [34:01] - Have any of the panelists had any particularly good pairing experiences? [39:00] - We switch to the other side of pair programming now: challenges and bad experiences working in a pair (including a story of overwhelming body odor). [43:05] - Another resource that people should check out is the RailsConf 2014 video “I’ve Pair Programmed for 27,000 Hours. Ask Me Anything!” Links and Resources: Stride Consulting Rabbit Hole on Twitter Livecoding.tv Screenhero Real Programmers on XKCD AtomPair Floobits “I’ve Pair Programmed for 27,000 Hours. Ask Me Anything!”
4/4/2017 • 44 minutes, 44 seconds
03. Planning Meetings
In this episode, we’ll talk all about planning meetings. (And let’s be clear here: we mean planning-meetings as an entity; we aren’t talking about how to plan a meeting.) We discuss how having successful planning meetings will help you and your team move forward more efficiently. Ultimately, these meetings can help you and your team become even more awesome agile developers. When they’re done right, planning meetings can ensure that the team pushes out as many features as possible, which keeps the business happy. The way they achieve this is by getting the people who know the business value in the same room as the people who know how costly it is to implement. Unfortunately, there can be a lot of confusion surrounding planning meetings, especially when it comes to units of measurement that can be understood (and not misunderstood) by everyone in the meeting. There’s a great solution: using games as units of measurement! Listen in to hear more tips, advice, and thoughts on planning meetings! In This Episode: [00:45] - We have a teach-and-learn moment about a talk by Martin Fowler and the importance of learning new languages. [02:29] - Today’s main topic is sprint planning. We hear a definition of what this is. [04:22] - We learn the main goal of a sprint planning meeting. It’s to have an intersection between the business knowledge of what’s important and the programming knowledge of how much work it will take to do that. [06:05] - We hear more about estimations and ways of doing them. We learn why many options are problematic, and why using games as units of measurement eliminate some of these problems. [09:27] - Does anyone on the panel have examples of things that have gone wrong in estimation or planning? [12:55] - Does the complexity change based on your personal expertise and what you bring to the table, or is the complexity measured more objectively? The panelists share their thoughts and recommendations, which include pairing with people who have different areas and levels of expertise. [17:37] - The panelists talk about prioritization. [20:58] - We hear more about grooming, and when it should happen. [22:11] - How long does a planning meeting normally last? The consensus is around an hour, because going longer can lead to reduced concentration or indicate inadequate grooming. [24:08] - The panelists talk about some other things that can help planning meetings go well. We hear about the “as/when/then” structure. [28:14] - A successful technique involves having a table in the middle of the room and having the team go through a silent exercise of moving the stories into different boxes based on difficulty. [31:04] - We move on to picks. We hear about pivotal/vim-config, and why one of the panelists recommends it. [32:32] - Another of the panelists will be looking into React Native over the next couple of weeks. [33:29] - A couple tools one of the panelists has been using over the past week include a tool from Django Extensions and a command line tool, the Silver Searcher. [35:04] - A couple more picks include git-pair and an app called Signal (available for Android and iOS). Links and Resources: Stride Consulting Rabbit Hole on Twitter Martin Fowler pivotal/vim-config React Native Django Extensions Silver Searcher
4/4/2017 • 37 minutes, 4 seconds
02. TDD
After starting off the episode with a teach-and-learn moment about leaky abstraction, we move onto the core focus of the episode: TDD. TDD, or test-driven development for the uninitiated, is “an evolutionary approach to development which combines test-first development where you write a test before you write just enough production code to fulfill that test and refactoring” (definition from Agile Data). If you don’t completely understand the concept of TDD from that description, or if you have lots of questions now, don’t worry! That’s what this whole episode is about. We’ll talk about TDD in great detail, addressing the ways in which it’s counterintuitive and can be tricky at first. More importantly, we discuss how TDD can offer incredible value and make things ultimately easier and simpler, even though it may not feel that way at first. It can ease the demand on your brainpower, and even reveal your own assumptions. Finally, we discuss why TDD may not be relevant in certain environments. Listen in to hear more about TDD and what it can do for you! In This Episode: [00:22] - We have a teach-and-learn moment about leaky abstraction. [02:28] - Working with someone who has never done any front-end work can be a great experience. [03:35] - We learn what the definition of TDD is, and why it’s counterintuitive. [07:33] - How do you decide to use TDD? Or is it something that you use all the time? The consensus is to use it all the time, or close to it. [11:01] - Part of starting with TDD is understanding the first step. This may mean you need to spend some time “mucking around” before you even know what to test. [14:16] - One of the times when it’s hardest to do TDD is when you don’t know how to test something. [15:25] - We hear about the potential value of creating a stash as a reminder, and the possibility of making a spike branch. The guys then joke about whether stashing behavior translates to desk organization. [18:32] - After a short break, we hear more about an early experience with TDD. [21:09] - Pairing with someone junior to you offers value that’s easy to underestimate. It makes you stricter on yourself and encourages you to be more concerned with best practices. [22:07] - We hear about the experience of getting into TDD on your own. We also learn that TDD can reveal your own assumptions. [24:03] - Developers need to hold a lot of information in their heads while trying to solve a problem. TDD is a great way of preventing things from accumulating in RAM, so to speak. [26:38] - The guys talk about the pros and cons of remembering the moment you discovered TDD. [29:41] - We hear which programming languages the panelists prefer to do TDD in. [32:40] - There’s a bunch of front-end stuff that isn’t testable. [33:57] - Have the panelists seen the Martin Fowler talk “Is TDD Dead?”? [36:45] - The small applications that college students tend to write for their courses aren’t a realistic representation of what happens when you do this for a living (in terms of the necessity of using TDD). [39:22] - Google recently released an API called Actions on Google. Links and Resources: Stride Consulting Rabbit Hole on Twitter Introduction to Test Driven Development The Art of Agile by James Shore Sandi Metz Is TDD Dead? TDD Is Dead. Long Live Testing Actions on Google
4/4/2017 • 41 minutes, 37 seconds
01. Introduction to The Rabbit Hole
Welcome to the introductory episode of the Rabbit Hole! While this is the first episode available to the public, it certainly isn’t the first we’ve recorded. We’ve been working on this project, and recording, for the past six months to create a backlog of episodes. Each podcast is a dynamic conversation full of great information by developers for developers! A little about us: we’re Michael (host), Dave (co-host), and William (producer). We all work for Stride, an Agile software development consultancy. Stride embeds with your tech team to help you make software development a competitive advantage. We're a bunch of engineers obsessed with the idea that software development should be agile, collaborative, and leave teams stronger at the finish than they were at the beginning. Combined, we have over 20 years of software development consulting experience, and we want to share our knowledge with the world. Our mission with this podcast is to help developers become better at what they do. By sharing our knowledge, we hope to change the world! (Or at least change one developer’s life.) Listen in to hear more in this brief intro, and be sure to subscribe to receive our upcoming full episodes! In This Episode: [00:11] - Your hosts and producer introduce themselves. [00:22] - Michael, Dave, and William talk about this being technically the first episode, even though they’ve recorded quite a few others. [00:44] - We hear the mission of the podcast, and then learn about how the podcast will accomplish its mission. [02:13] - We learn more about how much consulting experience our podcast hosts have. [02:42] - What are some of the episodes that will be coming up? [03:42] - Our hosts work for Stride, an Agile software development consultancy in New York. [04:47] - Michael, Dave, and William (and this podcast) are on Twitter: @radiofreerabbit. Links and Resources: Stride Rabbit Hole on Twitter