Skip to content

Commit

Permalink
Update curriculum vitae.
Browse files Browse the repository at this point in the history
  • Loading branch information
davidtwco committed May 11, 2024
1 parent 9589368 commit 6db1a8c
Showing 1 changed file with 63 additions and 63 deletions.
126 changes: 63 additions & 63 deletions web/src/content/curriculum-vitae/default.tex
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

\hypersetup{%
colorlinks=false,
linkbordercolor={0 0 0},
pdfborder={0 0 0},
urlbordercolor=lightgray,
pdfborderstyle={/S/U/W 1},
pdftitle={David Wood's Curriculum Vitae},
pdfauthor={David Wood},
pdfsubject={},
Expand Down Expand Up @@ -78,7 +78,15 @@
compiler team; owning the compiler team's decisions; making unilateral approval for trivial or
urgent issues; driving the team's weekly meetings; communicating with other members of Rust
leadership; authoring communication on behalf of the team; and supporting compiler team members in
their contributions.
their contributions. \\
\vspace{2mm}
Since becoming co-lead, I have \href{https://borrowed.dev/p/priorities-plans-and-backlogs}{created a
roadmap for my term as co-lead based on team member feedback}, landed an RFC to
\href{https://github.com/rust-lang/rfcs/pull/3599}{restructure the compiler team}, improved review
queue capacity, and written about the team's
\href{https://borrowed.dev/p/on-ongoing-work-in-the-rust-compiler-team}{ongoing work},
\href{https://borrowed.dev/p/priorities-plans-and-backlogs}{review queue}, and the
\href{https://borrowed.dev/p/priorities-plans-and-backlogs}{project's structure}.
\vspace{2mm}

\textbf{Rust Programming Language} \\
Expand All @@ -98,24 +106,36 @@
\vspace{1mm}

\textbf{Huawei Technologies Research \& Development UK Ltd.} \hfill {\color{gray} Edinburgh, Scotland} \\
\textit{Senior Software Engineer A, Programming Languages Lab} \hfill {\color{gray} Nov 2022 - Present} \\
\vspace{2mm}
I primarily contribute to the upstream Rust project, continuing my various ongoing engineering
projects and duties as a compiler team member and co-lead. Within Huawei, I assist teams with their
Rust adoption and upstream contributions; participate in the Huawei's Rust Technical Management
Committee; and give talks on Rust and its compiler. \\
\vspace{2mm}
I'm also involved in development of Huawei's own programming languages, where I have contributed
to the implementation of automatic differentiation and led the design and implementation of constant
evaluation and constant generics. \\
\textit{Senior Software Engineer A (Grade 17), Programming Languages Lab} \hfill {\color{gray} Nov 2022 - Present} \\
\vspace{2mm}
I am the foremost Rust expert within the Central Software Institute of Huawei R\&D, leveraging my
Rust experience to accelerate and guarantee Rust's successful adoption, this involves:
\begin{itemize}
\item contributing to the upstream Rust compiler, prioritising features and bugs which impact
Huawei's business units
\item directly working with internal customers to recognise Rust opportunities, advising and
assisting teams adopting Rust, and identifying and prioritizing requirements for upstream
contributions
\item supporting HQ colleagues in maintaining our internal toolchain
\item internal knowledge sharing on compiler internals
\item participating in Huawei's Technical Management Committee to define internal coding standards
for Rust
\item internally representing the Edinburgh Research Centre within Huawei by promoting our work in
company publications and presenting to leadership from other parts of the organisation
\item externally representing Huawei by speaking at international conferences and attending as a
sponsor
\end{itemize}
Within Huawei's internal programming language projects I have lead planning and implementation of
constant evaluation and contributed to the implementation of automatic differentation. \\
\vspace{2mm}
I've been awarded Huawei's ``President Award of the 2012 Laboratories'', ``President's Award of the
European Academy'', ``Gold Team Award'' and ``Innovation Spark Award''; as well as been published
in Huawei People magazine.
European Academy'', ``Gold Team Award'', ``Innovation Spark Award'', and ``Future Star'' awards. I
have qualified for and earned an internal ``Competency \& Qualification'' grade in Compilers \&
Operating Systems at Level 5 (pre-requisite to Grade 20).
\vspace{2mm}

\textbf{Huawei Technologies Research \& Development UK Ltd.} \hfill {\color{gray} Edinburgh, Scotland} \\
\textit{Senior Software Engineer B, Programming Languages Lab} \hfill {\color{gray} Aug 2021 - Nov 2022} \\
\textit{Senior Software Engineer B (Grade 16), Programming Languages Lab} \hfill {\color{gray} Aug 2021 - Nov 2022} \\
\vspace{2mm}

\textbf{Codeplay Software Ltd.} \hfill {\color{gray} Edinburgh, Scotland} \\
Expand All @@ -126,7 +146,7 @@
\vspace{2mm}
In addition, I worked as a compiler engineer on SYCL support for NVIDIA GPUs which was contributed
to Intel's DPC++. I implemented driver support in Clang for the
\verb|nvptx64-nvidia-nvcl-sycldevice| target; target-specific passes in LLVM; builtins in libclc;
\verb|nvptx64-nvidia-nvcl-sycldevice| target, target-specific passes in LLVM, builtins in libclc,
and various bug fixes to LLVM, Clang and the LLVM-SPIRV translator.
\vspace{2mm}

Expand All @@ -141,11 +161,10 @@
\textbf{Codeplay Software Ltd.} \hfill {\color{gray} Edinburgh, Scotland} \\
\textit{Intern Build Engineer} \hfill {\color{gray} May 2017 - Sep 2017} \\
\vspace{2mm}
During a summer, I rebuilt the entirety of Codeplay's continuous integration infrastructure
in my internship - introducing automated re-provisioning of Ubuntu, CentOS and Windows build nodes
and improving the configuration management, vastly reducing the turn-around time of changes
requested by engineering teams and downtime which impacted engineering team productivity. In
addition, I made various improvements to internal tools relied on by engineering teams.
I rebuilt the entirety of Codeplay's continuous integration infrastructure in my internship -
introducing automated re-provisioning of Ubuntu, CentOS and Windows build nodes and improving the
configuration management, vastly reducing the turn-around time of changes requested by engineering
teams and downtime which impacted engineering team productivity.
\vspace{2mm}

\textbf{West Dunbartonshire Leisure} \hfill {\color{gray} Alexandria, Scotland} \\
Expand All @@ -162,69 +181,50 @@
\textbf{University of Glasgow} \hfill {\color{gray} Glasgow, Scotland} \\
\textit{MSci Software Engineering with Work Placement, Honours of the First Class} \hfill {\color{gray} Sep 2015 - Jun 2020} \\
\vspace{2mm}
I graduated with a GPA of 20.0 (out of a maximum 22.0) and completed my Master's Project on
``Polymorphisation'' \footnotemark[1], an code-size optimisation in the Rust compiler to reduce
unnecessary monomorphisation during code generation. In my first year, I was awarded ``Best
Computing Science Student Intending Single Honours'' and in my final year, ``Most Outstanding
Project in MSci SE WP''. \\
I graduated with a GPA of 20.0 (out of a maximum 22.0) and
\href{https://davidtw.co/media/masters_dissertation.pdf}{completed my MSci project on
``Polymorphisation''}, a code-size optimisation in the Rust compiler to reduce unnecessary
monomorphisation during code generation. In my first year, I was awarded ``Best Computing Science
Student Intending Single Honours'' and in my final year, ``Most Outstanding Project in MSci SE
WP''. \\
\vspace{2mm}
In my third year, I worked in a team tasked with creating a event-sourced financial platform
\footnotemark[2] \footnotemark[3] for Avaloq, a banking software company. For the duration of the
project, I managed and led development on the event bus and the ``superclient''. Both written in
Rust, the event bus is the central server that manages and persists events while ensuring
consistency, correlation and horizontal scaling of microservice clients; the superclient is a
framework for building client applications in Lua with persistence and exposing a REST API. \\
\vspace{2mm}
Additionally, this involved working with the team to design and implement the various solutions that
allowed the system to achieve the desired properties; to streamline and improve our development
processes; and to mentor other team members in fixing bugs and building features when working with
unfamiliar technologies.
In my third year, I worked in a team tasked with
\href{https://davidtw.co/media/autokrator_dissertation.pdf}{creating a event-sourced financial
platform for Avaloq}, a banking software company. For the duration of the project, I managed and
led development on key components of the project, written in Rust and mentored other team members
in fixing bugs and building features in unfamiliar technologies.
\vspace{2mm}

\textbf{Glasgow Caledonian University} \hfill {\color{gray} Glasgow, Scotland} \\
\textit{Nuffield Foundation Placement} \hfill {\color{gray} May 2014 - July 2014} \\
\vspace{2mm}
While on a summer placement at Glasgow Caledonian University, I implemented a colour-based
tracking algorithm from a research paper in C++ with OpenCV \footnotemark[4] \footnotemark[5] which
was capable of full 360 tracking of multiple objects simultaneously including when the object
leaves and re-enters the frame. \\
\vspace{2mm}
Furthermore, I built a tool for non-photorealistic rendering using OpenCV to make an image look
less realistic - in essence, creating a cartoon out of an image. Images were processed in two
distinct stages - extracting the edges from the image and overlaying them on a copy of the
original image that uses a reduced set of colours.
While on a summer placement at Glasgow Caledonian University, I
\href{https://davidtw.co/media/camshift_report.pdf}{implemented a colour-based tracking algorithm
from a research paper in C++ with OpenCV} which was capable of full 360 tracking of multiple
objects simultaneously including when the object leaves and re-enters the frame.
\vspace{2mm}

\textbf{Vale of Leven Academy} \hfill {\color{gray} Alexandria, Scotland} \\
\textit{Secondary Education} \hfill {\color{gray} Aug 2009 - May 2015} \\
\vspace{2mm}

\header{Memberships}
\textbf{Institution of Engineering and Technology} \\
\textit{Associate Membership} \hfill {\color{gray} May 2023 - Present} \\
\vspace{2mm}

\textbf{British Computer Society} \\
\textit{Professional Membership} \hfill {\color{gray} Jun 2020 - Present} \\
\vspace{2mm}

\textbf{Open Source Initiative} \\
\textit{Individual Membership} \hfill {\color{gray} Feb 2020 - Present} \\
\vspace{2mm}

\header{Conference Speaking}
\textbf{QCon Shanghai} \\
\textit{Split DWARF in rustc} \hfill {\color{gray} Nov 2022} \\
\vspace{2mm}

\header{Published Articles}
\textbf{Inside Rust Blog} \\
\textit{\href{https://blog.rust-lang.org/inside-rust/2022/08/16/diagnostic-effort.html}{Contribute to the diagnostic translation effort!}} \hfill {\color{gray} August 2022} \\
\textit{\href{https://blog.rust-lang.org/inside-rust/2022/08/16/diagnostic-effort.html}{Contribute to the diagnostic translation effort!}} \hfill {\color{gray} Aug 2022} \\
\textbf{Inside Rust Blog} \\
\textit{\href{https://blog.rust-lang.org/inside-rust/2019/10/11/AsyncAwait-Not-Send-Error-Improvements.html}{Improving async-await's ``Future is not Send'' diagnostic}} \hfill {\color{gray} October 2019} \\
\textit{\href{https://blog.rust-lang.org/inside-rust/2019/10/11/AsyncAwait-Not-Send-Error-Improvements.html}{Improving async-await's ``Future is not Send'' diagnostic}} \hfill {\color{gray} Oct 2019} \\
\vspace{2mm}

\footnotetext[1]{\href{https://davidtw.co/media/masters_dissertation.pdf}{https://davidtw.co/media/masters{\_}dissertation.pdf}}
\footnotetext[2]{\href{https://davidtw.co/media/autokrator_dissertation.pdf}{https://davidtw.co/media/autokrator{\_}dissertation.pdf}}
\footnotetext[3]{\href{https://davidtw.co/media/autokrator_presentation.pdf}{https://davidtw.co/media/autokrator{\_}presentation.pdf}}
\footnotetext[4]{\href{https://davidtw.co/media/camshift_report.pdf}{https://davidtw.co/media/camshift{\_}report.pdf}}
\footnotetext[5]{\href{https://davidtw.co/media/camshift_poster.pdf}{https://davidtw.co/media/camshift{\_}poster.pdf}}

\end{document}

% vim:foldmethod=marker:foldlevel=0:ts=2:sts=2:sw=2:et:nowrap

0 comments on commit 6db1a8c

Please sign in to comment.