About Me
I am Brian Reynolds, a programmer from Ontario, Canada
Reach me here: brireyn@gmail.com
Content
1. What I do
2. My dev stack
What I do
I am a software developer, usually working on web applications, with some dabbling in IoT, networking, and hardware.
My most recent work experience is as lead developer on an IoT web application that collected and analyzed environment sensor data, and provided automatic and scheduled control capabilities to both large-scale commercial clients (2,500+ sq. ft) and small-scale at-home clients (<10 sq. ft). I was responsible for writing the overarching cloud web application as well as underlying device firmware on both single-board computers and system-on-a-chip microcontrollers.
The firmware that I wrote handled data reporting to the cloud, running scheduled tasks, and activating climate control systems to keep various climate variables in a scheduled range defined by the user. The firmware also exposed a secure API to interact with the mobile application, which allowed it to automatically handle setting up new devices on the user’s network.
My dev stack
Web Frontend
Data Management
Layout
I typically develop frontends as a single page app using a React base, static typing with Typescript. I'm a huge fan of the Redux pattern of unidirectional data flow. It introduces its own headaches and overhead, but I find it solves more problems than it creates.
For layouts and components, I've found that Material-UI is one of the best libraries out there as far as supported components, customizability, and end performance. I've done my fair share of working with Bootstrap and custom CSS (most preferably with LESS), so I'm not scared of CSS selectors and media queries, but I find Material-UI usually offers a great starting point that gets a project quickly kicked off.
Gatsby is a fantastic little framework that works great for static websites. This website is using it
Web Backend
Data Management
I have been using Django and associated tools (Django ORM, Django REST Framework, etc.) with PostgreSQL professionally for several years now. While slightly clunky at times, it's reliable, and easy to get rolling with a new project.
More recently I've been using Node.JS with MongoDB as a backend for single page apps that I write. A lot of Django's power comes from utilities for working with forms, views, and templates. When I just need something to server an API and do background tasks, I've lately found Node.JS with Express to be a great replacement that allows rapid development.
Mobile Applications
Data Management
I hate love React Native. It's able to satisfy the requirements of the majority of UI focused apps, and who doesn't like having a unified code base for iOS and Android? It certainly has some issues, but with Redux managing app data and storage, and the right component libraries, you can almost forget that you're not writing code for web. Kinda.