commit b4b1f94cf59e7e27fcb72e90ecd1de31e99e1cc5
parent 287a41e0efa626c2621fa58e593534137cdb50be
Author: Silas Brack <silasbrack@gmail.com>
Date: Tue, 13 Aug 2024 18:39:07 +0200
Migrate to typst
Diffstat:
| M | .gitignore | | | 303 | +------------------------------------------------------------------------------ |
| D | cvs/full.tex | | | 160 | ------------------------------------------------------------------------------- |
| A | hayagriva.yaml | | | 9 | +++++++++ |
| D | latexmkrc | | | 34 | ---------------------------------- |
| D | letters/cover_letter.tex | | | 22 | ---------------------- |
| A | main.typ | | | 213 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | shell.nix | | | 9 | +++++++++ |
| D | simple.sty | | | 53 | ----------------------------------------------------- |
8 files changed, 232 insertions(+), 571 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,303 +1,2 @@
-## Core latex/pdflatex auxiliary files:
-*.aux
-*.lof
-*.log
-*.lot
-*.fls
-*.out
-*.toc
-*.fmt
-*.fot
-*.cb
-*.cb2
-.*.lb
+main.pdf
-## Intermediate documents:
-*.dvi
-*.xdv
-*-converted-to.*
-# these rules might exclude image files for figures etc.
-# *.ps
-# *.eps
-# *.pdf
-
-## Generated if empty string is given at "Please type another file name for output:"
-.pdf
-
-## Bibliography auxiliary files (bibtex/biblatex/biber):
-*.bbl
-*.bcf
-*.blg
-*-blx.aux
-*-blx.bib
-*.run.xml
-
-## Build tool auxiliary files:
-*.fdb_latexmk
-*.synctex
-*.synctex(busy)
-*.synctex.gz
-*.synctex.gz(busy)
-*.pdfsync
-
-## Build tool directories for auxiliary files
-# latexrun
-latex.out/
-
-## Auxiliary and intermediate files from other packages:
-# algorithms
-*.alg
-*.loa
-
-# achemso
-acs-*.bib
-
-# amsthm
-*.thm
-
-# beamer
-*.nav
-*.pre
-*.snm
-*.vrb
-
-# changes
-*.soc
-
-# comment
-*.cut
-
-# cprotect
-*.cpt
-
-# elsarticle (documentclass of Elsevier journals)
-*.spl
-
-# endnotes
-*.ent
-
-# fixme
-*.lox
-
-# feynmf/feynmp
-*.mf
-*.mp
-*.t[1-9]
-*.t[1-9][0-9]
-*.tfm
-
-#(r)(e)ledmac/(r)(e)ledpar
-*.end
-*.?end
-*.[1-9]
-*.[1-9][0-9]
-*.[1-9][0-9][0-9]
-*.[1-9]R
-*.[1-9][0-9]R
-*.[1-9][0-9][0-9]R
-*.eledsec[1-9]
-*.eledsec[1-9]R
-*.eledsec[1-9][0-9]
-*.eledsec[1-9][0-9]R
-*.eledsec[1-9][0-9][0-9]
-*.eledsec[1-9][0-9][0-9]R
-
-# glossaries
-*.acn
-*.acr
-*.glg
-*.glo
-*.gls
-*.glsdefs
-*.lzo
-*.lzs
-*.slg
-*.slo
-*.sls
-
-# uncomment this for glossaries-extra (will ignore makeindex's style files!)
-# *.ist
-
-# gnuplot
-*.gnuplot
-*.table
-
-# gnuplottex
-*-gnuplottex-*
-
-# gregoriotex
-*.gaux
-*.glog
-*.gtex
-
-# htlatex
-*.4ct
-*.4tc
-*.idv
-*.lg
-*.trc
-*.xref
-
-# hyperref
-*.brf
-
-# knitr
-*-concordance.tex
-# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
-# *.tikz
-*-tikzDictionary
-
-# listings
-*.lol
-
-# luatexja-ruby
-*.ltjruby
-
-# makeidx
-*.idx
-*.ilg
-*.ind
-
-# minitoc
-*.maf
-*.mlf
-*.mlt
-*.mtc[0-9]*
-*.slf[0-9]*
-*.slt[0-9]*
-*.stc[0-9]*
-
-# minted
-_minted*
-*.pyg
-
-# morewrites
-*.mw
-
-# newpax
-*.newpax
-
-# nomencl
-*.nlg
-*.nlo
-*.nls
-
-# pax
-*.pax
-
-# pdfpcnotes
-*.pdfpc
-
-# sagetex
-*.sagetex.sage
-*.sagetex.py
-*.sagetex.scmd
-
-# scrwfile
-*.wrt
-
-# svg
-svg-inkscape/
-
-# sympy
-*.sout
-*.sympy
-sympy-plots-for-*.tex/
-
-# pdfcomment
-*.upa
-*.upb
-
-# pythontex
-*.pytxcode
-pythontex-files-*/
-
-# tcolorbox
-*.listing
-
-# thmtools
-*.loe
-
-# TikZ & PGF
-*.dpth
-*.md5
-*.auxlock
-
-# titletoc
-*.ptc
-
-# todonotes
-*.tdo
-
-# vhistory
-*.hst
-*.ver
-
-# easy-todo
-*.lod
-
-# xcolor
-*.xcp
-
-# xmpincl
-*.xmpi
-
-# xindy
-*.xdy
-
-# xypic precompiled matrices and outlines
-*.xyc
-*.xyd
-
-# endfloat
-*.ttt
-*.fff
-
-# Latexian
-TSWLatexianTemp*
-
-## Editors:
-# WinEdt
-*.bak
-*.sav
-
-# Texpad
-.texpadtmp
-
-# LyX
-*.lyx~
-
-# Kile
-*.backup
-
-# gummi
-.*.swp
-
-# KBibTeX
-*~[0-9]*
-
-# TeXnicCenter
-*.tps
-
-# auto folder when using emacs and auctex
-./auto/*
-*.el
-
-# expex forward references with \gathertags
-*-tags.tex
-
-# standalone packages
-*.sta
-
-# Makeindex log files
-*.lpz
-
-# xwatermark package
-*.xwm
-
-# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
-# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
-# Uncomment the next line to have this generated file ignored.
-#*Notes.bib
-
-.vscode/
diff --git a/cvs/full.tex b/cvs/full.tex
@@ -1,160 +0,0 @@
-\documentclass[10pt, a4paper]{article}
-\usepackage{simple}
-
-\usepackage[detect-none]{siunitx}
-\sisetup{range-phrase=--}
-
-\begin{document}
-
-\heading{Silas Brack}
-{
- Copenhagen, Denmark
- $\mid$
- \href{https://linkedin.com/in/silasbrack/}{linkedin.com/in/silasbrack/}
- $\mid$
- % \href{mailto:silasbrack@gmail.com}{silasbrack@gmail.com}
- % $\mid$
- \href{https://github.com/silasbrack/}{github.com/silasbrack/}
-}
-
-% Data scientist / machine learning engineer with a track record of solving problems with machine learning, from stakeholders to algorithm to production.
-
-\newsection{Work Experience}
-
-% Demonstrate soft skills
-% Highlight biggest contributions
-% Quantify contributions
-
-% Soft Skills
-% - Cooperation
-% - Resilience
-% - Dependability & reliability
-% - Big picture
-% - Customer-oriented
-% - Interdisciplinary communication (technical & non-technical)
-% - Independent
-
-\newtopic
-{Data Scientist (Manager)}
-{Jan 2024 -- \textsl{Present}}
-{Saxo Bank A/S --- Department of Predictive Modelling and Client Research}
-{Copenhagen, Denmark}
-{\begin{accomplishments}
- \item Promoted to "manager" title (individual contributor branch) due to independence and track record of exceeding expectations.
- \item Developed a representation learning system for modelling client in-platform behaviour using state-of-the-art transformer models.
- \end{accomplishments}}
-
-\newtopic
-{Data Scientist (Senior Associate)}
-{Apr 2023 -- Dec 2023}
-{Saxo Bank A/S --- Department of Predictive Modelling and Client Research}
-{Copenhagen, Denmark}
-{\begin{accomplishments}
- \item Deployed an internal translation application and integrated it into the business to replace ad-hoc human translation workflows, reducing average time spent waiting for translations from XXX to XXX (and saving XXX€ in translation fees).
- % \item Analysed user behavioral data on the investing platform, discovered ``low-hanging fruit'' triggers which most efficiently identified clients at risk of churn; presented these results to stakeholders.
- \item Developed metrics for determining the impact of the similarity service and measured the consequent uplift; presented these results to upper management, Chief Sales Officer, etc.
- % \item Wrote job application for hiring new data engineer.
- % \item Improved throughput of writing data to Kafka from 130 kB/s to 13 MB/s.
- \item Re-designed chatbot using open-source embeddings models (...)
- \item Standardised data science workflows and development environments to incorporate Docker containers for development and consistent linting and formatting (among others), significantly improving onboarding time for the team.
- \item Commended for repeatedly taking on high-priority tasks during times of excess load, being accountable for demonstrating results, and finishing tasks ahead of schedule---given a raise after three months and, additionally, promoted to data science manager (IC path) after nine months.
- \end{accomplishments}}
-
-\newtopic
-{Data Scientist (Student Assistant)}
-{Sep 2021 -- Mar 2023}
-{Saxo Bank A/S --- Department of Predictive Modelling and Client Research}
-{Copenhagen, Denmark}
-{
- \begin{accomplishments}
- \item Developed a machine learning model for finding similar stocks, resulting in our team winning an internal Hackathon competition for improving client experience. This model was then packaged, containerised in Docker, orchestrated as a microservice in Kubernetes and exposed via FastAPI/OpenAPI, yielding a response time of under \SI{10}{\milli\second}. As of March 2023, this system has been integrated into the official Saxo Bank trader and investor platforms, which is used by nearly one million active clients.% This tool was found to increase customer engagement by XXX\%, thereby improving the Google Quality Score and reducing advertising costs by XXX€ per year.
- \item Upgraded existing LightGBM models to train in parallel using Spark and Synapse ML, increasing training dataset from tens of millions of rows to hundreds of millions; scheduled models to train automatically using Airflow.
- \item Trained LightGBM models in Python using Spark and DataBricks on hundreds of gigabytes of data contained in Kafka, Microsoft Azure Data Lake, and Microsoft SQL Server databases.
- \end{accomplishments}
-}
-
-\newtopic
-{Software Developer (Student Assistant)}
-{Apr 2018 -- Aug 2021}
-{MAN Energy Solutions SE --- Department of Master Data and Management}
-{Copenhagen, Denmark}
-{
- \begin{accomplishments}
- % \item Automated data engineering tasks and data pipelines with ETL jobs using SSIS and Microsoft SQL Server, being responsible for \SIrange{15}{20}{} jobs.
- \item Communicated with data cleansing stakeholders to identify and automate the repetitive workflows which led to the most unnecessary time consumption, saving an estimated 1000 man-hours of manual cleansing work. Increased fraction of cleansed data from \SIrange{25}{50}{\percent}.
- % \item Created and maintained over \SI{20}{} tools for data manipulation and visualisation using C\#.
- \end{accomplishments}
-}
-
-\newsection{Projects}
-
-\newtopic
-{Marginal Likelihood Training of Linearized Laplace Approximations Without Hessian Reductions}
-{Sep 2022 -- May 2023}
-{Supervised by S{\o}ren Hauberg}
-{Copenhagen, Denmark}
-{\begin{accomplishments}
- \item Developed a novel method for computing the Laplace approximation using only Jacobian-vector products in JAX so as to sample from a multivariate normal distribution and compute the log-determinant of the Laplace covariance without explicitly instantiating this covariance.
- \item Developed a robust method for evaluating the quality of the approximate sampling algorithm under different configurations.
- % \item Formulated multiple preconditioning strategies for the approximate sampling algorithm and demonstrated their theoretical properties.
- % \item Published a paper to NeurIPS 2023~{[2]}. arXiv: \href{https://arxiv.org/abs/2302.01332}{\texttt{2302.01332}}. Github: \href{https://github.com/eugene/laplace-large-scale}{\texttt{eugene/laplace-large-scale}}.
- \end{accomplishments}}
-
-\newtopic
-{Bayesian Metric Learning for Uncertainty Quantification in Image Retrieval}
-{Feb 2022 -- May 2023}
-{Supervised by S{\o}ren Hauberg}
-{Copenhagen, Denmark}
-{\begin{accomplishments}
- \item Implemented Hessian calculations on contrastive loss for use for Laplace approximation in Bayesian neural networks.
- \item Evaluated uncertainty estimates of trained models using the Laplace approximation for metric learning (LAM).
- \item Published a paper to NeurIPS 2023~{[1]}. arXiv: \href{https://arxiv.org/abs/2302.01332}{\texttt{2302.01332}}. Github: \href{https://github.com/FrederikWarburg/bayesian-metric-learning}{\texttt{FrederikWarburg/bayesian-metric-learning}}.
- \end{accomplishments}}
-
-\newsection{Education}
-
-\newtopic
-{M.Sc. Mathematical Modelling and Computation}
-{Sep 2020 -- Feb 2023}
-{Technical University of Denmark}
-{Copenhagen, Denmark}
-{\begin{accomplishments}
- % \item \textsc{Gpa}: 8.7 / 12.
- \item Specialisation in \textsl{machine learning and signal processing}
- \item Thesis: ``Effortless Bayesian Deep Learning: Tapping Into the Potential of Modern Optimizers,'' supervised by S{\o}ren Hauberg
- \end{accomplishments}}
-
-\newtopic
-{B.Sc. General Engineering}
-{Sep 2017 -- Jun 2020}
-{Technical University of Denmark}
-{Copenhagen, Denmark}
-{\small\begin{accomplishments}
- % \item \textsc{Gpa}: 9.8 / 12.
- \item Completed 35 ECTS of graduate-level courses in machine learning, statistics, mathematics, physics and econometrics.
- \item Specialisation in \textsl{cyber materials}
- \item Thesis: ``Membrane Capacitive Desalination,'' supervised by Johan Hjelm
- \end{accomplishments}}
-
-\newsection{Skills}
-\begin{tabular}{lp{15.5cm}}
- \textbf{Languages} & Python, R, SQL, C\# \\
- \textbf{Technologies} & Spark, Docker, Kubernetes, Airflow, git \\
- \textbf{Models} & Gradient-boosted trees (LightGBM, XGBoost), neural networks (PyTorch, JAX), collaborative filtering
- % \textbf{Other} & Relational databases \& indexing, machine learning operations, unit \& integration testing%, honestly just fill with whatever keywords are in job posting
-\end{tabular}
-
-% \newsection{Certificates}
-
-% \begin{accomplishments}
-% \item Certificate of Proficiency in English (CPE), Cambridge English --- Grade: \textsc{A}
-% \end{accomplishments}
-
-\newsection{Publications}
-
-\begin{accomplishments}
- \item[{[1]}] Warburg, Miani, Brack, and Hauberg. `Bayesian Metric Learning for Uncertainty Quantification in Image Retrieval' In: \textsl{Advances in Neural Information Processing Systems}. 2023.
- % \item[{[2]}] Roy et al. `Marginal likelihood training of linearized Laplace approximations without Hessian reductions' In: \textsl{Advances in Neural Information Processing Systems}. 2023.
-\end{accomplishments}
-
-\end{document}
diff --git a/hayagriva.yaml b/hayagriva.yaml
@@ -0,0 +1,9 @@
+warburg2023bayesian:
+ type: article
+ title: Bayesian Metric Learning for Uncertainty Quantification in Image Retrieval
+ author:
+ ["Warburg, Frederik", "Miani, Marco", "Brack, Silas", "Hauberg, Søren"]
+ parent:
+ - type: proceedings
+ title: Advances in Neural Information Processing Systems
+ date: 2023
diff --git a/latexmkrc b/latexmkrc
@@ -1,34 +0,0 @@
-# For more information see:
-# http://www.ctan.org/pkg/latexmk
-# https://texdoc.org/serve/latexmk/0
-
-# By default compile only the file called "main.tex"
-# @default_files = ("main.tex");
-
-$pdf_mode = 1;
-$out_dir = "output";
-$aux_dir = "aux";
-$pdflatex = "xelatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S";
-
-$clean_ext .= "loa mw nlo nls run.xml xdy";
-$clean_full_ext .= "bbl synctex.gz";
-
-$bibtex_use = 1.5;
-
-# Compile the glossary and acronyms list (package "glossaries")
-add_cus_dep( "acn", "acr", 0, "makeglossaries" );
-add_cus_dep( "glo", "gls", 0, "makeglossaries" );
-$clean_ext .= " acr acn alg glo gls glg";
-sub makeglossaries {
- my ($base_name, $path) = fileparse( $_[0] );
- pushd $path;
- my $return = system "makeglossaries", $base_name;
- popd;
- return $return;
-}
-
-# Compile the nomenclature (package "nomencl")
-add_cus_dep( "nlo", "nls", 0, "makenlo2nls" );
-sub makenlo2nls {
- system("makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\"");
-}
diff --git a/letters/cover_letter.tex b/letters/cover_letter.tex
@@ -1,22 +0,0 @@
-\documentclass[a4paper]{letter}
-\usepackage{fontenc,newtxtext}
-
-\name{Silas Brack}
-\signature{Silas}
-\telephone{+45\,50311508}
-\location{Copenhagen \\ Denmark}
-\address{\fromname \\ \telephonenum \\ \fromlocation}
-
-\begin{document}
-\begin{letter}{\bfseries \textit{Job title at Company name}}
- \opening{Dear \textit{Hiring Manager}}
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
-
- Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.
-
- Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum felis. Donec nonummy pellentesque ante. Phasellus adipiscing semper elit. Proin fermentum massa ac quam. Sed diam turpis, molestie vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum ligula, eleifend at, accumsan nec, suscipit a, ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec bibendum quam in tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate metus eu enim. Vestibulum pellentesque felis eu massa.
-
- \closing{Sincerely,}
-\end{letter}
-\end{document}
-
diff --git a/main.typ b/main.typ
@@ -0,0 +1,213 @@
+#set page(
+ paper: "a4",
+ margin: (
+ x: 1.0cm,
+ y: 1.0cm,
+ ),
+)
+#show heading.where(level: 2): set text(size: 12pt)
+#show heading.where(level: 3): set text(size: 11pt)
+#set text(size: 10pt)
+#set par(
+ first-line-indent: 0pt,
+ justify: true,
+)
+#show link: underline
+#let format-thousands(
+ n,
+) = {
+ let s = str(n)
+ s + "\u{202f}000"
+}
+
+#align(center)[
+ #text(size: 16pt)[
+ = SILAS BRACK
+ ]
+ #grid(
+ columns: (
+ auto,
+ auto,
+ auto,
+ ),
+ gutter: 10pt,
+ [
+ _Copenhagen, Denmark_
+ ],
+ [
+ #link("https://github.com/silasbrack/")[github.com/silasbrack]
+ ],
+ [
+ #link("https://linkedin.com/in/silasbrack/")[linkedin.com/in/silasbrack]
+ ],
+ )
+]
+
+
+// Demonstrate soft skills
+// Highlight biggest contributions
+// Quantify contributions
+//
+// Soft Skills
+// - Cooperation
+// - Resilience
+// - Dependability & reliability
+// - Big picture
+// - Customer-oriented
+// - Interdisciplinary communication (technical & non-technical)
+// - Independent
+
+
+== WORK EXPERIENCE
+#line(length: 100%)
+
+#grid(
+ columns: (
+ 5fr,
+ 1.2fr,
+ ),
+ align(left)[
+ === Machine Learning Engineer, Senior Associate \
+ _Saxo Bank A/S --- Department of Predictive Models and AI_
+ ],
+ align(right)[
+ === Apr 2023 -- Present \
+ _Copenhagen, Denmark_
+ ],
+)
+#text(size: 9pt)[
+ - Designed a real-time recommendation system architecture by adapting industry best practices to our internal data and business objectives, taking into consideration integration of A/B testing, performance/latency, and flexibility to future changes. Presented this architecture to stakeholders and other developers. Implemented this recommender system, training representation learning models, neural networks, and other classifiers and rankers. Designed data processing pipeline (combining translation, text embeddings, and tagging) for preparing content before feeding into recommender engine and serving to our 1M clients. Trained neural networks
+ - Developed proof-of-concept of hybrid chatbot and search functionality for searching for / interacting with news and other content, stocks, and much more. Presented and demoed to business stakeholders to provide guidance on how to extend this system for use in in-platform search engine and digital sales trader.
+ - Re-designed chatbot combining simple open-source embeddings models and other methods, yielding a 170\% improvement in question-answering accuracy, decreasing the number of required yearly agent interactions by around #format-thousands(20), and saving around \$#format-thousands(150) in yearly agent costs. // % and indirectly causing an increase in KPIs for the client service team.
+ - Performed core MLOps tasks, such as standardising data science workflows and development environments with cookiecutter templates, extending Docker environments for development, unifying linting and formatting approaches, etc. Led code reviews and mentored/onboarded new members of the team with understanding our coding practices and infrastructure, focusing primarily on testability.
+]
+
+#grid(
+ columns: (
+ 5fr,
+ 1.2fr,
+ ),
+ align(left)[
+ === Machine Learning Engineer, Student Assistant \
+ _Saxo Bank A/S --- Department of Predictive Modelling_
+ ],
+ align(right)[
+ === Sep 2021 -- Feb 2023 \
+ _Copenhagen, Denmark_
+ ],
+)
+#text(size: 9pt)[
+ - Developed a machine learning model for finding similar stocks, resulting in our team winning an internal Hackathon competition for improving client experience. This model was then packaged, containerised in Docker, orchestrated as a microservice in Kubernetes and exposed via FastAPI/OpenAPI, yielding a response time of under 10 ms. As of March 2023, this system has been integrated into the official Saxo Bank trader and investor platforms, which is used by nearly one million active clients. As of April 2024, the tool sits at around #format-thousands(70) monthly interactions.
+ - Upgraded existing LightGBM forecasting models (churn, revenue, logins, trades, etc.) to train in parallel using Python, Spark (via Databricks) and Synapse ML, increasing training dataset from tens to hundreds of gigabytes of data, sitting in Kafka, Azure Data Lake, and Microsoft SQL Server databases. Scheduled models to train automatically using Airflow.
+]
+
+
+== PROJECTS
+#line(length: 100%)
+
+#grid(
+ columns: (
+ 5fr,
+ 1.2fr,
+ ),
+ align(left)[
+ === Some Big System in Gleam \
+ _Independent_
+ ],
+ align(right)[
+ === Aug 2024 -- Present \
+ _Copenhagen, Denmark_
+ ],
+)
+#text(size: 9pt)[
+ - asdfasdf
+]
+
+#grid(
+ columns: (
+ 5fr,
+ 1.2fr,
+ ),
+ align(left)[
+ === Marginal Likelihood Training of Linearized Laplace Approximations Without Hessian Reductions \
+ _Supervised by Søren Hauberg_
+ ],
+ align(right)[
+ === Sep 2017 -- Feb 2023 \
+ _Copenhagen, Denmark_
+ ],
+)
+#text(size: 9pt)[
+ - Developed a novel method for computing the Laplace approximation using only Jacobian-vector products in JAX so as to sample from a multivariate normal distribution and compute the log-determinant of the Laplace covariance without explicitly instantiating this covariance.
+ - Developed a robust method for evaluating the quality of the approximate sampling algorithm under different configurations.
+]
+
+== EDUCATION
+#line(length: 100%)
+
+#grid(
+ columns: (
+ 5fr,
+ 1.2fr,
+ ),
+ align(left)[
+ === M.Sc. Mathematical Modelling and Computation \
+ _Technical University of Denmark_
+ ],
+ align(right)[
+ === Sep 2017 -- Feb 2023 \
+ _Copenhagen, Denmark_
+ ],
+)
+#text(size: 9pt)[
+ - Specialisation in _machine learning and signal processing_
+ - Thesis: "Effortless Bayesian Deep Learning: Tapping Into the Potential of Modern Optimizers," supervised by Søren Hauberg
+ - Published a paper to (and attended) NeurIPS 2023 @warburg2023bayesian.
+]
+
+// #grid(
+// columns: (5fr, 1.2fr),
+// align(left)[
+// === B.Sc. General Engineering \
+// _Technical University of Denmark_
+// ],
+// align(right)[
+// === Sep 2017 -- Feb 2023 \
+// _Copenhagen, Denmark_
+// ],
+// )
+// #text(size: 9pt)[
+// - Thesis: "Membrane Capacitive Desalination," supervised by Johan Hjelm
+// ]
+
+
+== SKILLS
+#line(length: 100%)
+
+#grid(
+ columns: (
+ auto,
+ auto,
+ ),
+ gutter: 10pt,
+ align(left)[
+ *Languages* \
+ *Technologies* \
+ *Models*
+ ],
+ align(left)[
+ Python, R, SQL, C\#, Scala, Gleam \
+ Spark, Databricks, Docker, Kubernetes, Airflow, git, Azure Cloud, Terraform, Kafka \
+ Gradient-boosted trees (LightGBM), neural networks (PyTorch, JAX), Word2Vec, text embeddings, LLMs
+ ],
+)
+
+
+== PUBLICATIONS
+#line(length: 100%)
+
+#bibliography(
+ "hayagriva.yaml",
+ title: none,
+)
+
diff --git a/shell.nix b/shell.nix
@@ -0,0 +1,9 @@
+let
+ pkgs = import <nixpkgs> {};
+in pkgs.mkShell {
+ packages = [
+ pkgs.typst
+ pkgs.typstyle # Formatter
+ pkgs.tinymist # LSP
+ ];
+}
diff --git a/simple.sty b/simple.sty
@@ -1,53 +0,0 @@
-\usepackage[utf8]{inputenc}
-\usepackage[a4paper, left=0.50in, right=0.50in, top=0.60in, bottom=0.60in]{geometry}
-\usepackage{fontenc,newtxtext}
-
-\usepackage{hyperref}
-
-\newlength{\newparindent}
-\addtolength{\newparindent}{\parindent}
-
-\newcommand{\heading}[2]{
- \Huge
- \textbf{#1}
-
- \vspace{0.2cm}
- \normalsize
- \textsl{#2}
- \vspace{.2cm}
-}
-
-\newcommand{\newsection}[1]
-{{
- \vspace{0.1cm}%
- \par\noindent
- \noindent\rule{\linewidth}{0.8pt} \vspace*{0.05cm}
- % \noindent\large{\textbf{\MakeUppercase{#1}}}\par
- % \noindent\large{\textbf{\textsc{#1}}}\par
- \noindent\large{\textbf{{#1}}}\par
- \vspace*{-0.35cm}
- \noindent\rule{\linewidth}{0.8pt}\par
- }}
-
-\newcommand{\newtopic}[5]{
- \vspace{0.05cm}
- \textbf{#1}
- \hfill \textbf{#2} \\
- \textsl{#3} \hfill \textsl{#4}
-
- {\small #5}
-}
-
-\newenvironment{accomplishments}%
-{\begin{list}{$\circ$}%
- {
- \setlength{\leftmargin}{\newparindent}
- \setlength{\parsep}{0pt}
- \setlength{\parskip}{0pt}
- \setlength{\itemsep}{0pt}
- \setlength{\topsep}{0pt}}
- }
- {\end{list}}
-
-\pagestyle{empty}
-\setlength\parindent{0pt}