Daniel Houck

Software Engineer

United States

About

I am a software developer experienced in C++ and learning Rust, with an interest in methods to make software reliable. I can independently research complicated programming concepts, I like to have a good understanding of the code and tools I'm working with, and I explain them well to others. I strongly prefer to find and use existing, reliable libraries and tools whenever possible instead of re-inventing the wheel. [email protected]

Experience

  • Software Engineer at Immunant
    Aug 2022 - Feb 2023 · 7 mos

    Worked on multiple software reliability projects, including a research project for instruction-level instrumentation with the eventual goal of reliable binary patching, and an operating system for secure operations using ARM Trustzone™. * Learned the basics of PowerPC architecture to extend a multi-architecture instrumentation tool to work with it. In the process, discovered and helped track down an upstream LLVM bug for PowerPC. * Started conversion of a C library to Rust with c2rust and modified the code to use Rust libraries when possible instead of C libraries. * Used Bindgen to wrap C libraries for use in Rust code. * Minor cleanup of C code to enable switching libc implementations.

  • Core Developer at Hudson River Trading
    Nov 2020 - Sep 2021 · 11 mos

    Software Developer for the core Make It Better team, improving internal tooling for other developers to use. I specifically worked with our build system based on a modified version of Ninja which also supported a shared cache for build artifacts (similar to distcc). * Improved handling of cache behavior: Improved support for build rules with multiple outputs, which were previously handled in one-off inconsistent ways. Improved handling of dependencies and especially made sure to handle depfile dependencies correctly in all cases. Uncovered and fixed a couple issues with our previous handling, which had been working largely by coincidence. * Used these changes to set up caching of computationally expensive build rules that had previously not been cacheable. * Upgraded the remaining build steps using Python 2 to Python 3. * Added nightly monitoring scripts to ensure the build cache was not corrupted and different build configurations were interoperable. Debugged various build issues, identified by these scripts or reported by other developers.

  • Site Reliability Engineer at Google
    Jul 2018 - Oct 2019 · 1 yr 4 mos

    Site Reliability Engineer for the Traffic Steering team, a new team that was formed shortly before I joined the company. Primarily worked in C++ and Python on Linux, with various internal frameworks. * Created monitoring for volume and basic quality metrics of a Traffic Steering project, and set up alerts for when these metric values indicated that the system wasn't performing correctly. * Designed and implemented further quality metrics to measure results of planned experimental improvements. * Made several improvements to an internal tool to automate some handling of pending changes to Google's codebase, in order to add functionality and remove barriers to use. Also clarified documentation, especially around some edge cases that frequently tripped people up. * Contributed to bootstrapping of the Traffic Steering team from existing traffic SRE teams, ensuring that documentation for our products and internal policies was easy to find for new team members.

  • Software Developer at Old Mission Capital LLC
    Aug 2016 - Jan 2018 · 1 yr 6 mos

    Software developer in C++ and Python. Improved the primary C++ codebase. Maintained the historical market data analysis system. Simplified the continuous integration system and build toolchain. * Improved the readability and maintainability of a custom C++ code-generation tool and added components for performance-sensitive code. Made useful code review comments about bug fixes, cleaner code, and style, most of which were accepted. * Explained concepts and procedures to people with different levels of technical understanding. Explanations included both basic Git workflow to the users who needed to update the software with Git, and more technical subjects in Git, C++, and Python to programmers unfamiliar with those particular issues. * Discussed requirements with users, and confirmed priorities as needed. * Learned Pandas library basics to add functionality to the historical market data system. Configured new market data sources. Refactored configuration data to avoid repetition and to put more of the project in Git. Regularly checked for and addressed issues in the data capture process and nightly analysis job. * Tracked down and fixed compilation differences in software builds, achieving byte-for-byte build reproducibility in some configurations. Wrote a small C++ compile time string class to to avoid including the full path to included header files (workaround for GCC issues 70268). * Learned BuildBot from documentation and refactored CI system steps for maintainability, scalability, and consistency; identified and helped fix some bugs this uncovered. Worked as part of a team to improve process for releasing new versions of internal software and to add projects to CI system and ensure they built correctly and with the correct dependencies. Helped package tools and create configuration for migrating to newer versions of CentOS, GCC, Boost, etc., and made the CI system do parallel builds in both the current and newer configurations to help with migration.

  • Harvey Mudd College (Claremont, CA)
    • Computer Science Grader/Tutor (part time)
      Sep 2012 - May 2016 · 3 yrs 9 mos

      Helped students with conceptual and technical questions related to Data Structures and Program Development (CSCI 070) and Programming Languages (CSCI 131), graded homework, reviewed other grades, helped the professors rework problems in the assignments for future classes. Once partnered with one student during an assignment where pairs were necessary.

    • REU Student – Program Verification and OpenJML
      May 2014 - Aug 2014 · 4 mos

      Added syntax highlighting to the OpenJML Eclipse plugin to highlight JML annotations inside Java comments.