Disclaimer

The opinions expressed by Ryan Gallwitz in blog posts, comments and tweets are his. They do not represent the opinions of any other person or entity, especially not those of his employer.