Podcast Episodes

Surviving A Job Loss

Have a job in software development for long enough, and you'll eventually lose it. Whether through an acquisition, being downsized, or even being fired, no job is permanent. When this happens, many developers are poorly prepared for a job loss. Recovery from an unexpected job loss can take a lot of time and effort, as well as taking an emotional toll. In general, a job loss isn't going to be a pleasant thing to endure, but there a lot of things you can do to at least mitigate the damage.

SOLID Principles

SOLID is a mnemonic acronym for five core principles to designing and implementing solid object oriented code. They can and should be applied to any object oriented design and serve as the core of certain methodologies built around OOP such as agile. The goal of the principles is to make it easier to develop, maintain, and scale.

Pros And Cons Of The Side Hustle

Whether it is producing content such as podcasts, blogs, and videos, consulting, or building applications for personal use or for sale, or even creating other content like music and books, there is a lot to be gained by hustling on the side, a lot of which is much more difficult to get in a regular job. Taking on a side project can help build your career and your skills, provided you do it in an intelligent fashion. If you are considering starting a side project of your own, an early awareness of the upsides and downsides can save you a ton of pain and frustration.

Unit Testing With Test Driven Development

Unit testing is a valuable skill to have, no matter where your code runs or what it does. It reduces the error rate of your software and can often help force a better structure into your code. In addition, this practice can make it easier to make large changes to your software with less risk, as well as making it easier for new developers to understand the structure of your software.

7 Networking Layers

Open System Interconnection (OSI) model is a conceptual framework that defines how to implement network protocols. OSI breaks network communication into 3 upper and 4 lower layers. Each layer is a set of protocols for communicating to other devices at that level, also known as peers. This is a very brief overview of networking layers as there is a lot of information beyond what is it.

Understanding Technical Debt

Technical debt is the idea that there will be a cost in terms of more development work down the line for using certain solutions to problems that arise while developing. The idea here is not to avoid accumulating technical debt but instead to understand what it is and how it can be used properly to benefit your development and your business.

Fairy Tales

Fairy tales were designed to impart life lessons along with being entertaining. Unlike today, where an extended period of adolescence is common, our forebears experienced a world that was much harsher, where the transition between childhood and adulthood occurred much more quickly and where mistakes were much more dangerous.

Evaluating Office Layouts

Knowing what kinds of office environments work best for your personality type, your current task load, and the work environment can yield clues to how to fix it if work becomes unpleasant. Shared space can drive both collaboration and conflict, so it's important to know what can possibly go wrong in a given environment.

Normalize Your Database

Database normalization is the process of organizing data in a relational database. The normal forms are a series of guidelines to help communicate the level of normalization a database. Even if you aren't a DBA or back end developer understanding the basics of how the relational databases are organized can provide insights into working with other developers or existing code.

Command/Query Responsibility Segregation and Event Sourcing

Command/Query Responsibility Segregation (CQRS) creates a logical separation between operations that mutate data and operations that merely retrieve it. In addition, Event Sourcing can help your application collect data that may not be considered valuable at the time of design but may be very valuable later.