{
  pkgs,
  pkgs-master,
  ...
}:
{
  home.packages =
    with pkgs;
    (
      # -*- Data & Configuration Languages -*-#
      [
        #-- nix
        nil
        nixd
        statix # Lints and suggestions for the nix programming language
        deadnix # Find and remove unused code in .nix source files
        nixfmt # Nix Code Formatter

        #-- json like
        terraform-ls
        jsonnet
        jsonnet-language-server
        taplo # TOML language server / formatter / validator
        yaml-language-server
        actionlint # GitHub Actions linter

        #-- dockerfile
        hadolint # Dockerfile linter
        dockerfile-language-server

        #-- markdown
        marksman # language server for markdown
        glow # markdown previewer
        pandoc # document converter
        pkgs-master.hugo # static site generator

        #-- sql
        sqlfluff

        #-- protocol buffer
        buf # linting and formatting
      ]
      ++
        #-*- General Purpose Languages -*-#
        [
          #-- c/c++
          cmake
          cmake-language-server
          gnumake
          checkmake
          # c/c++ compiler, required by nvim-treesitter!
          gcc
          gdb
          # c/c++ tools with clang-tools, the unwrapped version won't
          # add alias like `cc` and `c++`, so that it won't conflict with gcc
          # llvmPackages.clang-unwrapped
          clang-tools
          lldb

          #-- python
          uv # python project package manager
          (python313.withPackages (
            ps: with ps; [
              # python language server
              ty
              ruff

              # my commonly used python packages
              jupyter
              ipython
              pandas
              numpy
              requests
              pyquery
              pyyaml
              protobuf # protocol buffer compiler
            ]
          ))

          #-- rust
          # we'd better use the rust-overlays for rust development
          pkgs-master.rustc
          pkgs-master.rust-analyzer
          pkgs-master.cargo # rust package manager
          pkgs-master.rustfmt
          pkgs-master.clippy # rust linter

          #-- golang
          go
          gomodifytags
          iferr # generate error handling code for go
          impl # generate function implementation for go
          # gotools # contains tools like: godoc, goimports, etc.
          gopls # go language server
          delve # go debugger

          # -- java
          # jdk25
          # gradle
          # maven
          # spring-boot-cli
          # jdt-language-server

          #-- lua
          stylua
          lua-language-server

          #-- bash
          bash-language-server
          shellcheck
          shfmt
        ]
      #-*- Web Development -*-#
      ++ [
        nodejs_24
        pnpm
        typescript
        typescript-language-server
        bun
        # HTML/CSS/JSON/ESLint language servers extracted from vscode
        vscode-langservers-extracted
        tailwindcss-language-server
        emmet-ls
      ]
      ++ [
        proselint # English prose linter

        #-- Optional Requirements:
        prettier # common code formatter
        fzf
        gdu # disk usage analyzer, required by AstroNvim
        (ripgrep.override { withPCRE2 = true; }) # recursively searches directories for a regex pattern
      ]
    );
}
