Working Code
Adam Tuttle, Ben Nadel, Carol Hamilton, Tim Cunningham
Working Code is a technology podcast unlike all others. Instead of diving deep into specific technologies to learn them better, or focusing on soft-skills, this one is like hanging out together at the water cooler or in the hallway at a technical conference. Working Code celebrates the triumphs and fails of working as a developer, and aims to make your career in coding more enjoyable.
214: Is Tech the Bad Guy Now?
In this week's episode, Adam, Ben, and Tim discuss the evolving perception of technology, shifting from an optimistic view in the 80s and 90s to a more critical stance today due to its potential negative impacts.They delve into the consolidation of tech power among major companies like Facebook and Amazon, contrasting it with ideas like Amazon's two pizza teams for maintaining team efficiency.Adam also has some authentication issues that Ben and Tim weigh in on.Follow the show and be sure to joi
213: Staying Motivated Through Long Projects
In this week's episode, Adam, Ben, and Tim discuss strategies to stay motivated during long-term projects or repetitive tasks.If you've been at the same company or working on a project for a very long time, how do you stay motivated doing the same thing for a long time?Mentioned Links:Ze Frank - An Invocation for Beginnings - https://www.youtube.com/watch?v=RYlCVwxoL_gCat Purr Generator - https://purrli.com/Follow the show and be sure to join the discussion on Discord! Our website is workingcode
212: You Are Not a Coder
In this week's episode, Adam, Ben, and Tim tackle the intriguing and timely topic of AI and its implications for the future of coding.They delve into how AI is currently being used, including the hype around LLMs, its perceived threat to coding jobs, and the limitations of AI in professional software development.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes drop weekly on Wednesday.And, if you're
211: Roast My Desk, Rate My Clean-up
In episode 211, Adam, Carol, and Tim play 'Roast My Desk, Rate My Clean-up.' Listeners submitted before and after photos of their desks, and the crew roast their setups and rate their clean-up effort.The photos and reactions can be viewed on our Discord, Instagram, and BlueSky accounts.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes drop weekly on Wednesday.And, if you're feeling the love, support u
210: Free as in Speech, not as in Beer
In week's this episode, the crew explores the often confusing phrase 'free as in speech, not as in beer.'They discuss the differences between software that's free in terms of cost (beer) and free in terms of user freedoms (speech). The conversation delves into open-source licensing, the implications for users and developers, and comparisons to various software models.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesk
209: MVP Therapy
In this week's episode, Adam seeks support from Ben and Tim as he ventures into creating a Minimum Viable Product (MVP) for a new app designed to digitize the operations of drop zones.The discussion centers on the importance of developing a solid hypothesis, engaging potential users early on, and navigating the emotional hurdles associated with bringing a side project to market.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.de
208: Real or Fake? Esoteric Programming Languages
In this week's episode, the crew play Real or Fake for esoteric programming languages. Are Whitespace, JSF***, Cow or DeadFish real or fake? Listen to find out.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
207: Potluck and Fun Facts
In this week's episode, Adam, Ben, and Carol discuss a variety of topics including "disagree and commit", responsive design, and feature flags. We take a trip through time with some fun facts from internet and web development history.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZC
206: The Most Impactful Books
In this week's episode of the podcast, Adam, Ben and Tim discuss various books that have significantly influenced their careers and coding philosophies. The conversation ranges from classics like 'Clean Code' and 'The Phoenix Project' to unexpected titles such as 'Fight Club' and 'The Four Agreements'.The discussion underscores the value of continuous learning and how different types of books can offer unique perspectives and practical wisdom.Follow the show and be sure to join the discussion on
205: Lessons Learned Along the Way
In this week's episode, the team discusses various software development topics and how their opinions on these subjects have evolved over time. Key topics include the benefits and challenges of testing, the balance between microservices and monoliths, the role of static typing in code, and the practicality of semver versus other versioning strategies.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes d
204: Relaying Requirements
In this week's episode, the full crew is back to discuss the complexities translating user requirements to developers and the importance of clear communication to avoid wasted efforts.The conversation also touches upon the roles of project managers and developers, emphasizing the significance of a clearly defined problem statement and well-structured processes to ensure efficient project execution.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev a
203: The Hard Problem of Naming Things
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors. (Leon Bambrick)In this week's episode, the crew discuesses the complexities and nuances of naming conventions in software projects. The team reflects on their own practices, shared challenges, and the real-world impact of terminology and structure on software development and maintenance.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we'
202: Um, Actually!
In this week's episode, Tim and Ben go head-to-head in a trivia game inspired by Cunningham's Law, answering questions, with points awarded for correct 'um, actually' corrections.The game reveals lesser-known facts and recent updates in HTML, CSS, JavaScript, and browser functionalities. Source material for all questions came from this article.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and
201: LLMs vs StackOverflow
We're back! and in this episode of the Working Code Podcast, the crew returns to dive into a thought-provoking discussion on the impact of Large Language Models (LLMs) like ChatGPT on technical communities such as Stack Overflow.They explore how LLMs are changing workflows, the ethical considerations of using AI for coding assistance, and personal experiences with these tools.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod o
200: The Power of Pause - We're Taking a Break
In this special episode, we celebrate reaching our 200th show by discussing the critical importance of taking breaks and avoiding burnout.We share our thoughts on mini-retirements, the differences between sabbaticals and mini-retirements, and the surprising benefits of doing 'drudgery' work. We also delve into the upcoming hiatus for the podcast and what each of us plans to do with our extra free time.Join us for a candid and insightful discussion on how stepping away can actually help y
199: Is .io Out?
In this week's episode, the hosts discuss the potential discontinuation of .io domains, the historical and geopolitical nuances of TLDs like .tv and .io, and the complexities of managing and pricing domain names.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross Medi
198: Battling Build Complexity
Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.In this episode, the hosts discuss the complexities and frustrations of deployment automation and DevOps, particularly focusing on the challenges faced with makefiles, continuous integration (CI) processes, and build systems.They explore tools like ZX from Google and Oclif from Salesforce to find better solutions f
197: AI, The Innovation Dilemma, Promotions and More
In this week's episode, the hosts discuss the value of focusing on a single top priority during challenging times and the implications of AI on the workplace, emphasizing the importance of maintaining human connections and individual reflection.They explore career progression, advocating for both skill quality improvements and the need for organizations to focus on their most critical tasks. Additionally, they touch on personal habits such as the impact of constant connectivity, the value of sol
196: Building Better, Developer Experience
In this week's episode, Adam, Carol and Tim discuss Developer Experience (DX) and its importance in creating a comfortable and efficient workflow for developers. The hosts highlight various elements that impact DX, such as the ergonomics of Integrated Development Environments (IDEs), debuggers, and browser tools.They emphasize the need for faster build and deployment times to minimize context switching and improve productivity. Strategies for managing development, QA, and production environments
195: When the Juice Isn't Worth the Squeeze
In this week's episode, the hosts discuss situations where the effort put in is not worth the results. They cover topics like the inefficiency of tracking every minute, the high cost of striving for 100% code coverage, and handling lengthy build times during deployments. The team debates the importance of releasing features incrementally versus deploying massive changes and highlights the inefficiencies in requiring extensive requirements documentation.Follow the show and be sure to join the dis
194: Manifesting a New App
In this week's episode, Adam consults with Carol and Tim about various aspects and challenges involved in the development of an app intended to streamline and digitize the process of organizing skydiving jumps.They discuss overcoming technical difficulties, such as integrating drag-and-drop functionalities, managing data efficiently, and incorporating features like login systems, billing, and user authentication. They also explore potential UI/UX improvements, including touch interface adapt
193: Bonds Built in the Foxholes
In this episode, the hosts delve into the idea of whether bonds formed in moments of workplace trauma and high-stress situations are uniquely irreplaceable. The discussion also touches on how team-building activities can simulate the bonds formed under duress, the cultural differences in work stress, and challenges faced in the workplace.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episod
192: The Best of Code and The Worst of Code
In this episode, the hosts discuss their experiences with different codebases, from the best they've worked on to the worst. They explore the complexities of evolving and maintaining legacy code, the challenges of debugging, and the importance of clean architecture. Key points include the pain of working with ORMs, and the impact of early design decisions on long-term project health. They also touch on reactivity concerns in modern frameworks and share personal anecdotes of both successful a
191: Processing Processes
In this week's episode, the crew discuss finding the right balance in implementing processes within software development teams. Processes often originate from reactive measures to past mistakes but it is crucial to emphasize the importance of periodically reassessing the necessity and efficiency of these processes.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.
190: Career Advice For Our Younger Selves - Ben & Carol Edition
In this week's episode, Ben and Carol of the Working Code Podcast reflect on career advice they would give to their younger selves, touching on the importance of simplicity in coding, continuous learning, and maintaining work-life balance. They emphasize the significance of learning from mentors, leveraging database constraints, and avoiding premature optimization.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Tw
189: Career Advice For Our Younger Selves
In this episode, Tim and Adam discuss career advice for their younger selves, including the importance of job changes for salary increases, focusing on programming tasks rather than managerial roles, and the hazards of tying one's identity to a specific programming language.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the lo
188: Yeeting Changes to Production - Code Reviews
In this week's episode, Tim returns to the podcast for a discussion on code reviews, touching on the importance of providing constructive feedback, tailoring reviews based on the developer's experience level, and discussing the merits and drawbacks of tools like GitHub.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the lov
187: Is it Possible to be a Solo Developer in 2024?
In this week's episode, Adam and Ben talk about the feasibility of being a solo developer in 2024, considering industry pressures, tools, and personal strategies for balancing simplicity and complexity in the development process.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineeri
186: Warm Blankies For Your Work Insecurities
In this week's episode Ben and Carol delve into their personal and professional insecurities. The discussion includes feeling the need to justify one's value at work, struggles with validations. They also talk about the emotional impact of customer interactions and the importance of human connections. The conversation highlights broader issues regarding job promotions, industry expectations, and the myth of constant innovation.Follow the show and be sure to join the discussion on Discord! Our we
185: Adam's A/B Testing MVP
On this week's show, Adam and Ben explore the complexities of implementing AB testing in email campaigns.The hosts tackle the challenge of integrating AB testing into existing systems without causing disruptions and examine methods for experimenting with various elements like subject lines, calls-to-action, and email contents. They also discuss strategies for automating the selection of winning variants based on metrics such as opens and clicks.Follow the show and be sure to join the discussion
184: Solving World Peace with Code Comments
On today's show, Adam and Ben talk about their respective strategies for leaving comments within code. Each of them inhabits a different end of the spectrum, with Ben erring on the side of viewing comments as an inherent value-add; and, Adam believing that the urge to add a comment is more akin to a "code smell", indicating a need to refactor the underlying code structure. They disagree on a lot in this conversation; but, it turns out, they actually agree on more than you might expec
183: Who's Got the Beans? Carol's New Project
In this episode, the team discusses various aspects of starting new projects, dealing with both personal and professional challenges, and the excitement and fears around initiating new work.Carol shares her idea for a new web application to help organize event contributions, and the group explores initial steps and considerations for starting such a project. They touch on security, data management, and different frameworks and platforms for developmentFollow the show and be sure to join the disc
182: Coffee Talk and Catching Up
On today's show, Tim and Carol share personal updates while Adam and Ben are away. Carol discusses her challenging workday involving a difficult rebase and adjusting to a new routine after moving to Texas.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross
181: More Laws of Software
On today's show, we continue our discussion of the entries outlined on the website, the Laws of Software. Topics include McKinley's law on boring technologies, Doerr's law on aligning team vision, and Fitt's law on target touchability.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.Wi
180: The Laws of Software
On today's show, we discuss a few of the entries outlined on the website, the Laws of Software. Topics include Atwood's Law on JavaScript, Cunningham's Law on getting answers, Parkinson's Law on getting things done, Goodhart's Law on taking measurements, Hofstadter's Law on inevitable failure, and the Peter Principle.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New epi
179: AI Sells You on AI
On today's show, Tim gears-up for a farm insurance conference out in Nashville where he's hoping to educate farmers on the pros and cons of artificial intelligence (AI). But, ahead of his talk, he'll be using AI voice technology to call the conference attendees and convince them to attend his presentation. And then, hopefully, weave statistics and sentiment analysis insights—from these automated calls—back into his slide deck.Follow the show and be sure to join the discussion on Disc
178: Upgrading From Node 0.10
This week on the podcast, we touch on a variety of topics. Ben has been incrementally building a data export feature for his customers; and, he's gotten to a point in which he can see a viable light at the end of the tunnel. Carol has discovered that if she doodles circles with her non-dominant hand, it occupies the ADHD portion of her brain and frees her up to focus on reading. Tim is continuing to improve his AI voice-agent, using a listener-suggested approach to loading Spanish language v
177: Infinite Invisibility Timeout
Adam uses the new CSS color functions for HSL (Hue, Saturation, Lightness) in order to create a heatmap for the number of dollars raised by his platform. Ben dives into the Algolia search service as a way to provide a search feature on his blog. Carol is trying to alleviate performance concerns around an N+1 SQL problem using an ORM (Object-Relational Mapper) that has decided to use an N+1 selection strategy as "the way" with no escape hatch. And, Tim is getting some great feedback regarding his
176: Triumph and Fail Safe Space
On today's show, we cover a variety of topics. Tim was suffering from a "carding" attack (aka, a "credit card stuffing" attack) and had to build an internal CAPTCHA system in order to protect his web-based payment forms from bad actors. Adam created an open-source JavaScript library for mocking ES modules (see Mockable) that makes it possible to swap implementation details at runtime. And Ben falls back in love with ColdFusion—again—continuing to find that even the small lang
175: Build Times, Overcompensating, Mentoring and More
On today's show, we cover a variety of topics. Ben talks about overcompensation at work; and, how we often swing way too hard in one direction as the first signs of a challenge. Carol talks about how her current task got away from her; and, how she suddenly founder herself creating a Pull Request with 84 files in it. Tim talks about the generation smoking ban going into effect in England. And Adam talks about the challenges of mentoring junior developers; and, how hard it is to have enough "righ
174: When Your Software Has a Terrible, Horrible, No Good, Very Bad Day
On today's show, we talk about incidents and outages at work. Incidents are a fact of life. If you depend on a file system or a database or a third party vendor, at some point, something will break and your service will be degraded. Customers freak out (rightly so); and, it becomes a cross-team effort to try and find the problem, fix it, and effectively communicate updates back to your customers. There's no right way to do this. But, one could argue that there are definitely wrong ways t
173: Shopping for Solutions - Payments and Compliance Auditing
Adam picks Tim's brain searching for the perfect solution for payments and compliance auditing.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
172: Building Your Own Standard Library
In a world where many programmers instinctively reach for an existing solution in "user land", Ben poses the question: is there value in building out and maintaining your own standard library? This would be the collection of commonly-used functions and classes that you enjoy using; and, which are tailored to your use-cases and programming paradigms. Doing so would be a vibrant mixture of pragmatism, vanity, ego, efficiency, and compensation. But, would it ultimately be a net befit?Follow the sho
171: From Tactics to Strategy
Tim just completed his quarterly strategy review meeting at work. As such, he's in the perfect head space to teach Adam and Ben what strategy is; how strategy differs from tactics; and, how OKRs (Objectives and Key Results) can be used in order to ensure that the work to be done actually rolls-up to one of the company's core strategies. In the end, Ben still has no idea what's going on (as per usual); but, Adam is down to clown.Follow the show and be sure to join the discussion on Di
170: Thinking in UX with Thelma Van
On today's show, we talk to Thelma Van about integrating design into the product development workflow. This includes User Experience (UX) design, User Interface (UI) design, scope negotiation, and user validation through interviews. It turns out, even if you can only talk to five of your customers, having this amount of feedback can have a massively out-sized impact on your overall design and development trajectory.Follow the show and be sure to join the discussion on Discord! Our website is
169: Buffer Overflow, Tabs vs Spaces
Several years ago, Stack Overflow noticed a small but surprising trend within their 2017 Developer Survey data. Even when attempting to adjust for several factors, it seems that the programmers who indent their code with spaces (as opposed to with tabs) have a higher earning potential. As an example of programmers who love using tabs, the hosts of the show offer up theories about this strange finding.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev an
168: Memory Safety Mandate
On today's show, we talk about two major announcements relating to the technology world. First, the government released a report calling on programmers to start using memory safe languages (see: Future Software Should Be Memory Safe). Second, Apple announced that it will halt work on Titan, its autonomous electric vehicle project. We also talk about the pros-and-cons of a Computer Science degree in relation to the web development industry.Follow the show and be sure to join the discussion on
167: Everyone Likes Their Own Brand
The first duty in life is to assume a pose. What the second is, no one has yet discovered. - Oscar WildeYou may never think about it or even be aware of it; but, you have a personal brand. A brand is not something you can opt into or out of. It simply exists. The only choice that you have is how you manage - or choose not to manage - your brand in relation to other people. On today's show, we talk about our own personal brands; how they can help us; how they sometimes hurt us; and, how the g
166: What's "Onboarded" to You?
On today's show, we respond to a listener question from Kamil Maraz:I have started a Developer experience initiative in our company. We started with a survey, which led to many 1-on-1 meetings; and, one thing that came up a few times was onboarding. Long story short: it's not ideal. I was wondering if this topic could be an inspiration for one of the episodes. For example what is an onboarded colleague to you?; do you care about time to first commit?; what does the onboarding process in
165: Agile Methodology with Brian Sadler
For the most part, software engineers like the concept of Agile methodology; and, they have a sense that agile development practices are the best way of getting work done. But, that doesn't mean we know how to put these agile practices in place (especially at scale). Today, we talk to Brian Sadler (@brian_sadler) - a seasoned software developer and Agile coach - about what Agile is, what parts of it work the best, and where teams often go wrong in their interpretation of best practices.Follo
164: Solo Programming, Chrome Monoculture and More - Potluck
On this week's show, we explore a variety of topics. Ben wants to perform a mini retrospective on his desire to support the legacy platform at work. Carol is feeling isolated as the only engineer on her team - her dog is a good listener, but isn't very helpful when it comes to brainstorming. And, Adam wants to talk about the browser landscape; and see which browser(s) everyone is currently using.Also, Ben offers up some high praise for Lenny's Podcast - a show in which Lenny Rachitsk
163: Exposing Yourself, to New Tech
In web development, we tend to hold learning as a virtuous activity that's worthy of our spare time. In fact, there can be a lot of pressure on us to always be learning; and, to some degree, those of us who don't ride the wave of cutting-edge tech are "othered". But, is dabbling in new technology really moving the needle? Does learning a little of this and little of that really make for a more robust engineer? Or, is there more value to be gained from depth of understanding? And, at the end of t
162: A Question of Time
Ben never has enough time to accomplish everything that he wants to accomplish. On its own, this isn't necessarily a "bad thing". But, it can quickly lead to feelings of guilt: is he not good enough, is he not effective enough, is he letting everyone down? So much of this angst is emotional. And he knows this. But, he doesn't have the wherewithal that he needs to evolve his own perspective. The crew tries to help him out.Follow the show and be sure to join the discussion on Discord! Our website
161: 2024 Goals
As we jump into the new year, the crew talks about their new year's goals—both for the podcast and for themselves. We strongly believe in the power of "learning in public". And, to that end, we've created a Google Form in which you can submit suggestions on how to improve the show: what do you like, what do you not like, what can we be doing better? No suggestion is off limits, so long as no people or animals are harmed!Follow the show and be sure to join the discussion on Discor
160: Design Systems and Coding Philosophy
Happy New Year! This week, we ease into 2024 with a variety of topics. Adam is building a new design system at work using Svelte and Tailwind CSS. Ben wonders if there's any way to create an "Overview Effect" in the world of programming. And Tim discusses a few philosophical fallacies in a work context: planning fallacy, overconfidence effect, automation bias, and plan continuation bias (aka, the sunk cost fallacy).Follow the show and be sure to join the discussion on Discord! Our we
159: No Effort December Returns
After a stressful year, we happily ease into another round of "No Effort December" in which the conversations flow without concern or constraint. Carol is excited to go ice skating for the first time in her life. Tim is trying to teach his kids about financial literacy. Ben shares his limited ability to fantasize. And Adam wonders why his computer gets so sticky.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on
158: The Premortem Premortem
In episode 154, we discussed the concept of a project premortem. That discussion inspired Carol to schedule her own premortem for a new 2-year project that her company is about to undertake. Given the fact that her team's work won't be sharable for at least 18-months, she's wants to make sure that her premortem is as effective as it can be. As such, we're going to have ourselves a little premortem premortem discussion on the show.Follow the show and be sure to join the discussion
157: Dead Man's Snitch Deep Dive with Adam Cameron
On this week's show, Adam Tuttle and friend-of-the-show, Adam Cameron, go in depth on Dead Man's Snitch - a software service that triggers an alarm if your application doesn't "check in" with high enough frequency.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing
156: JSON, StackOverflow, Testing - Hot Takes
On today's show, we cast off the social filters and lay down some hot takes! This journey of spice serves up the separation of concerns, the future of StackOverflow, the value of comments, the necessity of testing, the role of extracurricular coding, the beauty of clean code, the meh of JSON, and the challenge of building truly great products.Some of these hot takes are clearly wrong; but, I'll never tell!Follow the show and be sure to join the discussion on Discord! Our website is workingcode.d
155: Software We're Thankful For
Coming out of the Thanksgiving holiday (and still recovering from our food comas), we wanted to have some fun today and talk about all of the software that we're thankful to have in our lives. These aren't sponsors of the show (yet); but, we love them so much that we wanted to share them with the rest of the world. Topics include Dead Man's Snitch, Overcast podcast player, git source control, GitHub, Snagit and Skitch screen capture tools, 1Password for password management, PlexTV fo
154: What Could Go Wrong? Pre-Mortems and Log Levels
On today's show, we continue reflecting on the 4-part series on "Failure" produced by the Freakanomics radio podcast. This time, we talk about Premortems; and, about how important it is for a company to create a safe space in which people can talk about failure and about the reasons failure might occur. We also dig into Logging strategies, structured logging, and role of different log levels. And, how we can best consume logs in a way that makes them valuable without being too noisy.
153: Our Biggest Failures
Inspired by a 4-part series on "Failure" produced by the Freakanomics radio podcast, we went around the table and talked about our own failures. This helps to remove the social stigma associated with failure; and, helps other people process internal conflicts of emotion. Tim talks about failing to sell websites in the early dot-com boom; Adam talks about failing to create a ColdFusion package manager; and, Ben talks about the years he lost trying to learn Object Oriented Programming (OOP
152: Cron Heatmaps, Harvard AI, and Ben's Book - What's On Your Workbench
This week on the show, the hosts talk about what they have going on. Adam is trying to better understand the cadence with which his scheduled tasks are executing; and, has built a visualization tool using Svelte and D3. Tim has signed up for CS50 at Harvard - an online course introducing Artificial Intelligence (AI) with Python. And, Ben has a working draft for the first half of his Feature Flags book; and, is now considering some sort of pre-sale (if he can figure out how to turn his Markdown f
151: Async Human Solutions
When you build a system that is wholly contained within a single process, life is quite clean and predictable. But, the moment you reach outside of your process in order to get work done, you realize how messy the world is. Communication between systems can breakdown for any number of reasons. Often times, we try to create resiliency within the chaos by apply technology. But, sometimes, it makes more sense—and is far less expensive—to fix these problems using a human-oriented solution.Follow the
150: What's on Your Workbench #3
This week we go around the table and see what the hosts have going on. Carol got a promotion in her first week back at work, despite the fact that she's had to emotionally suppress everything she once knew about dotnet. Adam is now - finally - at 100% SOC compliance (and is awaiting a 3-month review period). Tim has been wrestling with APIs and bending them to his will (to receive JSON payloads). And, Ben is considering different ways in which to package his Feature Flags book.Follow the sho
149: Margin For Error
In this episode, Adam and Tim talk about margin for error in various aspects of software development, business and our personal lives.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
148: The Day The Code Stood Still
In this episode, the crew speculate on what would happen if every coder just stopped coding.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
147: Potluck #9
This week, we go around the table and talk about a variety of topics. Ben talks about Transactive Memory Systems Theory and how it might be applied in an engineering context. Carol—having moved into a new home and a new job—talks about the joys of starting something new in her life. Tim talks about the short-comings of a ticketing system; and, Goodhart's Law (which states that "when a measure becomes a target, it ceases to be a good measure"). And, Adam considers what his life would
146: Resiliency is Hard
The products that we build can become quite complex and involve many interconnected parts. Due to this complexity, and to the properties of the natural world, these products will begin to fail in new and exciting ways. There's really no way to stop a system from failing; but, we can build systems that are more resilient to failure. That said, this is oftentimes much more challenging than we expect. On today's show, we talk about the complex systems that we've built personally; and, h
145: Shiny New Things - Bun, Svelte, Skeleton
Adam, our early-adopter in residence, talks to Carol about Bun, Skeleton, and Svelte. With a focus on introducing new tools to an existing team, the two mainly talk about Bun, a hot new all-in-one JavaScript toolkit that is simultaneously a runtime, a server, a package manager, and a test runner. Come find out why its feature-set and speed leave Adam singing, My application don't want none unless you got Bun, hun!Follow the show and be sure to join the discussion on Discord! Our website is worki
144: The Power of One
In a perfect world, we always do our best. But, our capacity for "best" changes on a day-to-day basis. On some days, doing our best means jumping out of bed and absolutely crushing the day! On other days, doing our best means that we rallied just to get out of bed. And, that's OK. When we're in the slog - when our "best" is degraded - it can be helpful to identify a single, small challenge for the day; a challenge that can be accomplish and celebrated. This technique is what Carol calls the "Pow
143: Moving On, Rewriting, Replatforming
While change is inevitable, managing and adapting to change is always a challenge. Change represents the end of something we knew and - at least for some period - loved; and, ushers in the start of something completely unknown. On today's show, we explore the difficulties in "moving on" using several different contexts: Jobs, tech stacks, video games, API implementations, front-end frameworks, and more.Follow the show and be sure to join the discussion on Discord! Our website is work
142: Tangents All the Way Down
When Carol's not here to keep us in line, the show quickly flys off the rails. So much so, in fact, that we never made it to the intended topic - it's just tangents upon tangents upon tangents. We touch upon "vendoring" of our external libraries, installing dependencies with apt-get, dictation app differences between macOS and iOS, the regret of not building features sooner, building the perfect demo for clients, and the "trap" of having to innovate. And that's not ev
141: Building Stuff So You Can Build Stuff
Inspired by an article from Dimitri Glazkov: Build a thing to build the thing, we talk about the importance of consuming of our own products. Often referred to as "Dog Fooding", this means that we must try and build something in the same way that our customers would be expected to build something. And, in doing so, better identify the feature gaps and the points-of-friction. In order to best meet our customers where they are, we have to - in a sense - become our customers.Follow the show and be
140: Fraud, What is it Good For?
If a property is exposed on the internet, people will try to take advantage of it. This might be in the form of sending spam through a communications portal, scamming cellular providers via SMS tolling, or using payment forms to validate stolen credit cards. And that's just to name a few possible attack vectors! It appears there's no hurdle too high nor process too tedious for the fraudsters to circumvent. On today's show, we share our own war stories about detecting, preventing, and
139: New Tables vs New Columns
Early on in his career, Ben's default behavior was to add new database columns to any existing table that felt "similar enough" in nature. After years of evolving an application, however, this has lead to relatively wide tables with only a loose sense of cohesion. More recently in his career, Ben has started to err on the side of creating new tables in order to house new columns. While this approach adds complexity in some ways, it also reduces complexity in other ways and creates a more clearly
138: Ben Goes Streaking
As Ben builds-out Dig Deep Fitness, he wants to include an "Activity Streak" indicator as a way for people to feel good about the consistent effort that they've been putting into their workouts. "Streaks", however, are bucketed by "day"; and, said "day" is specific to the user's current timezone experience. Historically, Ben has stored all of his application dates in UTC time; but, he senses that this won't be appropriate for "Activity Streak"
137: The Grug Brained Developer
This week on the show, we have Tim—our only host with screen acting experience—read from The Grug Brained Developer, "A layman's guide to thinking like the self-aware smol brained". This guide uses fun, caveman'esque language to point out the challenges and missteps that we often take in software development. And, how keeping things simple - for easy smol brain consumption - will often lead to better software outcomes.Follow the show and be sure to join the discussion on Discord!
136: Words, Do They Matter?
Words aren't just the tools that we use to describe the world around us - they are rich layers of abstraction that carry our cultural histories, our education, and our social norms on their shoulders. When we have a shared understanding of a what a word or turn-of-phrase means, our ability to communicate with each other is robust and unparalleled. But, when our differences our great, we end up talking past each other and going around in circles. Words aren't just effective, they're magical. Take
135: Note To Self v0.3.0
On today's episode, we invite you into another dimension. A dimension not only of sight and sound, but of mind. Ben's mind. Ben's sick, twisted cavern of decay and depravity wherein we gain insight into what actually makes this man tick. Topics include the slippery slope of the "Shift Left" mentality; over-complicating life with JWTs (JSON Web Tokens); dangerous public-on-public method invocation; and, the inherent cost of everything.Follow the show and be sure to join the di
134: Ben Goes to a Conference
After a multi-year global pandemic, preceded by a dearth of ColdFusion conferences in the U.S., Ben finally made it out to Munich, Germany for CFCamp 2023 - Europe's premier CFML-oriented conference. At 130 attendees, it was the perfect place to re-enter society and talk tech with like-minded engineers. Going into it, Ben was anxious. But, by the end of the 3-day event, he ended up having a great time and was privileged to hang out with some truly wonderful people!Follow the show and be sure to
133: The Final Stretch
Starting a new project is always exciting: there's so much potential, so many visions of grandeur. Completing a project, on the other hand, is always a challenge. In the engineering world, we often joke that the last 90% of a project takes just as much time as the first 90% of a project. Inspired by the GitHub Guide: Finish Your Projects, we wanted to talk about why finishing a project is always such a slog; and, how we can keep the momentum moving forward in order to get our projects over t
132: Virtual Reality
After watching the release event for Apple's new Vision Pro headset, Tim wants to talk to us about both Virtual Reality (VR) and Augmented Reality (AR); and, get our general take on where this all fits into the future of computing. We each have a different level of exposure to this kind of technology. But, certainly none of us is using any type of headset in an ongoing way.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCode
131: Starting From Scratch
After years of wanting to build a fitness tracking application, Ben has finally started to write code for Dig Deep Fitness. But, starting a new project from scratch isn't something that we engineers do very often; and, all of the features that we take for granted - session manage, error logging, rate limiting, email delivery - those foundational aspects all need to be created when we start something new. On today's show, Ben walks us through the pragmatic choices that he's made in or
130: Book Club - The Phoenix Project
On today's show, we have our first book club discussion about The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win by authors Gene Kim, Kevin Behr, and George Spafford. We review chapters 3-6 and talk about how Adam's recent compliance work has given him a fresh perspective on the 190-page spreadsheet of vulnerabilities portrayed in the book. It's interesting how a security team can have a deeply collaborative relationship with a company that feels, at least f
129: New Features vs Maintenance
When Engineering, Product, and Design (EPD) come together to create the first version of a given piece of software, it feels like everyone is on the same page and has the same priorities. But, once that initial implementation ships to users, the Product and Design departments tend to move on, leaving engineers to maintain the software. This creates an uncomfortable tension between the existing user experience (UX) and the underlying technical details. On today's show, we talk about that EPD tens
128: Potluck #8
This week on the show, we discuss a variety of web and web-adjacent topics. Adam is feeling dubious about recommending a career in web development to his children (is it still worth it)? Ben legitimately wants to understand why we - the web development community - don't approach Testing with a YAGNI (You Ain't Gonna Need It) mindset. And, Tim wants to consider different ways to handle errors in a RESTful API.Follow the show and be sure to join the discussion on Discord! Our website is workingcod
127: How Tech Interviewing is Broken with Sean Corfield
On today's show, we talk to Sean Corfield about his take on the "Tech Interview" process. With over 40 years of experience at companies like Macromedia, Adobe, and World Singles, Sean has been on both sides of the interview table; and, has been personally responsible for hiring countless engineers. His perspective that most tech interviews are "broken" might be taken with some apprehension if it weren't for the fact that, in 30-years of hiring, Sean has never once had to
126: Documenting Decisions
This week on the show, we talk about documentation. And not just the "how" of software, but the "why" - the decisions that we've reached, as a team, regarding the technologies that we use and the architectures that glues everything together. Of course, writing the documentation is only part of the challenge; keeping the documentation up-to-date is a whole other source of friction for most teams.Follow the show and be sure to join the discussion on Discord! Our website is work
125: What's on Your Workbench? #2
On today's show, the crew discusses a variety of topics. By which, I mean, Ben waxes philosophical on the subjective nature of everything; and, how he wants to live in a world where those who choose to indent code with 2-spaces may peacefully coexist alongside those who choose to indent code with tabs. Also, Adam body-slams his younger brother into a concrete floor. And then, gets in trouble because he let blood get on the carpet. Be sure to listen for Adam's pro-tips for removing blood
124: We Are Juniors For Life
On today's show, we reflect on the YouTube video, 15 Years of Dev in a Nutshell. A few years ago, people were complaining about "JavaScript Fatigue" - this sense that there was a new JavaScript library or framework coming out every day; and, that the race to stay up-to-date in the industry was simply overwhelming. Now, take that feeling, and expand it to include everything in a web development career, from front-end frameworks to databases to server-side rendering to edge-computing.
123: Negative 10x Developers
In episode 58, we weighed-in on whether or not 10x engineers actually exist. On today's episode, we go hard in the other direction, talking about the much less mythical -10x engineer: those engineers that seem to actively work in opposition to the greater good, holding unnecessary meetings and flooding the team with a massive amount of documentation. This discussion was directly inspired by the post, How to be a -10x engineer.Follow the show and be sure to join the discussion on Discord! Our
122: Coding Hot Takes
This week on the show, we talk about stuff we've been working on or thinking about lately. Adam dazzles us with his use of 1Password's Secrets Automation feature to drive key rotation in his production app. Ben misses the beautiful agony of having to support IE11 (and how it make the web more predictable). And, Carol shares her frustration with React and, especially, with JSX. It turns out, not everyone loves JSX or - clutches pearls - the idea of single-file components!Follow the show a
121: Ben's Testing Tribulations
Ben was recently tasked with removing an old feature from one of his services. As he did this, he kept breaking tests that were tightly coupled to the rendering of user interface (UI). In his mind, these tests were unnecessarily "brittle" and appeared to be testing the underlying front-end framework more so than the underlying business logic. When he brought this up in the podcast's Discord server, people disagreed. As such, we decided to dig into the topic of "what to test"
120: Freelancing with Nolan Erck
As Carol launches her Freelancing career, we thought it would be valuable to interview Nolan Erck, Owner and Director at South of Shasta. For the past 15-years, Nolan has been a Freelance web developer, a mobile developer, and a polyglot technology trainer. He knows the ins-and-outs of attracting clients, setting up a business, and sub-contracting work in order to keep the coffers flush. If there's anyone who can guide Carol into the pit of success, it will be Nolan.Links discussed on the sh
119: Potluck #7
On today's show, we all bring something juicy to consider. Carol kicks things off with some trepidation about becoming an independent contractor; Tim shares an article on Technical Debt and digs into the subtle differences between tech debt and bad code; Ben is befuddled by the fact that "common sense" is apparently wildly subjective; and, Admin introduces us to Bloom Filters.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @
118: Things We Should Be Doing But, You Know... Reasons
As web developers, we're all high-functioning, motivated people. And, we certainly have a good sense of what we should be doing with our time (both personally and professionally). But, theory rarely survives contact with reality. And, on today's show, we talk about all that sweet, sweet stuff we ought to be doing and why we can't quite motivate to get any of it done! Topics including backing up computers; creating reproducible systems; reading educational books; upgrading all the thi
117: Champions of Truth
On episode 114 of the show, in effort to balance out the somber tone of Carol's unfortunate layoff, we decided to have a little fun and play Two Truths and a Lie. On today's episode we review the listener submissions and crown the one winner who correctly selected all of our lies. And the prize goes to.... listen to the show!Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes dr
116: The State of Developer Conferences with Brian Rinaldi
Brian Rinaldi, Developer Experience Engineer at LaunchDarkly and long time friend of the show, recently wrote a blog post that was picked up in the TL;DR newsletter. His post, titled The State of Developer Conferences, shares a theory as to why both online and IRL (In Real Life) conferences are struggling to reach pre-pandemic attendance. Brian, who's been running conferences for 15-years, has a keen understanding of who attends events; and, why the demographics of attendees might be shiftin
115: Self-Care For Developers
After drinking close to 12 Mountain Dews in a single day, Adam started to wonder if — just maybe — he was using caffeine as a way to self-medicate. Upon discussing this with his doctor, Adam was diagnosed with ADHD (Attention-Deficit / Hyperactivity Disorder) - a condition very common in the world of programming (a fact that we inspect on the show). In light of these findings, we thought it would be nice to reflect on how we've all changed during the pandemic; and, share the little things th
114: Carol Got Laid-Off
Amid the frenzy of industry lay-offs, we here at the Working Code podcast were devastated to hear that our very own Carol Weiler has been affected by a down-turning real estate market. A few weeks ago, while attending a virtual All Hands meeting, her Slack account was suddenly locked, momentarily followed by her computer. It turns out that she, along with a majority of her engineers, were part of an unexpected reduction in force (RIF). On today's show, Carol graciously and courageously joins
113: Surviving A Layoff
Lay-offs are trending in the technology world. And, it's not just the scrappy start-ups being hit - goliaths such as Amazon, Apple, Google, Facebook, and Microsoft have all recently announced large reductions in force (RIF). Getting laid-off can pose a serious financial burden on an individual; but, there's also the psychological burden of self-doubt: Why did this happen to me? Did I deserve this? Will I ever find another tech job? On today's show, we talk about the state of the indu
112: Listener Questions
This week, we reach into our bag of Listener Questions and pontificate on such curiosities as: Who would we want to be and what skills would we want to learn if we could step into an alternate reality? Would Danny DeVito make an intriguing Wolverine? Which are the best programming-related movies and shows? And, we all laugh a little nervously as Tim shares just how much time he's clearly spent figuring out how to get rid of a dead body.Follow the show and be sure to join the discussion on Di
111: How To Learn Stuff Good
Learning something new - whether it be a language, framework, or library - can be challenging. And, if you're already an expert in some ways, it can be both humbling and frustrating to suddenly feel like a novice in other ways. On top of that, our expectations are often distorted by time; and, we forget how long it took us to amass the understanding that we have today. This can lead to unrealistic expectations when it comes to learning something new. Not to mention that our strategies for le
110: Measuring Impact At Work
Not all days are created equal. Some days, you show up and just crush it non-stop. Other days, it can feel challenging to even type good. On today's show, we look at what goes into making those good days "good" and those bad days "bad". Getting into the zone, meetings, switching modes, interfacing with customers, responding to incidents (and other interruptions) - every little thing has the power to push the needle one way or the other.Follow the show and be sure to join the
109: Best of 2022
On today's show, Matt Cavender — the man who turns our incoherent babbling into meaningful thought — is gonna share a selection of his favorite clips from the past year (2022). Adam, Ben, Carol, and Tim are taking the week off to recover from our families and work off some of those food babies. But, fear not dear listeners, the team will be back next week to ring in 2023 - Working Code style. Here's hoping y'all had a lovely holiday and a happy new year!Follow the show and be sure to
108: 2022 Year In Review
Happy New Year! We did it! We survived 2022! This has been a rather hard year in many ways and a decent year in some ways. On this episode, the crew reflects on the past year in terms of fitness, technology, personal growth, and reading goals; and, celebrates some wins and laments some losses.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're
107: Through The Wormhole
Happy Festivus, dear listeners! Welcome to our last show of 2022! Closing out "No Effort December", we truly run the gamut this time: Ben talks about the crippling attachment he has to his own fingers (and why he won't work with wood); Adam talks about how excited he is for the v1.0 release of Svelte Kit; and, Tim reflects on the blinding speed with which people seem to be to making science and technology breakthroughs - I mean, we're talking some serious Sci-Fi-level stuff here!
106: A Cascading Cataclysmic Christmas
This week, we continue to lean into "No Effort December", talking about a hodgepodge of both tech and non-tech topics. Since we're heading into Christmas, we start off talking about how challenging it is to buy gifts, especially for the grown-ass adults in our lives. We also share some of our favorite Christmas movies; and, the movies which have absolutely nothing to do with Christmas, but which we love to watch in the winter anyway. We also dig into some modern CSS advances; includi
105: No Effort December
Welcome to the start of No Effort December! That's the time of the year in which we gather 'round the mics and talk about whatever the heck comes to mind. We just passed two years on the Working Code podcast, it's the holidays, we've been peopling super hard with our families, and we all need a little jolly relaxation. On today's show, Carol wonders if she can use Hackathons as a means to "improve community outreach" - one of her team's new OKR (Objectives and Key
104: Alexa Make A Podcast About AI
Tim recently read that, "1 in 10 AI (Artificial Intelligence) engineers think that AI will be the downfall of our civilization." But, it's not all doom-and-gloom; he's also been reading about some exciting advances in AI and Machine Learning (ML) such as Amazon Alexa being able to come up with novel bedtime stories for kids, Cosplay stars trying out new outfits using personalized "generative art", and complex software modules being created from simple prompts.It seems tha
103: Birdsite Go Boom
Back in April, Elon Musk offered to buy Twitter for $44 Billion. He then spent months talking about how terrible Twitter was before finally taking control in October. Everyone knew it was going to be a landmark moment; but, no one quite knew how things were going to play out. With mass lay-offs, a voluntary exodus of talent, threats of "extreme" work hours, and a series of fraudulent accounts that created a swing in the stock market, it's safe to say that it's been a poop show. I
102: Upgrading MySQL For Poop Emojis
Migrating data is always complicated. And, the more data that you have to migrate, the more complex your migration process becomes. This week on the show, Adam shares the lessons that he learned while performing a large, multi-client, multi-cluster, week-long database migration for AlumnIQ. This included moving roughly a dozen different databases from Amazon Aurora (MySQL 5) to Aurora 8. Late nights, indexes, and UTF-8 character encodings, oh my!Follow the show and be sure to join the discussion
101: Error - Error Message Not Helpful!
Web application developers are notoriously bad about building resilient applications. All too often, we implement the "happy path" and then forget (or simply ignore) that many things can go wrong for any number of reasons. However, even if we do account for the "sad path", and we do catch and handle errors, it's not always clear how those errors should be presented to the user. Luckily, Tim has some very practical guidance on the matter that he shares with us on this week'
100: The Spicetacular!
View the video version on YouTube: https://www.youtube.com/watch?v=ykhX08w4yRIIt's hard to believe that we made it to episode 100! When we, four, started out on this journey almost two years ago, we were convinced that we'd either get sick of each other or quickly run out of topics to discuss. But, here we are, still loving it and having a great time. And, to celebrate this milestone in the most masochistic way possible, we've decided to ignite our guts and destroy our butts with a H
099: Technical Debt Isn’t Always A Choice. Or Is It?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week, we're super excited to be getting the band back together! After several weeks of personal and professional obligations, Adam, Ben, Carol, and Tim are all back at it again. And today, we're talking about Technical debt. When engineers talk about technical debt in public, they often try to use financial metaphors; such as taking out a loan in order to buy a house.These
098: In Defense Of Working On The Legacy Platform
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleIf you've listened to the Working Code podcast for any period of time, you've no doubt heard Ben mention the fact that he works on maintaining a legacy platform at InVision. His role on the legacy team was originally focused on security, stability, and bug-related fixed. However, over the years, he's become increasingly aggressive about adding features and actively improving
097: Expectations Of Professional Software Engineers
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew reviews Mike Acton's talk, "Everyone Watching This Is Fired", by way of Adam Johnson's article, Expectations of Professional Software Engineers. This talk outlines 50 characteristics - both technical and non-technical - that go into making you and your team fit for building products and dealing with customers. Some of these line-items makes us feel seen w
096: Why Do You Write?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleA year ago, on Episode 36, we talked about blogs and digital gardens. Today, Adam and Ben, our resident authors, dive deeper into how they got started writing, what keeps them writing today, and how the act of - and the engagement with - writing has changed over the years. The advent of Social Media, along with the doubling of new programmers every 5-years, has certainly created a conte
095: Potluck #6 - Unpopular Opinions Edition
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, we tip our hats to the Go Time podcast and have ourselves an Unpopular Opinion potluck. This means sharing ideas for which we feel strongly; but, which may not be so popular in the broader programming community. Topics include password rotation policies (which are dumb), relational databases (which are stupendous), the technical ability of an executive leadership
094: Disagree And Commit
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audiblePeople don't burn out because they have too much work to do, they burn out because they feel powerless. And, for Ben, feeling powerless correlates strongly with doing work that he doesn't believe in. Which is why he's never understood the notion of, "Disagree and commit". After all, in order to quell the feelings of dissent, he has to numb a fundamental part of who h
093: Sounds Easy! Sure Isn't
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleOn Adam's team, whenever anyone uses the phrase "just" to describe a level-of-effort, everyone jumps in and echoes "just" using air-quotes. Because, as many of us have learned over the years, nothing is ever as simple as it seems, especially in the world of web development. On this week's show, we talk about some of those tasks that end up being way more complica
092: The Power of No
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew talks about the Power of No. For many of us, saying "No" is usually a challenge. Saying "Yes", on the other hand, is usually the path of lease resistance. Saying "Yes" also feels good. In fact, saying "Yes" has so much appeal that we often rush into saying "Yes" to work before we even understand what that work entails or how urgent that work actually is.
091: Side Project Therapy
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleOn last week's show, we talked about "Side Hustles" - those extracurricular activities that we do in order to earn a little extra income. On this week's show, we want to talk about the flip-side to that coin: the coding that we do on the side because we freakin' love coding! Carol celebrates the WordPress site that she's built and now maintains for her son's
090: Passion Projects and Beer Money - Side Hustles
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew talks about side hustles: the very American desire to be making money on the side. While many people in this world need side hustles in order to make ends meet, those in our industry (technology) often incur side hustles as a voluntary affliction. Of course, there's a fixed number of hours in each day; so, you're either earning passive income; or,
089: What Makes a Good Roadmap?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleLike Michelangelo with a block of marble, we engineers often like to dive right into the code and let the application reveal itself to us. And while this may work on a very small scale, this extreme bias-towards-action isn't prudent for larger teams or companies with a growing client-base. Mature companies have roadmaps. They weigh the benefits of building one feature against the op
088: //todo: documentation
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew talks about documentation. Yay! As developers, there's no doubt that we all love consuming great documentation - especially for APIs. But, nary a one of us enjoys the process of creating documentation. Except maybe Adam, who's oddly passionate about communication. For the rest of us, however, documenting our choices and our subsequent outcomes feels a bit
087: Note To Self v0.2.0
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleOn today's episode, we get to pull up the floor boards and once again peer into the dark recesses of Ben's brain: all the random and, frankly, sometimes incoherent chit-cat that Ben has with himself. Listen to him call B.S. on flaky tests; shake his first at overly-specific CSS selectors; preen about GulpJS build scripts; pontificate on the ROI (return on investment) of personal
086: The Working Code Test
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleTwenty-two years ago, Joel Spolsky wrote an article titled, The Joel Test, which outlines 12-steps for evaluating the quality of a software team. At the time, Joel was working with Microsoft, building products that were delivered on CD-ROM. As such, his day-to-day workflow was somewhat different than the kind of work many of us are used to doing today. That said, much of what he had in
085: Shipping Complexity
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThe less code you write, the easier it is for people to review, the less likely it is to contain bugs, and the more likely it is to merge cleanly into your main integration branch. The converse of this tends to also be true: the more code you write - particularly within a long-lived feature branch - the harder it is to review and the more likely it is to contain bugs that cause producti
084: The Architectural Support Team with Jason Henriksen
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, we interview Jason Henriksen who works alongside Carol as a Software Architect at Clear Capital. According to Jason, every engineer does some degree of architecture, whether they know it or not. In fact, there's a lot of overlap between what Jason does and what your average web developer does. Which is why he calls his team the "Architecture Support" t
083: Alternate Timelines
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleWe all love writing code. Honestly, here on the show, it's hard for us to imagine doing anything other than building beautiful digital products for our beloved customers. But, as a thought experiment - in these post-pandemic times - the crew wanted to share some of the other professions that could have been. From ice cream truck driver to organic chef to movie theater entrepreneur,
082: GitHub Copilot - Is It Worth It?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew talks about GitHub Copilot. After being in private beta for several months, this "AI pair programmer" is now generally available as a paid product for $10/month or $100/year. But is this something people want to pay for? Will a price put the kibosh on grassroots adoption? Are there pros-and-cons to different pricing models? And, is there ever goin
081: Total Randos
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew shares some of the random stuff that they've been dealing with at work. Carol is about to submit a PR (Pull Request) that accounts for 8-weeks worth of commits; and, she's already warning her engineers that it's gonna be beefy! Ben wonders if he's been fooling himself into his love of Lucee CFML's "Tag Islands"; or, if there
080: Other Duties As Assigned
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleIn each role, there are the responsibilities that get listed on the job board; and then, there's all the random stuff that they ask you do to once you show up. On today's show, the crew discusses the latter: those strange and wondrous "extras" that sometimes get rolled-up into an honest day's work. Topics include: buying nipple cream, picking up cigarette butts, clea
079: Potluck #5
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, Adam and Ben examine a variety of random topics: Adam loves watching conference videos on YouTube; Ben is feeling terribly insecure about falling behind in the field of web development; neither of us can believe that Elon Musk is forcing his employees back into the office; and, how is it possible that some people seem have so much free time - what the heck is thei
078: UX - Pushing Users Into The Pit of Success
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, Adam and Ben talk about the "unhappy paths" in software design. An unhappy path - also known as a "sad path" - is anything that can go wrong during the consumption of a product. Some unhappy paths are nothing more than unanticipated edge-cases in the code while other unhappy paths are caused by poorly designed user interfaces (UI) that lack necessa
077: Mid-Manager Blues
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week, on the show, we check-in with Carol to see how she's adjusting to her new role. Carol was recently promoted to a position in which she is a Manager some of the time and an individual contributor (IC) the rest of the time. This setup has a lot of advantages; but, it is not without its challenges. Just last week, she was deep in the coding zone, on the cusp of solving a har
076: Ben Needs A Minute
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleIf Ben crushes it in the woods, and no one is there to see it, is he truly crushing it? Such are the philosophical questions that go through Ben's brain as he continues to pour his heart and soul into a legacy product that no one else at the company cares about. That is, except for the customers that still log into the legacy platform on a daily basis. Don't those customers deserve some
075: What Problem Does This Solve?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleCarol - who has recently stepped into a managerial role - is facing an interesting situation: her company wants to start implementing process changes across the board. However, Carol's own team is kicking ass and taking names; and, she can't understand how any of the proposed changes will actually make her team more effective. In fact, she believes that some of the changes will be count
074: What's On Your Workbench?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew talks about what they've been working on recently. Adam is exploring the use of AWS (Amazon Web Services) message queues and S3 in order to manage nightly data processing in a way that won't crush his application servers. Tim has been approved to use the national "Do Not Call" list and is now working to integrate this list into his communi
073: Our Golden Parachute
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleIn the 20+ years of Ben's career, he can't remember ever seeing a person in a leadership position get fired. He's seen plenty of people leave a company to "explore other opportunities", typically accompanied by much praise and congratulations. He assumes that at least some of these people were actually fired; but, were allowed to depart under friendly terms. He poses
072: Too Many Hats
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew discusses a topic submitted by Mingo Hagen: Do developers wear too many hats, do they spread themselves too thin, and does the work suffer because of it? There are clears benefits and drawbacks to wearing a lot of hats. Knowing a little bit about a lot of things can cut down on communication overhead and enable teams to move faster. But, without specializ
071: Potluck #4
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew discusses a potluck of tasty topics. Ben is trying to figure out what project he wants to use as his vehicle for learning Docker and container-based deployments. Adam wants to completely overhaul his data synchronization workflow, but is having a lot of trouble getting excited about the work (despite all of the exciting ingredients). Carol is being worn-d
070: Self Reflections
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew looks back on the first 70 episodes of Working Code and reflects on what's working, what's not working, and what we'd like to see in the future. I think we all agree that we've made it a lot farther than we thought we would. And, thanks to Matt at Z-Cross Media, we always end up sounding totes profesh' on tape even when we sounded like
069: Now I'm Catching Events
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week, Carol talks to us about how her Support team manages communication with their customers. And, how she'd love to find an easy way for one Support engineer to know that another Support engineer is currently working on a given ticket. She's been exploring the use of WebSockets and "presence channels" as a means to provide feedback within the Support platform. And, more generally
068: Hire Women, Inspire Women
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, Carol leads a discussion about communication styles, recruiting, and the power of seeing female role models at all levels of an organization. From the onset of her career, Carol has both been witness to and been taxed by a general lack of female leadership in the engineering world. From the college advisor who steered Carol away from computer science to the boss t
067: We Have Feelings On Logging
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleUnder the right circumstances, application and error logs can be magical. They can shed light on how a system is behaving - or misbehaving; and, they can provide a path forward in an emergency situation. But, logs do come at a cost. Not only is there an actual dollars-and-cents cost to aggregating and storing logs, having too many logs can end-up reducing the signal-to-noise ratio which
066: Make Meetings Suck Less
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleFor many of us, meetings feel like a necessary evil. We love to complain that we have too many meetings; and, that most of them are useless. However, forgoing meetings and attempting to solve problems and reach consensus asynchronously can feel like even more of a drain on our time and effort. We all have some degree of meeting PTSD. But, none of us is really sure what to do about it.Th
065: TDD In the Trenches with Scott Stroz
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleTesting code is like taking out insurance: until you need it, it can be hard to understand why it's so important; it can be hard to understand what everyone is raving about. And so, you continue writing your code without tests. And, everything is fine, until one day it isn't. And in that moment, you finally see for yourself what value automated testing could have brought to the
064: Should I Stay Or Should I Go?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleGone is the era of the life-long employee. It's hard to even imagine rising up through the ranks, grinding out the decades, and then retiring - with a pension - all at a single company. Companies don't see their people that way anymore - a perspective that is, no doubt, shared in both directions. But, if you're not going to plant your flag and hunker down for the long-haul,
063: Nobody Makes It Out Alive!
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleVan Wilder reminds us to enjoy the moment, warning us "Don't take life too seriously, you'll never make it out alive." And while this is a jocular take on our own mortality, the truth is such that the total cost of death isn't levied against the dead, it's wrought upon the living - the ones left behind. To ease their transition in the wake of loss, we can prepare for own departure; and,
062: Note To Self
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleThis week on the show, the crew peers into the deep, dark recesses of Ben's mind and tries to understand what exactly makes him tick. Composed of equal parts rant and dialogue, the topics range from throwing errors on delete operations, handling bulk operations idempotently, feeling guilty about using backup cameras, keeping large task backlogs, reprioritizing tasks on-the-fly, tran
061: Software Is For People
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleMany companies are seeded from the same basic concept: customers have a problem to be solved and the people on the Product team know how to solve it. This customer-centric approach is what gives a product much-needed early traction, helps build a loyal community, and lets customer-and-company alike feel as though they're moving in the same direction.As a company matures, however, th
060: Technical Debt
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleEvery software application has "technical debt". Some of that debt is acquired through meaningful consideration: short-term value gained in lieu of longer-term ease-of-maintenance. And, some of that debt is obtained incidentally through a lack of experience and a dearth of business knowledge. This week, the crew discusses technical debt in their web applications. And goes so far
059: Everything Old Is New Again
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleIt's easy to be flippant about how often our industry seemingly "discovers" the programming practices and paradigms that experienced engineers have been talking about for decades. But, the truth is more complicated and nuanced. The landscape of the web is evolving at a breakneck speed; processing power and storage capacity are going up while costs are coming down; and, the needs of diff
058: Do 10x Developers Exist?
SponsorsAudible - get a free audiobook from Audible with no strings attached at https://workingcode.dev/audibleSometimes, people on the internet are wrong. And this week, that person is Tim, who said something inaccurate about the .net (dotnet) framework. Thankfully, our de facto .net ambassador, Nathan Strutz, sent us a recording that shed light on the current state of .net, its open source architecture, its ability to run on many platforms, and its sweet, sweet modern features. Thank you so mu
057: Goals for 2022
New Year's Resolutions may be considered a bit cliche by some; and even a bit silly by others; but, there's always value in any opportunity to pause and take stock of your own situation. On this week's show, we share both our tech and our non-tech goals for the new year. As it happens, we all want to be in better shape - shocking, I know. But, when it comes to technology - and tech-adjacent interests - we all have different areas in which we wish to increase our proficiency: build sy
056: Best of 2021
With a year of Working Code episodes behind us, our podcast has come a long way. But, we're still trying to figure things out: we are continuing to play with the show format, we are each growing into our own voice, and hopefully we're putting together some content that adds a little something, something to the boarder web-development conversation.If, in our ramblings, we ever sound like we know what we're talking about, it's due in large part to the skillful audio editing and eng
055: Sales Fails
When you consider the hourly-rate of everyone in the room, meetings can be shockingly expensive. And, if it's a sales meeting, both actual and opportunity costs are on the line. Which is why we practice our sales pitches and offer up a sacrifice to the Demo Gods. But sometimes, that's not enough. On today's show, Tim and Adam share their sad tales of sales fails; and illustrate why it's so important to go into any meeting with a rock-solid plan-of-attack.Follow the show and be sure to join the d
054: We're So Quacked
At 3:30 AM the day before Thanksgiving, Ben received an emergency page about a failing API end-point. Rushing to his desk, groggy-eyed and in various states of undress, he jumped into the #incident channel on Slack to see what was happening. What unfolded over the next 30-hours was the manifestation of Ben's worst nightmare. The moment he had been dreading for the last 4-years had finally come to pass: two of his database columns had run out of storage space! Using feature flags, emergency h
053: Product Management with Adam Lehman
On this week's show, Tim interviews Adam Lehman, the Director of Product for Marketplace Core at Spotify. Of course, many friends-of-the-show will know Adam more intimately as the former Director of Product and Engineering at Adobe where he helped drive the Adobe ColdFusion product and community forward. Or, as Tim puts it, where Adam "lead by throwing grenades". Like most Product Managers (PMs), Adam never quite envisioned himself as a PM. He started out as an engineer who ended-up
052: Starting Your Own Business, with Steve Rittler
On this week's show, Adam interviews his long-time friend and boss Steve Rittler, founder and CEO of AlumnIQ. Once a software engineer himself, Steve discusses his journey from individual contributor (IC) to business leader; and, how he sees his role as the boss from both a practical and a philosophical standpoint. For Steve, it's always been about changing the world using whichever tools he had at his disposal. And, when those tools were no longer effective, that's when he started t
051: You Are Replaceable
Engineers like to believe that they are non-fungible. That is, that they are not replaceable - that they are special and bring a unique set of skills and perspectives to the table. And, for some engineers at early-stage companies, this may be true. However, as companies grow and evolve and become more sophisticated, the cold truth sets in: we are all replaceable. Even Apple - at this point in its trajectory - continues to innovate without the iconic Steve Jobs.This week on the show, the crew tal
050: Where Do You See Yourself in 5 Years?
This week on the show, the crew talks about where they each see themselves in 5 years. This is not an easy thought-experiment, especially in a technology landscape that changes so rapidly. Are we getting better at the things we do today? Or, are we changing our focus, our role, and maybe even our job? Do our personality traits of introversion and extroversion influence our career trajectory? Or, can we learn to lean into and enjoy any type of position? Should we be following our "passions
049: Revisiting Replatforming - There Is No Correct Answer
One of our fans on Patreon is about to embark on a large "replatforming" endeavor. His team has decided to move away from their "traditionally coded" application (think hard to maintain, big ball of mud); and, will soon rebuild the server-side aspect of their application using a new language. The team isn't yet sure what language they'll use (this is how the topic came up in Discord); but, they know that they want a statically typed language with a strong separation of co
048: // TODO: Microwave ToDo List
Surgeons and pilots have known for years that checklists literally save lives. And, while programming is rarely a life-and-death stakes situation, the humble ToDo list continues to serve as a powerful tool in the developer toolbox. This week on the show, the crew talks about how they manage their ToDo lists using comments, software applications, and physical notebooks. And, while we each have our preferred methods of organization, it's clear that even in a predominantly digital world, there
047: Email Ruins Everything
With an increasing amount of work being performed within a distributed or hybrid team model, there's a push to move more and more communication into an asynchronous workflow. Whether through email or collaborative document editing, there's a growing perception that collaboration becomes more efficient when each person can participate in their own time. But, is this really true? Or, are we fooling ourselves into thinking that the cost of "homework", "email fatigue", and ex
046: Secrets Management vs. Premature Optimization
When two systems have to communicate with each other, the security of transmitted messages is typically enforced through the use of shared secrets. Whether with encryption or one-way hashing, the receiving system can use a shared secret to verify that a producer's message has not been tampered with or spoofed. Rotating these shared secrets can be complicated; and, may even have to take place over an extended period of time depending on what's considered to be an acceptable window of back
045B: The Aftershow
Because this week's episode was short, and because we've wanted to give the public feed a taste of what's in the aftershow, here's a bonus episode. This is the aftershow from episode 43.
045: Join Our Discord
This week's episode is all about the podcast's Discord server going public. We're now inviting all listeners to join us and participate in the community chat. Why would we want to do that, and what's in it for you? Answers to these questions and more now available as sound waves for your ear holes.Join our Discord here: https://workingcode.dev/discord/Follow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. Or, leave us a message at
044: Facebook's No Good Very Bad Week
Between Frances Haugen's testimony, a meta outage of Facebook properties including Facebook.com, Instagram, and What's App, and a $7 billion drop in Mark Zuckerberg's personal wealth in a matter of hours, it's safe to say that Facebook has been having a terrible, horrible, no good, very bad time of it. There have even been rumors that Facebook's "work from home" policy is being rescinded; though, such claims have been denied by the company. Today, the crew talks about
043: Relay Race Programming
You might think that "programming" is a relatively straightforward concept: take abstract ideas and codify them into lines-of-code (LOC). But, within this broad abstraction, there are a multitude of implementation details. Some engineers love to hunker down and write code inside a metaphorical bubble; mob programmers love to dog-pile on the same machine, blitzing the problem until it's obliterated; and, pair programmers methodically alternate responsibilities between a "driver
042: Potluck #3
This week on the podcast, the crew discusses various topics: "Strong opinions, loosely held" - is this a statement with noble intent? Or, does it encourage people to dismiss past evidence and the experiences that have shaped their current view of the world? When is it time to upgrade old technology choices? When the time it takes to upgrade is time not spent on building features, at what point is that cost justified for the business? GitHub Copilot helps you write code, but who gets cred
041: The Third Age of JavaScript, with Shawn @Swyx Wang
Shawn Wang - known as "swyx" online - is a financial investor turned software engineer and journalist. With a passion for history and a knack for "trend spotting", Shawn uses a keen analytical sense, honed through years of financial due diligence, in order to organize the world of web development into a series of epochs, each with its own theme. He's recently codified these observations in a blog post titled, The Third Age of JavaScript. Today, we're thrilled to have Shaw
040: Automaticity Is a Weird Word
The other day, Ben was listening to an episode of the MongoDB podcast in which Mat Keep shared a story about the adding of atomic transactions into the MongoDB product. Mat said that the engineer who spearheaded the effort used to joke about the fact that his team was spending a huge amount of time working on a feature that 90% of developers would never need. For Ben - who leans heavily on transactions for referential integrity - this sounded like an crazy statement. But is it? Are database tran
039: Ben's Future at InVision
For last 8-years, Ben Nadel has poured his heart and soul into InVision, a product that drives design collaboration. During this period, his area of expertise has focused on the (now named) "legacy" platform - the ColdFusion and AngularJS monolith that has built the business into what it is today. Soon, however, the "legacy" platform will be wholly subsumed by the "modern" platform - a distributed, microservices architecture built on Go, Node.js, and React.In today's
038: Holding Developers Accountable
Recently on Facebook, Hal Helms —highly respected author, speaker, and computer programmer— shared some of his views on the use of "Sprints" to drive engineering work on a product team. In short, he despises the idea of asking engineers to commit to achieving a goal within an estimated time frame. He likens this to asking prisons to build their own gallows. Everyone is terrible at estimating everything. So when companies start to use each "estimate" as a "contract" with which to punish engineers
037: Brian Klaas Talks Cloud
As we alluded to in Episode 20: Carol Needs a Consult, there are a lot of different products under the Amazon Web Services (AWS) umbrella. In fact, the number of products is somewhat mind-boggling. It can be overwhelming just figuring out where to start, let alone understanding which service is right for which job, how to configure that service, and how to get that service to integrate with all the other AWS services. Thankfully, we have Brian Klaas as a very special guest on today's episode.Bri
036: Blogs and Digital Gardens
Blogging is a win-win activity. Not only does the act of writing help burn knowledge into your long-term memory, it also acts as an easily searchable repository of your own thoughts. Furthermore, it helps other people solve similar problems when they stumble upon your blog in the future.The value-add of blogging is obvious; the way start blogging is less clear. This week, Adam, Ben, and Tim talk to Carol about her desire to start blogging. The discussion touches on tooling, platforms, hosting, c
035: Being a Swamp Guide
Software is never "done". And, as it continues to evolve over time, it often gathers a lot of accidental and essential complexity. This makes it harder to on-board new engineers into a legacy application (and a legacy organization). Enter swamp guides: the aged and battle-hardened staff who know where all the bodies are buried. These guides can hand-hold new team-members as they walk fresh-eyes through the fog of war, helping them to understand where everything lives and how everything works. An
034: Some of My Best Friends Are React Developers!
This week, Adam talks about his "obnoxious optimism": his general tendency to believe that all problems can be solved and that everything will just sort of work itself out. This optimism allows him to take action and make decisions quickly. However, it also means that he may not be fully considering the future cost of his choices.This is not uncommon in the programming world. Engineers are often criticized for choosing technologies based solely on their merits and almost never on their d
033: Software Patents
Do you write "new and original" code that is "useful" and has a "non-obvious function"? If so, your code may qualify for a patent. A patent can help prevent other people from using or selling your software. That said, which engineer among us isn't write new and original code every day? Software patents are weird and fuzzy and open for way too much interpretation. And, in the software industry, they seem to give "patent trolls" a lot of unpleasant leverage.This
032: What Comes After Senior Developer?
The world of web development is still a nascent industry. According to Robert "Uncle Bob" Martin, the number of programmers roughly doubles every 5-years. Which means that most of the developers that you interact with are relatively new and relatively young. It's not often that you look around and see developers in their 40s, 50s, and beyond; because, frankly, the web - as we know it - isn't even that old.Because of the ongoing evolution of our field, it can be unclear as to what
031: To The Cloud! But Why?
There is no one thing that is "The Cloud". Instead, there are a set of general characteristics that underscore cloud technologies: we can provision, deprovision, and scale resources at will; we don't need to manage those resources; and, we only pay for the resources that we use. But, even within this definition, there is a broad spectrum of technologies that more-or-less fit the bill. From Geocities, to managed hosting, to elastic clouds, to distributed edge-computing, lots of things kind of loo
030: Carol's Consult Catch-Up Conversation
Ten weeks ago, in Episode 20, Carol described a problem at work in which her customers were using Support Tickets as a means to look-up information in lieu of logging into the customer dashboard. This email-based workflow has been putting a large burden on the Support staff. And, Carol wanted to brainstorm on ways in which she could improve the overall situation and the efficiency of her team. Today, we circle back with Carol to see how it's going. Which is to say, to see just how hard Carol is
029: Potluck #2
This week on the podcast, the crew discusses various topics: What would you do as an engineer if you knew you couldn't get fired? What conscious and unconscious fears might be holding you back from executing on tasks that you know are important? What does a healthy work-life balance look like after Covid-19? Are you one of the estimated 40% of employees that are considering quitting their job now that they've had the opportunity to work from home? In an increasingly remote-friendly cultu
028: Buy vs. DIY
Engineers love to build things. Materializing an abstract concept into the form of a working piece of software is one of the most thrilling experiences available on planet earth. As such, we engineers often favor building new software over buying existing solutions. However, doing so takes time and energy; and, incurs a potentially-large opportunity cost for the business. It can be difficult to know if such a trade-off is worthwhile for the business in the long-run. This week, the crew examines
027: Giving Technical Presentations
As Jerry Seinfeld joked, when it comes to funerals, most people would rather be the one in the casket than the one giving the eulogy. Because, public speaking isn't easy. And, for many, it's a source of great anxiety. A technical presentation takes that anxiety and compounds it by layering on a need to provide complicated information in an engaging way. Part deep-dive, part story telling, a compelling technical presentation has to present enough information on a topic so as to deliver me
026: Passwords
This week, the crew talks about passwords. Web applications store a great deal of sensitive information. But, there is something categorically different about storing passwords. Because—if compromised—a password from one application may grant a malicious actor access to another application. As such, it is essential that we store our customers' passwords using modern, one-way hashing algorithms that protect the underlying payload against increasingly powerful compute resources. And, that we h
025: Breaking Up With Your Stack
There's no one reason that companies move away from or onto a technology stack. Sometimes a given technology is no longer actively updated; sometimes the pool of developers that uses a technology shrinks, making it hard to hire new engineers or find community support; sometimes people just like the new hawtness; sometimes licensing costs become prohibitively expensive; sometimes there's a leadership change at your company; and, sometimes a team just believes that a new technology will so
024: The Archetype of an Effective Developer
We all love the Hollywood portrayal of the "brilliant programmer" who can step in and just crush it at a moment's notice. We've probably all fantasized about being that programmer. But, that's not how people work. And it's not how teams work. Highly effective developers don't just "crush it" - they cultivate good habits that they then apply consistently, day-in and day-out, for years. This week, the crew discusses which habits make - or break - the most effect
023: Book Club #1 Clean Code by "Uncle Bob" Martin (pt2)
This week, the crew meets to finish their review of Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin (aka, "Uncle Bob"). This book is filled with so much thought-provoking information that it took us two episodes to get through it! And, while some of the practices in the book didn't quite connect with the programming languages that we use or the types of applications that we build, our general consensus is that most of the suggestions in this book are spot-on.A
022: Book Club #1 Clean Code by "Uncle Bob" Martin (pt1)
This week, the crew talks about Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin (aka, "Uncle Bob"). Recommended to us by friend-of-the-show Adam Cameron, this book outlines a series of "best practices" that programmers can use in order to create applications that are easy to understand and easy to maintain. Just imagine if applications became easier to understand over time - not harder; that is the goal of this book.A lot of the approaches feel obvious onc
021: Listener Questions #2
This week, the crew responds to questions shared by our wonderful, wonderful audience! Nathan Strutz - who called the Working Code Hotline - shares his exciting journey into feature flags; Ryan Mueller wants to compare and contrast Kanban and Scrum style project management; and, LD2 covers the gamut with questions regarding staying-up on new technology, the importance of having a GitHub profile, and whether the hosts prefer having a deep knowledge in one area (ie, a technical expert) or a shallo
020: Carol Needs a Consult
At Carol's company, Support emails are sorted, labeled, and processed using a manual - and very expensive - workflow that won't be able to scale with the increasing demand. As such, Carol is looking to build a robust auto-reply system on Amazon Web Services (AWS) using machine learning (ML). At least, that's the long-term goal. In the near-term, she'd be thrilled just to get more users to log into the existing web-portal instead of using email as their primary means of communicating with Support
019: Makefiles
Adam Tuttle first came into contact with makefiles (pronounced "make files") back in high school when compiling code. But, at the time, he didn't really understand what they were or how they worked - he was just a consumer. And, after high school, years went by in which he never gave makefiles a second thought. That is, until, one fateful conversation with Mark Mandel.Mark explained that he used makefiles to create aliases for complex Docker commands. This piqued Adam's curiosity
018: Feature Flags (Finally!)
For Ben and his team, few things have fundamentally changed the product development life-cycle as much as LaunchDarkly, a feature flag management platform. Feature flags allow software engineers to separate the "deployment" of code from the "releasing" of code. Which means safer deployments; instantaneous roll-backs; smaller Pull Requests (PRs); incremental feature development; load-testing with real-world traffic; and - generally speaking - a big bowl of awesome sauce that you d
017: Premature Optimization
This week, the crew talks about "premature optimization". As Ben explained it to his wife, this is when you "solve problems that you don't have yet". But, what kind of problems are we talking about? Missing features? Missing methodologies? Missing performance characteristics? It seems that every aspect of the development life-cycle offers up potential pitfalls in which we may chase "perfection" needlessly when all we really needed was something that was "good enou
016: Interviewing
This week, the crew sits down to talk about interviewing, both from the side of the interviewer and from the side of interviewee. What are we looking for? What are the red flags? What kinds of questions should we be asking? Are we putting too much faith in the sanctity of the interview process? And, why the heck does Zappos offer to pay you $2,000 not to work there?!This discussion is particularly insightful because Carol shares her perspective as a female which includes things most men will hav
015: Potluck #1
This week, we're trying something new: each host has brought with them a topic for the crew to discuss. Topics range from considerations about data-context; what does and does not make for a good manager; code that we're proud to have written; and, what it looks like when a team develops a strong bias for action. One particularly thought-provoking matter is the fact that 20% of Tim's clients prefer to make payments over the phone even when given a web-based option. This is a great re
014: Zen and the Art of Pull Requests
Ben has "feelings" about many aspects of web application development. And, after working with git and GitHub for the last 10-years, he's formed a lot of strong opinions - oftentimes strongly held - about how Pull Requests (PRs) should be created and managed within a team context. For example:Code completed is more important than code being written. As such, if an open PR sits around for more than an hour, your team has failed to review said PR in a timely manner.And:If a PR takes mor
013: Do What You Love And You'll Never Work A Day In Your Life
A friend of Ben's once said, "If you hate your job, you'll spend 5-7ths of your life waiting for the weekend." This is a dark way to think about existence. And, to address the flip-side of that coin, Mingo Hagen suggested that we talk about the phrase, "Do what you love and you'll never work a day in your life." This is a significantly more optimistic view on the human experience; but, does it hold up to scrutiny?This week, the crew talks about the privilege of being
012: Idiomatic Code
Many programming languages have a sense of idiomatic code: the "blessed way" to solve a particular set of problems with a language's native constructs. These patterns exist to help people work more effectively together; and, to help new developers adapt to the language. But, unfortunately, the expression of idiomatic code in some communities shifts from "carrot" to "stick", getting used to separate the "right" way from the "wrong" way, thereby creating
011: Listener Questions #1
Cunningham's Law states:The best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer.The crew recently experienced a bit of this law first hand in response to their episode on Testing. Adam Cameron - friend of the show and long-time friend of the hosts - posted a scathing (but loving) rebuttal of basically everything that Ben said in episode 009. This week, the crew meets to discuss Adam's post; and, to dig more deeply into how testing
010: Scaling
An engineer at SquareSpace once referred to his company as "an overnight success, 7-years in the making." This cheeky insight pays homage to the marathon of work that is often required when building a successful product and / or business. Which begs the question: when is it appropriate to start thinking about scale? Should you be taking it into account during early ideation and the construction of your MVP (Minimum Viable Product)? Or, should you kick the can down the road with the assum
009: Testing
There are very few people in the programming world who will argue against the idea of testing software. But, when it comes to the mechanisms though which code is tested, the conversation starts to get interesting. There are those who feel that TDD - Test Driven Development - is "the way"; and, that any divergence from TDD is not only laziness but is, in fact, borderline malfeasance. At the other end of the spectrum are the people who perform all their testing manually; often, relying on
008: Origin Stories Pt 2
All super heroes have an origin story. And, so do nerds. Many of us can remember back to that moment when we realized that there was magic in the world - magic that we could be part of; and, magic that we could help create. This week, we get personal with the crew and learn more about where they came from, what kind of stuff makes them tick, and what it is that they love about being web application developers.This Part II of a two-part series. Part II will includes Carol and Adam. Part I was Ben
007: Origin Stories Pt 1
All super heroes have an origin story. And, so do nerds. Many of us can remember back to that moment when we realized that there was magic in the world - magic that we could be part of; and, magic that we could help create. This week, we get personal with the crew and learn more about where they came from, what kind of stuff makes them tick, and what it is that they love about being web application developers.This Part 1 of a two-part series. Part 1 includes Tim and Ben. Part 2 will include Caro
006: Hopes for 2021
Oxford Dictionary included "doomscrolling" in their "word of the year" report for 2020; we're all feeling pandemic fatigue; many people still believe in wide-spread election fraud; the Georgia senate race was a nail-biter; and - oh yeah - we recorded this show the day after the storming of the United States capitol building.It's all been more-than-a-bit surreal.But, in the face of such physically and emotionally trying times, we look forward to a new year of possibility. Whether it's taking cont
005: Monolith vs. Microservices
Monoliths are bad! Microservices are good! These are the "obvious" truths that many engineers hold close to heart. So, why is it that Ben Nadel has been slowly merging some of his Microservices back into his Monolith? It turns out that a Monolith - like a Microservice - is a valid architectural choice that carries its own set of pros and cons. And, for him, his team, and their particular set of skills, the Monolith is proving to contain the right set of trade-offs.This week, the crew tal
004: Impostor Syndrome
Impostor Syndrome is a psychological pattern in which people doubt their skills, talents, and accomplishments. Most of us have felt something like this in our careers, whether it's a fleeting moment or a persistent fear that we're going to be discovered as frauds. These feelings can be overwhelming, even debilitating; but, they can also drive us towards self-improvement.This week, the crew talks about their own mistakes, feelings of fraud, insecurities, and how Impostor Syndrome manifest
003: Burnout, Mental Exhaustion, and Productivity
Your hostsAdam Tuttle -- Twitter, WebsiteBen Nadel -- Twitter, WebsiteCarol Hamilton -- TwitterTim Cunningham -- TwitterFollow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter & Instagram. New episodes weekly on Wednesday.Triumphs & FailsCarol's Triumph: Her college freshman son, majoring in computer science, called mom to ask for comp-sci help!Ben's Fail: R&D effort exposed that he doesn't remember how to start a new project any more. T
002: Working from home
Your hostsAdam Tuttle -- Twitter, WebsiteBen Nadel -- Twitter, WebsiteCarol Hamilton -- TwitterTim Cunningham -- TwitterFollow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter & Instagram. New episodes weekly on Wednesday.Triumphs & FailsBen's Triumph and Failure: He finally backs up his computer! Only 5 years in the work.Tim's Triumph: He was invited to speak at a virtual conference this week as a community expert. It was really amazing.Carol'
001: Adam's Secret Shame
Your hostsAdam Tuttle -- Twitter, WebsiteBen Nadel -- Twitter, WebsiteCarol Hamilton -- TwitterTim Cunningham -- TwitterFollow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter & Instagram. New episodes weekly on Wednesday.Triumphs & FailsAdam's Triumph: His team realized that they could write a tool that would log, per controller method, how many times it had been run, whether or not it threw exceptions, and some performance stats, which is reducing t
000: Hello, World!
Your hostsAdam Tuttle -- Twitter, WebsiteBen Nadel -- Twitter, WebsiteCarol Hamilton -- TwitterTim Cunningham -- TwitterGet subscribed, share with your friends and coworkers, and follow the show! We're on Twitter & Instagram.New episodes publish weekly on Wednesday morning! (US/Eastern)