Human Skills: Leadership

Leadership is a tricky topic. When the subject of leadership comes up, most people automatically think of the person “in charge” as the natural leader. They rightly look at them as the person responsible for leading them. But leadership is broader than the person “on top.” Leadership describes behavior, rather than position, and emphasizes how we act, rather than the titles we have.

Let’s take a look at three different kinds of leaders, and the benefits of each. (more…)

Friday, January 7th, 2022 @ 1:10 pm | Comments (0) | Categories: Uncategorized

Human Skills: Communication

How do you communicate?  This question, perhaps more than any other, dictates how successful a person will be in life. As social animals, humans rely on and prize communication skills at or above all others. We elevate great orators to positions of power, and we celebrate beautiful marketing campaigns that communicate clearly.  Despite the fact that every human everywhere uses communication with others on a daily basis, communication is still an area where many people struggle. With developers, this problem can be particularly acute, and yet the complexity of software development is a practice that requires effective communication to work properly. The famous bit, “Who’s on first?” illustrates the challenges of communication well. In this bit, Abbott & Costello discuss baseball. Costello asks Abbott, “Who is on first?” Abbott responds with, “Who is on first.” Costello becomes more and more irate as the two fail to communicate that “Who” is the name of the first baseman. This bit is probably the most famous comedy routine of all time, based on a simple miscommunication between two people, using simple, everyday language.  So, how do we communicate effectively with each other? 

Communication is about ideas


Tuesday, December 14th, 2021 @ 7:54 am | Comments (0) | Categories: Uncategorized

Spotting High Levels of Technical Debt In An Interview

We’ve all been there before: we’re sitting across the table from someone, who is interviewing us for a new position. We’re getting close and we know it because the conversation shifts from talk of “…if you come on board…” to “…when you come on board…” And suddenly you have a thought that strikes fear into the core of your heart: what kind of code base am I getting myself into?

The truth is that nobody is ever going to volunteer that their code base is a complete mess (I’ve had it happen maybe once), and short of asking to see the code before you start, you’re not going to really know what it’s like until you dig in. Many if not most companies would be reluctant to open their code base to an outsider, so how will you know in advance?


Monday, July 22nd, 2019 @ 1:56 pm | Comments (0) | Categories: Uncategorized

Breaking the Single Responsibility Principle

Whenever I give lessons on the Single Responsibility Principle, I always teach that object creation is a job, and that it should be separate from classes that are using the objects. (more…)

Wednesday, May 13th, 2015 @ 8:00 am | Comment (4) | Categories: PHP, Uncategorized

Creating services you won’t hate

The biggest complaint people have about object-oriented design is where they put all the “glue code” that ties together a bunch of objects and makes them work well. For many, this place is the controller, but as I’ve covered before, most of this logic belongs in the model. In fact, the model should be where all business logic resides. And yet, it can still seem difficult to figure out precisely how to manage all of these behaviors in one place and still follow the best practices of object-oriented design and development.

But there is a way to accomplish this that won’t make you crazy. It’s accomplished by making use of “services” – bits of code that act as the “glue code” for all the different objects that have to operate.


Tuesday, May 5th, 2015 @ 8:00 am | Comments (0) | Categories: Best Practices, Object-Oriented Development, PHP, Uncategorized

Using GitHub for things other than code

At SunshinePHP in January, Elizabeth Naramore gave a talk on how GitHub uses GitHub internally for projects that may or may not involve code. For example, all requests for sponsorship are turned into issues, which are tracked, tagged and labeled.

After this talk, I decided to create repositories for the purpose of tracking bugs in my books. The idea was that I would have a place to track the issues, and that readers would be able to file their issues with the books in a place that most of us are familiar with using and interacting already. No writer is perfect, and no book is published without bugs, so it seemed like a win for everybody.


Wednesday, August 20th, 2014 @ 12:44 pm | Comment (1) | Categories: Uncategorized

« Older Entries

Copyright © 2022 by Brandon Savage. All rights reserved.