Gavin Shrader

Gavin Shrader

Software Engineer Portfolio Site

Hello! I'm Gavin. I am a self taught programmer, currently employed as an iOS engineer. I've been coding for over 6 years and working as a full-time software engineer since the start of 2022.

I primarily code with Swift, I'm experienced with UIKit including AutoLayout and Storyboards, CoreAnimation, and other core frameworks. I frequently work with API calls and encoding/decoding data from JSON to custom data models, and I've published multiple games to the app store built with the SpriteKit game engine.

If you'd like to get in touch, you can send me a direct message.


My Work

Infinite Islands

While I was learning iOS development several years ago I published a SpriteKit game called "Infinite Islands", the style of the game is simple pixel art and the game features collisions, sound, in-game progression, a global leaderboard built with the GameCenter API, settings, and a day/night and weather system to create ambience.

Infinite Islands is available on the App Store.

    Infinite Islands iOS App Demo Screenshot
    Infinite Islands iOS App Demo Screenshot
    Infinite Islands iOS App Demo Screenshot
    Infinite Islands iOS App Demo Screenshot
    Infinite Islands iOS App Demo Screenshot
    Infinite Islands iOS App Demo Screenshot

Rebound

Rebound was the first iOS game I ever created. This game featured infinite waves of enemies, a custom physics simulator that allowed the player to bounce on trampolines to move around the world, and a handful of other cool features like leaderboards, retro graphics, and background music composed by my friend.

I built this project 5 years ago, before I started using Git version control. Unfortunately I've since lost the codebase and cannot upload new builds to the app store, lesson learned!

    Rebound iOS App Demo Screenshot
    Rebound iOS App Demo Screenshot
    Rebound iOS App Demo Screenshot
    Rebound iOS App Demo Screenshot
    Rebound iOS App Demo Screenshot
    Rebound iOS App Demo Screenshot

Miscellaneous Prototypes

Over the last few years I've experimented with a few iOS prototypes including UIKit productivity and fitness apps, and a SpriteKit based Tilemap rendering system.

As of now I haven't landed on a specific project to focus on, but I plan on taking the best ideas from these various prototypes and combining them into one useful project to focus on building and shipping.

    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot
    Prototype iOS App Design Demo Screenshot

JavaScript Tilemap Simulator

Last year when I was learning JavaScript I built this simple tilemap project to test 60fps rendering on web, mouse and touch input, and basic web graphics. This tilemap is a prototype project that serves to test and demonstrate rendering smooth graphics in a browser, but it could be expanded into a full game in the future.

Here is an interactive demo.

JavaScript Tilemap Simulator Demo

Recent Posts

These are the most recent posts from my blog.

  • Aerial view of large spiral library.
    Aerial view of large spiral library.
    Welcome To My Website

    Tags:

    Thoughts

    About Me

    My name is Gavin Shrader and I'm a self taught programmer, I'm currently working as an iOS engineer and web developer.

    I live in Richmond, VA, when I'm not working on new projects I like to spend time running, hiking, and going to the gym.

    About My Site

    I custom built my website using NextJS and I'm hosting it on the Vercel edge network. All of these buzz words come together to form a super fast website that loads almost instantaneously, no matter where you find yourself on planet Earth.

    The blog you are currently reading is completely custom built. I have a system that allows me to create a new markdown file, with built in HTML for styling and images, and then my website will generate a NextJS/React component at build time that is viewable in a browser. I also have an automated build script that takes the file path for my blog post and appends it to my site's sitemap.xml so web scrapers can properly map my site.

    Here is a screenshot of what a markdown post looks like before my site turns it into a new page:

    NextJS Blog Markdown Screenshot

    I also have a custom header at the top of each blog post that my site uses to generate things like SEO data, a title/description, the publish date, and a showcase image:

    NextJS Blog Markdown Header Screenshot

    Anyway, that's a basic introduction to my site and my experience. Thanks for reading!