aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2025-09-07 12:59:30 -0700
committerFranck Cuny <franck@fcuny.net>2025-09-07 12:59:30 -0700
commit0afe70a31740367df42fc21c8cbd1916ca19fd01 (patch)
treee3ce38729ed2d913e29f1c4a99019e7a126a0c0b
parenttidy up the resume (diff)
downloadfcuny.net-0afe70a31740367df42fc21c8cbd1916ca19fd01.tar.gz
convert the resume to HTML instead of PDF
-rw-r--r--flake.nix4
-rw-r--r--src/css/resume.css189
-rw-r--r--src/resume.org2
3 files changed, 191 insertions, 4 deletions
diff --git a/flake.nix b/flake.nix
index fb3b89f..72d4fc0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -23,7 +23,6 @@
inherit system;
};
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
- texlive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-context; };
in
{
# for `nix fmt`
@@ -61,12 +60,11 @@
src = ./.;
buildInputs = [
pandoc
- texlive
];
buildPhase = ''
mkdir -p $out
pandoc --embed-resources -s src/index.org --css=src/css/main.css -t html -o $out/index.html
- pandoc --pdf-engine=context src/resume.org -o $out/resume.pdf
+ pandoc --embed-resources -s src/resume.org --css=src/css/resume.css -t html -o $out/resume.html
'';
dontInstall = true;
};
diff --git a/src/css/resume.css b/src/css/resume.css
new file mode 100644
index 0000000..3fa95f0
--- /dev/null
+++ b/src/css/resume.css
@@ -0,0 +1,189 @@
+/* Reset and base styles */
+* {
+ box-sizing: border-box;
+}
+
+body {
+ font-family: -apple-system, system-ui, sans-serif;
+ font-size: 16px;
+ line-height: 1.6;
+ color: #2c3e50;
+ margin: 0 auto;
+ padding: 2rem 1rem;
+ max-width: 50rem;
+ background: #fff;
+}
+
+/* Typography hierarchy */
+h1 {
+ font-size: 1.75rem;
+ font-weight: 700;
+ color: #2c3e50;
+ margin: 0 0 0.5rem 0;
+ line-height: 1.2;
+}
+
+h2 {
+ font-size: 1.25rem;
+ font-weight: 600;
+ color: #34495e;
+ margin: 2rem 0 1rem 0;
+ padding-bottom: 0.5rem;
+ border-bottom: 2px solid #e9ecef;
+}
+
+h3 {
+ font-size: 1.1rem;
+ font-weight: 600;
+ color: #495057;
+ margin: 1.5rem 0 0.75rem 0;
+}
+
+/* Header section */
+#title-block-header {
+ margin-bottom: 2rem;
+ padding-bottom: 1rem;
+ border-bottom: 3px solid #3498db;
+}
+
+/* Contact info and summary */
+.contact-info {
+ font-size: 0.95rem;
+ color: #6c757d;
+ margin-bottom: 1.5rem;
+}
+
+.contact-info a {
+ color: #3498db;
+ text-decoration: none;
+}
+
+.contact-info a:hover {
+ text-decoration: underline;
+}
+
+/* Lists */
+ul {
+ margin: 1rem 0;
+ padding-left: 1.5rem;
+}
+
+li {
+ margin-bottom: 0.5rem;
+}
+
+/* Job tables */
+table {
+ width: 100%;
+ margin: 1rem 0;
+ border-collapse: collapse;
+}
+
+td {
+ padding: 0.25rem 1rem 0.25rem 0;
+ font-family:
+ -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
+ font-size: 0.9rem;
+ vertical-align: top;
+}
+
+td:last-child {
+ text-align: right;
+ font-weight: 500;
+ color: #6c757d;
+}
+
+td:first-child {
+ font-weight: 600;
+ color: #495057;
+}
+
+td:nth-child(2) {
+ color: #6c757d;
+}
+
+/* Links */
+a {
+ color: #3498db;
+ text-decoration: none;
+ transition: color 0.2s ease;
+}
+
+a:hover {
+ color: #2980b9;
+ text-decoration: underline;
+}
+
+/* Strong text for emphasis */
+strong {
+ font-weight: 600;
+ color: #2c3e50;
+}
+
+/* Improved spacing for sections */
+#experience {
+ margin-top: 2rem;
+}
+
+/* Company sections */
+h2[id*="roblox"],
+h2[id*="twitter"],
+h2[id*="say-media"],
+h2[id*="linkfluence"] {
+ margin-top: 2.5rem;
+ font-size: 1.3rem;
+ color: #2c3e50;
+}
+
+/* Better paragraph spacing */
+p {
+ margin: 0.75rem 0;
+}
+
+/* Print styles */
+@media print {
+ body {
+ font-size: 12px;
+ line-height: 1.4;
+ padding: 0;
+ }
+
+ h1 {
+ font-size: 1.4rem;
+ }
+
+ h2 {
+ font-size: 1.1rem;
+ page-break-after: avoid;
+ }
+
+ table {
+ page-break-inside: avoid;
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+}
+
+/* Mobile responsiveness */
+@media (max-width: 600px) {
+ body {
+ padding: 1rem 0.75rem;
+ font-size: 15px;
+ }
+
+ h1 {
+ font-size: 1.5rem;
+ }
+
+ table {
+ font-size: 0.85rem;
+ }
+
+ td:last-child {
+ text-align: left;
+ font-size: 0.8rem;
+ }
+}
diff --git a/src/resume.org b/src/resume.org
index 197d356..326e2cc 100644
--- a/src/resume.org
+++ b/src/resume.org
@@ -25,7 +25,7 @@ Seeking opportunities to lead transformative reliability initiatives, mentor the
As a Team Lead for the Site Reliability group, I define road-maps, milestones, and identify areas where SREs can partner with different teams to improve overall reliability of our infrastructure and services. Key projects and responsibilities include:
-- [[https://corp.roblox.com/newsroom/2023/12/making-robloxs-infrastructure-efficient-resilient][*Cell Architecture Implementation]]*: Led the SRE effort to transition from monolithic Compute clusters to a Cell architecture, significantly enhancing Roblox's infrastructure resilience and efficiency. Developed migration plans, identified necessary automation, and drove production readiness for this critical reliability improvement.
+- *[[https://corp.roblox.com/newsroom/2023/12/making-robloxs-infrastructure-efficient-resilient][Cell Architecture Implementation* ]]: Led the SRE effort to transition from monolithic Compute clusters to a Cell architecture, significantly enhancing Roblox's infrastructure resilience and efficiency. Developed migration plans, identified necessary automation, and drove production readiness for this critical reliability improvement.
- *Edge Infrastructure Migration*: Spearheaded the migration from HAproxy to Envoy at the edge, aimed at reducing failure domains, improving performance by streamlining the proxy chain, and enabling user traffic steering to specific cells from the edge.