1
0
aclindsay.com/resume/index.php

100 lines
6.3 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
include_once("../common.php");
include("../header_top.php");
?>
<title>Aaron C. Lindsay, Software Engineer - Resume - aclindsay.com</title>
<?php include("../header_bottom.php"); ?>
<div id="content">
<div id="main">
<center><h2 style="border-bottom: none; margin: 1em 0 1.5em 0;"><span style="font-size: 1.2em; padding: 0 .5em 0 .5em;">Aaron C. Lindsay</span></h2></center>
<h3>Summary</h3>
<ul>
<li>I am a software engineer and processor architect with 12 years of professional experience distilling challenging problems down to their core and developing the best solutions within given constraints.</li>
<li>I methodically debug elusive problems, chasing them across language and project boundaries.</li>
<li>I am a skilled communicator, which I use to ensure my solutions address the needs of others.</li>
<li>I dont like repeating myself - I am liable to automate anything worthwhile.</li>
</ul>
<h3>Related Experience</h3>
<ul>
<li>Ampere Principal Senior Architect - August 2018 to present
<ul>
<li>Modeled performance of next-generation CPU designs, allowing accurate performance projections</li>
<li>Uncovered/prevented performance and functional defects through performance validation of RTL/verilog design and (micro)architectural study</li>
<li>Proposed and studied feasibility and efficiency of potential CPU microarchitectural features</li>
<li>Designed and implemented methodology to collect workloads for processor performance model using QEMU, also contributing to upstream development of its plugin interface</li>
<li>Conceived of and implemented technology to collect identical sections of workload execution in different formats to allow performance validation across simulation platforms</li>
</ul>
</li>
<li>Qualcomm Senior Engineer - August 2012 to August 2018
<ul>
<li>Developed lightweight containers, Python workloads API, and ptrace-based tools to accelerate data-gathering and analysis for software and hardware optimization by enabling automated profiling across arbitrary workloads</li>
<li>Maintained in-house Linux distribution, authoring kernel patches and custom packaging to support modeling</li>
<li>Debugged Linux kernel and application functionality and performance at all levels from high-level software using gdb to custom model instruction traces and processor pipeline interactions</li>
<li>Supported mapping performance data from software processor models to benchmark source code symbols by adding semihosting support for perf events in the Linux kernel</li>
<li>Influenced next-generation processor design via micro-benchmarks and innovative workload sampling methods, reducing the required performance model runtime over 1000x</li>
<li>Pioneered basic block vector-based validation for model workloads, ensuring trusted results for critical microarchitectural decisions achieved correlation error of only 1% between software models and silicon</li>
<li>Adapted open-source software to speed up workload creation and contributed changes upstream, including emulated ARM PMUv3 (performance monitor) for QEMU</li>
</ul>
</li>
<li>Real-time Linux Systems Research at Virginia Tech - August 2010 to May 2012
<ul>
<li>Formulated and empirically evaluated cache-aware real-time scheduling algorithms and partitioning schemes</li>
<li>Researched and implemented techniques for quickly communicating kernel scheduling decisions to user space</li>
</ul>
</li>
<li>Qualcomm Software Development Engineer - Summer 2011
<ul>
<li>Developed and supported snapshot/restore mechanism for next-generation mobile processor simulator</li>
<li>Co-developed 'fast-forwarding' for the same processor performance model</li>
</ul>
</li>
<li>Virtual Environments Research in Computer Science - Spring 2010
<ul><li>Conducted user studies testing the effects of interaction fidelity on procedure memorization</li>
<li>Developed test environment using Blender, Python, and interfaced with VR hardware using C++</li></ul>
</li>
<li>IBM Emerging Technologies (jStart Team) - January 2009 to February 2010
<ul><li>Architected, programmed, tested, and presented new distributed mashup technology utilizing XMPP, custom Java server, MySQL, HTML5, JavaScript, and CSS</li>
<li>Granted <a href="https://patents.google.com/patent/US20110161833A1/en">patent US20110161833</a> for "Distributed Multi-User Mashups"</li></ul>
</li>
</ul>
<h3>Technical Hobbies</h3>
<ul>
<li>Develop open-source software recently personal finance/accounting software in python, Go, and ReactJS</li>
<li>Administer web services for family/friends using Ansible, including email, wiki, personal cloud, and git</li>
</ul>
<h3>Expertise</h3>
<h4 style="margin: 0em;">Languages:</h4>
<p style="margin: .5em 0 .5em 2em;">Assembly (ARM), (Ba)sh, C, C++, Go, HTML/CSS, JavaScript, make, Python, (reading) verilog</p>
<h4 style="margin: 0em;">Skills:</h4>
<p style="margin: .5em 0 .5em 2em;">Design/develop/debug applications, libraries, and operating system kernels (Linux), optimize for performance (from processor microarchitecture to assembly to web applications), construct software CPU models, debug complex multi-system problems, Linux/Unix administration, automation, data analysis</p>
<h3>Education</h3>
Virginia Polytechnic Institute and State University (Virginia Tech), Blacksburg, VA
<ul>
<li>M.S. Computer Science and Applications (3.95/4.0 GPA) - June 2012
<ul><li>Thesis: <a href="https://vtechworks.lib.vt.edu/handle/10919/33541"><i>LWFG: A Cache-Aware Multi-core Real-Time Scheduling Algorithm</i></a></li></ul>
</li>
<li>B.S. Computer Science / Math Minor (Summa Cum Laude - 3.90/4.0 GPA) - December 2010</li>
</ul>
</div>
<div id="sidebar">
<h4>Other Formats</h4>
<ul>
<li><a href="<?php echo get_base_url(); ?>/resume/AaronLindsay-Resume.pdf">Resume (pdf)</a></li>
<li><a href="<?php echo get_base_url(); ?>/resume/AaronLindsay-Resume.tex">Resume (LaTeX)</a> and <a href="<?php echo get_base_url(); ?>/resume/AaronLindsay-Resume.cls">.cls file</a></li>
<li><a href="<?php echo get_base_url(); ?>/resume/AaronLindsay-Resume.txt">Resume (plain text)</a></li>
<li style="margin-top: 1em;">Note: All contact information has been removed from the above - please <a href="<?php echo get_base_url(); ?>/contact">contact me via email</a>.</li>
</ul>
</div>
</div>
<?php include("../footer.php"); ?>