# Portfolio

Source: https://sumnerevans.com/portfolio/
Published: 2021-08-01

> [!NOTE]
>
> This is my CV. You may want to view my [resume](./resume.pdf) instead.

## Experience

<details id="experience-canam-tech-lead" class="portfolio-item" open>
  <summary>
    <div class="company-logo">
      <img src="./images/canam-logo.svg" alt="Can/Am Technologies Logo">
    </div>
    <h3>
      Senior Implementation Tech Lead</a>
      <a class="permalink" href="#experience-canam-tech-lead"
        aria-label="Permalink to Senior Implementation Tech Lead at Can/Am Technologies"></a>
    </h3>
    <span>April 2025 - Present</span>
    <p>
      <a href="https://canamtechnologies.com" target="_blank">Can/Am Technologies</a>
    </p>
  </summary>
  <div>
    <p>
      I
      <a href="https://sumnerevans.com/posts/life-updates/joining-canam/">joined Can/Am Technologies</a>
      as a Senior Implementation Tech Lead. I lead a team of forward-deployed engineers responsible for
      building integrations with third-party systems.
    </p>
    <details open class="normal-expander">
      <summary>Notable initiatives and projects include...</summary>
      <ul>
        <li>
          Formalised a per-project Integrations Lead role definition for the person responsible for
          overseeing technical delivery of the business solution to the client.
        </li>
        <li>
          Encouraging adoption of AI efficiencies across the Implementations engineering team.
        </li>
        <li>
          Collaborated with cross-functional stakeholders to improve processes and standards across
          the client services organisation.
          <ul>
            <li>
              Improved requirements gathering and technical feasibility assessment processes across the
              Implementations team.
            </li>
            <li>
              Enforced design reviews for all integrations with key stakeholders including business analysts
              and QA.
            </li>
            <li>
              Introduced standards for handoff from engineers to QA.
            </li>
          </ul>
        </li>
        <li>
          Driving multiple efforts to make integration architecture more declarative and configuration-driven
          increasing our ability to leverage AI assistants for programming and configuration tasks.
        </li>
        <li>
          Implementing improved developer tooling such as automated linting for integration development.
        </li>
        <li>
          Implemented integrations with
          <a href="https://www.themortgageoffice.com/" target="_blank">The Mortgage Office</a>,
          WorldPay, and EnQuesta and built enhancements for many other integrations.
        </li>
      </ul>
    </details>
  </div>
</details>

<details id="experience-beeper" class="portfolio-item" open>
  <summary>
    <div class="company-logo">
      <img src="./images/beeper-logo.png" alt="Beeper Logo">
    </div>
    <h3>
      Software Engineer
      <a class="permalink" href="#experience-beeper" aria-label="Permalink to Software Engineer at Beeper"></a>
    </h3>
    <span>July 2021 - April 2025</span>
    <p>
      <a href="https://beeper.com" target="_blank">Beeper</a>
    </p>
  </summary>
  <div>
    <p><i>Key Technologies:</i> Matrix, Go, Python</p>
    <p>
      I worked on building the infrastructure necessary to connect people on every chat network through
      <b>Matrix</b>. I worked mainly on bridges and other backend projects to enable Beeper to grow
      and add new users.
    </p>
    <details open class="normal-expander">
      <summary>Notable projects include...</summary>
      <ul>
        <li>
          Scaled our backend infrastructure from handling &lt;1,000 users to &gt;100,000 users by
          <b>sharding</b> traffic from high-volume bridges to a separate <b>Go</b> service called
          <a href="#presentation-hungryserv">Hungryserv</a> in a backwards-compatible, transparent
          manner. I created the initial proof of concept and then continued as a core member of
          the 3-member team that productionized the project over a four-month period.
        </li>
        <li>
          Saved ~2TB of RAM by rewriting the
          <a href="https://github.com/mautrix/telegramgo" target="_blank">Telegram</a>
          to <b>Matrix</b> bridge from Python to <b>Go</b>.
        </li>
        <li>
          <b>Reverse-engineered</b> and implemented features for
          <a href="https://blog.beeper.com/p/introducing-beeper-mini-get-blue" target="_blank">Beeper Mini</a>
          (iMessage on Android) including media, tapbacks, typing indicators, read receipts,
          edits, unsends, link previews, and chat metadata changes.
        </li>
        <li>
          Implemented the cryptographic key infrastructure necessary for message
          <a href="https://github.com/mautrix/go/tree/main/crypto/backup" target="_blank">key backups</a>
          and
          <a href="https://github.com/mautrix/go/tree/main/crypto/verificationhelper" target="_blank">interactive device verification</a>
          in
          <a href="https://github.com/mautrix/go" target="_blank">mautrix-go</a>
          by utilizing the standard Go <b>cryptography libraries</b>.
        </li>
        <li>
          Implemented media upload/download and interactive device verification in the Beeper
          client SDK written in <b>Go</b> which is being used in the next generation Beeper clients.
        </li>
        <li>
          Measured message send <b>latency and reliability</b> by instrumenting bridge
          <b>metrics</b>. Built a Dockerized <b>Go</b> service to process those metrics and send
          them to BigQuery.
        </li>
        <li>
          Streamlined our support team's ability to chat directly with users by
          building a
          <a href="https://github.com/beeper/chatwoot/" target="_blank">Chatwoot bot</a>
          in <b>Go</b>.
        </li>
        <li>
          <b>Reverse-engineered</b> the LinkedIn Messaging API and implemented a
          <a href="https://github.com/beeper/linkedin" target="_blank">LinkedIn</a>
          to Matrix bridge in <b>Python</b> and later in <b>Go</b>.
        </li>
        <li>
          Defined a framework for importing users' chat history, and implemented it in the
          <a href="https://github.com/mautrix/whatsapp" target="_blank">WhatsApp</a>,
          <a href="https://github.com/mautrix/facebook" target="_blank">Facebook</a>,
          <a href="https://github.com/mautrix/instagram" target="_blank">Instagram</a>, and
          <a href="https://github.com/mautrix/teleramgo" target="_blank">Telegram</a>,
          bridges.
        </li>
      </ul>
    </details>
  </div>
</details>

<details id="experience-adjunct-mines" class="portfolio-item" open>
  <summary>
    <div class="company-logo">
      <img src="./images/mines-logo.jpg" alt="Colorado School of Mines Logo" class="with-bg">
    </div>
    <h3>
      Adjunct Professor
      <a class="permalink" href="#experience-adjunct-mines" aria-label="Permalink to Adjunct Professor at Colorado School of Mines"></a>
    </h3>
    <span>August 2018 - December 2024</span>
    <p><a href="https://mines.edu" target="_blank">Colorado School of Mines</a></p>
  </summary>
  <div>
    <p>
      I have had the opportunity to teach courses in multiple areas of computer science at my alma
      mater, Colorado School of Mines.
    </p>
    <p>
      Courses I've taught:
    </p>
    <details class="normal-expander">
      <summary>
        <b>Algorithms (4&times;)</b> &mdash;
        advanced data structures, graph algorithms, dynamic programming, NP-completeness
      </summary>
      <p>
        I taught <i>CSCI 406 Algorithms</i> once while I was a graduate student in 2018 under
        <a href="https://cs.mines.edu/project/mehta-dinesh/" target="_blank">Dr. Dinesh Mehta</a>.
        I also taught two sections in Spring 2022 using Dr. Mehta's materials. I co-taught the
        class with Dr. Mehta in Fall 2023 and Fall 2024.
      </p>
      <p>
        Full list of topics that the class covers include: analysis of algorithms, advanced data
        structures, sorting algorithms, dynamic programming, graph algorithms, and NP-completeness.
      </p>
    </details>
    <details class="normal-expander">
      <summary>
        <b>Programming Languages (4&times;)</b> &mdash;
        functional programming, parsers, type systems, formal semantics
      </summary>
      <p>
        I taught <i>CSCI 400 Principles of Programming Languages</i> once as a graduate student in
        2019. Topics that the class covered at that time include: programming language concepts,
        evaluation, and implementation; object-oriented programming; Lambda Calculus; and Racket
        (a LISP dialect).
      </p>
      <p>
        I then taught the course twice under
        <a href="https://jrmcclurg.com/" target="_blank">Dr. Jedidiah McClurg</a>
        in 2020 and 2021, and once under
        <a href="https://www.linkedin.com/in/ameliaread" target="_blank">Amelia Read</a>
        in Fall 2022. Topics that the course covered in those iterations included:
        functional programming concepts, type inference, OCaml, programming language
        implementation, and formal semantics.
      </p>
    </details>
    <details class="normal-expander">
      <summary>
        <b>Computer Organization (1&times;)</b> &mdash;
        RISC-V assembly, pipelining, processor design, memory hierarchy
      </summary>
      <p>
        I taught <i>CSCI 341 Computer Organization</i> with
        <a href="https://people.mines.edu/qhan/">Dr. Qi Han</a> in 2023.
      </p>
    </details>
    <details class="normal-expander">
      <summary>
        <b>Computer Architecture (1&times;)</b> &mdash;
        cache coherence, virtual memory, branch prediction, multiprocessors
      </summary>
      <p>
        I taught <i>CSCI 564 Advanced Computer Architecture</i> in Spring of 2021. Topics that the
        class covered included: performance analysis, cache, virtual memory, pipelining, branch
        prediction, out-of-order execution, and multiprocessors.
      </p>
      <p>
        I based the course off of the curriculum provided by
        <a href="http://inside.mines.edu/~bwu/" target="_blank">Dr. Bo Wu</a>
        and adapted it for hybrid COVID learning. The main additions/changes were adding lecture
        worksheets to improve student engagement in lectures, modernizing the slides, and reworking
        the projects starter code to better focus on the learning objectives.
      </p>
    </details>
  </div>
</details>

<details id="experience-ttd" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/ttd-logo.webp" alt="The Trade Desk Logo">
    </div>
    <h3>
      Software Engineer
      <a class="permalink" href="#experience-ttd" aria-label="Permalink to Software Engineer at The Trade Desk"></a>
    </h3>
    <span>June 2019 - July 2021</span>
    <p><a href="https://thetradedesk.com" target="_blank">The Trade Desk</a></p>
  </summary>
  <div>
    <p><i>Key Technologies:</i> React JS, C#, SQL</p>
    <p>
      I was a member of the Connected TV engineering team. I worked on all parts of the stack
      including the <b>C#</b> backend, the <b>React</b> frontend, and the <b>SQL Server</b> backend
      database.
    </p>
    <details class="normal-expander">
      <summary>Notable projects included...</summary>
      <ul>
        <li>
          Implementing ingestion of the <tt>ifa_type</tt> field in OpenRTB requests across our fleet
          of high performance bidders. (C#)
        </li>
        <li>
          Building many of the features for the Connected TV incremental reach planning tool.
          (React, Node.js, C#)
        </li>
        <li>
          Designing and implementing major portions of an AI-powered ad campaign strategy
          recommendation system. (C#, SQL)
        </li>
      </ul>
    </details>
  </div>
</details>

<details class="portfolio-more-items">
  <summary><div>+5 More</div></summary>

  <details id="experience-pivotal" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/pivotal-logo.png" alt="Pivotal Logo" class="with-bg">
      </div>
      <h3>
        Software Engineering Intern
        <a class="permalink" href="#experience-pivotal" aria-label="Permalink to Software Engineering Intern at Pivotal"></a>
      </h3>
      <span>May 2018 - August 2018</span>
      <p><a href="https://pivotal.io" target="_blank">Pivotal</a></p>
    </summary>
    <div>
      <p>
        I worked on the <i>Infra</i> pod on the Tracker team, the team responsible for developing
        <i>Pivotal Tracker</i>. I anchored the development of a new system for imaging workstations
        for consistent workflows on all machines used by the Tracker team. I also participated in a
        LEAN Product process to determine the needs of the Tracker team.
      </p>
    </div>
  </details>

  <details id="experience-on-tour" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/mines-logo.jpg" alt="Colorado School of Mines Logo" class="with-bg">
      </div>
      <h3>
        CS@Mines on Tour Presenter
        <a class="permalink" href="#experience-on-tour" aria-label="Permalink to CS@Mines on Tour Presenter at Colorado School of Mines"></a>
      </h3>
      <span>January 2017 - May 2018</span>
      <p><a href="http://csunplugged.mines.edu/" target="_blank">CS@Mines Unplugged</a></p>
    </summary>
    <div>
      <p>
        I gave presentations to high school students about the Computer Science Department at Mines. I
        also led computer science related workshops for middle school students.
      </p>
    </div>
  </details>

  <details id="experience-ta-data-structures" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/mines-logo.jpg" alt="Colorado School of Mines Logo" class="with-bg">
      </div>
      <h3>
        Teachers Assistant (Data Structures)
        <a class="permalink" href="#experience-ta-data-structures"
          aria-label="Permalink to Teachers Assistant (Data Structures) at Colorado School of Mines"></a>
      </h3>
      <span>August 2017 - May 2018</span>
      <p><a href="https://mines.edu" target="_blank">Colorado School of Mines</a></p>
    </summary>
    <div>
      <p>
        I assisted students during TA office hours and during the in-class lab sessions. I was
        nominated for the Student Employee of the Year by CPW, the faculty member responsible for the
        course.
      </p>
    </div>
  </details>

  <details id="experience-kenzan" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/kenzan-logo.png" alt="Kenzan Logo" class="with-bg">
      </div>
      <h3>
        Software Development Intern
        <a class="permalink" href="#experience-kenzan"
          aria-label="Permalink to Software Development Intern at Kenzan"></a>
      </h3>
      <span>June 2017 - August 2017</span>
      <p><a href="https://kenzan.com" target="_blank">Kenzan</a></p>
    </summary>
    <div>
      <p>
        I contributed to OSS projects including React and Node.js on behalf of Kenzan. I also worked
        to improve the Kenzan.com website by implementing a CI/CD Jenkins pipeline with a WebPack
        build.
      </p>
    </div>
  </details>

  <details id="experience-canam-software-developer" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/canam-logo.svg" alt="Can/Am Technologies Logo">
      </div>
      <h3>
        Software Developer
        <a class="permalink" href="#experience-canam-software-developer"
          aria-label="Permalink to Software Developer at Can/Am Technologies"></a>
      </h3>
      <span>February 2013 - August 2016</span>
      <p><a href="https://canamtechnologies.com" target="_blank">Can/Am Technologies</a></p>
    </summary>
    <div>
      <p><i>Key Technologies:</i> C#, ExtJS, SQL</p>
      <p>
        I worked on the Teller Development Team designing and building new features for Teller, an
        enterprise point-of-sale system geared towards municipal governments.
      </p>
      <p>
        I primarily worked on the web-based application which uses a technology stack consisting of
        <b>ExtJS</b> (a JavaScript framework), <b>C#</b>, and <b>Oracle PL/SQL</b>, but I also worked
        on the native Windows application. Additionally, I designed and built plugins that integrate
        external systems into Teller. One of the more notable plugins I developed was an integration
        with Bank of America for electronic deposit of checks.
      </p>
    </div>
  </details>
</details>

## Education

<details id="education-mines-masters" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/mines-logo.jpg" alt="Colorado School of Mines Logo" class="with-bg">
    </div>
    <h3>
      MS Computer Science
      <a class="permalink" href="#education-mines-masters"
        aria-label="Permalink to MS Computer Science at Colorado School of Mines"></a>
    </h3>
    <span>August 2018 - May 2019</span>
    <p>
      <a href="https://mines.edu" target="_blank">Colorado School of Mines</a>,
      4.0 GPA
    </p>
  </summary>
  <div>
    <p>
      I worked with Dr. Dinesh Mehta on a project to automate group selection for projects in CSCI
      406 Algorithms.
    </p>
    <p>
      I served as the Chair of the Mines Association for Computing Machinery (ACM) Student Chapter,
      the Linux Help Guru of the Linux Users Group, and the Service Chair of the Mines chapter of
      the Tau Beta Pi Honor Society.
    </p>
    <details class="normal-expander">
      <summary>Notable classes I took include...</summary>
      <ul>
        <li>Advanced High Performance Computing</li>
        <li>Parallel Computing</li>
        <li>Advanced Computer Architecture</li>
        <li>Abstract Algebra</li>
        <li>Theory of Computation</li>
        <li>Theory of Cryptography</li>
      </ul>
    </details>
  </div>
</details>

<details id="education-mines-bachelors" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/mines-logo.jpg" alt="Colorado School of Mines Logo" class="with-bg">
    </div>
    <h3>
      BS Computer Science
      <a class="permalink" href="#education-mines-bachelors"
        aria-label="Permalink to BS Computer Science at Colorado School of Mines"></a>
    </h3>
    <span>August 2016 - May 2018</span>
    <p>
      <a href="https://mines.edu" target="_blank">Colorado School of Mines</a>,
      3.9 GPA
    </p>
  </summary>
  <div>
    <p>
      I graduated with a degree in Computer Science from Colorado School of Mines. I was awarded
      the <i>Outstanding Graduating Senior</i> award for Computer Science.
    </p>
    <p>
      As a student I served one year as the Vice President of the Mines ACM Student Chapter and one
      and a half years as Secretary of the Mines Linux Users Group (LUG). I made Dean's List every
      semester of my undergraduate studies.
    </p>
    <details class="normal-expander">
      <summary>Notable classes I took include...</summary>
      <ul>
        <li>Operating Systems</li>
        <li>Algorithms</li>
        <li>Computer Graphics</li>
        <li>Computer Simulations</li>
        <li>Virtual Reality</li>
        <li>Principles of Programming Languages</li>
        <li>Artificial Intelligence</li>
        <li>Software Engineering and Advanced Software Engineering (Field Session)</li>
        <li>Computer Organization</li>
        <li>Linear Algebra</li>
        <li>Data Structures</li>
      </ul>
    </details>
  </div>
</details>

<details id="education-rrcc" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/rrcc-logo.png" alt="Red Rocks Community College Logo" class="with-bg">
    </div>
    <h3>
      Mines Transfer Program
      <a class="permalink" href="#education-rrcc"
        aria-label="Permalink to Mines Transfer Program at Red Rocks Community College"></a>
    </h3>
    <span>August 2012 - May 2016</span>
    <p>
      <a href="https://rrcc.edu" target="_blank">Red Rocks Community College</a>,
      4.0 GPA
    </p>
  </summary>
  <div>
    <p>
      Through high school, I took classes at Red Rocks Community College via the transfer program
      between Colorado School of Mines and Red Rocks. I was a member of the Phi Theta Kappa Honor
      Society for three years.
    </p>
    <p>
      I was selected to be <a href="#claro">published in CLARO</a> an interdisciplinary scholarly
      journal. I then <a href="https://youtu.be/yRGqNewEeoQ">presented my work</a> at the CLARO
      academic conference.
    </p>
    <details class="normal-expander">
      <summary>Notable classes I took include...</summary>
      <ul>
        <li>Spanish Language I and II</li>
        <li>Calculus I, II, III, and Differential Equations</li>
        <li>Chemistry I and II</li>
        <li>Calculus-Based Physics I and II</li>
      </ul>
    </details>
  </div>
</details>

## Presentations

<details id="presentation-acm-swe-career-llm-world" class="portfolio-item no-logo">
  <summary>
    <h3>
      Building a Software Career in an LLM World
      <a class="permalink" href="#presentation-acm-swe-career-llm-world"
        aria-label="Permalink to Building a Software Career in an LLM World"></a>
    </h3>
    <span>September 2025</span>
    <p>
      <a href="https://docs.google.com/presentation/d/1lPv_V89iGboSSujkocsBUs2OPDbz6pL6pLU3dEipbqs/edit?usp=sharing" target="_blank">
         Slides</a>
      | <a href="https://sumnerevans.com/posts/software-engineering/building-swe-career-in-llm-world/">
         Blog Post</a>
    </p>
  </summary>
  <div>
    <p>
      I gave this talk at Mines ACM. I discussed how to build a career in the software industry by
      looking first at the possible career tracks and talked about the attributes required to become
      a senior developer. Then I described how I believe that LLMs will affect the software
      engineering industry and those career tracks.
    </p>
  </div>
</details>

<details id="presentation-blasterhacks-keynote" class="portfolio-item no-logo">
  <summary>
    <h3>
      BlasterHacks Keynote
      <a class="permalink" href="#presentation-blasterhacks-keynote"
        aria-label="Permalink to BlasterHacks Keynote"></a>
    </h3>
    <span>March 2025</span>
    <p>
      <a href="https://docs.google.com/presentation/d/1Y1akzxses_sKwKSe2KKeP_VkcClesh_IlJGNMUT9_qg/edit" target="_blank">
         Slides</a>
      | <a href="https://sumnerevans.com/posts/software-engineering/7-things-ive-learned-in-7-years-as-swe/">
         Blog Post</a>
    </p>
  </summary>
  <div>
    <p>
      I gave the keynote address at BlasterHacks, a hackathon hosted by the Mines ACM. I discussed
      seven things that the hackers should do to make their hackathon project successful. Then I
      pointed out that those same seven things are things that they continue to practice througout
      their careers.
    </p>
  </div>
</details>

<details id="presentation-matrix-crypto-key-infra" class="portfolio-item no-logo" open>
  <summary>
    <h3>
      Matrix Cryptographic Key Infrastructure
      <a class="permalink" href="#presentation-matrix-crypto-key-infra"
        aria-label="Permalink to Matrix Cryptographic Key Infrastructure"></a>
    </h3>
    <span>September 2024</span>
    <p>
      <a href="https://www.youtube.com/watch/4uC-S0Bb5-g" target="_blank">
         YouTube Recording</a>
      | <a href="https://sumnerevans.com/posts/matrix/cryptographic-key-infrastructure/">
         Blog Post</a>
      | <a href="/posts/matrix/cryptographic-key-infrastructure/slides.pdf" target="_blank">
         Slides</a>
      | <a href="https://github.com/sumnerevans/matrix-cryptographic-key-infrastructure-presentation" target="_blank">
         GitHub</a>
    </p>
  </summary>
  <div>
    <p>
      I gave this presentation at the 2024 Matrix Conference.
      I discussed the cryptographic key infrastructure in Matrix,
      that is all of the features which support key sharing and identity verification,
      but don't actually themselves provide message security.
    </p>
    <details class="youtube-expander" open>
      <summary> Matrix Cryptographic Key Infrastructure - Sumner Evans </summary>
      [Watch on YouTube](https://www.youtube.com/watch?v=4uC-S0Bb5-g)

    </details>
  </div>
</details>

<details id="presentation-acm-git-good" class="portfolio-item no-logo">
  <summary>
    <h3>
      Git Good
      <a class="permalink" href="#presentation-acm-git-good"
        aria-label="Permalink to Git Good"></a>
    </h3>
    <span>February, September 2023</span>
    <p>
      <a href="https://raw.githubusercontent.com/sumnerevans/presentations/master/acm-git-good/git.pdf" target="_blank">
         Slides</a>
      | <a href="https://github.com/sumnerevans/presentations/tree/master/acm-git-good" target="_blank">
         GitHub </a>
    </p>
  </summary>
  <div>
    <p>
      I gave this presentation at the Mines ACM student chapter as a guest speaker in their tech
      workshop series. The talk was designed to provide students with a mental model of Git so that
      they understand how it works, rather than just knowing a bunch of commands.
    </p>
  </div>
</details>

<details id="presentation-acm-architecting-for-scale" class="portfolio-item no-logo">
  <summary>
    <h3>
      Architecting for Scale
      <a class="permalink" href="#presentation-acm-architecting-for-scale"
        aria-label="Permalink to Architecting for Scale"></a>
    </h3>
    <span>September 2022</span>
    <p>
      <a href="https://github.com/sumnerevans/acm-scaling-architecture/raw/master/acm-scaling-architecture.pdf" target="_blank">
         Slides</a>
      | <a href="https://github.com/sumnerevans/acm-scaling-architecture" target="_blank">
         GitHub</a>
    </p>
  </summary>
  <div>
    <p>
      I gave this presentation at the Mines ACM student chapter as a guest speaker in their tech
      talk series. The talk was designed to help students understand the architectural challenges
      that software engineers/architects have to think about. I also presented a case-study in how
      we are scaling the architecture of Beeper via sharding.
    </p>
  </div>
</details>

<details id="presentation-hungryserv" class="portfolio-item no-logo" open>
  <summary>
    <h3>
      Hungryserv: A Homeserver Optimized for Unfederated Use-Cases
      <a class="permalink" href="#presentation-hungryserv"
        aria-label="Permalink to Hungryserv: A Homeserver Optimized for Unfederated Use-Cases"></a>
    </h3>
    <span>August 2022</span>
    <p>
      <a href="https://github.com/sumnerevans/hungryserv-presentation/raw/master/hungryserv.pdf" target="_blank">
         Slides</a>
      | <a href="https://github.com/sumnerevans/hungryserv-presentation" target="_blank">
         GitHub</a>
    </p>
  </summary>
  <div>
    <p>
      I gave this presentation at the 2022 Berlin Matrix Community Summit. I discussed Hungryserv, a
      homeserver that Beeper is building to optimize unfederated bridge traffic. I also discussed
      our current architecture and why we decided to start building Hungryserv.
    </p>
  </div>
</details>

<details class="portfolio-more-items">
  <summary><div>+17 More</div></summary>

  <details id="presentation-matrix-bot-workshop" class="portfolio-item no-logo">
    <summary>
      <h3>
        Creating a Matrix Bot in 30 minutes using simplematrixbotlib or maubot
        <a class="permalink" href="#presentation-matrix-bot-workshop"
          aria-label="Permalink to Creating a Matrix Bot in 30 minutes using simplematrixbotlib or maubot"></a>
      </h3>
      <span>August 2022</span>
      <p>
        <a href="https://github.com/sumnerevans/maubot-workshop/raw/master/maubot-workshop.pdf" target="_blank">
           Slides</a>
        | <a href="https://github.com/sumnerevans/maubot-workshop" target="_blank">
           GitHub</a>
      </p>
    </summary>
    <div>
      <p>
        I presented this workshop at the 2022 Berlin Matrix Community Summit with
        <a href="https://github.com/HarHarLinks" target="_blank">Kim Brose</a>.
        We covered two Python libraries for writing Matrix bots: maubot and simplematrixbotlib. We
        presented the libraries and then helped participants create bots using the libraries.
      </p>
    </div>
  </details>

  <details id="presentation-what-is-beeper-working-on" class="portfolio-item no-logo">
    <summary>
      <h3>
        What is Beeper Working on?
        <a class="permalink" href="#presentation-what-is-beeper-working-on"
          aria-label="Permalink to What is Beeper Working on?"></a>
      </h3>
      <span>August 2022</span>
      <p>
        <a href="https://github.com/sumnerevans/what-is-beeper-working-on/raw/master/what-is-beeper-working-on.pdf" target="_blank">
           Slides</a>
        | <a href="https://github.com/sumnerevans/what-is-beeper-working-on" target="_blank">
           GitHub</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the 2022 Berlin Matrix Community Summit. I described Beeper's
        vision, what we have built so far, what our current challenges are and how we are solving
        them, and what it's like working at Beeper.
      </p>
    </div>
  </details>

  <details id="presentation-lug-gui-toolkits" class="portfolio-item no-logo">
    <summary>
      <h3>
        GUI Toolkits
        <a class="permalink" href="#presentation-lug-gui-toolkits"
          aria-label="Permalink to GUI Toolkits"></a>
      </h3>
      <span>November 2020</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-gui-toolkits" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-gui-toolkits/-/raw/master/gui-toolkits.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a target="_blank" href="https://gitlab.com/robozman">Robby Zampino</a> and
        <a target="_blank" href="https://gitlab.com/doriangc">Dorian Cauwe</a>.
        We discussed the different types of GUI toolkits available and we presented the pros
        and cons of three specific GUI toolkits: Flutter, GTK, and Qt.
      </p>
    </div>
  </details>

  <details id="presentation-lug-backup-strategies" class="portfolio-item no-logo">
    <summary>
      <h3>
        Backup Strategies
        <a class="permalink" href="#presentation-lug-backup-strategies"
          aria-label="Permalink to Backup Strategies"></a>
      </h3>
      <span>October 2020</span>
      <p>
        <a href="https://github.com/sumnerevans/presentations/tree/master/lug-backup-strategies" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/presentations/master/lug-backup-strategies/backup.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group. I discussed
        best practices and general rules for backups and described my backup
        setup: Git + GitHub/GitLab/Sourcehut and Syncthing + Restic.
      </p>
    </div>
  </details>

  <details id="presentation-lug-open-standards" class="portfolio-item no-logo">
    <summary>
      <h3>
        Open Standards
        <a class="permalink" href="#presentation-lug-open-standards"
          aria-label="Permalink to Open Standards"></a>
      </h3>
      <span>November 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-open-standards" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-open-standards/-/raw/master/open-standards.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a target="_blank" href="https://gitlab.com/robozman">Robby Zampino</a>. We discussed what
        standards exist, and why open standards are better than closed ones. We also gave a few
        examples of different open standards in many different industries.
      </p>
    </div>
  </details>

  <details id="presentation-lug-makefiles" class="portfolio-item no-logo">
    <summary>
      <h3>
        Makefiles
        <a class="permalink" href="#presentation-lug-makefiles"
        aria-label="Permalink to Makefiles"></a>
      </h3>
      <span>March 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-makefiles" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-makefiles/-/raw/master/makefiles.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group. I covered the basics of GNU
        <tt>make</tt> as well as how to make a <tt>Makefile</tt>.
      </p>
    </div>
  </details>

  <details id="presentation-lug-mutt" class="portfolio-item no-logo">
    <summary>
      <h3>
        Mutt
        <a class="permalink" href="#presentation-lug-mutt"
          aria-label="Permalink to Mutt"></a>
      </h3>
      <span>February 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-mutt" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-mutt/-/raw/master/mutt.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group. I covered the basics of the Mutt CLI
        email client. I discussed the basics of using Mutt and some of the most useful configurations
        including how to configure it to be used with GPG encryption and signatures.
      </p>
    </div>
  </details>

  <details id="presentation-oresec-pgp" class="portfolio-item no-logo">
    <summary>
      <h3>
        PGP
        <a class="permalink" href="#presentation-oresec-pgp"
          aria-label="Permalink to PGP"></a>
      </h3>
      <span>February 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/oresec-pgp" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/oresec-pgp/-/raw/master/pgp.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Cybersecurity Club (OreSec) with
        <a target="_blank" href="https://david.florness.com">David Florness</a>. We discussed the
        cryptographic theory behind PGP/GPG such as symmetric vs. asymmetric encryption and the PGP
        protocol. Then we had an interactive time where we showed how to use GPG.
      </p>
    </div>
  </details>

  <details id="presentation-lug-zsh" class="portfolio-item no-logo">
    <summary>
      <h3>
        ZSH
        <a class="permalink" href="#presentation-lug-zsh"
          aria-label="Permalink to ZSH"></a>
      </h3>
      <span>January 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-zsh" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-zsh/-/raw/master/zsh.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a target="_blank" href="https://jnewport.dev/">Jordan Newport</a>. We covered ZSH, an
        alternative shell to BASH. We discussed everything from the basics, to some really cool
        quality-of-life improvements which make using the shell enjoyable.
      </p>
    </div>
  </details>

  <details id="presentation-lug-latex" class="portfolio-item no-logo">
    <summary>
      <h3>
        LaTeX
        <a class="permalink" href="#presentation-lug-latex"
          aria-label="Permalink to LaTeX"></a>
      </h3>
      <span>January 2019</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-latex" target="_blank">
           GitLab</a>
        | <a href="https://gitlab.com/sumner/lug-latex/-/raw/master/latex.pdf?inline=false" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a target="_blank" href="https://gitlab.com/josephmckinsey">Joseph McKinsey</a>. We gave an
        extensive introduction to the LaTeX typesetting language. We covered everything from the very
        basics of using LaTeX all the way up to advanced LaTeX topics such as using it for
        presentations!
      </p>
    </div>
  </details>

  <details id="presentation-lug-i3wm" class="portfolio-item no-logo">
    <summary>
      <h3>
        i3wm
        <a class="permalink" href="#presentation-lug-i3wm"
          aria-label="Permalink to i3wm"></a>
      </h3>
      <span>March 2017, October 2018</span>
      <p>
        <a href="https://github.com/sumnerevans/lug-i3" target="_blank">
           GitHub</a>
        | <a href="https://github.com/sumnerevans/lug-i3/raw/master/i3.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group. I discussed the traditional motif for
        window management and then presented a better alternative: tiling window managers. I presented
        i3wm, my personal favourite tiling window manager. I talked about the pros of using it as well
        as how to use it and customize it.
      </p>
    </div>
  </details>

  <details id="presentation-lug-idris" class="portfolio-item no-logo">
    <summary>
      <h3>
        Idris
        <a class="permalink" href="#presentation-lug-idris"
          aria-label="Permalink to Idris"></a>
      </h3>
      <span>March, June 2018</span>
      <p>
        <a href="https://github.com/sumnerevans/lug-idris" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/lug-idris/master/out/lug-idris-1610.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I first gave this presentation at the Mines Linux Users Group with
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>.
        We also gave the presentation for the Wednesday tech talk while interning at Pivotal. In both
        talks, we covered Idris, dependent types, and using Idris as a proof assistant.
      </p>
    </div>
  </details>

  <details id="presentation-lug-universal-package-formats" class="portfolio-item no-logo">
    <summary>
      <h3>
        Universal Package Formats
        <a class="permalink" href="#presentation-lug-universal-package-formats"
          aria-label="Permalink to Universal Package Formats"></a>
      </h3>
      <span>January 2018</span>
      <p>
        <a href="https://github.com/sumnerevans/lug-universal-packages" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/lug-universal-packages/master/universal-packages.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a href="https://github.com/robozman" target="_blank">Robby Zampino</a>.
        We covered the background and history of packages and package formats, and some of the new
        <i>universal package formats</i>: AppImage, Snaps, and Flatpak.
      </p>
    </div>
  </details>

  <details id="presentation-lug-filesystems" class="portfolio-item no-logo">
    <summary>
      <h3>
        Filesystems
        <a class="permalink" href="#presentation-lug-filesystems"
          aria-label="Permalink to Filesystems"></a>
      </h3>
      <span>November 2017</span>
      <p>
        <a href="https://github.com/sumnerevans/lug-filesystems" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/lug-filesystems/master/filesystems.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>.
        We covered the background and history of filesystems and some current filesystems used in
        Linux, Windows, and macOS. We also covered some more fringe filesystems like Btrfs and ZFS and
        network filesystems such as Samba and sshfs as well as virtual filesystems such as
        <code>/proc</code>.
      </p>
    </div>
  </details>

  <details id="presentation-lug-ssh" class="portfolio-item no-logo">
    <summary>
      <h3>
        SSH
        <a class="permalink" href="#presentation-lug-ssh"
          aria-label="Permalink to SSH"></a>
      </h3>
      <span>February 2017</span>
      <p>
        <a href="https://gitlab.com/sumner/lug-ssh" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/lug-ssh/master/ssh.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group. I discussed what SSH is and its
        applications and then demonstrated how to configure it for easier login and management. Then I
        briefly talked about how to set up SSH on your own server.
      </p>
    </div>
  </details>

  <details id="presentation-lug-javascript" class="portfolio-item no-logo">
    <summary>
      <h3>
        JavaScript Crash Course
        <a class="permalink" href="#presentation-lug-javascript"
          aria-label="Permalink to JavaScript Crash Course"></a>
      </h3>
      <span>November 2016</span>
      <p>
        <a href="https://github.com/sumnerevans/lug-js-crash-course" target="_blank">
           GitHub</a>
        | <a href="https://raw.githubusercontent.com/sumnerevans/lug-js-crash-course/master/js-crash-course.pdf" target="_blank">
           PDF</a>
      </p>
    </summary>
    <div>
      <p>
        I gave this presentation at the Mines Linux Users Group with
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>.
        We covered the history of JavaScript, gave an overview of the language constructs, and
        discussed many of the possible pitfalls along the way. We also talked about the DOM and HTML5
        Canvas manipulation.
      </p>
    </div>
  </details>

  <details id="presentation-dreams-of-flight" class="portfolio-item no-logo">
    <summary>
      <h3>
        Dreams of Flight
        <a class="permalink" href="#presentation-dreams-of-flight"
          aria-label="Permalink to Dreams of Flight"></a>
      </h3>
      <span>May 2014</span>
      <p>
        <a href="https://www.youtube.com/watch/yRGqNewEeoQ" target="_blank">
           YouTube Recording</a>
        | <a href="https://docs.google.com/presentation/d/1V-kn9LDBrkZD80j79tfw0YUd_C0MQUEGBlcY7XV0A2A" target="_blank">
           Slides</a>
      </p>
    </summary>
    <div>
      <p>
        I presented my creative writing piece about Orville and Wilbur Wright at the 2014
        <em>CLARO</em> academic conference. I had written this piece for an assignment called <em>A
        Picture is Worth a Thousand Words</em>. We were tasked with writing an approximately 1000 word
        narrative from the perspective of a person in a significant photo from the 20<sup>th</sup>
        Century.
      </p>
      <details class="youtube-expander" open>
        <summary> Sumner Evans Zac Champion</summary>
        [Watch on YouTube](https://www.youtube.com/watch?v=yRGqNewEeoQ)

      </details>
    </div>
  </details>
</details>

## Projects

<details id="project-webfortune" class="portfolio-item no-logo">
  <summary>
    <h3>
      Web Fortune
      <a class="permalink" href="#project-webfortune"
        aria-label="Permalink to Web Fortune"></a>
    </h3>
    <span>November 2023 - Present</span>
    <p>
      <a href="https://github.com/sumnerevans/webfortune" target="_blank">
         GitHub</a>
      | <a href="https://fortune.sumnerevans.com" target="_blank">
         Live Website</a>
      | AGPLv3+
    </p>
  </summary>
  <div>
    <p>
      A simple website that shows a random quote from a quotesfile. The site is
      built with Go, Templ, and HTMX.
    </p>
  </div>
</details>

<details id="project-mineshspc.com" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/hspc-logo.png" alt="Mines HSPC Logo" class="with-bg">
    </div>
    <h3>
      Mines HSPC Website
      <a class="permalink" href="#project-mineshspc.com"
        aria-label="Permalink to Mines HSPC Website"></a>
    </h3>
    <span>August 2021 - Present</span>
    <p>
      <a href="https://github.com/ColoradoSchoolOfMines/mineshspc.com" target="_blank">
         GitHub</a>
      | <a href="https://mineshspc.com" target="_blank">
         Live Website</a>
      | AGPLv3+
    </p>
  </summary>
  <div>
    <p>
      The Mines HSPC website handles registration for the annual CS@Mines High School Programming
      Competition. It allows teachers to register teams and manages all of the necessary paperwork
      for students to be able to participate in the event.
    </p>
    <p>
      The website uses
      <a href="https://en.wikipedia.org/wiki/Passwordless_authentication" target="_blank">passwordless authentication</a>
      and also uses email to verify student emails and send parents the forms they need to sign.
    </p>
    <p>
      The Mines HSPC website is developed on
      <a target="_blank" href="https://github.com/ColoradoSchoolOfMines/mineshspc.com">GitHub</a>
      and deployed on infrastructure provided by <a href="https://nevarro.space" target="_blank">Nevarro LLC</a>.
    </p>
  </div>
</details>

<details id="project-tracktime" class="portfolio-item no-logo">
  <summary>
    <h3>
      Tracktime
      <a class="permalink" href="#project-tracktime"
        aria-label="Permalink to Tracktime"></a>
    </h3>
    <span>June 2018 - Present</span>
    <p>
      <a href="https://github.com/sumnerevans/tracktime" target="_blank">
         GitHub</a>
      | GPLv3+
    </p>
  </summary>
  <div>

Tracktime is a filesystem-backed time tracking solution with a command line
interface. It uses a sane directory structure to organise CSV files that store
time tracking data for each day.

Tracktime allows you to start, stop, resume, and list time entries for any day.
You can also generate reports for arbitrary date ranges in terminal table,
Markdown, HTML, Typst, or PDF formats (optionally filtered by customer or
project). Tracktime syncs task metadata (titles and links) from GitHub, GitLab,
Linear, and Sourcehut and displays clickable hyperlinks in the terminal.

Tracktime is written in **Go**, and can be installed via

```bash
go install github.com/sumnerevans/tracktime/cmd/tt@latest
```

or as a [Nix Flake](https://github.com/sumnerevans/tracktime/blob/master/flake.nix).

  </div>
</details>

<details id="project-offlinemsmtp" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/offlinemsmtp-logo.png" alt="offlinemsmtp Logo" class="with-bg">
    </div>
    <h3>
      offlinemsmtp
      <a class="permalink" href="#project-offlinemsmtp"
        aria-label="Permalink to offlinemsmtp"></a>
    </h3>
    <span>May 2018 - Present</span>
    <p>
      <a href="https://github.com/sumnerevans/offlinemsmtp" target="_blank">
         GitHub</a>
      | <a href="https://sumnerevans.com/posts/projects/offlinemsmtp-v1/">
         Blog Post</a>
      | MIT
    </p>
  </summary>
  <div>

Read my blog post announcing
[offlinemsmtp v1](https://sumnerevans.com/posts/projects/offlinemsmtp-v1/) or my
blog post
[introducing offlinemsmtp for the first time](https://sumnerevans.com/posts/projects/introducing-offlinemsmtp/).

`offlinemsmtp` allows you to use the `msmtp` SMTP email sending program offline. While
offline, it enqueues emails to be sent once an internet connection is established. While
online, it sends the emails immediately.

`offlinemsmtp` is written in **Go**, and can be installed via:

```bash
go install github.com/sumnerevans/offlinemsmtp/cmd/offlinemsmtp@latest
```

or as a [Nix Flake](https://github.com/sumnerevans/offlinemsmtp/blob/master/flake.nix).

  </div>
</details>

<details id="project-nix-home-manager" class="portfolio-item no-logo">
  <summary>
    <h3>
      Nix Home Manager
      <a class="permalink" href="#project-nix-home-manager"
        aria-label="Permalink to Nix Home Manager"></a>
    </h3>
    <span>April 2021 - May 2025</span>
    <p>
      <a href="https://github.com/nix-community/home-manager" target="_blank">
         GitHub</a>
      | MIT | Maintainer
    </p>
  </summary>
  <div>
    <p>
      Nix Home Manager is a project that provides a system for declaratively managing a user
      environment using the functional <a href="https://nixos.org/nix/" target="_blank">Nix</a> package manager
      together with the Nix libraries found in <a href="https://nixos.org/nixpkgs/" target="_blank">Nixpkgs</a>.
    </p>
    <p>
      I was a maintainer of the Nix Home Manager project with write access to the repository. I
      reviewed and merged contributions to the Home Manager project.
    </p>
  </div>
</details>

<details id="project-sublime-music" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/sublime-music-logo.png" alt="Sublime Music Logo">
    </div>
    <h3>
      Sublime Music
      <a class="permalink" href="#project-sublime-music"
        aria-label="Permalink to Sublime Music"></a>
    </h3>
    <span>November 2018 - December 2024</span>
    <p>
      <a href="https://github.com/sublime-music/sublime-music" target="_blank">
         GitHub</a>
      | <a href="https://sublimemusic.app" target="_blank">
         Website</a>
      | GPLv3+
    </p>
  </summary>
  <div>
    <p>
      Sublime Music is a native, GTK3
      <a target="_blank" href="http://www.subsonic.org/pages/index.jsp">Subsonic</a>,
      <a target="_blank" href="https://airsonic.github.io/">Airsonic</a>,
      <a target="_blank" href="https://gitlab.com/robozman/revel">Revel</a>,
      <a target="_blank" href="https://github.com/sentriz/gonic">Gonic</a>,
      <a target="_blank" href="https://www.navidrome.org/">Navidrome</a>,
      client for the Linux Desktop that is written in <b>Python</b>. Sublime Music allows users to
      connect to multiple Subsonic API-compliant servers, and browse and play music from those
      servers.
    </p>
    <p>
      Other features include being able to play music through Chromecast devices on the same LAN;
      <i>Offline Mode</i> and the ability to cache songs for offline listening; a DBus MPRIS
      interface integration for controlling Sublime Music via <code>playerctl</code>,
      <code>i3status-rust</code>, KDE Connect, and other DBus MPRIS clients; a sophisticated play
      queue; playlist management; and more.
    </p>
    <p>
      I began this project after migrating to Airsonic for music hosting because I was dissatisfied
      with the existing Airsonic clients on Linux.
    </p>
    <p>
      Sublime Music is developed on
      <a target="_blank" href="https://github.com/sublime-music/sublime-music">GitHub</a>
      and is available via the
      <a target="_blank" href="https://aur.archlinux.org/packages/sublime-music/">AUR</a>,
      <a target="_blank" href="https://search.nixos.org/packages?show=sublime-music&query=sublime-music&channel=20.09">NixOS 20.09</a>,
      <a target="_blank" href="https://packages.debian.org/bullseye/sublime-music">Debian Testing</a>,
      and
      <a target="_blank" href="https://pypi.org/project/sublime-music/">PyPi</a>.
    </p>
  </div>
</details>

<details id="project-visplay" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/visplay-logo.png" alt="Visplay Logo">
    </div>
    <h3>
      Visplay
      <a class="permalink" href="#project-visplay"
        aria-label="Permalink to Visplay"></a>
    </h3>
    <span>February 2018 - May 2020</span>
    <p>
      <a href="https://gitlab.com/ColoradoSchoolOfMines/visplay" target="_blank">
         GitLab</a>
      | GPLv3+
    </p>
  </summary>
  <div>
    <p>
      Visplay is a Mines ACM project. It's goal is to create a digital signage system with a
      dynamic, hierarchical configuration system which can be used in a wide variety of hardware and
      infrastructure configurations.
    </p>
    <p>
      I worked on the initial design of the overall architecture of the project. I also contributed
      in a project management role. I worked on the Python components of the project which consume
      the configuration files and generate playlists. I also led development of the web
      configuration frontend. Later, I acted in an advisory role as an industry project mentor.
    </p>
  </div>
</details>

<details id="project-mlocate" class="portfolio-item">
  <summary>
    <div class="company-logo">
      <img src="./images/mlocate-logo.png" alt="MLocate Logo" class="with-bg">
    </div>
    <h3>
      MLocate
      <a class="permalink" href="#project-mlocate"
        aria-label="Permalink to MLocate"></a>
    </h3>
    <span>February 2019</span>
    <p>
       Second Place
      | <a href="https://gitlab.com/ColoradoSchoolOfMines/mlocate" target="_blank">
         GitLab</a>
      | AGPLv3+
    </p>
  </summary>
  <div>
    <p>
      This project won  <em>Second Place</em> at
      <a href="https://hackcu.org/" target="_blank">HackCU V</a>.
    </p>
    <p>
      Read my blog post about this hackathon:
      <a href="https://sumnerevans.com/posts/hackathons/hackcu-v/">HackCU V</a>.
    </p>
    <p>
      MLocate is a comprehensive system for tracking and locating devices within an indoor space
      just using Wi-Fi ping signals. Using three specially configured Wi-Fi access points, we were
      able to capture signal strength from every device in the room by MAC address. Then, applying
      Radio Signal Strength Indication (RSSI) models, we were able to derive distance from signal
      strength which allowed us to use standard triangulation algorithms for determining the
      location of all of every device in the room.
    </p>
    <p>
      I worked on the triangulation logic for pinpointing device locations given distances
      calculated from signal strength. I also built the web frontend for displaying device
      locations.
    </p>
    <p>
      MLocate was a hackathon project by
      <a href="https://www.bencarlson.dev/" target="_blank">Ben Perkins</a>,
      <a href="https://gitlab.com/Jnunez101" target="_blank">Jesus Nuñez</a>,
      <a href="https://gitlab.com/nickjar99" target="_blank">Nick Jarmusz</a>,
      (all freshmen) and myself. We developed it during a 24 hour period at the
      <a href="https://hackcu.org/" target="_blank">HackCU</a> hackathon.
    </p>
  </div>
</details>

<details id="project-hypar-map" class="portfolio-item" open>
  <summary>
    <div class="company-logo">
      <img src="./images/hypar-map-logo.png" alt="HypAR Map Logo" class="with-bg">
    </div>
    <h3>
      HypAR Map
      <a class="permalink" href="#project-hypar-map"
        aria-label="Permalink to HypAR Map"></a>
    </h3>
    <span>November 2018</span>
    <p>
       First Place
      | <a href="https://www.youtube.com/watch/qYet1ka1J3I" target="_blank">
         Demo</a>
      | <a href="https://gitlab.com/ColoradoSchoolOfMines/facebook-hackathon" target="_blank">
         GitLab</a>
      | AGPLv3+
    </p>
  </summary>
  <div>
    <p>
      This project won  <em>First Place</em> at the Facebook Global
      Hackathon Finals at Facebook HQ.
    </p>
    <p>
      Read my blog post about this hackathon:
      <a href="https://sumnerevans.com/posts/hackathons/2018-11-16-facebook-hackathon-the-competition/">
        Facebook Global Hackathon Finals - The Competition</a>.
    </p>
    <p>
      HypAR Map helps users navigate around unfamiliar locations by overlaying a map of the area
      using augmented reality. The map can come from any photo (for example, a fire escape plan) and
      is calibrated using an intuitive user interface. HypAR Map then uses simultaneous location and
      mapping to find and display the location of the user in the map in real-time.
    </p>
    <p>
      I worked on the image import functionality and worked with all of the members of the team to
      ensure that everything connected properly.
    </p>
    <p>
      HypAR Map was a hackathon project by
      <a href="https://samsartor.com" target="_blank">Sam Sartor</a>,
      <a href="https://github.com/jhgarner" target="_blank">Jack Garner</a>,
      <a href="https://www.darling.dev/" target="_blank">Fisher Darling</a>,
      and myself. We developed it during a 24 hour period at the Facebook Global Hackathon
      Finals at Facebook HQ in Menlo Park, CA.
    </p>
    <details class="youtube-expander" open>
      <summary> CS@Mines Demo at Facebook Global Hackathon Finals</summary>
      [Watch on YouTube](https://www.youtube.com/watch?v=qYet1ka1J3I)

    </details>
  </div>
</details>

<details class="portfolio-more-items">
  <summary><div>+9 More</div></summary>

  <details id="project-datanium" class="portfolio-item no-logo">
    <summary>
      <h3>
        Datanium
        <a class="permalink" href="#project-datanium"
          aria-label="Permalink to Datanium"></a>
      </h3>
      <span>October 2018</span>
      <p>
         Facebook Best Social Good Hack + 1 more
        | <a href="https://gitlab.com/ColoradoSchoolOfMines/datanium" target="_blank">
           GitLab</a>
        | GPLv3
      </p>
    </summary>
    <div>
      <p>
        This project won   <em>Best Use of GCP</em> and the
         <em>Facebook Best Social Good Hack</em> award at
        <a target="_blank" href="https://mhacks.org">MHacks</a>.
      </p>
      <p>
        Datanium is a large-scale network of Raspberry Pis which allow for human-powered transfer of
        data between places with internet access and places which do not. In the Datanium ecosystem,
        there are two different types of users: consumers and couriers. Consumers request data, and
        Datanium ensures that couriers move the requested data to the Datanium Node closest to the
        consuming user. Datanium does this coordination using only SMS.
      </p>
      <p>
        I worked on the web frontend for requesting and uploading data to the Datanium nodes.
      </p>
      <p>
        Datanium was a hackathon project by
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>,
        <a href="https://gitlab.com/robozman" target="_blank">Robby Zampino</a>,
        <a href="https://www.darling.dev/" target="_blank">Fisher Darling</a>,
        and myself. We developed it during a 36 hour period at the
        <a href="https://mhacks.org/" target="_blank">MHacks 2018</a> hackathon.
      </p>
    </div>
  </details>

  <details id="project-wii-track" class="portfolio-item no-logo">
    <summary>
      <h3>
        Wii-Track
        <a class="permalink" href="#project-wii-track"
          aria-label="Permalink to Wii-Track"></a>
      </h3>
      <span>February 2018</span>
      <p>
         Judges Favorite + 2 more
        | <a href="https://github.com/ColoradoSchoolOfMines/wii-track" target="_blank">
           GitHub</a>
        | GPLv3
      </p>
    </summary>
    <div>
      <p>
        This project won
         <em>Judges Favorite</em>,
         <em>Best Use of AWS</em>, and the
         <em>Dish Network</em> sponsor challenge at
        <a href="https://hackcu.org/" target="_blank">HackCU</a>.
      </p>
      <p>
        Wii-Track is a distributed inventory tracking system. It utilizes a WiiFit, Rasberry Pi,
        and Arduino to gather information about packages. All heavy computation is done on AWS
        Lambda and it uses the DynamoDB NoSQL database as a backend.
      </p>
      <p>
        I worked on setting up the DynamoDB database and implemented a AWS Lambda function to
        identify packages by weight.
      </p>
      <p>
        Wii-Track was a hackathon project by
        <a href="https://david.florness.com/" target="_blank">David Florness</a>,
        <a href="https://github.com/jhgarner" target="_blank">Jack Garner</a>,
        <a href="https://gitlab.com/robozman" target="_blank">Robby Zampino</a>,
        and myself. We developed it during a 24 hour period at the
        <a href="https://hackcu.org/" target="_blank">HackCU</a> hackathon.
      </p>
    </div>
  </details>

  <details id="project-blockmrs" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/blockmrs-logo.png" alt="BlockMRS Logo" class="with-bg">
      </div>
      <h3>
        BlockMRS
        <a class="permalink" href="#project-blockmrs"
          aria-label="Permalink to BlockMRS"></a>
      </h3>
      <span>January 2018</span>
      <p>
        <a href="https://github.com/ColoradoSchoolOfMines/blockmrs" target="_blank">
           GitHub</a>
        | GPLv3
      </p>
    </summary>
    <div>
      <p>
        BlockMRS is a privacy concious, decentralized, blockchain-backed, medical record system for
        the 21st Century. It stores patient records in IPFS using asymmetric encryption giving
        patients control over their health data.
      </p>
      <p>
        I led the development of the protocol specification for this decentralized system. I also
        built the system for storing encrypted medical records in IPFS.
      </p>
      <p>
        BlockMRS was a hackathon project by
        <a href="https://david.florness.com/" target="_blank">David Florness</a>,
        <a href="http://jack.rosenth.al" target="_blank">Jack Rosenthal</a>,
        <a href="https://gitlab.com/robozman" target="_blank">Robby Zampino</a>,
        and myself. We developed it during a 24 hour period at the
        <a href="https://minnehack.io" target="_blank">MinneHack 2018</a> hackathon.
      </p>
    </div>
  </details>

  <details id="project-vr-final" class="portfolio-item no-logo">
    <summary>
      <h3>
        Virtual Reality Final Project
        <a class="permalink" href="#project-vr-final"
          aria-label="Permalink to Virtual Reality Final Project"></a>
      </h3>
      <span>August 2017 - December 2017</span>
      <p>
        <a href="https://github.com/CSM-Dream-Team/final-project" target="_blank">
           GitHub</a>
        | GPLv3
      </p>
    </summary>
    <div>
      <p>
        <a target="_blank" href="https://github.com/CSM-Dream-Team/final-project/blob/master/doc/report/final-report.pdf">
          Read our final report on GitHub</a>.
      </p>
      <p>
        This was the final project from my independent study in Virtual Reality under the supervision
        of Dr. Paone. Our team consisted of
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>,
        <a href="https://github.com/BloodRaine" target="_blank">Robbie Merillat</a>,
        and myself.
      </p>
      <p>
        We created our own library called <tt>flight</tt> for developing VR applications which
        implemented a new type of program architecture called Deferred Immediate Mode.
      </p>
    </div>
  </details>

  <details id="project-parqyng" class="portfolio-item">
    <summary>
      <div class="company-logo">
        <img src="./images/parqyng-lots-logo.png" alt="Parqyng Lots Logo" class="with-bg">
      </div>
      <h3>
        Parqyng
        <a class="permalink" href="#project-parqyng"
          aria-label="Permalink to Parqyng"></a>
      </h3>
      <span>October 2017</span>
      <p>
         Grand Prize
        | <a href="https://www.youtube.com/watch/qi9YZLhS0gk" target="_blank">
           Demo</a>
        | <a href="https://github.com/ColoradoSchoolOfMines/parqyng-lots" target="_blank">
           GitHub</a>
        | MIT
      </p>
    </summary>
    <div>
      <p>
        This project won the  <em>Grand Prize</em> at the 2017 Xilinx
        PYNQ Hackathon.
      </p>
      <p>
        Parqyng Lots tracks the number of cars in an arbitrary number of parking lots with an
        arbitrary number of entrances to create an up-to-date picture of the parking situation.
      </p>
      <p>
        I built the web frontend which provided a view of the parking lots' status.
      </p>
      <p>
        Our team consisted of
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>,
        <a href="http://jack.rosenth.al" target="_blank">Jack Rosenthal</a>,
        <a href="https://github.com/daichij" target="_blank">Daichi Jameson</a>,
        and myself. I worked on the web interface and also helped implement the tracking system
        using the sensors provided by Xilinx.
      </p>
      <details class="youtube-expander" open>
        <summary>
           Parqyng: Never Look for a Parking Spot Again
        </summary>
        [Watch on YouTube](https://www.youtube.com/watch?v=qi9YZLhS0gk)

      </details>
    </div>
  </details>

  <details id="project-wireless-debugging" class="portfolio-item no-logo">
    <summary>
      <h3>
        Wireless Debugging
        <a class="permalink" href="#project-wireless-debugging"
          aria-label="Permalink to Wireless Debugging"></a>
      </h3>
      <span>May 2017 - June 2017</span>
      <p>
        <a href="https://github.com/sumnerevans/wireless-debugging" target="_blank">
           GitHub</a>
        | Apache 2.0
      </p>
    </summary>
    <div>
      <p>
        Wireless Debugging is a mobile SDK and sample web server for streaming mobile app logs to a
        web UI console. I worked on this project on a team of five CS students during Mines Computer
        Science Field Session. This project was done under supervision of Google.
      </p>
      <p>
        We designed and built a mobile API, log parsing library, datastore interface, user management
        interface, and web app. I was the primary writer of the API Specification for communicating
        between each component. I also built the log parsing library and the mobile API implementation
        for iOS. I was involved in the development of the other components as well.
      </p>
    </div>
  </details>

  <details id="project-snowflakes" class="portfolio-item no-logo">
    <summary>
      <h3>
        Snowflakes
        <a class="permalink" href="#project-snowflakes"
          aria-label="Permalink to Snowflakes"></a>
      </h3>
      <span>November 2016</span>
      <p>
        <a href="https://github.com/sumnerevans/snowflakes" target="_blank">
           GitHub</a>
        | <a class="live-demo" href="https://sumnerevans.github.io/snowflakes/" target="_blank">Demo</a>
        | MIT
      </p>
    </summary>
    <div>
      <p>
        An interactive "screensaver" built for the Mines ACM JavaScript Hackathon.
      </p>
      <p>
        I built Snowflakes with <strong>bungle.js</strong>, a team consisting of
        <a href="https://samsartor.com" target="_blank">Sam Sartor</a>,
        <a href="http://jack.rosenth.al" target="_blank">Jack Rosenthal</a>,
        and myself. We used EaselJS to manipulate a fullscreen canvas to render the interactive
        elements.
      </p>
    </div>
  </details>

  <details id="project-chesspp" class="portfolio-item no-logo">
    <summary>
      <h3>
        Chess++
        <a class="permalink" href="#project-chesspp"
          aria-label="Permalink to Chess++"></a>
      </h3>
      <span>August 2016</span>
      <p>
        <a href="https://github.com/sumnerevans/chessplusplus" target="_blank">
           GitHub</a>
        | MIT
      </p>
    </summary>
    <div>
      <p>
        Chess++ was my final project for CSCI 261 at Colorado School of Mines during the Summer II
        Semester of 2016.
      </p>
      <p>
        Chess++ allows two players to play a standard Chess game against one another on the computer.
      </p>
    </div>
  </details>

  <details id="project-quadratic-solver" class="portfolio-item no-logo">
    <summary>
      <h3>
        Quadratic Solver
        <a class="permalink" href="#project-quadratic-solver"
          aria-label="Permalink to Quadratic Solver"></a>
      </h3>
      <span>July 2013, October 2016</span>
      <p>
        <a href="https://github.com/sumnerevans/quadratic-solver" target="_blank"> GitHub</a>
        | <a class="live-demo" href="https://qs.sumnerevans.com/" target="_blank">Demo</a>
        | MIT
      </p>
    </summary>
    <div>
      <p>
        A quadratic equation which shows the steps required to get an answer.
      </p>
      <p>
        Quadratic Solver uses <a href="https://www.mathjax.org/" target="_blank">MathJax</a> to
        display beautifully formatted solutions to quadratic equations.
      </p>
      <p>
        The first version did not use MathJax and instead printed out the solved equation in a
        <code>textarea</code>.
      </p>
    </div>
  </details>
</details>

## Publications

<details id="publication-dreams-of-flight" class="portfolio-item no-logo">
  <summary>
    <h3>
      Dreams of Flight
      <a class="permalink" href="#publication-dreams-of-flight"
        aria-label="Permalink to Dreams of Flight"></a>
    </h3>
    <span>September 2016</span>
    <p>
      <a href="https://www.rrcc.edu/claro/2013" target="_blank">Journal</a>
      | <a href="./dreams-of-flight.pdf" target="_blank">
         PDF</a>
    </p>
  </summary>
  <div>
    <p>
      I wrote this creative writing piece about Orville and Wilbur Wright and the first flight at
      Kitty Hawk for my Twentieth Century World History class in Fall 2013. I had written this piece
      for an assignment called <em>A Picture is Worth a Thousand Words</em>. We were tasked with
      writing an approximately 1000 word narrative from the perspective of a person in a significant
      photo from the 20<sup>th</sup> Century. Later in 2013 I was published in the
      <a href="https://www.rrcc.edu/claro/2013" target="_blank">2013 edition of <i>CLARO</i></a>,
      Red Rock Community College's Interdisciplinary Scholarly Journal. In May 2014, I
      <a href="#presentation-dreams-of-flight" target="_blank">
        presented at the <em>CLARO</em> academic conference</a>.
    </p>
  </div>
</details>
