Legend
- Blog posts
- Posts not long enough to be a blog post
- The slides for presentations I've given
- How to Fix Build Errors with Chip Tool
If you encounter build errors when compiling chip-tool, try these step.
- Reducing Repetition while Maintaining Type-Saftey
A story about how I used some more obscure TypeScript features in a recent project to maintain a type-safe interface while reducing repetition
- Using the nRF52840 DK
Learnings (and some solutions to blockers I've run into) with the nRF52840 DK and related tools
- So I'm Leaving New York
I really goofed moving to New York City
- Use Soft Resets to Remove Ammends from a Commit
Use git reset --soft to undo amends on a commit.
- Use Interactive Rebases to Append Fixes to Old Commits
Using git’s interactive rebase you can easily go back a few commits to add a correction in the commit it logically belongs to.
- Handle Missing Keys in Python Dictionaries with defaultdict
Use defaultdict when missing values in a dictionary should start with the same default value.
- Manage Modal Visibility with MaterialUI’s ClickAwayListener
In MaterialUI use ClickAwayListener to detect when a user clicks outside of your component.
- Easily Switch Back and Forth Between Branches
You can easily switch back and forth between branches with git checkout -
- Unit Testing in C Simplified with Unity and Ceedling
Unit testing in C can be made a breeze with the Unity testing library and Ceedling as a build system.
- Using ...rest to Remove Properties from an Object
You can use the ...rest syntax to remove specifc objects from an object
- Ignore Vim Files Everywhere With a Global gitignore
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.
- The Year of Progress
Reflections on 2020 and thoughts on my yearly theme going into 2021.
- Sixty Prod Pushes in a Month
In my most recent engagement, we made roughly sixty production deployments in a month. In this blog I walk through what made us successful.
- Flexibility Through Interfaces
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.
- Refactoring to Go Faster Later
Refactoring might seem to be time spent not delivering features, but it actually goes a long way towards making delivering features faster.
- Why Everyone Should Care About Crappy Code
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.
- guet Refactor
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.
- How Code Gets to Production
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.
- Like 4 or 5 things that will make your slides somewhat better
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.
- How Code Gets to Production
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.
- Making Waves in Computer Science Education
Shippensburg University offers education in Software Engineering.