Adventures in Software Engineering

  • Why we chose static CSS for our React component library

    I’ve been building a headless React component library with my team, and we had to pick a way to style our components. We evaluated several options, including Styled Components, Tailwind, and Vanilla Extract. We ended up going with static CSS, here’s why. CSS-in-JS is slow Our first requirement was that we didn’t want to use…

  • Create a Polymorphic Component with Typescript and React

    A polymorphic component can change into any element based on how you use it. For example, you can create a Box component that will render a div, label, input, button, or any HTML element. This is typically done with an “as” or “is” prop: Why would you want to do this? If you are creating…

  • 2022 Mobile Statistics

    Everyone knows mobile is important, and statistics get thrown around all the time. Many of them are outdated, or not that relevant, so here are a few that are recent and interesting. Stats are taken from statista.com, shopify.com and insiderintelligence.com. According to Baymard, mobile UX is getting better but still not very good.

  • Joining GoDaddy

    In 2013 I had an idea about creating mobile apps for WordPress websites. I approached some partners and we launched AppPresser in early 2014. I have had an incredible time learning and growing as an entrepreneur and developer. 8 years later I am starting a new adventure. I am very excited to announce I have…

  • My First Decentralized App with Ethereum

    I recently went through the Buildspace course tutorial to build a web3 dapp using Ethereum, and it was super fun. I built a smart contract using Solidity and Hardhat, and deployed it to the Rinkeby test network. The project was to “wave” to someone by posting a comment that gets published to the blockchain with…

  • React Native Video Recording, Saving, and Playback

    I’m working on a video app for React Native that records video, saves it, and plays it back. This post is to explain how I did it. Choosing a Video Recording Module I tried a few different options before I settled on one that worked for me. I tried react-native-camera, react-native-camera-kit, and react-native-beautiful-video-recorder. I ended…

  • For loops vs Array methods in Javascript

    When dealing with arrays in Javascript, you frequently need to find an element inside the array and take it out or mutate it. This requires iterating over each item of the array with a for loop or an Array method like Array.find(). You may think these Array methods and for loops are interchangeable, but using…

  • How to Make a WooCommerce App with React and WPGraphQL

    I recently made a simple eCommerce app using React, WPGraphQL, WooGraphQL, and the Ionic Framework. It was a fun learning experience, this is a nice stack to work with. I have worked with WPGraphQL before, but I still have a lot to learn, so in this post I will share what I learned in case…

  • Typescript Basics for Javascript Developers

    “The main benefit of TypeScript is that it can highlight unexpected behavior in your code, lowering the chance of bugs.” – Typescript Documentation Typescript tells your code editor what your code is supposed to look like so that it can warn you of errors as you type. The benefit of this is mostly code hinting…

  • 5 Critical Javascript Methods You Need To Know For React

    While working with React, Vue, Angular, and other frameworks, I find myself writing lots of normal Javascript while working with arrays. Methods like slice(), shift(), find(), filter(), and map() are all over my React app code, but I’ve never prioritized digging into them. I went way too long copy/pasting someone else’s code from StackOverflow, and…