commit 5305224b2ba97a216097b9d4e93a1e98552a984f Author: William Date: Sat May 23 20:41:47 2026 -0300 Initial CV in Typst with Nix flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fe0ee16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Build artifacts +*.pdf + +# Nix +result +result-* + +# Editor +.vscode/ +.idea/ diff --git a/cv.typ b/cv.typ new file mode 100644 index 0000000..c65a2cf --- /dev/null +++ b/cv.typ @@ -0,0 +1,180 @@ +#set page( + margin: (top: 1.8cm, bottom: 1.5cm, left: 1.85cm, right: 1.85cm), + paper: "a4", +) + +#set text( + font: ("Libertinus Serif", "DejaVu Serif"), + size: 10.5pt, + hyphenate: false, + lang: "en", +) + +#set par( + justify: true, + leading: 0.48em, +) + +#set list( + tight: true, + indent: 0.8em, + body-indent: 0.25em, + marker: [\u{2022}], +) + +#set heading(numbering: none) +#show heading: it => {} + +#let accent = rgb("#1f4e79") + +#show strong: set text(fill: accent) + +#let section(title) = { + v(0.65em) + text(size: 11pt, weight: "bold", fill: accent)[#upper(title)] + v(-0.12em) + line(length: 100%, stroke: 0.4pt + accent) + v(0.2em) +} + +#let job(title, details) = { + grid( + columns: (1fr, auto), + column-gutter: 0.6em, + stroke: none, + title, + align(right, details), + ) +} + +// ===== HEADER ===== + +#align(center)[ + #text(size: 17pt, weight: "bold", fill: accent)[WILLIAM FRANCO ABDUL HAI] + #v(0.15em) + #text(size: 9.5pt)[ + baduhai\@proton.me | +55 75 99254-7374 | github.com/baduhai + ] +] + +#v(0.5em) + +#text(size: 10pt, style: "italic")[ + DevOps Engineer and Linux Systems Administrator with 5+ years of + experience managing multi-cloud infrastructures across AWS, Azure, and + on-premise environments. Expertise in containerisation, infrastructure + as code, and automation, with a proven track record of optimising + deployments, reducing costs, and implementing reliable CI/CD pipelines. + Skilled at managing distributed systems and delivering scalable + solutions for diverse client needs. +] + +// ===== EDUCATION ===== + +#section[Education] + +*Universidade SENAI CIMATEC* +#job[#text(size: 9.5pt)[Bachelor of Engineering in Computer Engineering]][#text(size: 9.5pt)[Salvador, Brazil | Ongoing -- Dec 2026]] + +// ===== PROFESSIONAL EXPERIENCE ===== + +#section[Professional Experience] + +#job[*DevOps Engineer → Operations Team Lead*][T-Systems | Remote | Mar 2025 -- Present] + +- Maintain 15+ production and development environments across Open Telekom Cloud and Microsoft Azure, ensuring high availability and performance. +- Manage 45+ Rocky Linux virtual machines, implementing security patches, updates, and configuration management. +- Orchestrated migration from Ansible-based deployment playbooks to Terraform-based infrastructure as code, achieving significantly more reliable and repeatable deployments. +- Implement comprehensive monitoring and automation solutions across all environments, reducing manual intervention and improving incident response times. +- Promoted to Operations Team Lead in February 2026 while retaining previous operational responsibilities. +- Serve as the primary technical liaison between development teams based in Germany and India and the Brazil-based operations team. +- Coordinate and delegate operational tasks across a 4-person team, supporting infrastructure delivery, incident response, and deployment operations. + +#v(0.3em) + +#job[*System Administrator & DevOps Engineer*][Freelance | Remote | Oct 2022 -- Feb 2025] + +- Managed up to 3 concurrent clients across various time zones, delivering reliable infrastructure and DevOps solutions. +- Streamlined operations through automation and CI/CD pipeline configuration, reducing deployment times and improving reliability. +- Created and maintained reproducible, containerised, and distributed systems using Docker, Kubernetes, and NixOS. +- Executed complete infrastructure migrations across AWS, Huawei Cloud, and on-premise environments. + +#v(0.2em) + +_Key Client Projects:_ + +#v(0.05em) + +#text(size: 10pt)[*Genetic Intelligence (Medical Machine Learning Project)*] +- Packaged multiple Python CUDA packages in Nix for machine learning applications, enabling reproducible GPU-accelerated computing. +- Developed a continuous delivery pipeline to build and deploy NixOS virtual machine images on GCP Compute Engine, saving 2+ hours of manual configuration weekly. + +#v(0.05em) + +#text(size: 10pt)[*Global Ethics Solutions (Online Courses Platform)*] +- Planned and executed an upgrade from CentOS 7 to AlmaLinux 8, ensuring zero downtime during migration. +- Maintained server security and performed regular updates, ensuring compliance and system stability. + +#v(0.05em) + +#text(size: 10pt)[*VoxLink (IP Phone Provider)*] +- Facilitated phasing out of AWS in hybrid cloud infrastructure, saving client over \$1,000 monthly in AWS fees. +- Migrated specific services to Huawei Cloud and upgraded servers from outdated Debian versions to supported releases. +- Planned migration from manually configured container environments to Kubernetes cluster managed with Terraform across multiple regions. + +#pagebreak() + +#job[*Help Desk Analyst*][Tech Mahindra | Remote | Nov 2023 -- Mar 2024] + +- Processed 15+ support tickets daily, closing an average of 10 tickets per day with high customer satisfaction. +- Provided technical support for software applications, including installation, configuration, and troubleshooting on end-user systems. +- Resolved client software issues through systematic troubleshooting of application installations, browser configurations, and data migrations. + +#v(0.3em) + +#job[*Open Source Software Analyst*][credativ GmbH | Mönchengladbach, Germany | Dec 2020 -- Oct 2022] + +- Provided Level 3 support for client companies across various server applications and Linux environments. +- Managed traditional Linux distributions and authored automation scripts for infrastructure maintenance. +- Set up containerised and virtualised environments using Docker, Kubernetes, and KVM. + +#v(0.3em) + +#job[*English Instructor*][Berlitz | Remote | May 2023 -- Aug 2023] + +- Instructed adult learners of diverse levels in English as an Additional Language. +- Cultivated a dynamic and engaging learning environment for international professionals. + +// ===== PROJECTS & OPEN SOURCE ===== + +#section[Projects & Open Source] + +#job[*NixOS Package Maintainer*][NixOS | 2022 -- Present] + +- Active contributor to nixpkgs repository and maintainer of multiple packages in the NixOS ecosystem. + +#v(0.25em) + +#job[*Koi -- Linux Desktop Theme Manager*][Personal Project | 2020 -- Present] + +- Developed Koi, a Linux desktop utility written in C++ and Qt for theme management, reaching 380+ GitHub stars. +- Attracted contributions from 19 independent developers and released under LGPL licence. + +// ===== TECHNICAL SKILLS ===== + +#section[Technical Skills] + +#text(size: 10pt)[ + *Cloud Platforms:* AWS | Azure | OpenStack | Open Telekom Cloud | Huawei Cloud \ + *Container & Orchestration:* Docker | Podman | Kubernetes \ + *Infrastructure as Code:* Terraform | Ansible | Nix \ + *Monitoring & Observability:* Grafana | Loki | Prometheus \ + *Operating Systems:* Debian | Ubuntu | NixOS | CentOS \ + *Programming Languages:* Python | C++ | Rust | Bash +] + +// ===== LANGUAGES ===== + +#section[Languages] + +*English:* Native | *Portuguese:* Native | *German:* C1 | *French:* B1 diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..88748a4 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1779508470, + "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "29916453413845e54a65b8a1cf996842300cd299", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..f14d7e2 --- /dev/null +++ b/flake.nix @@ -0,0 +1,41 @@ +{ + description = "William Hai's CV in Typst"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + fonts = with pkgs; [ libertinus ]; + fontconf = pkgs.makeFontsConf { + fontDirectories = fonts; + }; + in + { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ typst ] ++ fonts; + FONTCONFIG_FILE = fontconf; + }; + + packages.cv = pkgs.stdenvNoCC.mkDerivation { + name = "william-hai-cv"; + src = ./.; + nativeBuildInputs = with pkgs; [ typst ] ++ fonts; + FONTCONFIG_FILE = fontconf; + buildPhase = '' + typst compile cv.typ cv.pdf + ''; + installPhase = '' + mkdir -p $out + cp cv.pdf $out/ + ''; + }; + + packages.default = self.packages.${system}.cv; + } + ); +}