Initial CV in Typst with Nix flake
This commit is contained in:
commit
5305224b2b
4 changed files with 292 additions and 0 deletions
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# Build artifacts
|
||||||
|
*.pdf
|
||||||
|
|
||||||
|
# Nix
|
||||||
|
result
|
||||||
|
result-*
|
||||||
|
|
||||||
|
# Editor
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
180
cv.typ
Normal file
180
cv.typ
Normal file
|
|
@ -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
|
||||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -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
|
||||||
|
}
|
||||||
41
flake.nix
Normal file
41
flake.nix
Normal file
|
|
@ -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;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue