Software I use, gadgets I love, and other things I recommend.

I get asked a lot about the things I use to build software, stay productive, or buy to fool myself into thinking I’m being productive when I’m really just procrastinating. Here’s a big list of all of my favorite stuff.

Coding Languages

  • Objective-C / Cocoa

    Were I began my journey of object oriented programming. In its hayday, it was pretty useful, but since then has fallen out of the limelight. (4/10 stars)

  • Matlab

    I learned Matlab in college, primarily to satisfy my orbital dynamics course in college. Matlab is a great product for data analysis. My only complaint: it's too darn expensive for personal use! (5/10 stars)

  • Python

    A simple, yet powerful scripting language with the ability to run computing-intensive algorithms efficiently. My choice for manipulating large amounts of data. The number of libraries built with Python is astonishing; I'm convineced nearly anything is possible with Python. (8/10 stars)

  • Swift

    This may be the apple fan-boy in me talking, but this is hands-down my favorite language to code with. Not only is it strongly-typed and object oriented, but it has 'borrowed' the best syntactic bits from all the other languages making it a real joy to use. I'm still on the fence about the latest addition, SwiftUI, which IMHO has a ways to go. (9/10 stars)

  • Javascript

    One of the greatest languages of all times. Learning Javascript is so easy and flexible, its no wonder that its the most widely-used language on the planet. I have unfortunately gotten myself addicted to strongly typed languages, hence this rating: (7/10 stars)

  • Typescript

    I spend the majority of my time coding with Typescript. The flexibility and stability of it is tremendous, especially when using it for cross-platform development. My one small critique is that it has the steepest learning curve of anything I've used. (8/10 stars)

Favorite Libraries/Frameworks

  • React

    Hands-down my favorite library for PWA development. The flexibility and speed it provides make development easy and fast. When used in conjunction with Typescript, debugging is a breeze and unit-testing is nearly non-existent.

  • Angular

    These days, I use Angular more than React due to its collaboration features. While the sheer number of files in an Angular application is somewhat overwhelming, it makes team collaboration much easier.

  • Tailwind CSS

    Tailwind has COMPLETELY improved my speed when it comes to HTML templates. No longer do I have to constantly switch between CSS and TS files. I write nearly the entire PWA using Tailwind in 1/4 the time it took me using .scss.

  • Ionic

    My latest milestone as a developer is learning to develop in a platform agnostic manner. I went between Flutter, React Native, and Ionic for a while, and decided to go all-in on Ionic. I truly enjoy the way the compiled native application feels completely Native when Ionic components are used. That being said, my one complaint (and it may be simply because I haven't figured it out yet) is that I can't style my Ionic components with Tailwind. I have no problem styling web components with Tailwind, but not so with Ionic components.... grrrrrr.

  • Firebase

    There are soooo many back end solutions out there with the big 3 being Azure, AWS, and Google Cloud. Learning back-end development was the hardest thing learn for me. I made a few brief attempts at learning AWS's suite of tools, but ultimately gave up when I discovered Firebase. The off-the-shelf tools provided by Firebase are fantastically powerful and very easy to use. After build a half dozen or so practice apps on Firebase, I have become incredibly comfortable with it and can create a fully-featured app back-end in only an hour or so.

  • Internet Computer Blockchain

    One of my favorite online coding courses was on blockchain development using the Internet Computer blockchain. The IC is essentially a decentralized, very inexpensive, yet powerful CDN. While it is still in it's infancy, I believe the IC is going to revolutionize the internet. Of all the Web3 solutions out there, I am the biggest fan of this one.

Workstation

  • 16” MacBook Pro, M1 Max, 32GB RAM (2021)

    I was using an Intel-based 15” MacBook Pro prior to this and the difference is night and day. I’ve never heard the fans turn on a single time, even under the incredibly heavy loads I put it through with our various launch simulations. #BestLaptopEver

  • Apple Magic Keyboard

    Ok, I may be a bit of an Apple fan here. The ease of use, seemless integration, and amazing user experience apple products provide makes work that much more enjoyable. The Apple Magic Keyboard is no exception.

  • Apple Magic Trackpad

    Something about all the gestures makes me feel like a wizard with special powers. I really like feeling like a wizard with special powers.

Development tools

  • VSCode IDE

    The gold standard for IDE's. I have had very few complaints with VSCode. I use this for the majority of my work, however, xCode is a close runner up.

  • xCode

    Being an iOS developer, xCode is basically a requirement. I have mixed feelings about xCode, however. It has amazing features: live canvas, amazing tips, debugging tools and much more. That being said, ITS STILL SO BUGGY!!!

  • Google Colab

    Google Colab is an INSANELY powerful resource when manipulating large amounts of data. By combining the flexibility of Jupyter Notebooks with Google's vast computing resources, Colab has become my go-to resource when creating python scripts. I primarily use Colab to run custom my tensorflow models on powerful processors to speed up time to compute.

Design

  • Figma

    I'm officially hooked. SVGs are finally becoming main stream (come on gmail, get with the times) and Figma is the SVG manipulation champion. Using Figma for design is a necessity for literally every project I do now. That being said, their recent acquisition by Adobe makes me nervous. There are very few software suites I despise more than Adobe's suite. Please don't ruin Figma, Adobe!

Productivity

  • Microsoft Office

    It may not be the prettiest or the best, but its hands-down the most widely proliferated. I have spent so much time in excel, I don't need a mouse anymore. Teams is a pretty nice general productivity tool, but it still has a ways to go. I don't think it will ever be possible to survive in this world without a basic knowledge of Microsoft Office products.

  • Slack

    Arguably the most widely used communication and organization product by developers. I really like the feature set and capabilities of Slack, but for some reason, they still haven't perfected teleconferencing reliability. I drop out of more Slack meetings than I do my T-Mobile calls, and thats saying something.

  • Tableau

    Tableau is an incredible tool for creating beautiful and useful data visualizations. From cloud-hosted dashboards to simple tables and charts, Tableau creations are hands-down the most visually appealing data visualizations out there today. Honorable mention: Microsoft PowerBI (sorry, MS. I still think your UI's across all your products are nauseating)