about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-10-27 09:58:33 -0700
committerFranck Cuny <franck@fcuny.net>2022-10-27 09:58:33 -0700
commit8a749d41915a9fc5dc0524a39faf75a24369aa6b (patch)
treeed397926cfa1f1fb782bd83ad8994fc6a5f93fdd
parentref(css): set font family to sans-serif; darker background for code (diff)
downloadfcuny.net-8a749d41915a9fc5dc0524a39faf75a24369aa6b.tar.gz
feat(content): add my resume
Add my resume to the content, with a dedicated CSS. The resume is in
org-mode format, and I use `pandoc` to convert it to HTML. This is done
when the site is build, and is integrated in the docker image.

It is available at /resume.html, but is not listed on the site, that way
I can give the URL to who ever is interested in the future.

It would be useful to also generate a PDF version of it and store it
with other static content.
Diffstat (limited to '')
-rw-r--r--Caddyfile6
-rw-r--r--content/resume.org40
-rw-r--r--flake.nix6
-rw-r--r--static/css/resume.css72
4 files changed, 122 insertions, 2 deletions
diff --git a/Caddyfile b/Caddyfile
index 7456ef5..40c143e 100644
--- a/Caddyfile
+++ b/Caddyfile
@@ -3,6 +3,12 @@
         auto_https off
 }
 
+localhost:8080 {
+        root * {$SITE_ROOT}
+        encode gzip
+        file_server
+}
+
 http://fcunynet.fly.dev {
         redir https://fcuny.net
 }
diff --git a/content/resume.org b/content/resume.org
new file mode 100644
index 0000000..81789a6
--- /dev/null
+++ b/content/resume.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 a Team Lead for the Site Reliability group that was started at the end of 2021.
+
+I define the road-map and identify areas where SREs can partner with different team to improve overall reliability of our infrastructure and 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/flake.nix b/flake.nix
index a752a6e..dc15e9b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -19,10 +19,12 @@
               pname = "fcuny.net";
               version = self.lastModifiedDate;
               src = ./.;
-              buildInputs = [ hugo git ];
+              buildInputs = [ hugo git pandoc ];
               buildPhase = ''
                 mkdir -p $out
-                hugo --minify --destination $out
+                ${pkgs.hugo}/bin/hugo --minify --destination $out
+                ${pkgs.pandoc}/bin/pandoc --self-contained --css static/css/resume.css \
+                  --from org --to html --output $out/resume.html content/resume.org
               '';
               dontInstall = true;
             };
diff --git a/static/css/resume.css b/static/css/resume.css
new file mode 100644
index 0000000..13ed9b3
--- /dev/null
+++ b/static/css/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;
+}