%% jidicula-resume.tex
% Copyright 2025 Johanan Idicula
%
% LICENSE
% Copyright 2025 Johanan Idicula
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% This work has the LPPL maintenance status `maintained'.
% The Current Maintainer of this work is Johanan Idicula.
% This work consists of the file LICENSE, jidicula-resume.tex, jidicula-resume.cls .
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is a modified ONE COLUMN version of
% the following template:
% Original repository:
% https://github.com/deedydas/Deedy-Resume
%
% jidicula-resume
% LaTeX Template
% Version 1.1 2025-05-15
%
% Johanan Idicula
%
% IMPORTANT: THIS TEMPLATE NEEDS TO BE COMPILED WITH XeLaTeX
%
% This template uses fonts not included with Windows/Linux by
% default. If you get compilation errors saying a font is missing, find the line
% on which the font is used and either change it to a font included with your
% operating system or comment the line out to use the default font.
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[]{jidicula-resume}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Web version and datestamp
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\livelocation\hfill\lastupdated{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TITLE NAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\namesection{Johanan}{Idicula}
{ Blog: \urlstyle{same}\href{http://forcepush.tech}{\bf forcepush.tech}
| GitHub: \href{http://github.com/jidicula}{\bf github.com/jidicula} | LinkedIn: \href{https://linkedin.com/in/jidicula}{\bf linkedin.com/in/jidicula} \\
Stack Overflow: \href{https://stackoverflow.com/users/6310633/jidicula}{\bf jidicula} \\ \href{mailto:resume@johanan.dev}{resume@johanan.dev}
| Dortmund, NRW, Germany \\~\\
% {\Large Agile Developer That Leaves No Team Member Behind}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Employment
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Employment}
\runsubsection{Software Engineer III}
\descript{GraphQL API Platform, GitHub}
\location{Jul 2022--present | Remote}
\vspace{\topsep} % Hacky fix for awkward extra vertical space
\begin{tightemize}
\item Shipping platform features and bugfixes for GitHub's GraphQL API, including safe GraphQL gem upgrades, rate-limiting, performance and availability improvements, and database optimizations.
\item Previously a GitHub Actions Platform engineer:
\begin{itemize}
\item Shipped platform features and bugfixes to integrate GitHub Actions and GitHub Packages with GitHub Enterprise products and github.com using \textbf{C\#}, \textbf{Powershell}, \textbf{Bash}, \textbf{Kubernetes}, \textbf{Go}, and \textbf{Ruby}.
\item Created an end-to-end testing solution for GitHub Actions in GitHub AE.
\item Managed an availability improvement effort for request routing in GitHub Actions.
\end{itemize}
\end{tightemize}
\sectionsep{}
\runsubsection{Software Developer}
\descript{Government of Canada}
\location{Oct 2020--Jul 2022 | Remote}
\vspace{\topsep} % Hacky fix for awkward extra vertical space
\begin{tightemize}
\item Cloud Operations Services, Employment and Social Development Canada:
\begin{itemize}
\item Guided client teams in migrating their application workloads out of government data centres to \textbf{Azure}.
\end{itemize}
\item Cloud Platform Engineering, Shared Services Canada:
\begin{itemize}
\item Developed cloud landing zones in \textbf{Azure} using \textbf{Terraform} and \textbf{Go} infrastructure-as-code.
\end{itemize}
\item Digital HR, Department of National Defence:
\begin{itemize}
\item Developed an applicant tracking system in \textbf{Django} used by over 3000 applicants and 600 managers.
\item Led team's move towards a pure \textbf{CI/CD} workflow with automated build, test, and code quality checks as well as autodeploy and autorelease workflows using \textbf{GitHub Actions}, and later ported to \textbf{Azure Pipelines}.
\item Coached a team of 9 developers and 2 UI/UX designers by filling a Scrum Master-like role: coordinating team's \textbf{self-organization}, helping team members resolve roadblocks, and encouraging team's \textbf{openness} and \textbf{continuous improvement}.
\item \textbf{Git} Guru for team, shared knowledge about best practices for rebasing, cherrypicking, history editing, and merge conflict resolution.
\end{itemize}
\end{tightemize}
\sectionsep{}
\runsubsection{Software Development Consultant}
\descript{NeuroPoly, Polytechnique Montr\'eal}
\location{Aug 2020--Mar 2021 | Montr\'eal, QC, Canada}
\vspace{\topsep} % Hacky fix for awkward extra vertical space
\begin{tightemize}
\item Led architectural and project management decisions for development on shimming-toolbox, a \textbf{Python} tool for quantitative MRI data acquisition (\href{https://github.com/shimming-toolbox/shimming-toolbox}{\bf github.com/shimming-toolbox/shimming-toolbox}).
\item Migrated CI workflows from \textbf{Travis CI} to \textbf{GitHub Actions} for automated build and unit testing.
\item Provided code reviews and insight on technical decisions on a casual basis.
\end{tightemize}
\sectionsep{}
\runsubsection{Junior Software Developer}
\descript{Precision Analytics}
\location{Sep 2019--Dec 2019 | Montr\'eal, QC, Canada}
\vspace{\topsep} % Hacky fix for awkward extra vertical space
\begin{tightemize}
\item Developed laboratory information management systems with customized data
onboarding, analysis, and visualization \textbf{Shiny} dashboards using \textbf{R Tidyverse} libraries
for clients in the pharmaceutical and biotechnology sectors.
\end{tightemize}
\sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% RESEARCH
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Research}
\runsubsection{Undergraduate Research Assistant}
\descript{Biological and Active Materials Lab, McGill University }
\location{Oct 2015--Sep 2019 | Montr\'eal, QC, Canada}
Worked with Professor Allen Ehrlicher on cell mechanics projects:
\runsubsubsection{Probing the Mechanosensitivity of $\alpha$-actinin-4 |
\href{http://github.com/jidicula/fluoratio}{github.com/jidicula/fluoratio}}
\textbf{| Python}
\begin{tightemize}
\item Analyzes and visualizes microscopy images using the \textbf{datetime},
\textbf{numpy}, \textbf{scikit-image}, and \textbf{seaborn} libraries.
\item Achieved a $\frac{1}{N}$ runtime reduction using the Python3 \textbf{multiprocessing} library to parallelize the workflow using $N$ idle processor cores.
\end{tightemize}
\sectionsep{}
\runsubsubsection{Magnetic Microrheology |
\href{github.com/jidicula/magtrack}{github.com/jidicula/magtrack}}
\textbf{| Python}
\begin{tightemize}
\item Worked with a Master's student to develop a novel technique for measuring the material properties of cells.
\item Tracks objects in microscopy videos and loads their
positions into \textbf{DataFrames} for analysis and visualization.
\item Integrated the \textbf{Trackpy}, \textbf{pandas}, \textbf{numpy},
\textbf{scikit-image}, and \textbf{seaborn} libraries into workflow.
\end{tightemize}
\sectionsep{}
\runsubsubsection{Cell Monolayer Deformation Microscopy |
Publication in press}
\textbf{| MATLAB}
\begin{tightemize}
\item Quantifies and visualizes cell monolayer deformation from microscopy
images.
\item \textbf{Cell Monolayer Deformation Microscopy reveals mechanical fragility of cell monolayers following EMT}, Biophysical Journal, 2022. \href{https://doi.org/10.1016/j.bpj.2022.01.003}{doi.org/10.1016/j.bpj.2022.01.003}\\
Amy A. Sutton, Clayton W. Molter, Ali Amini, \textbf{Johanan Idicula},
Maxwell Furman, Pouria Tirgar, Yuanyuan Tao, Ajinkya Ghagre, Newsha Koushki, Adele Khavari, Allen J. Ehrlicher.
\end{tightemize}
\sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Projects
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Hobby Projects}
\runsubsection{clang-format-action}
\descript{GitHub Action for clang-format checks | Bash, Docker, GitHub Actions}
\location{Mar 2020--Present | \href{https://github.com/jidicula/clang-format-action}{github.com/jidicula/clang-format-action}}
\begin{tightemize}
\item GitHub Action for running clang-format checks in CI, used by $>$1500 public repositories, including projects by Microsoft, Cisco, Facebook, Apache, Intel, Bytedance, and Spotify.
\item Supports clang-format versions from 3.9 (2016) onwards, covered with end-to-end CI tests.
\end{tightemize}
\sectionsep{}
\runsubsection{cloudflare-cachebuster}
\descript{Azure Function in Go that purges a site's Cloudflare cache | Go, GitHub Actions, Azure Functions, Cloudflare}
\location{Jul 2022--Present | \href{https://github.com/jidicula/cloudflare-cachebuster}{github.com/jidicula/cloudflare-cachebuster}}
\begin{tightemize}
\item \textbf{Azure Function} written in Go that proxies a call to Cloudflare's \texttt{purge_cache} API endpoint to purge a site's cache.
\item I use this tool for building my personal website! This function purges the cache of \href{https://forcepush.tech}{forcepush.tech}, invoked via a post-deploy POST hook in \textbf{Netlify}.
\item Previously deployed as a \textbf{Google Cloud Function} --- read my \href{https://forcepush.tech/triggering-cloudflare-cache-purging-with-netlifys-post-deploy-hooks-and-a-google-cloud-function-in-go}{writeup}.
\item Created CD automation using \textbf{GitHub Actions} build and deploy the serverless function as well as autorelease workflows for publishing new versions of the module to pkg.go.dev.
\end{tightemize}
\sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Languages
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Languages}
% \subsection{English}
% Native fluency
% \sectionsep{}
% \subsection{French}
% Conversational and basic reading comprehension
% \sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Education
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Education}
\runsubsection{McGill University}
\descript{B.Sc. Anatomy and Cell Biology}
\location{May 2020 | Montr\'eal, QC, Canada}
\sectionsep{}
\runsubsection{Pluralsight}
\descript{Terraform --- Getting Started}
\location{Nov 2021 | Pluralsight}
\sectionsep{}
\runsubsection{Pluralsight}
\descript{Concurrent Programming with Go}
\location{Nov 2021 | Pluralsight}
\sectionsep{}
\runsubsection{Pluralsight}
\descript{Building Distributed Applications with Go}
\location{Dec 2021 | Pluralsight}
\sectionsep{}
\runsubsection{Duke University}
\descript{Building Cloud Computing Solutions at Scale}
\location{Jan 2022 | Coursera}
\sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tech
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Tech}
\begin{minipage}[t]{.32\textwidth}
\subsection{Languages}
\location{Advanced Knowledge of:}
Python \textbullet{} Bash \textbullet{} Go \\
\location{Familiarity with:}
\LaTeX{} \textbullet{} SQLite \textbullet{} R \textbullet{} MATLAB \\
MySQL \textbullet{} JavaScript \textbullet{} Java \\
C \textbullet{} Terraform \textbullet{} C\# \textbullet{} Powershell \\
Ruby
\sectionsep{}
\end{minipage}
\hfill
\begin{minipage}[t]{.32\textwidth}
\subsection{Tools \& Libraries}
Git \textbullet{} Azure \textbullet{} {Debian GNU/Linux} \textbullet{} Unix \\
Kubernetes \& Docker \textbullet{} macOS \\
Travis CI \textbullet{} HTML/CSS \textbullet{} Jira \textbullet{} \\
Make \textbullet{} GDB \textbullet{} gprof \textbullet{} Emacs \\
Vim \textbullet{} Pandas \textbullet{} OpenCV \textbullet{} Flask \\
Requests \textbullet{} pytest \textbullet{} Poetry \textbullet{} Django \\
Jupyter \textbullet{} Sphinx \textbullet{} OpenTelemetry \\
Datadog \textbullet{} Kusto \textbullet{} Splunk
\sectionsep{}
\end{minipage}
\hfill
\begin{minipage}[t]{.32\textwidth}
\subsection{Concepts}
\location{Advanced Knowledge of:}
Image Analysis \textbullet{} Computer Vision \\
Data Visualization \textbullet{} Concurrency \\
Agile Development \\
Infrastructure as Code
\location{Familiarity with:}
Data ETL \textbullet{} RESTful APIs \\
Machine Learning \textbullet{} Data Exploration
\sectionsep{}
\end{minipage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Extracurriculars
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Extracurriculars}
% \runsubsection{Bass Chorister} \location{| Church of St.\ John the Evangelist, Montr\'eal, QC}
% \location{2020--present}
% \vspace{\topsep}
% \begin{tightemize}
% \item Sings bass in an 8-voice choir specializing in ancient and classical choral music.
% \end{tightemize}
% \sectionsep{}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % Hobbies
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Hobbies}
% \sectionsep{}
% \begin{tightemize}
% \item Cooking
% \item Biking
% \item Guitar
% \item Indoor Gardening
% \item Tech Blogging: \href{http://forcepush.tech}{forcepush.tech}
% \end{tightemize}
% \sectionsep{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% References
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{References}
% \subsection{Professor Allen J. Ehrlicher}
% \location{Associate Professor, Department of Bioengineering, McGill University}
% \href{mailto:allen.ehrlicher@mcgill.ca}{allen.ehrlicher@mcgill.ca}
% \href{tel:15147148239}{+1-514-714-8239}
% \sectionsep
\end{document}

PDF Preview
Create an account to compile and preview