summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile30
-rw-r--r--cv.tex158
-rw-r--r--experience.tex64
-rw-r--r--opensource.tex17
-rw-r--r--specialinterest.tex4
-rw-r--r--statement.tex16
6 files changed, 142 insertions, 147 deletions
diff --git a/Makefile b/Makefile
index 5db767f..9b7acf3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,27 @@
-.PHONY: clean
+LATEXMK=latexmk
+LATEXMKOPT=-pdf -xelatex
+CONTINUOUS=-pvc
-all: clean cv.pdf cv-web.pdf
+MAIN=cv
+RUBRICS=statement.tex experience.tex opensource.tex specialinterest.tex
+SOURCES=Makefile $(RUBRICS)
-cv-web.pdf : cv.pdf
- qpdf --linearize $< $@
+all: $(MAIN).pdf
-%.pdf : %.tex
- latexmk -f -pdf -xelatex -quiet $<
+.refresh:
+ touch .refresh
+$(MAIN).pdf: $(MAIN).tex .refresh $(SOURCES)
+ $(LATEXMK) $(LATEXMKOPT) $(CONTINUOUS) $(MAIN)
+
+%.pdf : %.tex rubric.tex
+ latexmk -f -pdf -xelatex -use-make $<
+
+cleanall:
+ latexmk -C
clean:
- rm -f *.{aux,fdb_latexmk,fls,log,xdv,out}
+ latexmk -c
+watch:
+ latexmk -pvc -f -pdf -xelatex $<
-cleanall : clean
- rm -f *.pdf
+.PHONY: clean cleanall watch
diff --git a/cv.tex b/cv.tex
index edfebed..abdb94f 100644
--- a/cv.tex
+++ b/cv.tex
@@ -1,155 +1,37 @@
-\documentclass[a4paper,10pt,margin=0.5in]{article}
-\usepackage{array, fancyhdr, color, fontspec, titlesec, parskip, tikz, ulem,
- xcolor, longtable, titling, supertabular}
-\usepackage{blindtext}
-\usepackage{enumitem}
-\usepackage[linkcolor=magenta, colorlinks=true]{hyperref}
-\usepackage[margin=1.5cm, bottom=0.15cm, top=0.15cm]{geometry}
-\hypersetup{
- pdftitle = {Curriculum Vitæ},
- pdfauthor = {Olivia Mackintosh}
-}
-\setcounter{secnumdepth}{0}
-\setlength{\parindent}{0pt}
+\documentclass[a4paper, 10pt,draft, english]{curve}
+
+\usepackage{fontspec, geometry, hyperref, url, fancyhdr, lastpage}
\setmainfont[
Ligatures=TeX,
ItalicFont = AvenirNextLTPro-It,
BoldFont = AvenirNextLTPro-Medium,
]{AvenirNextLTPro-Regular}
-\newcolumntype{L}{p{0.13\textwidth}}
-\newcolumntype{R}{p{0.8\textwidth}}
-\newcommand\VRule{\color{magenta}\vrule width 0.5pt}
+\geometry{left=1cm,right=1cm,top=1cm,bottom=1.5cm}
\pagestyle{fancy}
-\fancyhf{}
-
-\title{\bfseries\Huge Olivia\linebreak Mackintosh}
-\author{\href{mailto:livvy@base.nu}{livvy@base.nu}}
-\date{2}
-\makeatletter
-\def\@maketitle{%
- \hrule height \z@ % to avoid lineskip
- \parbox{.50\textwidth}{\LARGE \protect{\@title}\par}
- \parbox{.50\textwidth}{
- \begin{flushright}
- \large\lineskip.5em\@author\par
- \large\lineskip.5em\href{https://base.nu/}{https://base.nu}\par
- \end{flushright}
- }
- \vskip 1.0em
+\renewcommand{\headrulewidth}{0pt}
+\leftheader{%
+ {\LARGE Olivia\\Mackintosh.}
}
+\rightheader{%
+ \href{mailto:livvy@base.nu}{livvy@base.nu}\\
+ {\url{https://base.nu/}}
+}
+\cfoot{\thepage\ of \pageref{LastPage}}
+\rubricalignment{l}
-\begin{document}
-\maketitle
-\begin{minipage}[t]{0.55\textwidth}
-A software engineer of 8 years with a passion for delivering business result
-though software. Often utilizing test-first, iterative development.
-
-There's a lot of waste in our industry and we need to become better at building
-the right thing, and delivering it faster. Iterative development alongside
-techniques such as TDD, pair-programming can often unlock a lot of value, yet
-teams have struggled to implement this properly due to alack of support
-regarding deployment pipelines and infrastructure; a lack of experience with the
-test first approach and communication gaps. Perhaps this sounds like a familar
-experience in your company?
-\end{minipage}
-\hfill
-\begin{minipage}[t]{0.4\textwidth}
- \begin{description}
- \item [Languages:]\hfill\\ C, Python, JS, Haskell, Kotlin, SQL, {\LaTeX}
- \item [Skills]\hfill\\ TDD, Refactoring
- \item [Dev]\hfill\\ API Design, Frontend Dev
- \item [Ops]\hfill\\ AWS, Azure, Infrastructure-as-Code, Deployment Pipelines
- \item [Specialist]\hfill\\ UNIX/Linux Systems | Protocol Knowledge (HTTP, SMTP, USB in particular)
- \end{description}
-\end{minipage}
-
-\section{Professional Experience}
-\begin{supertabular}{ccc}
- 2022- &{\bf Klima.Metrix GmbH — Senior Software Engineer}\\
- &{\begin{itemize}
- \item Joined Klima.Metrix: a carbon accounting startup.
- \item Introduced and champtined a trunk-based, test-driven approoch to reduce deployment frequency to <1 week.
- \item Refactored legacy calculation code with BDD style tests that stakeholders can understand and give feedback on
- \item Deprecated MongoDB backend service to reduce technical debt and to take advantage of the existing relational DB.\@ Created custom tooling to make this easier
- \item OWASP top 10-based security audit + fixes
- \end{itemize}}\\
-
- 2021- &{\bf Contract work (Magentasoft Ltd)}\\
- &{\begin{itemize}
- \item Contract work with YLD and Uphold
- \item 50/50 consuting dev role
- \item Microservice architecture
- \end{itemize}}\\
-
- 2017--2020 &{\bf Co-op Digital — Senior Software Engineer}\\
- &{\begin{itemize}
- \item Joined the Digital Engineering department within
-the HQ of The Co-operative Group in 2017.
- \item Cross-functional, agile teams.
- \item Moved into senior role, mentoring engineers and
-presenting ideas at the monthly all-teams sessions.
- \item Leant towards back-end API development: championed
-refactoring and local architectural design of complex REST/SOAP
-integrations as well as being a voice for security across Digital.
- \item Largely Python, JavaScript, SQL with Django and
-React often providing development frameworks.
- \item I were also lucky enough to participate in
-\href{https://xpsurgery.com/}{Kevin Rutherford's XP Surgery} as well as
-\href{https://www.weareupfront.com/}{Lauren Currie's Upfront workshop}.
-These are software craftmanship and public speaking workshops
-respectively.
- \end{itemize}}\\
- \pagebreak
- 2016--2017 &{\bf Beautiful Destinations — Software
- Engineer (Contract)}\\
- &{\begin{itemize}
- \item Towards the end of 2016 I were hired by a
-Shoreditch based startup working in the travel and tourism marketing
-industry.
- \item Working alongside some very experienced engineers,
-I were responsible for making machine learning code production ready
-(testing, QA, refactoring); setting up build/test/deploy pipelines;
-containerizing releases with Docker etc.
- \item Learnt Haskell/GHCJS as this was used heavily for enforcing
-type-safety across the front-add-back end. Haskell and FP remain influential
-and encouraged me to learn Haskell proper as well as study Category Theory in my
-spare time.
- \end{itemize}}\\
- 2016 &{\bf Liberal Democrats — Software Engineer (Contact)}\\
+\title{Curriculum Vitae}
-\end{supertabular}
+\begin{document}
+\makeheaders[c]
-\section{Open Source Contributions}
+\makerubric{experience}
-\begin{tabular}{L!{\VRule}R}
- Linux Kernel & Supporting Pioneer audio mixers within ALSA:\@ the
- Linux audio subsystem. Reverse engineered the DJM-750 vendor
- specific audio interface with OpenVizsla/ViewSB and collaborated
- with other users to expand support for other models.\\\\
- K9-Mail & Implementing IETF RFC6186: `Use of SRV Records for
- Locating Email Submission/Access Services' as part of an
- improved setup experience.
-\end{tabular}
+{\bf{Further experience available upon request.}\\
+\hrule
-%\section{Education}
-%\begin{tabular}{L!{\VRule}R}
-% %Current/Informal & Evolving technical skill development and philosophy
-% %self study (Aristotle, Heidegger, Evola)\\\\
-% University & \emph{NB: I did not manage to complete my A-Level exams
-% due to mental health issues and haven't pursued a degree due to
-% the high costs. I also consider my current skillset and
-% experience to be beyond the average comp-sci graduate at this
-% point in time but it is something that I may revisit if the
-% right opportinity arises.}\\\\
-% A-Level & {\bf Richmond School, North Yorkshire}\\
-% & Computer Science\\
-% & Physics\\
-% & Economics\\\\
-% GCSE & {\bf St Wilfred's Catholic High School, Featherstone}\\
-% & A* Mathematics / AAA Physics/Chemistry/Biology\\\\
-%\end{tabular}
+\makerubric{opensource}
\end{document}
diff --git a/experience.tex b/experience.tex
new file mode 100644
index 0000000..6a77e98
--- /dev/null
+++ b/experience.tex
@@ -0,0 +1,64 @@
+\begin{rubric}{Professional Experience}
+
+\entry*[2022-]
+ Klima.Metrix GmbH - Senior Software Engineer
+ \text{\par
+ Joined Klima.Metrix: a carbon accounting startup. Introduced trunk-based,
+test-driven approoch and reduced deployment frequency to <1 week. Refactored
+legacy calculation code with BDD-style tests. Deprecated MongoDB backend service
+to reduce technical debt and to take advantage of the existing relational DB
+model - created custom tooling to make this easier. OWASP top 10-based security
+audit + fixes.
+ \par
+ }
+
+ \entry*[2021]
+ Magentasoft Ltd - Consultancy
+ \text{\par
+ Contract work with YLD and Uphold
+ 50/50 consuting dev role
+ Microservice architecture
+ \par
+ }
+
+\entry*[2017--2020]
+ Co-op Digital — Senior Software Engineer
+ \text{\par
+ Joined the Digital Engineering department within the HQ of The Co-operative
+ Group in 2017. Cross-functional, agile teams. Moved into senior role, mentoring
+ engineers and presenting ideas at the monthly all-teams sessions. Leant towards
+ back-end API development: championed refactoring and local architectural design
+ of complex REST/SOAP integrations as well as being a voice for security across
+ Digital. Largely Python, JavaScript, SQL with Django and React often providing
+ development frameworks. I were also lucky enough to participate in
+ \href{https://xpsurgery.com/}{Kevin Rutherford's XP Surgery} as well as
+ \href{https://www.weareupfront.com/}{Lauren Currie's Upfront workshop}. These
+ are software craftmanship and public speaking workshops respectively.
+ \par
+ }
+
+ \entry*[2016--2017]
+ Beautiful Destinations — Software Engineer
+ \text{\par
+ Towards the end of 2016 I were hired by a Shoreditch based startup working
+ in the travel and tourism marketing industry. Working alongside some very
+ experienced engineers, I were responsible for making machine learning code
+ production ready (testing, QA, refactoring); setting up build/test/deploy
+ pipelines; containerizing releases with Docker etc. Learnt Haskell/GHCJS as this
+ was used heavily for enforcing type-safety across the front-add-back end.
+ Haskell and FP remain influential and encouraged me to learn Haskell proper as
+ well as study Category Theory in my spare time.
+ \par
+ }
+
+\entry*[2016]
+ Liberal Democrats — Contract Developer
+ \text{\par
+ In 2016 I were contracted to build a polling station finder for the UK Brexit
+ referendum as well as custom integration with their existing website. It
+ utilized PostGIS geospacial extension for postgres DB engine with data supplied
+ partially by DemocracyClub. This was a very fast paced project with quick
+ turnaround.
+ \par
+ }
+\end{rubric}
diff --git a/opensource.tex b/opensource.tex
new file mode 100644
index 0000000..0f401af
--- /dev/null
+++ b/opensource.tex
@@ -0,0 +1,17 @@
+\begin{rubric}{Contributions}
+ \entry*[2021]
+ Linux Kernel - ALSA subsystem
+ \text{
+ Supporting Pioneer audio mixers within ALSA:\@ the
+ Linux audio subsystem. Reverse engineered the DJM-750 vendor
+ specific audio interface with OpenVizsla/ViewSB and collaborated
+ with other users to expand support for other models.
+ }
+ \entry*[2021]
+ K9-Mail
+ \text{
+ Implementing IETF RFC6186: `Use of SRV Records for
+ Loocating Email Submission/Access Services' as part of an
+ improved setup experience.
+ }
+\end{rubric}
diff --git a/specialinterest.tex b/specialinterest.tex
new file mode 100644
index 0000000..9a2b507
--- /dev/null
+++ b/specialinterest.tex
@@ -0,0 +1,4 @@
+\begin{rubric}{Special Interests}
+ \entry*[]
+ Foo
+\end{rubric}
diff --git a/statement.tex b/statement.tex
new file mode 100644
index 0000000..a9a52e2
--- /dev/null
+++ b/statement.tex
@@ -0,0 +1,16 @@
+% Personal statement
+
+\begin{rubric}{Personal Statement}
+\text{
+ I'm software engineer of 8 years with a passion for delivering business result
+ though software. Often utilizing test-first, iterative development.
+
+ There's a lot of waste in our industry and we need to become better at building
+ the right thing, and delivering it faster. Iterative development alongside
+ techniques such as TDD, pair-programming can often unlock a lot of value, yet
+ teams have struggled to implement this properly due to alack of support
+ regarding deployment pipelines and infrastructure; a lack of experience with the
+ test first approach and communication gaps. Perhaps this sounds like a familar
+ experience in your company?
+ }
+\end{rubric}