Skip to content
View njohnson-oss's full-sized avatar
  • Mexico

Organizations

@Inglish-Respelling-Project

Block or report njohnson-oss

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
njohnson-oss/README.md

Nicholas Johnson

Production support and automation engineer working with Linux, Ansible and Python.

Remote from Mexico (UTC-6) · US citizen · English (native), Spanish (advanced)

What I do

  • L3 production support and on-call for a global document-processing platform on AWS and GCP, diagnosing issues from CloudWatch and Grafana logs
  • Lead developer of an internal Python automation tool with GitLab CI; also write Python boto3 scripts for S3 document transfers and incident file pulls
  • In my own projects, automate Linux servers with Ansible and manage DNS as code with OpenTofu (Terraform)

Featured Projects

Infrastructure and Automation

Together, these three repositories deploy a self-hosted site from start to finish: OpenTofu sets up the DNS, Ansible configures the server, and the Hugo theme builds the content that the server hosts.

  • configuration-journal-server: an Ansible playbook whose nine roles deploy a hardened Debian web and Git server, also reachable over Tor and I2P: default-deny nftables firewall, post-quantum-only SSH, automatic TLS through Caddy, and unattended upgrades. It checks every input before changing the host. CI runs ansible-lint, and ruff on its custom Python plugins.
  • provisioning-journal-server: OpenTofu (Terraform) configuration for the server's DNS records, including CAA and email anti-spoofing (SPF, DMARC). CI checks formatting and runs tofu validate and TFLint.
  • hugo-theme-journal: a Hugo theme that builds one site as both HTML and Gemtext, with no JavaScript, maintained since 2022 (370+ commits). CI builds it on two Hugo versions and tests the HTML, links and accessibility.

Software

Tools I use

Linux, Ansible, OpenTofu (Terraform), AWS (CloudWatch, S3, boto3), Grafana, Python, Flask, Java (Spring), Hugo, Git, GitHub Actions, GitLab CI, Caddy, Nginx, nftables

Currently

  • Studying for the CCNA

Contact

njohnson@posteo.net · linkedin.com/in/njohnson-oss

Pinned Loading

  1. altspell altspell Public

    Flask REST API that converts English between traditional and reformed spelling, with each spelling system as a plugin package.

    Python

  2. configuration-journal-server configuration-journal-server Public

    Ansible playbook that deploys a hardened Debian web and Git server over clearnet, Tor and I2P; default-deny nftables, post-quantum SSH, Caddy TLS.

    Jinja

  3. hugo-theme-journal hugo-theme-journal Public

    Accessible, no-JavaScript Hugo theme that builds one site as both HTML and Gemtext, with Atom feeds. CI checks HTML, links and accessibility.

    HTML

  4. provisioning-journal-server provisioning-journal-server Public

    OpenTofu (Terraform) configuration for the journal server's DNS: A/AAAA, CNAME, CAA, null MX, SPF and DMARC records. Checked with TFLint in CI.

    HCL

  5. gemini2html gemini2html Public

    Converts Gemtext, the markup of the Gemini protocol, to HTML. Written in C.

    C

  6. Spring-Social-Media-Blog-API Spring-Social-Media-Blog-API Public

    Spring REST API (Spring MVC, Spring Data JPA) for user accounts and messages, built during Revature training; passes 37/37 tests.

    Java