Aaron C. Lindsay
Summary
- I am a software engineer with 9 years of professional experience distilling challenging problems down to their core and developing the best solutions within given constraints.
- I methodically debug elusive problems, chasing them across language and project boundaries.
- I am a skilled communicator, which I use to ensure my solutions address the needs of others.
- I don’t like repeating myself - I am liable to automate anything worthwhile.
Related Experience
- Qualcomm Senior Engineer - August 2012 to present
- Debug Linux kernel and application functionality and performance at all levels – from high-level software design to instruction traces and processor pipeline interactions
- Develop tools in Python, C, and Bash to drastically accelerate data-gathering and analysis for software and hardware optimization, including lightweight container format and infrastructure, allowing automated profiling across thousands of workloads – potentially saving thousands of hours of engineers’ time
- Pioneered basic block vector-based correctness validation for workloads run on software performance models, preventing undesired behavior and ensuring results can be trusted to make hardware design decisions
- Adapt open-source software (QEMU, CRIU) for internal needs and contribute changes upstream
- Supported mapping performance data from software processor models to benchmark source code symbols by adding semihosting support for perf events in the Linux kernel
- Influence next-generation processor design by creating/analyzing processor performance micro-benchmarks
- Optimize Android/Linux application and library performance for Qualcomm’s mobile and server processors
- Real-time Linux Systems Research at Virginia Tech - August 2010 to May 2012
- Formulated and empirically evaluated cache-aware real-time scheduling algorithms and partitioning schemes
- Researched and implemented techniques for quickly communicating kernel scheduling decisions to user space
- Qualcomm Software Development Engineer - Summer 2011
- Developed and supported snapshot/restore mechanism for next-generation mobile processor simulator
- Co-developed 'fast-forwarding' for the same processor performance model
- Virtual Environments Research in Computer Science - Spring 2010
- Conducted user studies testing the effects of interaction fidelity on procedure memorization
- Developed test environment using Blender, Python, and interfaced with VR hardware using C++
- IBM Emerging Technologies (jStart Team) - January 2009 to February 2010
- Architected, programmed, tested, and presented new distributed mashup technology utilizing XMPP, custom Java server, MySQL, HTML5, JavaScript, and CSS
- Granted patent US20110161833 for "Distributed Multi-User Mashups"
Technical Hobbies
- Develop open-source software, including a personal finance/accounting library and web app in Go and ReactJS
- Administer web services for family/friends using Ansible, including email, wiki, personal cloud, and git
Expertise
Languages:
Assembly (ARM), (Ba)sh, C, C++, CSS, Go, HTML, JavaScript, Lua, make, Python
Skills:
Design/develop/debug applications, libraries, and operating system kernels (Linux), optimize for performance (from hand-coded assembly to web applications), debug complex multi-system problems, Linux/Unix administration, automation, continuous integration, web development, distributed VCS (i.e. git)
Education
Virginia Polytechnic Institute and State University (Virginia Tech), Blacksburg, VA- M.S. Computer Science and Applications (3.95/4.0 GPA) - June 2012
- B.S. Computer Science / Math Minor (Summa Cum Laude - 3.90/4.0 GPA) - December 2010