Initial commit
This commit is contained in:
commit
1ec1de684c
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
result
|
||||||
|
alejandro_resume.pdf
|
12
.pre-commit-config.yaml
Normal file
12
.pre-commit-config.yaml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.3.0
|
||||||
|
hooks:
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-added-large-files
|
||||||
|
- repo: https://github.com/kamadorueda/alejandra
|
||||||
|
rev: 3.0.0
|
||||||
|
hooks:
|
||||||
|
- id: alejandra-system
|
177
alejandro_resume.tex
Normal file
177
alejandro_resume.tex
Normal file
|
@ -0,0 +1,177 @@
|
||||||
|
\documentclass{article}
|
||||||
|
|
||||||
|
\usepackage{array}
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\usepackage[letterpaper, portrait, margin=0.5in]{geometry}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{multirow}
|
||||||
|
\usepackage{titlesec}
|
||||||
|
\usepackage{comment}
|
||||||
|
\usepackage[usenames, dvipsnames]{xcolor}
|
||||||
|
|
||||||
|
\definecolor{blue}{HTML}{2079C7}
|
||||||
|
\definecolor{gray}{HTML}{666666}
|
||||||
|
|
||||||
|
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||||||
|
|
||||||
|
\pagenumbering{gobble}
|
||||||
|
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
|
||||||
|
\setlist[itemize]{noitemsep}
|
||||||
|
|
||||||
|
\titleformat{\section}
|
||||||
|
{\color{blue}\normalfont\Large\bfseries}
|
||||||
|
{\color{blue}\thesection}{1em}{\large\uppercase}
|
||||||
|
\titleformat{\subsection}
|
||||||
|
{\normalfont\Large\bfseries}
|
||||||
|
{\thesection}{1em}{\normalsize}
|
||||||
|
\titleformat{\subsubsection}
|
||||||
|
{\color{gray}\normalfont\Large\bfseries}
|
||||||
|
{\color{gray}\thesection}{1em}{\small}
|
||||||
|
|
||||||
|
\titlespacing*{\section}
|
||||||
|
{0em}{0em}{0em}
|
||||||
|
\titlespacing*{\subsection}
|
||||||
|
{0em}{1em}{0em}
|
||||||
|
\titlespacing*{\subsubsection}
|
||||||
|
{0em}{0em}{0em}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\noindent
|
||||||
|
\begin{minipage}[t]{\textwidth}
|
||||||
|
\begin{tabular}{L{.4\textwidth} l l}
|
||||||
|
\multirow{2}{*}{\Huge{ \textbf{Alejandro Angulo}}} & \href{https://github.com/alejandro-angulo}{https://github.com/alejandro-angulo} & \href{https://alejandr0angul0.dev}{https://alejandr0angul0.dev}\\
|
||||||
|
& \href{mailto:\email}{\email} & \phonenumber\\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\vspace{1em}
|
||||||
|
\end{minipage}
|
||||||
|
\begin{minipage}[t]{.8\textwidth}
|
||||||
|
\section*{Professional Experience}
|
||||||
|
\subsection*{Everbridge (formerly NC4) --- \textit{Software Engineer}}
|
||||||
|
\subsubsection*{October 2018 - Present}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\begin{itemize}
|
||||||
|
\vspace{-0.5em}
|
||||||
|
\item Develop and maintain Python and PHP applications
|
||||||
|
\item Migrate VCS from SVN to Git
|
||||||
|
\item Re-architect Python application to improve modularity
|
||||||
|
\item Introduce best practices (follow PEP8 for Python, begin linting code, etc.)
|
||||||
|
\end{itemize}}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\begin{itemize}
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\item Streamline code review process (integrate with source control)
|
||||||
|
\item Maintain and develop a RESTful API written in Python capable of generating reports for end users
|
||||||
|
\item Work with product managers to implement "behind the scenes" changes (upgrading language versions, databases, etc.)
|
||||||
|
\end{itemize}}
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\subsection*{MedQIA --- \textit{Software Engineer}}
|
||||||
|
\subsubsection*{April 2017 - September 2018}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\begin{itemize}
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\item Develop and maintain a Java desktop application used by clinical readers and lab technologists to assist in clinical trials
|
||||||
|
\item Document and validate systems to comply with FDA regulations
|
||||||
|
\item Work on Python applications that keep track of the status of scans
|
||||||
|
\item Maintain and develop a web client written in PHP and JavaScript that provides a dashboard for the data team
|
||||||
|
\end{itemize}}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Maintain and develop a RESTful API written in Python capable of generating reports for end users
|
||||||
|
\item Write Python scripts that plug in to a Java application in order to provide additional functionality (dynamic loading of patients, automating certain tasks for end users, etc.)
|
||||||
|
\item Automate build process for Java applications using Gradle
|
||||||
|
\end{itemize}}
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\subsection*{UC Davis College of Engineering IT Shared Services --- \textit{Student Web Developer and Applications Programmer}}
|
||||||
|
\subsubsection*{May 2014 - April 2017}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\begin{itemize}
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\item Migrate ITS's existing websites to a new server
|
||||||
|
\item Write PHP scripts to scrape data from third-party sites in order to visualize energy consumption
|
||||||
|
\end{itemize}}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\vspace{-1.5em}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Ensure compliance with security standards
|
||||||
|
\item Design responsive layouts using CSS
|
||||||
|
\item Manage departmental sites (most running WordPress)
|
||||||
|
\end{itemize}}
|
||||||
|
\section*{Education}
|
||||||
|
\subsection*{UC Davis --- \textit{B.S. in Applied Physics}}
|
||||||
|
\subsubsection*{Sep 2012 - Jun 2016}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\textbf{Major Courses}
|
||||||
|
\begin{itemize}
|
||||||
|
\vspace{-0.6em}
|
||||||
|
\item Data Structures and Programming
|
||||||
|
\item Algorithm Design and Analysis
|
||||||
|
\item Computational Methods in Physics
|
||||||
|
\end{itemize}}
|
||||||
|
\hspace{0.3cm}
|
||||||
|
\parbox[t]{.5\textwidth}{\raggedright%
|
||||||
|
\textbf{Electives}
|
||||||
|
\begin{itemize}[topsep=0cm]
|
||||||
|
\item Theory of Computation
|
||||||
|
\item Numerical Analysis
|
||||||
|
\item Quantum Mechanics
|
||||||
|
\end{itemize}
|
||||||
|
}
|
||||||
|
\section*{Projects}
|
||||||
|
\subsection*{kilonull --- \textit{Personal Website}}
|
||||||
|
\subsubsection*{\href{https://kilonull.com/}{https://kilonull.com/}}
|
||||||
|
\begin{itemize}
|
||||||
|
\item CMS written in Python (Django app)
|
||||||
|
\item Server runs NGINX in conjunction with uWSGI on the backend
|
||||||
|
\item Tests set up to run using tox on Travis CI
|
||||||
|
\end{itemize}
|
||||||
|
\subsection*{List Category Posts --- \textit{WordPress Plugin}}
|
||||||
|
\subsubsection*{\href{https://wordpress.org/plugins/list-category-posts/}{https://wordpress.org/plugins/list-category-posts/}}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Submit bug fixes and enhancements to an open source WordPress plugin written in PHP
|
||||||
|
\end{itemize}
|
||||||
|
\begin{comment}
|
||||||
|
\subsection*{Archfeed --- \textit{CLI RSS Reader}}
|
||||||
|
\subsubsection*{\href{https://github.com/vacuus/archfeed}{https://github.com/vacuus/archfeed}}
|
||||||
|
\begin{itemize}
|
||||||
|
\item RSS reader written in C
|
||||||
|
\item Fetches latest news for the Arch Linux distribution.
|
||||||
|
\end{itemize}
|
||||||
|
\end{comment}
|
||||||
|
\subsection*{Simulations for Physics Students --- \textit{Interactive Visualizations}}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Developed two visualizations written in JavaScript to help students understand physical concepts.
|
||||||
|
\item Used Three.js library to simulate detection of active galactic nuclei.
|
||||||
|
\item Used Kinetic.js library to visualize how photon count can be used to detect a star's radius.
|
||||||
|
\end{itemize}
|
||||||
|
\end{minipage}%
|
||||||
|
\hspace*{0.5cm}
|
||||||
|
\begin{minipage}[t]{.2\textwidth}
|
||||||
|
\section*{Languages}
|
||||||
|
\vspace{0.8em}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Python
|
||||||
|
\item PHP
|
||||||
|
\item JavaScript
|
||||||
|
\item SQL
|
||||||
|
\item BASH
|
||||||
|
\item Java
|
||||||
|
\end{itemize}
|
||||||
|
\section*{Toolset}
|
||||||
|
\vspace{0.8em}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Apache
|
||||||
|
\item Django
|
||||||
|
\item Git
|
||||||
|
\item \LaTeX
|
||||||
|
\item NGINX
|
||||||
|
\item Linux
|
||||||
|
\end{itemize}
|
||||||
|
\end{minipage}
|
||||||
|
\end{document}
|
43
flake.lock
Normal file
43
flake.lock
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667395993,
|
||||||
|
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1670507980,
|
||||||
|
"narHash": "sha256-riNZa0xzM1it3pzxciwALeMs+0CsBMWIW2FqulzK8vM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2787fc7d1e51404678614bf0fe92fc296746eec0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
92
flake.nix
Normal file
92
flake.nix
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
description = "Resume";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
|
||||||
|
flake-utils.url = github:numtide/flake-utils;
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
}:
|
||||||
|
with flake-utils.lib;
|
||||||
|
eachSystem allSystems (system: let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
tex = pkgs.texlive.combine {
|
||||||
|
# I'm being lazy and using scheme-full instead of specifying what's
|
||||||
|
# actually required
|
||||||
|
inherit (pkgs.texlive) scheme-full latex-bin latexmk;
|
||||||
|
};
|
||||||
|
vars = ["email" "phonenumber"];
|
||||||
|
# Create definitions like \def\email{1}
|
||||||
|
# Each variable will be set to the command line argument at the
|
||||||
|
# variable's position (first arg passed to resume generator will fill
|
||||||
|
# in usages of \email in the tex flie)
|
||||||
|
texvars = toString (pkgs.lib.imap1 (i: n: ''\def\${n}{${"$" + (toString i)}}'') vars);
|
||||||
|
in rec {
|
||||||
|
packages = {
|
||||||
|
alejandro-resume = pkgs.stdenvNoCC.mkDerivation rec {
|
||||||
|
name = "alejandro-resume";
|
||||||
|
src = self;
|
||||||
|
propogatedBuildInputs = [pkgs.coreutils tex];
|
||||||
|
phases = ["unpackPhase" "buildPhase" "installPhase"];
|
||||||
|
SCRIPT = ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
prefix=${builtins.placeholder "out"}
|
||||||
|
export PATH="${pkgs.lib.makeBinPath propogatedBuildInputs}";
|
||||||
|
DIR=$(mktemp -d)
|
||||||
|
RES=$(pwd)/alejandro_resume.pdf
|
||||||
|
|
||||||
|
cd $prefix/share
|
||||||
|
mkdir -p "$DIR/.texcache/texmf-var"
|
||||||
|
|
||||||
|
env TEXFMHOME="$DIR/.texcache" TEXMFVAR="$DIR/.texcache/texmf-var" \
|
||||||
|
latexmk -interaction=nonstopmode -pdf -lualatex \
|
||||||
|
-output-directory="$DIR" \
|
||||||
|
-pretex="${texvars}"\
|
||||||
|
-usepretex alejandro_resume.tex
|
||||||
|
|
||||||
|
mv "$DIR/alejandro_resume.pdf" $RES
|
||||||
|
rm -rf $DIR
|
||||||
|
'';
|
||||||
|
buildPhase = ''
|
||||||
|
printenv SCRIPT > alejandro-resume
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/{bin,share}
|
||||||
|
cp alejandro_resume.tex $out/share/alejandro_resume.tex
|
||||||
|
cp alejandro-resume $out/bin/alejandro-resume
|
||||||
|
chmod u+x $out/bin/alejandro-resume
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultPackage = packages.alejandro-resume;
|
||||||
|
|
||||||
|
devShells = {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
name = "default";
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
alejandra
|
||||||
|
direnv
|
||||||
|
git
|
||||||
|
pre-commit
|
||||||
|
tex #TODO: Is this necessary?
|
||||||
|
zathura # PDF Viewer
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
PATH=${pkgs.writeShellScriptBin "nix" ''
|
||||||
|
${pkgs.nixVersions.stable}/bin/nix --experimental-features "nix-command flakes" "$@"
|
||||||
|
''}/bin:$PATH
|
||||||
|
|
||||||
|
if [ ! -f ".git/hooks/pre-commit" ]; then
|
||||||
|
pre-commit install &> /dev/null
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in a new issue