about summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--users/fcuny/resume/.envrc1
-rw-r--r--users/fcuny/resume/.gitignore1
-rw-r--r--users/fcuny/resume/flake.lock26
-rw-r--r--users/fcuny/resume/flake.nix19
-rw-r--r--users/fcuny/resume/readme.org40
-rw-r--r--users/fcuny/resume/styles/resume.css72
-rw-r--r--users/fcuny/resume/styles/resume.tex106
7 files changed, 265 insertions, 0 deletions
diff --git a/users/fcuny/resume/.envrc b/users/fcuny/resume/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/users/fcuny/resume/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/users/fcuny/resume/.gitignore b/users/fcuny/resume/.gitignore
new file mode 100644
index 0000000..813f87f
--- /dev/null
+++ b/users/fcuny/resume/.gitignore
@@ -0,0 +1 @@
+/resume.html
diff --git a/users/fcuny/resume/flake.lock b/users/fcuny/resume/flake.lock
new file mode 100644
index 0000000..415fb11
--- /dev/null
+++ b/users/fcuny/resume/flake.lock
@@ -0,0 +1,26 @@
+{
+  "nodes": {
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1651421973,
+        "narHash": "sha256-8CyOOzFOOqOHs+BblCJpmXJVUr+uifaR2Wu6P1HM0CE=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "6d21b873f371b2ebff63a16cf9353309d96d8567",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/users/fcuny/resume/flake.nix b/users/fcuny/resume/flake.nix
new file mode 100644
index 0000000..eae54f3
--- /dev/null
+++ b/users/fcuny/resume/flake.nix
@@ -0,0 +1,19 @@
+{
+  description = "Franck Cuny's resume";
+  inputs = { nixpkgs.url = "github:nixos/nixpkgs"; };
+
+  outputs = { self, nixpkgs }:
+    let pkgs = nixpkgs.legacyPackages.x86_64-linux;
+    in {
+      defaultApp.x86_64-linux = self.publishHTML;
+
+      publishHTML = pkgs.writers.writeBashBin "html" ''
+        set -e
+        set -o pipefail
+        pandoc --self-contained --css styles/resume.css --from org --to html --output resume.html readme.org
+      '';
+
+      devShell.x86_64-linux =
+        pkgs.mkShell { buildInputs = with pkgs; [ git pandoc ]; };
+    };
+}
diff --git a/users/fcuny/resume/readme.org b/users/fcuny/resume/readme.org
new file mode 100644
index 0000000..d83db69
--- /dev/null
+++ b/users/fcuny/resume/readme.org
@@ -0,0 +1,40 @@
+#+TITLE: Franck Cuny
+#+AUTHOR: [[mailto:franck@fcuny.net][franck@fcuny.net]]
+#+OPTIONS: toc:nil num:nil title:nil timestamp:nil prop:nil
+
+I'm a seasoned Site Reliability Engineer with experience in large scale distributed systems. I'm invested in mentoring junior and senior engineers to help them increase their impact. I'm always looking to learn from those around me.
+
+*Specializations*: distributed systems, containerization, debugging, software development, reliability.
+
+* Experience
+** Roblox, San Mateo
+| Site Reliability Engineer | Principal (IC6) | SRE Group | Feb 2022 - to date |
+I'm the Team Lead for the Site Reliability group that was started at the end of 2021.
+
+I'm defining the road-map and identify areas where SREs can partner with different team to improve overall reliability of our services.
+** Twitter, San Francisco
+*** Compute
+| Software Engineer         | Senior Staff | Compute Info | Aug 2021 - Jan 2022 |
+| Site Reliability Engineer | Senior Staff | Compute SREs | Jan 2018 - Aug 2021 |
+Initially the Tech Lead of a team of 6 SREs supporting the Compute infrastructure. In August 2021 I changed to be a Software Engineer and was leading one of the effort to adopt Kubernetes for our on-premise infrastructure. As a Tech Lead I helped define number of internal processes for the team, from on-call rotations to postmortem processes.
+
+Twitter's Compute is one of the largest Mesos cluster in the world (XXX thousands of nodes across multiple data centers). The team defined KPIs, improved automation to mange the large fleet of bare metal machines, defined APIs for maintenance with partner teams.
+
+In addition to supporting Aurora/Mesos, I also lead a number of effort related to Kubernetes, both on-premise and in the cloud.
+
+Finally, I've helped Twitter save XX of millions of dollar in hardware by designing and implementing strategies to significantly improve the hardware utilization of our bare metal infrastructure.
+*** Storage
+| Site Reliability Engineer | Staff | Storage SREs | Aug 2014 - Jan 2018 |
+For 4 years I supported the Messaging and Manhattan teams. I moved all the pub-sub systems from bare-metal deployment to Aurora/Mesos, being the first storage team to adopt the Compute orchestration platform. This helped reducing operations, time to deploy, and improve overall reliability. I pushed for adopting 10Gb+ networking in our data center to help our team to scale. I was the SRE Tech Lead for the Manhattan team, helping with performance, operation and automation.
+** Senior Software Engineer - Say Media, San Francisco
+| Software Engineer | Senior SWE | Infrastructure | Aug 2011 - Aug 2014 |
+During my time at Say Media, I worked on two different teams. I started as a software engineer in the platform team building the various APIs; I then transitioned to the operation team, to develop tooling to increase the effectiveness of the engineering organization.
+** Senior Software Engineer - Linkfluence, Paris
+| Software Engineer | Senior SWE | Infrastructure | July 2007 - July 2011 |
+I was one of the early engineers joining Linkfluence in 2007. I led the development of the company's crawler (web, feeds). I was responsible for defining the early architecture of the company, and designed the internal platforms (Service Oriented Architecture).
+I helped the company to contribute to open source projects; contributed to open source projects on behalf of the company; represented the company at numerous open sources conferences in Europe.
+* Technical Skills
+- *Languages*  Python, Go, Ruby, Perl
+- *Frameworks* Kubernetes, Aurora, Mesos
+- *Databases*  RDBMS, NOSql
+- *Dev tools*  Git
diff --git a/users/fcuny/resume/styles/resume.css b/users/fcuny/resume/styles/resume.css
new file mode 100644
index 0000000..13ed9b3
--- /dev/null
+++ b/users/fcuny/resume/styles/resume.css
@@ -0,0 +1,72 @@
+body {
+  font-family: sans-serif;
+  font-size: 1em;
+  line-height: 1.8em;
+  color: #0e0e0b;
+  margin: 1em auto;
+  padding: 0 0.55em;
+  max-width: 50rem;
+}
+
+h1 {
+  color: #0e0e0b;
+  font-size: 1.3rem;
+}
+
+h2, h3 {
+  border-bottom: 1px solid #eee;
+  font-style: italic;
+}
+h2 {
+  margin-top: 1.25em;
+  margin-bottom: 0.41em;
+  font-size: 1.2rem;
+}
+h3 {
+  margin-top: 1.5em;
+  margin-bottom: 0.5em;
+  font-size: 1rem;
+}
+
+hr{
+  color:#000111;
+  background-color:#000111;
+  border:none;
+  height:1px
+}
+
+a {
+  color:#047bc2;
+  transition:color .1s ease-in-out;
+}
+
+table {
+  width: 100%;
+  border-spacing: 0px;
+  outline: none;
+}
+td{
+  padding-right: 0.7em;
+}
+td:last-child {
+  text-align: right;
+}
+table, th, td {
+  font-family: monospace;
+  color: #000;
+}
+
+#title-block-header {
+  padding-right: 10px;
+  font-size: 1.4em;
+  display: flex;
+  font-family: monospace;
+  justify-content: space-between;
+  align-items: center;
+  padding-top: 0.5rem;
+  border-bottom: 1px;
+}
+
+#experience {
+  padding-top: 20px;
+}
diff --git a/users/fcuny/resume/styles/resume.tex b/users/fcuny/resume/styles/resume.tex
new file mode 100644
index 0000000..6bbcf0b
--- /dev/null
+++ b/users/fcuny/resume/styles/resume.tex
@@ -0,0 +1,106 @@
+
+\startmode[*mkii]
+  \enableregime[utf-8]
+  \setupcolors[state=start]
+\stopmode
+$if(mainlang)$
+\mainlanguage[$mainlang$]
+$endif$
+
+\setupcolor[hex]
+\definecolor[titlegrey][h=757575]
+\definecolor[sectioncolor][h=397249]
+\definecolor[rulecolor][h=9cb770]
+
+% Enable hyperlinks
+\setupinteraction[state=start, color=sectioncolor]
+
+\setuppapersize [$if(papersize)$$papersize$$else$letter$endif$][$if(papersize)$$papersize$$else$letter$endif$]
+\setuplayout    [width=middle, height=middle,
+                 backspace=20mm, cutspace=0mm,
+                 topspace=10mm, bottomspace=20mm,
+                 header=0mm, footer=0mm]
+
+%\setuppagenumbering[location={footer,center}]
+
+\setupbodyfont[11pt, helvetica]
+
+\setupwhitespace[medium]
+
+\setupblackrules[width=31mm, color=rulecolor]
+
+\setuphead[chapter]      [style=\tfd]
+\setuphead[section]      [style=\tfd\bf, color=titlegrey, align=middle]
+\setuphead[subsection]   [style=\tfb\bf, color=sectioncolor, align=right,
+                          before={\leavevmode\blackrule\hspace}]
+\setuphead[subsubsection][style=\bf]
+
+$if(number-sections)$
+$else$
+\setuphead[chapter, section, subsection, subsubsection][number=no]
+$endif$
+
+%\setupdescriptions[width=10mm]
+
+\definedescription
+  [description]
+  [headstyle=bold, style=normal,
+   location=hanging, width=18mm, distance=14mm, margin=0cm]
+
+\setupitemize[autointro, packed]    % prevent orphan list intro
+\setupitemize[indentnext=no]
+
+\defineitemgroup[enumerate]
+\setupenumerate[each][fit][itemalign=left,distance=.5em,style={\feature[+][default:tnum]}]
+
+\setupfloat[figure][default={here,nonumber}]
+\setupfloat[table][default={here,nonumber}]
+
+\setuptables[textwidth=max, HL=none]
+\setupxtable[frame=off,option={stretch,width}]
+
+\setupthinrules[width=15em] % width of horizontal rules
+
+\setupdelimitedtext
+  [blockquote]
+  [before={\setupalign[middle]},
+   indentnext=no,
+  ]
+
+$if(toc)$
+\setupcombinedlist[content][list={$placelist$}]
+
+$endif$
+$for(header-includes)$
+$header-includes$
+$endfor$
+
+\starttext
+$if(title)$
+\startalignment[center]
+  \blank[2*big]
+  {\tfd $title$}
+$if(author)$
+  \blank[3*medium]
+  {\tfa $for(author)$$author$$sep$\crlf $endfor$}
+$endif$
+$if(date)$
+  \blank[2*medium]
+  {\tfa $date$}
+$endif$
+  \blank[3*medium]
+\stopalignment
+$endif$
+$for(include-before)$
+$include-before$
+$endfor$
+$if(toc)$
+\placecontent
+$endif$
+
+$body$
+
+$for(include-after)$
+$include-after$
+$endfor$
+\stoptext