Portrait of me in my natural habitat
  1. How to Fix Build Errors with Chip Tool

    2023-07-28

    If you encounter build errors when compiling chip-tool, try these step.

    factoid
  2. Reducing Repetition while Maintaining Type-Saftey

    2023-07-24

    A story about how I used some more obscure TypeScript features in a recent project to maintain a type-safe interface while reducing repetition

    blog
  3. Using the nRF52840 DK

    2023-07-12

    Learnings (and some solutions to blockers I've run into) with the nRF52840 DK and related tools

    blog
  4. So I'm Leaving New York

    2021-09-26

    I really goofed moving to New York City

    blog
  5. Use Soft Resets to Remove Ammends from a Commit

    2021-04-13

    Use git reset --soft to undo amends on a commit.

    factoid
  6. Use Interactive Rebases to Append Fixes to Old Commits

    2021-03-30

    Using git’s interactive rebase you can easily go back a few commits to add a correction in the commit it logically belongs to.

    factoid
  7. Handle Missing Keys in Python Dictionaries with defaultdict

    2021-03-16

    Use defaultdict when missing values in a dictionary should start with the same default value.

    factoid
  8. Manage Modal Visibility with MaterialUI’s ClickAwayListener

    2021-03-02

    In MaterialUI use ClickAwayListener to detect when a user clicks outside of your component.

    factoid
  9. Easily Switch Back and Forth Between Branches

    2021-02-16

    You can easily switch back and forth between branches with git checkout -

    factoid
  10. Unit Testing in C Simplified with Unity and Ceedling

    2021-02-16

    Unit testing in C can be made a breeze with the Unity testing library and Ceedling as a build system.

    factoid
  11. Using ...rest to Remove Properties from an Object

    2021-02-02

    You can use the ...rest syntax to remove specifc objects from an object

    factoid
  12. Ignore Vim Files Everywhere With a Global gitignore

    2021-01-12

    Apparently you can have a global gitignore file, so you don't have to put your vim ignore settings in every project, and this is how you do it.

    factoid
  13. The Year of Progress

    2021-01-03

    Reflections on 2020 and thoughts on my yearly theme going into 2021.

    blog
  14. Sixty Prod Pushes in a Month

    2020-06-01

    In my most recent engagement, we made roughly sixty production deployments in a month. In this blog I walk through what made us successful.

    blog
  15. Flexibility Through Interfaces

    2020-04-22

    A well defined interface can greatly increase the flexibility of a codebase. Walk with me through a refactor of a system to program to an interface instead of implementations.

    slides
  16. Refactoring to Go Faster Later

    2020-02-27

    Refactoring might seem to be time spent not delivering features, but it actually goes a long way towards making delivering features faster.

    blog
  17. Why Everyone Should Care About Crappy Code

    2020-02-25

    When software goes awry, it is often seen as a fault of engineers. However, people often fail to consider how the system around the engineers failed.

    slides
  18. guet Refactor

    2020-02-11

    guet is a side project I maintain that helps with contributor tracking when pair programming. Recently, I went rough some refactors with it, and I wanted to share it with the engineering team.

    slides
  19. How Code Gets to Production

    2020-02-07

    In a cross-functional team, understanding what the rest of your team does can go a long way towards cohesion as a team. However, understanding what an engineer does can get lost in the jargon, so join me as I break down the basics of how an engineer goes from user story to production code.

    slides
  20. Like 4 or 5 things that will make your slides somewhat better

    2019-12-17

    Giving a good presentation involves finess, poise, confidence. I can't reach you any of that, but I can give you a couple pointers on how to improve your slides.

    slides
  21. How Code Gets to Production

    2019-11-12

    In a cross-functional team, understanding what the rest of your team does can go a long way towards cohesion as a team. However, understanding what an engineer does can get lost in the jargon, so join me as I break down the basics of how an engineer goes from user story to production code.

    slides
  22. Making Waves in Computer Science Education

    2018-09-12

    Shippensburg University offers education in Software Engineering.

    blog