RSSAmplifier

Blog

KWBlog

Kevin Berridge's blog

kevinberridge.comRSS feed ↗17 posts

Latest posts

Return To Vim?

Many moons ago I was a big vim guy. This was at a time when Visual Studio was super slow, VSCode didn't exist yet, and I was being heavily influenced by folks in the ruby community. However overtime I used vim less and less until basically not at all. Now lately I've been hearing a lot about Zed, but it isn't supported on Windows yet, and that got me thinking about neovim which got me thinking…

Long-lived Feature Branches Are The Worst

How do you deal with development efforts that are going to take a long time? If you only have one thing in-progress this is easy, but who only has one feature in the works a time? We have to be able to work on multiple features concurrently, and ship them when they're ready. So, of course, we use branches in source control to keep our changes separate and then merge them when they are done. And…

We Can't Plan?

In the software industry, if you're not doing Agile you're not doing it right. One thing often ascribed to Agile is this idea that we must rapidly get feedback from real users using real software, that feedback must inform what we build, and that this is the only way because we can't create and follow a longer-term plan. I'm a big believer in feedback, and the power of short feedback loops, but…

What is a Software Engineer's Job?

I've been a software engineer for nearly 24 years. That’s almost a quarter of a century! It doesn't feel like a long time, but when I say it out loud, even I think, "That’s a long time." Yet, here I am, after all these years, pondering a rather fundamental question: What is a Software Engineer’s job? And how do we know if we’re doing a good one? What is a Software Engineer's Job? A cheeky answer…

The Synergy of Components and Good Design

I really like React. It's far and away the best UI framework I've worked with. There's so much to say about why that is, but one of the biggest reasons, and simplest in some ways, is just the power of components. Components are a great design structure and a great code organization structure. They're intuitive and surprisingly powerful due to how they can be nested and reused. Thinking in…

New Again Blog!

Welcome to the NEW new blog! I went to CodeMash again this year for the first time in 9 years (I couldn't believe it had been that long), and I thought I might write a blog post about it. But then one thing led to another and I ended up rewriting my blog instead. So here's a quick post about the new tech stack behind this blog, why I switched, and how it went. You might notice that this "new" blog…

CodeMash 2024

CodeMash 2024 was Jan 11th and 12th this year, and this marked the first time I've gone since 2015 when I did a talk called "The Cartography of Testing" . That's 9 years! I couldn't believe it had been that long. It was great to be back and see old friends, meet some new people, and oh also there were sessions ;) There were some good sessions, and here are my notes about those. CodeMash Session…

Reading List

This is my list of favorite tech books that are timeless in nature because they deal with the "art of programming", as opposed to more traditional technical books that deal with specific syntax or frameworks or tools. I found all of these very valuable because they expanded my programming horizons and, I hope, made me a better developer. For those reasons they are also the books that I most often…

Code Is A Closet

This is a dumb metaphor, probably, and I'm sure I'm not the first person to think of this. But I was using it to explain what I'm discussing with my co-workers all day (on the phone, working from home, what with quarantine and all). Code is like a closet. What's the fastest way to put away your clothes in the closet? Don't look, throw them in! But now how are you going to find anything? Seems like…

Organization Paralysis

I've been learning Piano and jazz theory, it is going slowly, but it is very fun. I bought a giant book of blank Staff Paper so I can take notes on things I'm learning, write out exercises, and hopefully start doing some transcriptions, and maybe other stuff too, I don't know where this journey may take me yet. So, this giant book of 500 pages of blank staffs arrives, and I'm reading The Jazz…

Keyboard

I have become a keyboard nerd, apparently. Not that I wasn't already , I guess , but I've just taken it to a different level. What happened is one of my friends and coworkers recently built a mechanical keyboard, which then flaked out due to cheap parts, so he bought a Vortex Pok3r 60% Mechanical board . If I was aware of boards like this before, I'd never taken them seriously. But when my friend…

Quote-Unquote Research

Programming involves a lot of research, though we don't always recognize it as such and that can cause problems. Research, from Merriam-Webster , who has a great twitter account , is careful or diligent search studious inquiry or examination; especially : investigation or experimentation aimed at the discovery and interpretation of facts, revision of accepted theories or laws in the light of new…

The Ignorance Game

Some of the key code design principles I keep coming back to are the Tell Don't Ask principle, the Law of Demeter, and also Sandi Metz's idea of Blind Trust. But I also find that these are hard to put into practice! To help with that, I like to play a little game I call The Ignorance Game, which I'd like to describe in a bit. But first, let's review these principles. In Growing Object Oriented…

Cover Your Privates

I know I'm not going to stun anyone with this, but, when it comes to class design and C#, not everything should be public. Many years ago I was getting pretty big into Ruby and was spending time learning the language and dabbling with Rails and so forth. But I ended up drawing what I now consider to be a poor conclusion, which was that it wasn't important to make classes and methods private or…

REPL vs. Tests

I fell in love with functional programming when I learned F#. We program in C# at work, but I use F# any chance I get on little side utilities and things. In F# the REPL is a pretty big deal. F#'s REPL is called fsi (F# Interactive). REPL stands for Read, Evaluate, Print Loop. It's just an interactive shell where you type in F#. When Rosyln came out C# got C# Interactive too, and it's built into…

Quality Comes From Space

I'd like to pose a ridiculously giant question to you: how do you take a team of programmers and client reps and designers and clients and a contract and deadlines and build a quality product? Or more simply, how do you build a quality app? We, as an industry, have a lot of answers to this question: Agile, Lean, TDD, Continuous Integration, Continuous Deployment, Domain Driven Design, Acceptance…

New Blog!

Welcome to my new blog! I've had a blog on blogger since April 4, 2007. That's almost 11 years! That's a long time! After all that time, I thought I was due for a change, and I thought it would be fun to build that change myself. Turns out it was fun! I learned a lot of stuff that I probably should have already known but didn't. So let's get meta and blog about the development of this blog! I had…