From 6db1a8c2ec2eaebdda8f44d84b1044295deb506c Mon Sep 17 00:00:00 2001 From: David Wood Date: Sat, 11 May 2024 11:48:25 +0100 Subject: [PATCH] Update curriculum vitae. --- web/src/content/curriculum-vitae/default.tex | 126 +++++++++---------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/web/src/content/curriculum-vitae/default.tex b/web/src/content/curriculum-vitae/default.tex index c5830be..11f28b1 100644 --- a/web/src/content/curriculum-vitae/default.tex +++ b/web/src/content/curriculum-vitae/default.tex @@ -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={}, @@ -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} \\ @@ -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} \\ @@ -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} @@ -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} \\ @@ -162,37 +181,27 @@ \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} \\ @@ -200,31 +209,22 @@ \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