RSS.Social

Posts on For my friendgineers

follow: @[email protected]

Posts

Indirection Vs. Abstraction

Testing Is More Than Preventing Breakage

Stuttering

Optimization

Writing Legacy Code

Who Do You Love?

Practice Makes Perfect?

Power Dynamics

Exsqueeze Me?

The Messy Middle

Speed Vs. Quality

Culture: Not Just For Yogurt

Docs First And The Definition Of Done

System Goals

Superpowers And Optionality

Coding Genies and Code Review

Who Are You Writing To Anyway?

AI Isn’t The Answer

But The Requirements Just Changed

New Code Vs. More Code

Listen to Your Data

What Is Performance Anyway?

Time Passes

Licensed Engineers

Engineers Estimate

Constraints

Slow is Smooth, Smooth is Fast

Government Digital Services

Best Simple System For Now

Respect The Problem

Dijkstra On Bugs

Zero Bugs

Emergency Procedures

Careers are Non-Linear

People Over Process

The Power Of Examples

Biases: The Tyranny Of Or

Simple or Easy?

Governing the Commons

More Error Types

Strong Opinions, Loosely Held - Part 2

Virtuous tests

Code Virtues

Motivation

Comments Are A Smell

Diffusion Of Responsibility

Code Coverage Is Not Enough

The Finish Line Is Just Another Milestone

Home Ownership and Software Updates

Verification First Development

Safety Nets and Guardrails

With Apologies to Uncle Bob

Testing Schedules

Test Classification

I'm Back

On Busyness

That's The Way It Is

The Power Of No

What Are You Waiting For?

You ARE Allowed To Think Before You Type

10 Commandments of Code Review

Optionality

Review Your Own Code Review

Demands ...

The Tao Of Pooh

Primitive Obsession and Boolean Blindness

Deploying vs. Releasing

Let It Flow

K. I. S. S.

Adding Estimates

You Broke What?

The Dude Abides

Skill Vs. Experience

Time Periods

Doing It Well And Truly

A look at 2023

McDonald's

Strong opinions, Loosely Held

Stop Designing

Break It Down, Even At Small Scale

It's A Trap

Visibility

Radiating Information

Perspective

Three More Tells

Games And Agency

Shallow Hurry

Lead With the Why, Not the Way

How Buildings Learn

Seeing Like a State

Code Coverage Is NOT useless

Fly Like An Eagle

Milestones Vs. Steppingstones

Complexity And Congitive Load

Monolith Is A Deployment Strategy, Not An Architecture

0, 1, Many

1 > 2 > 0

What You Do Next

What Are You Testing? II

Release Stabilization

Average Practice

Green Fields And Platforms

What Is Done?

High Quality Quality

A Problem Vs. The Problem

All Models Are Wrong, But Some Are Useful

Mea Culpa, Mea Maxima Culpa

Permission, Approval, and Feedback

Any fool can write code the computer understands.

Enter The Conversation

Let Me Tell You What I Want

The Audience Is Listening

Incident Response

Done Done

Engineering Project Risks

E_INSUFFICIENT_CONTEXT

Don't Be Too DRY

Lies, Damn Lies, And Statistics

Pass or Fail?

Autonomy, Alignment, Purpose, and Urgency

The Immutable Past

The Law Of Instruments

Effective Software Engineers

Breaker Breaker Rubber Duck

Forward Compatability

Another Year In Review

Beware Of Bugs

Happy Winter Solstice

Latkes

What Are You Testing?

FFS

Hello Mother

Properties

The More Things Change

Omission vs Commission

Strange Loop

Tensegrity

More Broken Windows

Readability vs Idioms

The Developer's Journey

One Thing At A Time

What's an Internal Customer?

WIP and Queuing Theory

Built-In Functionality

Consensus vs. Consent

Hey, That's Pretty Clever

Thinking Rocks, Magic, Intent, and TDD

Something Smells ... Primitive

What Is Technical Debt Anyway?

Starting vs. Finishing

What happens when you can't even Tidy First?

Customers vs. Partners

Best Practices and Cargo Cults

Applesauce, Names, and Refactoring

Policies

This Is The Way

TDD Anti-patterns

Monitoring vs. Observability

Traditions

Design Is Iterative

Good Habits

Continuous Delivery

Scream Tests

Automation

TAD vs. TDD

Lint Filters And Testing

Measuring and Managing

Software Development Is A Social Activity

Where do defects come from?

A little housekeeping

Elevator Pitch

Why We Test

Careers Pt 3 - Visualizing Progressions

Action vs. Reaction

Story Splitting

Careers Pt 2 – Breaking Down Scope

Scheduling Time For Maintenance

Error Based Development

The Importance Of (down) Time

Careers Pt 1 - Levels

Faster or Slower?

Planning vs Scheduling

QWAN

Do You See What I See?

Don't just take notes

Hangers and Optimization

Loops and Ratios

Weird Person #2 or First Joiner?

Remediation Surprise

Poka-Yoke

Raspberry vs. Strawberry Jam

Planning and Time Sinks

Are Your KRs Really Tasks?

Heros

Are we there yet?

Tasking

All Aboard

Chesterton's Fence

Moving On

Exit Criteria

Reading Roadmaps

Kinds of Costs

Cupid

More Perspective

Beware Of Just

Perspective 2

Write Your Unit Tests FIRST

Sooner, not Faster

Decisions 2 (if ... elseif ... elseif ... elseif ...)

Is That a Choice or a Decision

Flow

Roller Coasters

Getting Feedback

Efficiency

SPOFs

Back It Up There

2021 In Review

Language Matters

Core Services

Constraints and Creativity

Beware the RAT

OODA and Systems Thinking

Scrape To Taste

Better Code

Walking Through The Code

Ignorance As A Service

More WAT?

ADRs and You

PR Comments

Plans and Planning

Cloth or Die

Continuous Education

Like A Baby

Realms

More Comments

The Tyranny of Or

Legibility

Prioritization vs. Categorization

Problem Solving

(Work) Spaces

Inversion

It Happens

Slacking Off

Experience -> Expertise -> Wisdom

Is That An Error?

Empowered?

Cost Of Time

Engineering Excellence

Context Matters

Measurement

Broken Windows

Drive

DNS Linkage

That's a Drag

Flow and WIP

GetXXX()?

++ / --

Speed

Exploitation

Architecture Isn't Everything

Intro to TDD

Prioritization

Architecture vs. Engineering

Missing Tests

On Decisions

Mutators and Accessors

Another 4 Questions

Simple Fixes

Synergy

Tenure

Autonomy != Anarchy

Perspective

Inspect And Adapt

Obligations

Keeping Your Balance

Testing And Failure

Rocket Science

Global Data(base)

Lone Wolf - Hard Nope

Design By Example

Design By Counter-Example

Complex Vs. Complicated

More Than Cruft

Blink Estimation

Tacit Knowledge

Multiple Projects

Gift Giving

Things We Know (or think we know)

Eliza

Proverbially Speaking

When You Have A Hammer

Wat

OOP at Scale

Empirical Software Engineering

Rice and Garlic

Discipline

NFRs and You

Toasters

Pointers and Errors

Understanding

Best Practices?

Leading Vs. Trailing

Dogma

Flow vs. Utilization

We Like Ike

While You're In There ...

Additive Vs. Subtractive

Monolith to Microservice

Technical Debt and Agility

A 'Making' App

Humor

Naked Returns

Not Just About Crows

README.md

OKRs and You

Hyrum's Law

Managing Expectations

Katas

Context

Marie Kondo It

Lessons From Buckaroo Banzai

Tell Me About A Time When ...

String Style

Creep

Artificial Stupidity

Single Responsibility Principle

Tick-Tock

A Question Of Balance

Experimental Results

You're Sunk

Lumpers and Splitters

Functional Options

The Way

A 'Just' Culture

Optimizing Tests

Oracles

Containment

MBWA vs Gemba

Discoverability vs. Findability

I've got you covered

YAGNI, but ...

Ch-ch-ch-ch-changes

MVP

Strict Product Liability

Kinds Of Tests

Cognitive Load

Charting A Path

The -ilities

NoHello

Precision vs. Accuracy

Poor Man’s Polymorphism

Expediency

Help Me

The Scouting Rule

A Short Pause

Current State

Moving Day, Part 2

Moving Day, Part 1

Captain Crunch

Discoverability

Adapters, Facades, and Decorators - Oh My

YAML

Roadmaps

Momentum

Big Bang Theory

Hindsight

Naming Is Hard

Another Year In Review

Unhappy Customers

Java Isn't Dying

On Branching

RCA

This Would Never Occur To Me

ISQ vs ESQ

Long Live The CLI

Another 'Just No.'

Real World Patterns

Don't Cross The Streams

Experience

Forward Looking

Gooooaaaallll

Is 2020 Over Yet?

Owning Your Code

List Comprehension

Outputs vs. Outcomes

Input Validation

Abstractions vs. Interfaces

Decisions, Decisions, Decisions

Take Time

Error Types

Implicit vs. Explicit

Just No

Hofstadter’s Law

Feedback Please

Thinking Like An Engineer

Ubiquitous Language

Just One More Thing

A Little Architecture

GC At Scale

Thesaurus In Use

Inclusiveness

Time Passes

Radar Time

Commits vs. PRs

To Float Or Not To Float

Your Personal Board

Stories vs. Tasks

A Fiddler On The Roof

Uncle Bob Says

Branch vs

Easter Eggs

Silos vs. Ownership

Agile, 3X, And 4X

Context

Now You Have Two Problems

Pass By Value

It's All Around Scope

Git Bisect and Fruit

Interviewing Up

Not Even Wrong

Happy Birthday

OKRs and KPIs

OOP Isn't Dead

What is Scrum?

How Big Is That File Anyway?

Excuses, Excuses

Code Golf

Kata Time

Visualizing Code

Multiple Oopsies

Hiring

Flexibility

What Would You Say... Ya Do Here?

Github And VSCode

To Rewrite Or To Not Rewrite

Semantics

Rockall

In Defense Of Agile

Pick 2

Cycles

Circle Of Life

Linkapolooza

No-Code

SESE

Dependency Injection - NOT

Ideas In The Shower

XY Problem

Good Design

What I'm NOT Doing

Planting A Tree

Situational Awareness

Careers

DDD and Microservices

Kicking It Off

C Shell, Z Shell ...

Ownership

Hello. Who Are You?

A Scrolling We Will Go

Data, Information, Knowledge, And Wisdom

Don't Always Minimize WIP

NO

Natural Science

Tag, You're It

Branching

Why Are We Doing This

Unintended Consequences

Target Fixation

Multi-Mon

Inconsistent Consistencies

Chaos

Capabilities

Vorlons vs. Shadows

POC vs MVP

Under Construction

One Step At A Time

How Old Is Old

Zip It

The First Year

Inheriting Code

How Severe Is Severe

What's Old Is New Again

Backing Up

Getting Started

Know Your Tools

Why Are An Elephant's Ears So Big?

Crawl, Walk, Run

Eventual Consistency

TIL ...

Abstract vs Interface

Toward A Better PM

Logging

Avoiding The Wat

6 Stages Of Debugging

Just Keep Learning

In Defense Of Laziness

Solving Problem Solving

Velocity Is Internal

Everything Can't Be P1

Swallowing The Fish

Pictures Or It Didn't Happen

Optimization

Cost Of Control

The Art Of Computer Programming

Scale Out, Not Up

IP Tables To The Rescue

The 3 Tells

How Much Config Is Enough?

Your Bug, Your Customer's Feature

Disk Errors

Star Wars Security

What's In A URI?

Else, Switch, And Map

Fear, Courage, and Professionalism

80/20 Rule

Awareness

On Language

Priority -1

It Depends

Real Engineering

Outdoor Sports

Murder Mystery Theater - Acting All Roles

GIGO

Test It Again Sam

Syntax Matters

Rubber Ducky, You're The One

Remote Extreme Programming

Bob The Builder

Alles Ist In Ordnung

Time For A Walk

Staying In Sync

Sharding Shouldn't Be Hard

To Test Or Not To Test

Go Big, Go Blue

Concurrency And Parallelism

No UML

Overcommunicating

I Feel You Man

Shiny Happy People

Keeping It Clean

On Conflict

Naming Is Still Hard

Circles

Intro To Architecture

Write It Down 2

Dates Are Hard Too

For Want Of A Nail

Generally Speaking

Guides

Gazinta's and Gazouta's

Cycles Of History

Committed

Stable Code

Architect's Newsletter

Foundations

Onboarding

Incompatible Markdown

WIP It Good

Scope Of Influence

Breaking New Ground

Improve The Daily Work

Dev Ops Book Club

Good Fences Make Good Neighbors

The More Things Change

Rightsizing

FI/RI, Flag, Merge, Rebase, Trunk

2038 == 2000

Architecture vs Design

Engineer vs Technician

Let It Crash

Innovative Data Transfer

GeoStatisticians vs Default Values

Owning Your Comments

Managing Your Inbox

From BeyondCorp to BeyondProd

Technical Debt And Inflation

Panzer Is NOT German For Tank

Quality Is Job #1

Mini-Maxing Your Java

Shift-Left Is Silly

The Wisdom Of James Mickens

Hofstadter's Law

Surprise And Delight

Project Euler

Debugging

Always Learning

Naming Things

Compatibility Mode

Blameless Post-Incident-Review

Counting From Zero

APIs Are For Life

Random Is Hard

The Paper Of Record

The Year In Review

Programming In The Dark

Lessons From Ancient Rome

Failure Modes

Wall Of Perl

On Testing

That's The British Spelling Of ...

Distributed System Superpowers

How Do I Use This Thing?

I Need A REST

What's Your Charter

I'll Tell You Later

DSLs and You

You Are Not Paid To Write Code

The Maintainer

Kilobytes, Megabytes, Gigabytes and Copy-Pasta

Cautionary Tales

Kissenger, Schmidt, and Huttenlocher, and AI

Engineering Principles

PM Is More Than Provider Of Meals

Prediction

Makefiles

Imposter Syndrome, Dunning–Kruger, or Just Do It

Hello vs. NoHello

Asking For Help

Talking To Customers

The Juice Shop

What Are You Reading?

Options

Assumptions

Silos

Software As A Service

GOLANG Oddities

The Gift Of Feedback

Language Security

Growing

Doc Culture

SLOs, SLIs, SLAs

Open Source

One On One Meetings

Old Passwords

Writing It Down

Pattern Matching

Lego

In The Beginning Was The Command Line

Statistics

WAT?

Languages

Platforms

Kaizen

Monoliths vs Microservices

Software Architecture

Following The Vision

Architecture is just software design at scale

Is It Useful

You Get What You Inspect, Not What You Expect

Clean Code

Gosling On Open Source

Strlen Is Surprisingly Hard

Work/Life Balance

Design Paradigms

Campus Recruiting

Tracing

Huh?

Refactoring

Security

Unicode

Knowledge Gaps

Big Data

Meetings

What's In A Name?

Asking Good Questions

SESE Or Not?

Lego Design Sprints

Things You Should Never Do

Lint

Python Vs. Go Vs. Rust

Code Reviews

Building And Scaling A High Performing Culture

Metaprogramming

Beyond Accidental Architecture

Pipes

State Machines

XP

Won't You Be My Neighbor

Interface Driven

Control Theory

Imperative vs. Declarative Programming

Worse is Better

Tech Debt

Customer Focus

Orm?

Errors Vs. Exceptions

Apollo 11

Try?

Hard Things

10X Engineer?

Bounded Chocolate Contexts

Link to Links

SRE

Limiting Cognitive Load

Who Does Architecture

Intro to AI/ML

Learning From Others

Vim Tips

Conway's Law

Getting Sleep

Linux Containers

Obscuring Complexity

The Old New Thing

Write It Down

Cargo Cult

Correctness Vs. Change