Work Experience

Compiler Engineer

Apple Cupertino, CA October 2020 - Present

Worked on adding new language features to Swift, including the new concurrency model. I focused on improving the warning and error diagnostics emitted by the compiler.

Apple Cupertino, CA November 2018 - October 2020

Worked on various compiler-related technologies, including interpreters, static compilation flows, and JIT compilation models.

Intern Compiler Engineer

Apple Cupertino, CA January 2018 - September 2018

Worked on the Clang frontend and LLVM optimizer to help it make better decisions about how code should be optimized, and to take advantage of various features of the hardware. During this internship, I had the opportunity to present my work to the Vice President of MacOS platform experience, Andreas Wendker, and the Senior Vice President of Software Engineering, Craig Federighi.

Teaching Assistant

University of Victoria Victoria, BC January 2016 - December 2017

I have worked as a lab instructor for 100-level computer science courses, and have marked assignment and exams for 100, 200, and 300-level computer science courses.

  • CSC 230: Computer Architecture and Assembly Language: Spring 2016

    Marked assignments for Dr. Sudhakar Ganti; implemented an automatic marking system to provide more accurate feedback to students. Assisted with invigilation of the final exam.

  • CSC 110: Fundamentals of Programming I: Fall 2016

    Taught four lab sections for Dr. Michael Zastre. Designed an additional workshop for students who were interested in learning more about programming. Assisted with invigilation of the exams.

  • CSC 330: programming Languages: Spring 2017

    Marked assignment for Dr. Daniel German; implemented an automated marking system to assist me with marking. Assisted with invigilation and marking of the exams.

  • CSC 110: Fundamentals of Programming I: Spring 2017

    Stepped in for a lab instructor when they became ill and could not complete the term. Designed on of the labs, where we discussed recursion. Assisted Dr. Lillanne Jackson with invigilation and marking of the final exam.

  • CSC 116: Fundamentals of Programming with Engineering Applications II: Fall 2017

    Marked assignments and taught two lab sections for Dr. Daniel German. Assisted with the invigilation and marking of exams.

Education

Master of Science

University of Victoria Victoria, BC September 2016 - August 2018

My coursework included machine learning, data mining, linear programming, and music information retrieval. The focus of my thesis was on designing a model to summarize how commits are integrated into a git repository, specifically for the Linux kernel. This work included designing the model, developing an algorithm to construct the model from the commit graph, constructing a tool called Linvis, and performing a user study to evaluate whether the technique achieved the goal. My research focus was in the area of software engineering practices, with the intentions of understanding why programmers make the decisions they do while writing software, determining which decisions result in higher quality code, all while making the task of writing software easier. Thesis: https://dspace.library.uvic.ca/handle/1828/10053

Bachelor of Science (Honours)

University of Victoria Victoria, BC September 2012 - April 2016

Received my bachelors of computer science, having taken a wide variety of courses including; artificial intelligence, computer graphics, computational geometry, compiler construction, database design, computer networking, and security engineering. My honors project was in computer graphics, where I implemented the Blob tree, a structure to represent the interactions of implicit surfaces.

Papers Published

Merge-Tree: Visualizing the Integration Of Commits Into Linux

Evan Wilde, Daniel M. German

Journal of Software: Evolution and Process, February 2018, Volume 30, Issue 2

DOI 10.1002/smr.1936

This paper is an extension of the original, including the details of a user study to evaluate the effectiveness of the merge-tree visualizations, and a discussion on how to extend the algorithm to further improve the results and utility.

Merge-Tree: Visualizing the Integration Of Commits Into Linux

Evan Wilde, Daniel M. German

Fourth IEEE Working Conference on Software Visualization(VISSOFT) 2016: 1-10

DOI 10.1109/VISSOFT.2016.18

In this paper, we describe the design of a tree-based model for visualizing how commits are integrated into the Linux kernel git repository. This paper includes the design of the algorithm, and lists three potential visualizations.

What Is the Gist? Understanding the Use Of Public Gists on GitHub

Weiliang Wang, German Poo-Caamano, Evan Wilde, Daniel M. German

12th Working Conference on Mining Software Repositories (MSR 2015): 314-323

DOI 10.1109/MSR.2015.36

In this paper, we investigated the uses of GitHub Gist; a feature in GitHub that is similar in concept to a Pastebin, but with the full functionality of a git repository.