Christopher J. Hawley

Washington University in St. Louis
Bachelor of Science with a Major in Computer Science
Second major in Applied Mathematics

Technical Skills
Languages: Java, C/C++, Python, C#, Ruby, bash
Web languages: JS, Node, HTML/CSS, XML
Technologies: Docker, PubSub, Redis, RXJava, No/Sql, GCP, AWS, Azure, Dropwizard, Chef, Nginx/Apache, Django, websockets
Software: Mac, Linux
Heliometric Stereo: Shape From Sun Position.
A. Abrams, C. Hawley, and R. Pless.
In Proc. European Conference on Computer Vision, October 2012.
Shadow Estimation Method for "The Episolar Constraint: Monocular Shape from Shadow Correspondence"
Austin Abrams, Chris Hawley, Kylia Miskell, Adina Stoica, Nathan Jacobs, Robert Pless
arXiv preprint arXiv:1304.4112, 2013.
Staff Software Engineer, Meta
Summer 2022 - Present

Senior Software Engineer, Facebook
Summer 2020 - Summer 2022

Software Engineer, RADAR
Summer 2017 - Summer 2020
  • First backend engineering hire, initially responsible for backend, DevOps, infrastructure, IT, and networking projects
  • Team lead of 3 backend engineers, including myself
  • Gathered requirements, designed, and implemented backend architecture and APIs
    • Retail Operations System - Distributed, highly fault tolerant service that managed all aspects of Retail Operations, incorporating both cloud and on-premise nodes
    • Sensor Network Management System - Performant system that managed a network of sensors, including software configuration, updates, hardware reboots
    • Access Point and Configuration Service - Service would provide aggregated configuration to an on-premise device given an identifier
  • Participated in all technical meetings with customers (3 global retailers)
  • Gathered requirements, planned, and designed systems to integrate with retailer's backend/data systems
  • Gathered requirements, designed, and implemented on-premise and in-cloud IT infrastructure and networks
Software Engineer (Backend, Ad Tech), Spotify
Summer 2015 - Summer 2017
  • Helped lead effort to redesign and build a new backend ad stack, exposing a simple ads api which allows any client to retrieve well-structured ads for specific users. This new system removed the need for complex parsing and business logic in the client.
  • Helped lead effort to make our ad decisions "smarter", by creating a system that chooses or replaces ads shown to the user based on optimization functions.
  • Implemented capability to record impressions in real time, lowering time to discover and diagnose problems or bugs from hours to seconds.
  • Mentored new full time hires and interns
  • Modernized many components of the legacy backend ad stack by utilizing new Java 8 concepts.
Software Development Engineer II, (an Amazon company)
Winter 2015 - Summer 2015

Software Development Engineer I, (an Amazon company)
Winter 2014 - Winter 2015
  • Lowered time it takes for a product to be searchable in our Image Matching system from 48 hours to less than 12 hours by designing a system that retrieves, normalizes, and handles real-time updates from the Amazon product catalog.
  • Co-designed a mostly automated data acquisition and ground-truthing system that acquires annotated images from various sources, such as a mobile device, and then automatically validates the images using MTurk.
  • Increased flexibility of searchable items in our catalog by augmenting our existing Image Matching system to include the concept of "Apps", where each available app contains a different set of images and will be queried in parallel. This augmented system is being used in a very large-scale production setting.
  • Mentored interns and new hires
Software Development Intern, (an Amazon company)
Summer 2013
  • Implemented system to transfer large Lucene indices using BitTorrent from a Master Node to numerous Slave nodes.
  • Integrated BitTorrent into Solr for index replication – this was all done using Java and required an in depth knowledge of the design and architecture of Solr, which I learned very quickly.
  • Compared performance between using Solr built-in index replication and using the BitTorrent component.
  • Documented all work and results and presented project at a Tech Talk.
Washington University in St. Louis - Research Assistant
Summer 2012
  • Used manifold learning to produce an intuitive visualization of a beating Zebrafish heart
  • Researched methods to detect shadows in images which were taken by static, outdoor web-cameras
  • Maintained and improved two current websites (Full stack)
Washington University in St. Louis - Research Assistant
Summer 2011
  • Developed an algorithm that produces smooth time-lapse images of long image-sequences
  • Maintained and improved two current websites (Full stack)
  • Increased efficiency of a very large dataset be implementing vertical partitioning
  • Created an academic poster to demonstrate time-lapse algorithm and other research
Balance Innovations, LLC. - Software Development Intern
Summer 2010
  • Developed a database dependent application in C# to improve efficiency of Sales Department
  • Led meetings to demonstrate product functionality
Additional Experience
Teaching Assistant, Programming Systems and Languages
Fall 2013
  • Graded lab projects, assisted in lab portion of class
Teaching Assistant, Object Oriented Software Development Laboratory
Fall 2012 / Spring 2013
  • Graded lab projects, assisted in lab portion of class
Teaching Assistant, Discrete Mathematics and Logic
Fall 2011
  • Graded homeworks and exams
  • Held weekly office hours to help students better understand course material
Teaching Assistant, Computer Science I
Fall 2010
  • Graded homework and quizzes, assisted in lab portion of class