A CMS Project

This blog entry is the story of my experience in implemeting a CMS as a consultant. It details some mundane problems I faced in day-to-day work and the solutions that my team and I implemented, probably in more detail than necessary. I make no attempt to avoid the boring and tedious parts of the project. Maybe you can learn something from it, or maybe you can relate to it.

Read More

gVisor on ECS


Google's gVisor exists to provide a true sandbox for your Docker containers. It replaces runc, the default Docker runtime which recently had a serious vulnerability 1.

In theory gVisor is a drop-in replacement for runc, but does it actually work with Amazon ECS?

Read More

Dark mode on all the things

Arc Dark

Arc Dark preview

sudo dnf install arc-theme gnome-tweaks

nvim

catppuccin/nvim preview

  {
    "catppuccin/nvim", -- https://github.com/catppuccin/nvim
    name = "catppuccin",
    lazy = false,
    priority = 1000,
    opts = {
      dim_inactive = {
        enabled = true,    -- dims the background color of inactive window
        -- shade = "dark",
        percentage = 0.99, -- 50, -- 0.15, -- percentage of the shade to apply to the inactive window
      },
      integrations = {
        notify = true,
        notifier = true,
        lsp_trouble = true,
        barbar = true,
        neotree = true,
        noice = true,
        dropbar = { enabled = true },
        mason = true,
        nvim_surround = true,
        overseer = true,
        which_key = true,
        snacks = {
          enabled = true,
          -- indent_scope_color = "", -- catppuccin color (eg. `lavender`) Default: text
        },
        native_lsp = {
          enabled = true,
          virtual_text = {
            errors = { "italic" },
            hints = { "italic" },
            warnings = { "italic" },
            information = { "italic" },
            ok = { "italic" },
          },
          underlines = {
            errors = { "underline" },
            hints = { "underline" },
            warnings = { "underline" },
            information = { "underline" },
            ok = { "underline" },
          },
          inlay_hints = {
            background = true,
          },
        },
    },
    config = function(_, opts)
      require("catppuccin").setup(opts)
      vim.cmd.colorscheme("catppuccin-macchiato")
    end
  },

Everything Else - Dark Reader

https://darkreader.org/

Read More

Antipatterns

Just a list of antipatterns I'm not going to elaborate on in no particular order

  • Boiling the ocean
  • Big bang deliveries
  • Developer portals
  • Abstracting the cloud from your engineers
  • Multi-cloud
  • Implementing tooling beyond your maturity
  • Ignoring boring, simple fixes in favour of shiny tech
  • Run the company on your laptop
  • Concurrent microservice development without contract testing
  • Access control that isn't role-based
  • Depriving staff of agency
  • Security teams
  • Conflating one-way doors with two-way doors (decisions)
  • Using features simply because they exist
  • Architects
  • Gitops
  • Git branch strategies that aren't trunk-based
  • Write code that is easy to delete, not easy to extend
  • Liveness checks that rely on downstream systems
  • Thinking load balancers and DNS aren't good enough
  • Telling yourself you'll make that pipeline stage automatic later on
  • Monorepos
  • Troubleshooting through the pipeline
  • A lack of care for how clear naming of things is necessary for basic communication
  • Not forcing people to use open communication channels

Read More