Initial commit

This commit is contained in:
Adriano Caloiaro 2022-05-28 20:11:10 -06:00
commit 5be6c50701
No known key found for this signature in database
GPG key ID: C2BC56DE73CE3F75
15 changed files with 664 additions and 0 deletions

View file

@ -0,0 +1,5 @@
FROM pandoc/latex:2.9
RUN apk add make
COPY actions/entrypoint.sh /entrypoint.sh

9
.dockerignore Normal file
View file

@ -0,0 +1,9 @@
*.tuc
*.log
*.pdf
*.html
resume.tex
*.swo
*.swp
*.docx
*.rtf

55
.github/workflows/docker-update.yml vendored Normal file
View file

@ -0,0 +1,55 @@
# This workflow updates the docker container which has context and
# pandoc installed, and on which the resume documents are built. The
# workflow runs whenever the dockerfile is changed, and updates the
# container image in the Github Packages registry.
name: Publish Docker Image
# Controls when the action will run.
on:
# Triggers the workflow on push events but only for the master branch
push:
branches: [ master ]
paths-ignore:
- 'markdown/**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
push_to_registry:
name: Push Docker image to GitHub Packages
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and Push to GitHub Packages
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: .docker/resume.dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

36
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,36 @@
# This is a basic workflow to help you get started with Actions
name: build-resume
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
paths:
- 'markdown/**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build-resume:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Test directory contents
run: 'ls -al'
- name: Build resume
uses: ./actions
- name: Upload a Build Artifact
uses: actions/upload-artifact@v2.2.3
with:
# Artifact name
name: Resume PDF # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: output/*.pdf

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
*.log
*.swo
*.swp
output/

58
Makefile Normal file
View file

@ -0,0 +1,58 @@
OUT_DIR=output
IN_DIR=markdown
STYLES_DIR=styles
STYLE=chmduquesne
all: html pdf docx rtf
pdf: init
for f in $(IN_DIR)/*.md; do \
FILE_NAME=`basename $$f | sed 's/.md//g'`; \
echo $$FILE_NAME.pdf; \
pandoc --standalone --template $(STYLES_DIR)/$(STYLE).tex \
--from markdown --to context \
--variable papersize=A4 \
--output $(OUT_DIR)/$$FILE_NAME.tex $$f > /dev/null; \
mtxrun --path=$(OUT_DIR) --result=$$FILE_NAME.pdf --script context $$FILE_NAME.tex > $(OUT_DIR)/context_$$FILE_NAME.log 2>&1; \
done
html: init
for f in $(IN_DIR)/*.md; do \
FILE_NAME=`basename $$f | sed 's/.md//g'`; \
echo $$FILE_NAME.html; \
pandoc --standalone --include-in-header $(STYLES_DIR)/$(STYLE).css \
--lua-filter=pdc-links-target-blank.lua \
--from markdown --to html \
--output $(OUT_DIR)/$$FILE_NAME.html $$f \
--metadata pagetitle=$$FILE_NAME;\
done
docx: init
for f in $(IN_DIR)/*.md; do \
FILE_NAME=`basename $$f | sed 's/.md//g'`; \
echo $$FILE_NAME.docx; \
pandoc --standalone $$SMART $$f --output $(OUT_DIR)/$$FILE_NAME.docx; \
done
rtf: init
for f in $(IN_DIR)/*.md; do \
FILE_NAME=`basename $$f | sed 's/.md//g'`; \
echo $$FILE_NAME.rtf; \
pandoc --standalone $$SMART $$f --output $(OUT_DIR)/$$FILE_NAME.rtf; \
done
init: dir version
dir:
mkdir -p $(OUT_DIR)
version:
PANDOC_VERSION=`pandoc --version | head -1 | cut -d' ' -f2 | cut -d'.' -f1`; \
if [ "$$PANDOC_VERSION" -eq "2" ]; then \
SMART=-smart; \
else \
SMART=--smart; \
fi \
clean:
rm -f $(OUT_DIR)/*

97
README.md Normal file
View file

@ -0,0 +1,97 @@
The Markdown Resume
===================
### Instructions
```bash
vim markdown/resume.md
```
#### Local
Make everything
```bash
make
```
Make specifics
```bash
make pdf
make html
```
#### Dockerized
Make everything
```bash
docker-compose up -d
```
### Requirements
If not using `docker` then you will need the following dependencies.
* ConTeXt 0.6x
* pandoc 2.x
* 1.x is deprecated
Last tested on the above versions and that's not to say the later versions won't work. Please try to use the latest versions when possible.
#### Debian / Ubuntu
```bash
sudo apt install pandoc context
```
#### Fedora
```bash
sudo dnf install pandoc texlive-collection-context
```
#### Arch
```bash
sudo pacman -S pandoc texlive-core
```
#### OSX
```bash
brew install pandoc
brew install --cask mactex
```
Make sure to add the directory `/Library/TeX/texbin/` to your path or `context` and `mtxrun` will not be found.
```
export PATH=$PATH:/Library/TeX/texbin/
```
### Troubleshooting
#### Get versions
Check if the dependencies are up to date.
```
context --version
pandoc --version
```
#### Cannot process lua
Currently pandoc 1.x may be within your distro's repos and the latest version should be used. See the
[pandoc releases](https://github.com/jgm/pandoc/releases) for your distro.
e.g. for Debian / Ubuntu
```
wget https://github.com/jgm/pandoc/releases/download/2.2.1/pandoc-2.2.1-1-amd64.deb
sudo dpkg -i pandoc-2.2.1-1-amd64.deb
```
#### Context executable cannot be found
Some users have reported problems where their system does not properly find the ConTeXt
executable, leading to errors like `Cannot find context.lua` or similar. It has been found
that running `mtxrun --generate`, ([suggested on texlive-2011-context-problem](
https://tex.stackexchange.com/questions/53892/texlive-2011-context-problem)), can fix the
issue.

7
actions/action.yml Normal file
View file

@ -0,0 +1,7 @@
# action.yml
name: 'Texlive Build'
description: 'Build a document using texlive'
runs:
using: 'docker'
image: 'docker://ghcr.io/mszep/pandoc_resume:master'
entrypoint: '/entrypoint.sh'

3
actions/entrypoint.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
sh -c make pdf

13
docker-compose.yml Normal file
View file

@ -0,0 +1,13 @@
version: '2'
services:
resume-make:
build:
context: .
dockerfile: ./.docker/resume.dockerfile
command: make
container_name: resume-make
image: resume-make
volumes:
- .:/home/app/resume

25
markdown/cover_letter.md Normal file
View file

@ -0,0 +1,25 @@
Adriano Caloiaro
================
----
> I'm a lifetime builder of software; it's both an occupation and a hobby.
> Also a lifetime spender of time in the outdoors: cycling, trail running, skiing, and everything in between.
---
> Email: [work@adriano.fyi](mailto:work@adriano.fyi)
> Website: [https://adriano.fyi](https://adriano.fyi)
> Linkedin: [https://www.linkedin.com/in/adrianocaloiaro](https://www.linkedin.com/in/adrianocaloiaro)
---
I'm a software engineer by trade who has been working in leadership for the last several years. My primary goal is to return to a technical individual contributor role where I can do every day what I love the most: build software. Since joining leadership I have been working on side projects in my free time to scratch my itch to build things, and I'd like to get back to building things professionally.
I'm looking to join a team of engineers who are both passionate about what they do professionally, and reserve time in their lives for what they're passionate about unprofessionally. I'm looking for a team of pragmatic software engineers who are low on ego, high on execution, and enjoy building systems in a cross-disciplinary setting.
I'm looking for the type of company that has a concrete plan to feasibly make people's lives better in some way. That can be achieved through means as simple as humane and thoughtful employee policies, or it could be as lofty its commercials plans to improve Earth's environment. What's important to me is that the company cares about its employees and its greater impact on the world.

134
markdown/resume.md Normal file
View file

@ -0,0 +1,134 @@
Adriano Caloiaro
================
----
> I'm a lifetime builder of software; it's both an occupation and a hobby.
> Also a lifetime spender of time in the outdoors: cycling, trail running, skiing, and everything in between.
---
> Email: [work@adriano.fyi](mailto:work@adriano.fyi)
> Website: [https://adriano.fyi](https://adriano.fyi)
> Linkedin: [https://www.linkedin.com/in/adrianocaloiaro](https://www.linkedin.com/in/adrianocaloiaro)
---
BKCoin Capital (2021-2022)
--------------------------
**CTO**
I joined BKCoin Capital -- a digital assets hedge fund -- to build its technology stack and automate its manual trade operations.
The prospect of working in a new industry interested me, and I've truly learned a lot while building much of what powers BKCoin Capital's trading operations today.
In additional to leading the development of key technical infrastructure, I am also responsible for IT policy-setting, firm cybersecurity, and collaborating both internally and externally to devise technical solutions that serve our client's investments.
---
Greenhouse Software (2016-2021)
---------------------------------
**Senior/Engineering Manager**
As a Senior Engineering manager at Greenhouse Software I lead a number of product engineering teams. The engineering manager role at Greenhouse comprises technical leadership, stewarding the careers of team members, and playing a key role in the evolution of the greater R&D organization.
Engineering managers are hands-on at Greenhouse, allowing me to keep my technical skills fresh, from designing systems to implementing them.
As a manager, I also continued my role as mentor to both engineers and aspiring engineers within the company. I met weekly with mentees in the hope of helping my coworkers develop fulfilling software engineering careers.
---
**Senior/Software Engineer**
As a senior software engineer at Greenhouse I built many product features, acted as a project technical lead, and mentored both engineers and aspiring engineers in the craft of software development.
I also helped shape many of the product development and incident response processes in place today.
I worked in multiple tech stacks
- (Ruby) Greenhouse Recruiting's monolithic Ruby on Rails/React.js application
- (Ruby) Business intelligence connector (BIC), an in-house ETL system for making companies' talent acquisition data available in multiple data syncs such as AWS S3, Redshift, Postgres, and flat-file repositories.
- (iOS/Android) Greenhouse's first mobile applications powering recruiting operations "on the go"
- (Golang) Built Dochouse, Greenhouse's [document processing system](https://medium.com/in-the-weeds/slaying-the-monolith-3b7a017faf02)
Myatt & Johnson Inc. (2012-2014)
--------------------------------
**Partner/Software Engineer**
Myatt & Johnson was an R&D firm aiming to commercialize novel technologies for the development and treatment of cancer.
Over the course of four years we completed the design and development of a high-performance, web-based visual analytics platform fulfilling the obligations of a Small Business Innovation Research (SBIR) grant awarded by the National Institute of Health.
The platform aims to improve the visual exploration of high-throughput screening data by leveraging intuitive user interface design and highly optimized and parallelized analytics algorithms
Nine Nine Solutions (2010-2012)
-------------------------------
**Founder**
I founded Nine Nine Solutions out of a desire to work on new and interesting problems. After gathering a small team of like-minded individuals with a passion for challenges, we grew the business from zero to profitability in a matter of months.
Over the course of two years we delivered everything from mobile applications and cloud infrastructure migrations to a flight computer (hardware and software) for sport plane pilots.
Other Roles (2004-2010)
-----------------------
Prior to 2010 I predominantly worked in a mix of web development and Linux System Administration roles (today what we might call an "SRE"). They were fulfilling years full of learning important lessons that I benefit from every day.
Technical Experience
--------------------
Open Source
: While I can hardly consider myself a powerful figure in the open source community, I've always done my best to contribute back to the projects from which I've benefited. I've contributed to dozens of open source projects over the years in ways mostly small, but gratifying to me.
Publication
: At Myatt & Johnson Inc. we helped develop a novel statistical method with applications to chemotherapy (albeit applied to financial data here). While my focus for this work was primarily computational, it was a wonderful opportunity to work with individuals much smarter than me: [https://wires.onlinelibrary.wiley.com/doi/abs/10.1002/wics.1382](https://wires.onlinelibrary.wiley.com/doi/abs/10.1002/wics.1382)
My Personal Projects
: These are some of my personal projects that I've really enjoyed hacking on. There are countless others that did not and will not ever see the light of day, some including multi-thousands of lines of code that turned out to be nothing but a fun learning experience.
- **di-tui**. I have bad taste in music, but I'm almost listening to something non-vocal and electronic to drown out background noise. Since I love TUIs and CLIs, a built a terminal based player for `di.fm`: [https://github.com/acaloiaro/di-tui](https://github.com/acaloiaro/di-tui)
- **struct**. I use this little CLI with surprising frequency. It transforms unstructured textual data into structured `JSON` or `CSV` data; particularly useful in combination with `jq`: [https://github.com/acaloiaro/struct](https://github.com/acaloiaro/struct)
- **topk-taupth**. This is an algorithm I'm really proud of. It proved that highly concordant subpopulations of variables could be discovered in `O(n^2)` instead of `O(n^3)`. Applied to subpopulations of chemical compounds for chemotherapy, it could result in novel discoveries. Following the dissolution of Myatt & Johnson Inc. we decided to open source it: [https://github.com/acaloiaro/topk-taupath](https://github.com/acaloiaro/topk-taupath).
Reasonably Competent SRE
: I consider myself a reasonably competent SRE. I began my first official role as a "Linux System Administrator" in the early 2000s and continued to refine my system operation skills over the years to include tools such as
- The major AWS services, and even more obscure ones like Cloud 9
- Hashicorp Terraform, Nomad, Waypoint, and Vault
- General Linux operation
- Docker / Containerization
- Ansible
Programming Languages
: **Golang:** I list Golang first among my languages, not because it is the one with which I have the most experience (it's not), but because I find it the most pleasant to work in. It has strong typing, it strives for simplicity, and it makes it difficult to shoot oneself in the foot. I really enjoy working in Golang.
: **Ruby:** I have always found Ruby to be a very productive language. I have fairly considerable experience applying it to real-world problems. While I have my occasional qualms with Ruby -- I do find it to be a nice language.
: **Javascript**: Javascript is that language that one can hardly get through their career without. It solves a lot of problems, it's embedded in a lot of important places. It gets the job done.
: **Java**: It may not be the most trendy language, but it was my first language that I used professionally. It will always have a special place in my heart and I'd be happy to work in it professionally any day.
: **Python**: Python has some really nice packages for solving domain-specific problems, particularly in statistics. I know the language decently well, and won't hesitate to be productive in it.
: **SQL**: The world wouldn't run without it.
: I also have a working knowledge of: **C**, **C++**, **Dart**, **Perl**, **PHP**, **Scala**, **Swift**
Education
---------
2004-2008
: **BS, Computer Information Systems**; Stetson University

View file

@ -0,0 +1,15 @@
-- Add target="_blank" attributes to all http links in a Pandoc document
local function add_target_blank (link)
if string.match(link.target, '^http') then -- here .target == href attribute
link.attributes.target = '_blank' -- here .target == traget attribute
end
return link
end
-- remove lines 4 and 6 to add target="_blank" to all links, not just http(s)
return {
{ Link = add_target_blank }
}

90
styles/chmduquesne.css Normal file
View file

@ -0,0 +1,90 @@
<style type="text/css">
/*
* Copyright 2013 Christophe-Marie Duquesne <chmd@chmd.fr>
*
* CSS for making a resume with pandoc. Inspired by moderncv.
*
* This CSS document is delivered to you under the CC BY-SA 3.0 License.
* https://creativecommons.org/licenses/by-sa/3.0/deed.en_US
*/
/* Whole document */
body {
font-family: Courier, "Helvetica Neue", Helvetica, Arial, sans-serif;
max-width: 800px;
margin: auto;
background: #FFFFFF;
padding: 10px 10px 10px 10px;
}
/* Title of the resume */
h1 {
font-size: 55px;
color: #757575;
text-align:center;
margin-bottom:15px;
}
/* h1:hover { */
/* background-color: #757575; */
/* color: #FFFFFF; */
/* text-shadow: 1px 1px 1px #333; */
/* } */
/* Titles of categories */
h2 {
/* This is called "sectioncolor" in the ConTeXt stylesheet. */
color: #397249;
}
/* There is a bar just before each category */
h2:before {
content: "";
display: inline-block;
margin-right:1%;
width: 16%;
height: 12px;
/* This is called "rulecolor" in the ConTeXt stylesheet. */
background-color: #397249;
}
/* Definitions */
dt {
float: left;
clear: left;
width: 17%;
font-weight: bold;
}
dd {
margin-left: 17%;
margin-bottom:7px;
}
p {
margin-top:0;
margin-bottom:7px;
}
/* Blockquotes */
blockquote {
text-align: center
}
/* Links */
a {
text-decoration: none;
color: #397249;
}
a:hover, a:active {
background-color: #397249;
color: #FFFFFF;
text-decoration: none;
text-shadow: 1px 1px 1px #333;
}
/* Horizontal separators */
hr {
color: #A6A6A6;
}
table {
width: 100%;
}
</style>

113
styles/chmduquesne.tex Normal file
View file

@ -0,0 +1,113 @@
% Copyright 2013 Christophe-Marie Duquesne <chmd@chmd.fr>
% Copyright 2014 Mark Szepieniec <http://github.com/mszep>
%
% ConText style for making a resume with pandoc. Inspired by moderncv.
%
% This CSS document is delivered to you under the CC BY-SA 3.0 License.
% https://creativecommons.org/licenses/by-sa/3.0/deed.en_US
\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, courier]
\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=20mm, 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