Zac Crites develops software in Salt Lake City

I am a strong believer in learning by doing and learning by teaching. This blog is an opportunity for me to do both, by working on projects and sharing what I’ve learned. I am also interested in documenting some of what I have learned in nearly 20 years of software development experience, some of which may be useful to others.

This is a space to write about technical topics, including software development methodologies, programming language technology, electronics hardware design, mathematics, physics, machine learning, and more.

I’ll probably also indulge in some non-technical articles about my other interests, including chess, music, writing, skiing, and hiking.

Work Experience


Intel

July 2022 – Present
Folsom, CA (remote)

  • Implemented a modern Python development workflow including continuous integration for code auto-formatting and linting, documentation builds, and automated testing
    • Reimplemented legacy Perl monitoring scripts in modern Python
  • Implemented a machine learning solution to predict compute resource requirements for batch jobs to reduce wasted resources for jobs which over-estimate their needs and reduce the number of jobs killed for under-estimating their needs and overrunning them
  • Implemented a system to scan log files and identify and categorize errors and the pipeline stage in which they occurred
    • The system is fully generalized, with individual scanners configurable via components defined in a YAML file
    • Log files are compressed and saved alongside the analysis results. These files are usable in generated reports to accelerate debugging.

L3Harris Technologies

September 2020 – July 2022
Salt Lake City, UT

  • Developed and maintained core features of wireless communications link simulation software, including protobuf-based inter-process communication (IPC) and structured logging mechanism
    • Contributed to design and implementation of Docker-based deployment for that simulator
      • Implemented a smart Docker Compose configuration generator based on a template for easy-to-maintain custom per-scenario Docker setups
    • Created translation layer for over-the-air logging messages sent by devices-under-test into messages compatible with the simulator GUI, for live diagnostic viewing in a lab or test flight environment
  • Developed modules for battlefield situational awareness software to gather diagnostic information from attached devices and emit alerts upon exceeding configured thresholds to notify the user of problems

Rockwell Automation

January 2015 – September 2020
Milwaukee, WI and Mayfield Heights, OH

  • Developed real-time functional safety programmable logic controller (PLC) firmware C++ code compliant with an IEC-61508 functional safety certified process
  • Created high-level design requirements and algorithm design documentation for firmware subsystems
  • Created numerous Python-based tools to aid in continuous integration (CI), firmware development and testing, and compiling functional safety certification documentation
  • Created libclang-based C++ linter for custom C++ style enforcement needs
  • Tech lead for CI/CD team, provided technical direction in developing Jenkins pipelines and other tools to meet the CI needs of over 500 embedded software developers
    • Developed features for an internal dashboard app (using Angular, Express.js, MongoDB) to provide CI metrics for the organization
    • Independently created a Flask web application in Python to scrape Jenkins CI logs to reduce time to resolve new regressions across a wide range of product firmware
  • Directed migration of main firmware codebase from a legacy ClearCase version control system to Git

Skills


Education


Marquette University College of Engineering

August 2012 – June 2017
Milwaukee, WI

BSc in Computer Engineering, with a minor in Electrical Engineering

Selected Courses

  • Computer Hardware and Architecture
  • Operating Systems and Networking
  • Digital Electronics
  • Power Electronics
  • Analog Electronics
  • Electromagnetic Fields
  • Linear Systems Analysis
  • Digital Signal Processing
  • Calculus and Differential Equations
  • Discrete Math for Engineers
  • Linear Algebra and Matrix Theory
  • Statistical Methods