Using AWS Lambda to trigger long running jobs.
Reflections on the role and importance of my grandfathers.
I can still hear the rumble of the tires running over the brick roads. That’s how we knew we were close. It’s hard to gauge time after 10 hours in a car. Once we felt that rumble, no book could hold our attention, no Pokemon was worth catching, and no movie was more engaging than the scene outside our windows. The anticipation built in the car. Soon we would crest the hill and make our final…Keep Reading#life#family
DynamoDB is a fully managed NoSQL document database provided by AWS
DynamoDB is a fully managed NoSQL document database provided by AWS
Most things I've designed looked like I was an engineer. But over time things have improved!
In the last few months, I have spent some time off and on redesigning my website. It originally started as an exercise to practice doing some design work in Figma, and it quickly turned into a full-blown re-imagining of my website. As any great engineer knows, you haven’t built it right until you have rewritten it 3 or 4 times. And while I did not replace the underlying engine of my website this…Keep Reading#design#gatsby#figma#engineering
Take some time to be reflective, see what life has taught you.
Today is my last day at Instructure. Over the last week, I have reflected many times on what I have learned through the last 5 years. The company has done a lot to enable me and my family to accomplish many goals. We were able to move back to Vermont to be near my wife’s family, we were able to get debt free besides our mortgage, I gained invaluable experience working on many different projects…Keep Reading#career#software-development#instructure#canvas#learning-management#education#learning
CSS in JS is all the rage, but how do you target nested components?
Automatically generate component unique test IDs for React
Who doesn't want to play Pacman and Galaga?
I’ve wanted to build an arcade machine for a long time. I used to go to an arcade in my mall where I grew up until it closed. Then as an adult, the only arcades worth going to were the nickel arcades in order to save your wallet. So I decided to build my own arcade machine using a Raspberry Pi. I did this project back in 2017 when my wife and kids were out of town. I don’t have many pictures, but…Keep Reading#arcade#pacman#diy#maker#raspberry-pi#emulators#galaga#electronics
Here are the 5 things from WWDC that impressed me the most
This last week was WWDC. A conference for software developers building on the range of Apple’s platforms. I have been watching WWDC for several years now, and this one did not disappoint. Here are my 5 favorite announcements from WWDC 2019 SwiftUI Sign In With Apple ARKit People Occlusion ARKit Motion Capture Catalyst SwiftUI The first has to be SwiftUI. Coming from a web background, doing React…Keep Reading#swift#apple#wwdc#swift-ui#ios#iphone#mac#arkit
A build time draft state solution for markdown in gatsby.
Doing what an engineer does best, rewriting.
My personal website originally started as a blog built with ghost, the blogging platform. It was simple, easy to use, and had a web-based authoring experience. But I began to feel its limitations in terms of customizing my themes as well as adding other sections, such as projects, or books I’ve read. I switched to using jekyll and did a fresh rewrite. I chose a theme and customized it to work the…Keep Reading#react#gatsby#website
We often lose passion for hobbies and skills we develop. Relighting that passion is important and can be done.
Lately, I’ve struggled with being excited about coding projects and programming in general. I don’t know if I could pinpoint what exactly has made me feel this way. It isn’t burn-out. I’ve rarely been doing any programming outside of work. So far the only identifiable reason I’ve landed on is that I’ve not managed to complete my most recent programming projects because their scope is fairly large…Keep Reading#motivation#projects
Working on my basement led to many experiences that have taught me important lessons
This week was my companies internal engineering conference where employees from engineering, product management, design, and program management all attended to hear our peers give talks about topics ranging from programming paradigms to soft skills such as how to manage all that is required of you during the day. As part of this conference, there was a time period where anyone attending could…Keep Reading#renovation#construction#home#refactoring#building-projects
After a lot of hard work and many long days, it's finally done.
We started this project in June with demolition work on the room. And over 6 months later, it is finally done. There were many long nights and a lot of frustration. But we are very happy with how it turned out. I need to give a big thanks to my dad for helping me with the wainscoting and demolition as well as my brother in law (<- check out his work it’s awesome) for helping me figure out how to…Keep Reading#renovation#construction#home
Ask yourself why you do things.
As the year draws to a close, the progress made toward goals and the accomplishments they have led to, have been on my mind. While setting my end of year goals several months back, I asked myself what I wanted to accomplish, and how to go about doing it. Most of the goals revolved around the skills and habits I’ve needed to work on for a long time but haven’t. By setting definite goals around…Keep Reading#motivation#projects
Sorting multidimensional works with a few caveats
Recently at work, I’ve been doing some work on a project written in Ruby to enable an endpoint to paginate. Something we need for our mobile apps so we can make a list more performant. In the process of making this work, I ran into a problem with trying to sort a multi-dimensional array. Ruby will look at each index in the nested arrays and compare their indexes to determine which array should…Keep Reading#ruby#array#sorting
A built-in desk for our basement living room
We needed to tear out the old closet in our basement living room because it was built improperly and was also aesthetically unpleasing. There were some exposed nails and screws on the inside as well as 2x4s on the outside of the drywall for the baseboard and trim to attach to. After the issues we had with the closet on the second bedroom, I knew this closet was also going to be a problem and…Keep Reading#renovation#construction#home
Some tips for developing a Blender addon
Lately, I’ve gotten into the world of working on python scripts and addons in the open-source 3d software Blender. I’ve been learning 3d animation for a while now but this has been my first attempt at writing any code that worked with Blender. In doing so I came across a few things that cause a little bit of pain at first but figured out ways to relieve the pain. So here are a few tips that I came…Keep Reading#blender#addon#python
Tablets before they were cool
While home on break from college, I decided that I was going to do another electronics project. I started looking around to see what others had done recently and noticed that everyone was making portable versions, but no one was making tablets. Now at this point tablets as we know them weren’t a thing. The only tablets that were around were ones that were really laptops that their screens could…Keep Reading#sega-dreamcast#portable#electronics
What is CodePush and is it worth integrating into your React Native App
Last week at work was hack week, so I took the time to look into getting CodePush into our React Native app. It was pretty simple to get set up but after some discussion with the team, we started to question whether or not CodePush was worth the added complexity. So what is CodePush? CodePush is a service provided by Microsoft for Cordova and React Native apps, that allows you to push out new…Keep Reading#react-native#react#codepush#git-workflow#app-release
Get a local module working with a React Native app for quick development
After building an app using React Native and using modules from NPM, you may decide that a component in your app could be used by others and you want to share it to NPM. While the typical “How to deploy a JS module to NPM” will get you most of the way there, React Native has a few caveats that need to be addressed. Let’s start by finding a component in our app that can be pulled out into it’s own…Keep Reading#react#react-native#npm#module
Next in the basement was the family room
The next room we wanted to tackle was the family room. Along with the usual poor texture, there was also a closet that was built very poorly, with 2x4s exposed on the outside of the drywall, as well as several areas where the ceiling was dropped to accommodate ductwork, lights, and pipes. We wanted to try and get rid of these weird dropped ceiling areas and find a way to cover whatever was…Keep Reading#renovation#construction#home
How to get the dimensions of a view in React Native
A common pattern in React Native is changing the layout/sizes of views based on the size of its parent view. We can use React Native’s implementation of flexbox to get us 90% of the way there. But there are just some layouts that flexbox just has a hard time with. In the app I am building at work, there are two common instances where this is the case. When an absolutely positioned view needs to…Keep Reading#react#react-native#module
What's better than taking your Dreamcast on the go?
In high school, I found a website that really piqued my interest, benheck.com. Ben Heck is a hardware hacker who has done many projects involving video game consoles. I had been interested in modding my Xbox and had previously thought about how cool it would be to take apart a game console mount all the parts on a wall. So when I found Ben Heck I was hooked immediately. I never had the money or…Keep Reading#sega-dreamcast#portable#electronics
My thoughts on the latest game in the long running DOOM universe
I must admit, besides this installment, the only other DOOM game I have played was the one released for the original XBOX. Despite that, I found this latest DOOM to far exceed my expectations. I have primarily been gaming on my PC lately, and when the game first started, I was already impressed. My PC has an i7-6700k with a GTX-1080 GPU. I run a DELL 1440p 144hz monitor. As I do with most games…Keep Reading#video-games#pc-gaming
Rendering large lists can quickly become very slow. Insert FlatList.
Coming from a primarily web front end and backend developer, I have learned to take some things for granted. On today’s modern hardware, I don’t spend a ton of time thinking about how something might result in slow render performance, since that usually isn’t an issue. But now that I’ve been doing a lot of mobile development with React Native, some patterns have come around to bite me primarily…Keep Reading#react#react-native#scrollview#flatlist#performance#optimization
The second bedroom in our basement I renovated
Of all of the basement, this room had the worst texture on the walls. It looked like someone rolled mud onto the wall using a paint roller and then just left it. It was spiky in places and looked like choppy seas in others. I had to jump on this bedroom sooner than I had anticipated because we had some water damage happen in this room. You can also see in that picture just how intense the texture…Keep Reading#renovation#construction#home
Setting up a custom variable on your posts that makes it really easy to aggregate posts on a page
Jekyll makes it super easy to create pages and posts and then loop over them to render lists of them. There are a few commands that you can utilize in Liquid to narrow down that list for only rendering a subset of posts or pages. Those are and statements. The statement lets you create new variables that can be referenced on that page as well as any include that happens on that page. And the…Keep Reading#jekyll#ruby
Need to assign a new variable with a subset of an array. Insert slicing.
While liquid has a way to ensure that a for loop will exit once it hits a certain iteration. You may need to slice an array of items outside of a for loop. After some time on Google, I couldn’t find any straight forward way of getting a subset of an array in liquid. I came across a site with some unofficial documentation about strings in liquid. It said it was possible to slice strings. Knowing…Keep Reading#liquid#ruby#jekyll
The first bedroom in our basement I renovated
This actually took place last year but I’m just now getting around to writing about it. When we bought our home, we recognized that the basement would need some work done on it to fix some mistakes as well as poorly done work. The biggest problem was the walls. The texture on the walls varied from bad to, “did they just roll mud on the wall here?” To give you an idea of what that looked like take…Keep Reading#renovation#construction#home
Ensure async script dependencies are available before use
An explanation of a memoization implementation in swift