Skip to content

New book on engineering management

A meeting I had to discuss engineering teams was postponed, so instead I have started writing 'engineering stories' to capture and organise my experiences from various companies and roles. I will capture lessons learned from my experiences (and others) and my current thinking on how to resolve issues that I encountered.

Updated :format/cljfmt-check and :format/cljfmt-fix aliases in Practicalli Clojure CLI Config to use the newer publishing name for the library. The older cljfmt name did not have a domain, so cljfmt/cljfmt had to be used as the name when using Clojure CLI. The library published as cljfmt stopped being updated at versino 0.9.2.

Started a page on Terminal User Interface (TUI) apps in the Operating System section of Practicalli Engineering Playbook. I have been using an increasing number of TUI apps, especially after I began using Neovim. I also like apps that are completely keyboard driven, as I am a fast and effective typist and find the mouse very fiddly these days.

Created a GitHub template repository to quickly create a new Practicalli book or blog web site, using Material for MkDocs. This template repo was used to create Practicalli Engineering Manger repository

Walking, pull-ups and weights are this weeks approach to building up my health again after a few weeks of flu. No cycling since the 8th October, but this had given me a chance to catch up with editing videos of my cycle trips

Clojureλ︎

Updating Clojure CLI Config to use the latest version of cljfmt, the name of the published library has changed from cljfmt to dev.weavejester/cljfmt.

This is different to the naming example used to install cljfmt as a tool, but the new name is mentioned in the Library section of the cljfmt GitHub readme.

The readme does mention io.github.weavejester/cljfmt but a published library does not exist (its the wrong publishing name). This name is used in the example of installing cljfmt as a Clojure CLI tool.

liquidz/antq project was used to do a lookup of the latest library versions, but returned an error 56 in the command line output. The antq report generated did create a clearer error:

liquidz/antq report - incorrect library name in deps.edn

| :file    | :name                        | :current | :latest         |
|----------|------------------------------|----------|-----------------|
| deps.edn | io.github.weavejester/cljfmt | 0.9.2    | Failed to fetch |
|          | io.github.weavejester/cljfmt | 0.9.2    | Failed to fetch |

Practicalli Engineering Managerλ︎

I have started a new book to support obtaining my role as an engineering manager and to capture my experiences to share with others.

The book will also have a blog, with posts covering short stories pulled from my engineering experience (and the experience I gained from working with other managers - good and bad - probably mostly bad as that is where the most learning can be demonstrated).

A New roleλ︎

Identify activities I should do within a time frame

  • First 30 days
  • critical work in flight
  • on-boarding (myself and any new hires/soon to be hired staff)
  • discussing my role with my team(s), what expectations do they have, do they align with what my manager told me, do the know what an EM is or even feel the need for one 🤣
  • establish a working development environment
  • understand how to contribute code and all the details of the contribution workflow
  • review documentation available (and people who actively maintain it - its unlikely to be everyone 😿)
  • First quarter
  • touch base with all the roles I should have a relationship with

Roles should I build a relationship withλ︎

  • people under my responsibility, e.g. one or more engineering teams
  • my direct manager
  • peers (other engineering managers and people on the path to becoming one)
  • technical and business leadership

I also like to develop an effective relationship with any customer facing teams, to get a feel for the discussions and concerns that our customers raise.

Emacs and Neovimλ︎

Several people were asking about my recent switch to Neovim. It is curious that there is an assumption that I no longer use Emacs. This is not the case.

Most of my day to day editing is done with Neovim, along with all the writing for Practicalli (except this section which I am using Emacs)

NOTE: I notice that the autocomplete in Emacs is popping up all the time, so perhaps I need to put more of a delay on the popup. I find it a bit annoying. The popup in Neovim is just as quick, but for some reason I find it less annoying (although now I am looking at it and its way to much, so a delay would seem to benefit both Neovim and Emacs configurations).

For commercial work I tend to use Spacemacs for Clojure projects, as most people I have worked with have been using Emacs.

I tend to use more in-editor tools with Emacs & Spacemacs, especially on larger projects:

  • LSP: when I refactor code, especially namespaces
  • Narrowing: to function
  • Process monitor: if something is slowing down (its usually long log lines 🙄)
  • Perspectives: switching between projects easily (SPC l TAB)

My Spacemacs setup was updated to the latest

  • the Spacemacs ~/.config/emacs updated by pulling commits from the repo via magit
  • updated the Practicalli config from the Spacemacs template (SPC f e D)
  • updated Emacs packages with SPC f e U

Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li