Skip to content

Long Cold Winter

Converted some audio files to Opus codec, which provides a really optimum compression and allows for relatively low bit rates and results in much smaller files with the same quality.

Neovim upcoming changes

  • neovim 0.11 has some breaking changes, so assume early in 2025
  • astronvim v5 once neovim 0.11 released
  • mason-tool-installer.nvim to simplify mason config in astronvim v5 - discussed in Atronvim Discord community. maston-tool-installer still uses the mason registry for tool versions.

Starting to update my CV from recent commercial experiences, focusing on the areas of product, delivery and people.

Neovim and Clojure LSPλ︎

Mason manages the installation of LSP servers, format and lint tools for Neovim.

There is a Renovate GitHub App that keeps source code dependencies up to date. Mason registry uses renovate to bump its config to use the latest releases of each tool.

PR #7896 bumps Clojure LSP to lates release in the Mason Registry.

PR #7896 bump Clojure LSP to lates release - Mason Registry

converting audio with ffmpegλ︎

The Opus codec has excellent compression ability and music and spoken word can be encoded in a relatively low bit rate.

128k variable bit rate encoding provides near transparent encoding. libopus uses 🌐 variable bit rate by default.

Opus recommended bit rates are:

  • Music: 96 to 128k (I use 96k)
  • Audiobooks: 32k

I had some books that were already encoded at 96k bit rate. Converting them to 32k bit rate reduced the file size by a third without any noticeable drop in quality.

Using zsh pattern matching allows for a very simple script to convert multiple files in the current directory, saving them in a separate 32k directory (otherwise the script may have converted all the new opus files it created).

Convert Opus encoded files to 32k bit rate

#!/usr/bin/zsh

# Convert Opus audio files to 32k bitrate
# zsh specific parsing of current directory
# converted files saved in `32k` directory

for x in *.opus ; do
  ffmpeg -i "$x" -b:a 32k -c:a libopus "32k/${x:r}".opus
done

Convert raw WAV files to Opus 96k bit rate

#!/usr/bin/zsh

# Convert wav files to 96k bit rate Opus encoded files
# zsh specific parsing of current directory

for x in *.wav ; do
  ffmpeg -i "$x" -b:a 96k -c:a libopus "${x:r}".opus
done

Book Listλ︎

I have time to read and reread some of the physical books before I dispatch them to one of the book buying companies for a second chance at life.

  • The Goal - Goldratt
  • Critical Path - Goldratt
  • Its Not Luck - Goldratt
  • The Mythical Man Month (20th anniversary edition) - Fred Brooks
  • Death March - Yourdon
  • Agile Retrospectives (there is a 2nd edition to read)

Notes for updating my CVλ︎

Its time to update my CV based on the experiences of my last commercial engagement.

Some advice from a trusted recruiter is to organise the experiences around Product, Delivery and People. This seems a sensible approach and should help me explore and communicate my experiences in a meaningful way.

Product:

  • working with product manager on priorities
  • wrote pitches with a technical focus
  • reviewed and where necessary refactor the pitch for engineers to consume

Pitches could grow quite significantly during discovery, which could evolve over many months.

Delivery:

  • enhanced our ways of working, regular retrospectives,
  • definition of DONE
  • clearly defined milestones / Epics to know when
  • UAT baked in often and early
  • time scoped work to minimise scope creep and keep focus on the essentialsλ︎

People:

  • regular 1-2-1 sessions with notes, ensuring people felt safe to communicate their concerns
  • empathising and sharing similar experiences
  • career progression - mentored 3 of the team to promotion within the year, with a 4th to be promoted by moving to a more appropriate team (via a 4 month transition)

One 2 Onesλ︎

The 1-2-1 is a tool to build a trusted relationship between two people. There can be many challenges along the way and people need a way to discuss issues and feelings in a safe space.

If one person is in positional power (or perceived that way), they should take extra care to be transparent and

The first 1-2-1 session should establishing the expectations of each person involved regarding this type of meeting. These expectations may evolve over time, so should be regularly revisited.

A checklist for the first meeting:

  • capture expectations
  • discuss preferences on meeting frequency
  • establish note taking as a valuable practice
  • start to capture specific actions and who note who is responsible for completing those actions
  • start to establish trust

1-2-1 aims:

  • building an relationship with each person on the team
  • encouraged them to make head space for challenges they faced and thinking how they could alleviate them

One to One meeting - Practicalli Engineering Playbook

Career progressionλ︎

If you believe you are ready and everyone already considers you at the next level, then it should be trivial to convey to management that a promotion is due.

A bragging document is a self-organised history of achievements during work. The primary purpose is to identify if there are gaps that could be addressed that would prevent a promotion.

Retrospective notesλ︎

Every team and every individual has the potential to enhance how they work

Potential Purpose Goal

Dont have to improve constantly, but a continual review of the situation (situational awareness) is important for growth

Data points - automated processes - are they causing a constraint - do we understand how they work - are there optimisations that could be made - testing - is the test run time a constraint / blocker - can tests be continually run (watch for changes in specific tests or logical parts of the code base) - does test run time deter tests from always running

  • was the current work more or less challenging than expected () - careful this doents get into a time aspect

What we did well / should do more of - what makes us successful already - what helps us build on more success

What didnt work so well / should do less of or stop - what slows us down or prevents success - do we know why we are doing these things (motivation / drivers)


Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li