I'm a software developer, tinkerer, & perpetual student.
- 😄 Pronouns:
he/him
- ⚡ Fun fact: My first programming language was Visual Basic.
Caution
This document is an unpolished work-in-progress.
Note
Given how drastically my stack has changed in recent months, and that I'm perpetually learning new technologies, it's a pretty safe assumption that things have changed since I last updated this doc.
Check the date of the last revision to this document in the commit history, and consider this document out-of-date if older than a few months.
If you find any errors or have any questions, please open an issue or send me a message.
- Nix & NixOS
- GNOME
- Mobile Linux
- Kubernetes & all things self-hosting
- Shell environments
- Home automation
- Microcontrollers
- Security & Privacy
- Operating system: NixOS
- Editor: Helix & Neovim
- Shell: Nushell & Zsh
- Desktop Environment: GNOME, Hyprland
I've messed around and gotten my feet wet with dozens of technologies, frameworks, languages, tools, etc. For the sake of brevity, I will only list the ones I am willing to call myself proficient with.
- Semantics: HTML, Markdown
- Design: CSS / Sass / SCSS / Bootstrap
- Frontend: React.js
- Backend: Node.js, Django
- Packaging: Webpack, Babel
- Containers: Dockerfiles, Docker/Podman CLI, container registries, etc.
- Container Orchestration: Kubernetes, Helm, Docker-compose
- CI / CD: GitHub Actions, GitHub Pages, Nix, Hercules-CI
- Environment configuration: Ansible, Nix, NixOS, asdf, devcontainers
- Cloud Environments: Microsoft Azure, Google Cloud, AWS
- Functional Programming: Nix
- General Purpose: Python, Java
- Shell Scripting: Bash, Zsh, PowerShell, Nushell
- Systems Programming: C, Rust
- Web Development: Javascript, Typescript
- Linux FHS / POSIX API
- GNOME / freedesktop technologies
- systemd
My last professional role was as a system administrator, so I have lots of experience configuring, deploying, & managing user workstations, developer environments, enterprise networks, & production servers running both Microsoft Windows & Linux.
Technologies:
-
Routing: DNS resolvers, DNS records & nameservers, Multicast DNS, DHCP, VLANs, Wireguard tunnels, Tailscale mesh networks
-
Authentication: LDAP, Active Directory, OAuth2, OIDC, Kerberos, sssd
-
Remote management: SSH, RDP, VNC
-
Cryptographic protocols: TLS, SSH, GPG, age, PKCS#11, Certificate Authorities, LUKS, TOTP
-
TODO: Split "Cryptographic protocols" into symmetric/asymmetric cryptography, communication/data encryption, some other categorization?
-
TODO: Split "Routing"
-
TODO: Split "Authentication" into "Authentication/Authorization"?
-
TODO: Browser-related security stuff like CORS, HSTS
-
TODO: DNS verity stuff like DNSSEC, DMARC, DKIM, SPF
- Rustlang
- Yew
- GTK Development
- Flatpak & XDG Portals
- ActivityPub
- Expand my Tensorflow skillset
- Linux kernel development
- Zsh plugin development
- Nushell
- Tailwind CSS
- GitHub: @Lehmanator
- GitLab: @Lehmanator
- GNOME GitLab: @Lehmanator
- Mastodon: @[email protected]
- Matrix: @Lehmanator:tchncs.de
- Signal: @Lehmanator.01
- Email: intentionally withheld to prevent spam. please ask
- Phone: intentionally withheld to prevent spam. please ask
- Website: samlehman.dev Note: Currently under major reconstruction
Note: Many of these accounts will probably change in the near future as I migrate to self-hosted infrastructure on my own domains.
I am currently bootstrapping a bare-metal Kubernetes cluster using NixOS & kubenix.
Once my cluster is battle-ready, I will spin up servers for:
- Mastodon
- Matrix
- Git forge (probably Forgejo, maybe GitLab)
- Probably a lot more I'm forgetting about
then migrate my accounts there. If you hit a dead link, remind me to update them by opening an issue here.
- Test links
- See above
- Add personal projects list
- Add contributor projects list
- Add public keys?
- Add resume link
- Add some personal info not about tech
- Add inline images for certain technologies?
- Add links for certain technologies?
- Add emojis to make usage parallel. (or remove them altogether)
- Add links to request access to email / phone number?
- Add list of services I self-host?
- Add donation links?
- Major re-org (how much info should I put here?)
- Determine overall structure, sections, etc.
- Determine scheme for bulleting items.
- Determine scheme for categorizing nested lists.
- Remove disclaimers, etc.