Local Kubernetes Development with microk8s

Still in search of a Kubernetes development environment I can run on my development machine that somewhat replicates, I was recently introduced to both the multipass and microk8s projects from Canonical. multipass is a prerequisite for microk8s, so let’s start there. With multipass, you can easily launch and run Ubuntu virtual machines with a single command. ❯ multipass launch --name foo Launched: foo With a virtual machine in hand, you can run execute arbitrary commands on the machine using the exec subcommand....

September 24, 2021 · 2 min · Kevin Sookocheff
Fox photo

Why Foxes Make Better Decisions Than Hedgehogs

The ancient Greek poet Archilochus wrote that “the fox knows many things, but the hedgehog knows one big thing.” In social psychology, these terms have been used as a shorthand for describing two cognitive styles: foxes, who are comfortable with nuance, can live with contradictions, and have different strategies for solving different problems, and hedgehogs, who focus on the big picture, reduce every problem to one organizing principle, and solve problems through that singular lens....

July 15, 2021 · 4 min · Kevin Sookocheff

Connecting Technology to the Needs of the Business

All healthy technology discussions should begin with business goals and use those goals as a reasonable set of guidelines to focus technology investment decisions. These business goals are best articulated from a deep understanding of what the company, the product team, or the marketing team want to accomplish. In a business-first model, technology is forced to balance the desires for technical effectiveness and efficiency with the operational needs of the business....

June 21, 2021 · 11 min · Kevin Sookocheff

The False Dichotomy of Design-First and Code-First API Development

In creating a development workflow for releasing HTTP+JSON APIs, many teams settle on the API description and documentation standard OpenAPI. A natural conversation that takes place after settling on OpenAPI is whether or not you should develop your API using a “design-first” method or a “code-first” method. I believe that narrowing the discussion to these two extremes overly simplifies the discussion. Instead, I prefer to talk about API development as a continuum of development process that revolve around the prominence of the API description document in the process....

June 8, 2021 · 10 min · Kevin Sookocheff
Code photo

The Most Important Criteria for Choosing a Programming Language

One of the recurring themes of any technology discussion is programming language. It doesn’t take much effort to find blog posts with dramatic headlines (and even more dramatic comments) about how shipping a new project with Haskell or Clojure or Elm improved someones job, marriage, and life. These success stories are posted by raving fans that have nothing but the best to say about their language of choice. A common thread running through these posts is that they are typically tied to building out new, greenfield projects....

May 20, 2021 · 4 min · Kevin Sookocheff

Augmenting Spring Data REST with Additional Endpoints

Spring Data REST combines the features of Spring Data with Spring HATEOAS to make it easy to build hypermedia-driven REST APIs on top of Spring Data repositories. The basic functionality provided out of the box creates and exposes simple REST endpoints for performing CRUD operations on Spring Data repositories. For a lot of use cases, this is entirely enough functionality to meet your needs. In other cases, you need to extend the REST API to include additional functionality that isn’t provided by Spring Data REST and it can be difficult to determine exactly how to do this....

May 19, 2021 · 3 min · Kevin Sookocheff
Monolith

Making Modular Monoliths Work

Microservices have become part of the software engineering cultural zeitgeist to the extent that alternative approaches to architecture and development are treated as somehow inferior. Given the challenges that running microservices present, I usually recommend beginning development of new projects and systems as a single deployable unit — the monolith. Sam Newman, in the book “Building Microservices”, agrees with this approach. He recommends leveraging microservices only if you can become convinced of the benefits for your system, not as a default for every project....

February 18, 2021 · 4 min · Kevin Sookocheff
Bletchley Park

Unpacking the eight fallacies of distributed computing

When building and running a system deployed as a monolith, we are able to make a certain set of assumptions about the behaviour of the overall application. One of the biggest assumptions we make is that the memory space for the application all resides on the same machine. With this model, function and library calls can assume that their view of the data structures for the application are accurate, and that you can retrieve or mutate that data immediately and deterministically (leaving the thornier issues of multi-threaded applications aside for a minute)....

February 11, 2021 · 17 min · Kevin Sookocheff
Wake

Handling the rudder as an organization grows

In a shopping cart, the swivel wheels of the cart are set in the front, and the fixed wheels are set in the back. Now picture yourself pushing a shopping cart backwards. Almost naturally, you swivel the cart to move the front end to one side or the other before beginning to push the cart. Now picture yourself pushing a shopping cart backwards, on an ice rink. Here, the cart keeps sliding around even after you’ve stopped pushing it....

January 15, 2021 · 4 min · Kevin Sookocheff
Marching ants

The Cathedral, The Bazaar, and the API Marketplace

In The Cathedral and the Bazaar, Eric Raymond recounts the early years of Linux. Specifically questioning how the “part-time hacking of several thousands of developers scattered all over the planet” could create perhaps the most complex, functioning application in history. How could a “babbling bazaar of differing agendas and approaches” coalesce into a coherent and stable system without some form of centralized planning? The fact that this bazaar style seemed to work, and work well, came as a distinct shock....

December 11, 2020 · 8 min · Kevin Sookocheff