Guy Writes Code

Josh Rufer

Developer / UI Designer

Elegant software solutions and compelling user experiences.

my handsom picture

I'm Josh,

If I have learned anything in my 20+ years of software development it is that I will never stop learning. I have written simple web pages and developed large scale enterprise applications. I've optimized the processing of multi-terabyte databases as well as created beautifully interactive, data-driven mobile applications using both native languages as well as cross-platform development libraries. Most recently I have been working in the Unity 3D game engine to build cross-platform videogames and virtual reality simulations.

As a self-taught programmer, I have learned to be resourceful and creative. The bulk of my work is not programming itself, but general problem-solving. Programming languages are the tools I use to implement solutions to these problems and I happily learn new languages as they suit my needs or requirements. I wasn’t taught the mathematics needed to solve complex problems but with the use of books, articles and the internet, I know how to quickly find the correct equations and accurately and efficiently translating them into code. Once a new problem is solved, I document my solutions for later reference and iterate on it as time progresses.

In short, I push pixels and shift bits. I'm a digital "jack of all trades."

A Subset of My Body of Past Work

Before you judge the small library of publicly available works below, please take into account that I have spent the majority of my career working on products and services for the Departement of Defense. As such, most of these products are secret or proprietary and I am unable to display them here. In my 20+ years, I have worked on many more products than I can put on public display.

Native iOS Development

I am constantly working on lots of different iOS applications for my clients. These apps include productivity, simulations, games, training and data processing. Some of these titles are listed and described below.

America’s Army Comics is a collection of high resolution guided comic books, with complex animation and sound that immerse the reader in their stories. My team was provided the source artwork for the print comics and we set about painstakingly deconstructing the images so they could be animated by hand.

Each panel was animated individually as were the transitions from panel to panel. Apple's Core Animation library was used for this process and the result is a cinematic experience, in which the action always follows the reader and not the other way around.

This project required a lot of photoshop work to fill in background sprites where foreground elements had been removed for animation as well as extensive image optimization to reduce the disk size of these colossal art assets to maintain a reasonable app size once compiled. Note: ImageOptim is your friend.

Avalible for:

Career Navigator allows the user view over 230 U.S. Army careers, or search through careers to find those that match their interests. You can also learn how the army will help with college assistance, watch videos about specialty careers, and see how you will transition from a civilian to soldier in Basic Combat Training.

This app is highly data-driven and relies heavily upon NSDictionaries to store large amounts of related and cross-referenced data to drive user navigation. I was also able to dive into the Maps API to create interactive maps with custom datasets.

Avalible for:

the Flutter logo

Cross-platform Mobile Development

After a few years on a split team of iOS and Android developers, both trying to create identical applications for both their target platform, the amount of time and money being wasted on this effort really got to me. I began to push our team to invest in cross-platform development technologies such as React native and Flutter.

In my personal time, I have invested a lot of energy into both of these platforms but I find myself drawn more towards Flutter as my go-to platform of choice. The open source community has made Flutter a wonderful tool for cross-platform development and as it matures I see fewer and fewer reasons to not seriously consider it when starting a new project.

While I don't have any publicly published apps to show off at this point, I have several private projects in the works on my GitHub account.

Cross-Platform Development in Unity 3D

A few years back, my team was given an "innovation week" to see what we could create, in isolation, with limited time and resources. I chose to install Unity 3D and Viewforia and create a simple, marker-based, AR demo. By the end of the week, you could point a tablet at a table covered with markers and watch as US and enemy vehicles would drive onto their markers and engage in simulated combat.

I suppose this demo was a major success as I was instantly whisked away from my native mobile development team and tasked with forming a new team, dedicated to the rapid development of cross-platform 3D simulation projects in Unity.

GoArmy Edge Football is a free training and simulation app, developed in Unity 3D, for coaches and players alike. Coaches can create their own formations, huddles, plays, and drills on a digital whiteboard, then visualize the action on the field in 3D. Players can practice drills, to test themselves just the way they would in field practice. They can view the action from anywhere on the field and even enter the first-person mode to see the play unfold just as they would in a real game.

This project required the creation of simple and intuitive 2D drawing tools that would simulate the natural iterative process of whiteboarding plays. At any point players could be moved, paths re-drawn or removed. These simple drawings must also contain all the data necessary to generate full 3D simulations.

All this data must be stored locally, for offline access, but also transmitted securely to our network servers to ensure coaches virtual playbooks are private and protected but also instantly available to each of the players on their team.

Great care was taken to ensure that any time we updated the app with new features or bug fixes we didn't cause damage to any existing user data, even if that data now violated the behavioral expectations of the updated application. Data migration algorithms were created for each iteration to ensure data integrity and compatibility.

Avalible for:

GoArmy Edge Soccer aims to offer soccer coaches and players similar tools to our Edge Football product but this isn't as simple as replacing the ball. The entire flow of the app was reimagined to support the substantial differences between the two sports. Each tool was customized to behave as it should for its sport-specific use case.

To begin this project, the team worked to extract primary libraries and systems from the GoArmy Edge Football product, to create a "core" library upon which any new sport could be simulated without duplication of code.

The specific rules and behaviors of the new sport were then layered atop this core framework, allowing us to build a fully functional, custom product, in a fraction of the time it took to create GoArmy Edge Football.

Avalible for:

Side Projects and Hobbies

Life doesn't just happen during business hours. Everyone has their hobbies and special interests and I am no different. I love to learn and create and that is how I spend my free time. I research emerging technologies, both hardware, and software, always looking for new ways to create. I learned to play a regular electric bass guitar, upside-down because I'm left-handed, I write on topics that interest me, I study UI and UX trends, I work with photography and videography and I experiment with emerging hardware. I also love interactive storytelling and as such I'm a narrative videogame junkie.

I may not be the life of the party but I have fun in my own ways.

Making A Wireless Discovery

In late 2015 I purchased a no-name brand of Bluetooth active noise canceling headphones off Amazon. They had almost no reviews or ratings but were too cheap to pass up. After researching the technologies involved, and comparing them to far more expensive products in their category, I decided to publish an in-depth review on Medium, under a new account called Wireless Discovery. I shared the link with a few of my closest friends and in less than three weeks that review had over 5,000 reads.

Since then I have made a hobby of writing in-depth technical reviews of the wireless products that enter my life. I take great pride in these reviews, spending weeks testing each product before writing an article. I could churn out one-page reviews, regurgitating specs and call it a day but I am driven by the innovation of these products and I do my best to detail exactly what makes each one unique and worth consideration.

This passion project has grown to the point now that some companies send me unsolicited products just for my review. I currently have a backlog of tech, waiting for testing and I am proud of the minor reputation I have established as a wireless tech reviewer.

Automation and Service Integration

I despise repetitive manual tasks. A great programming mentor once told me that something can only happen once or n-times. Basically, it's fine to solve a problem once but if it ever comes up again, assume it needs to be solved for good.

Obviously, I apply this to software solutions but I also apply it to the common tasks that occur in my daily life. Most of my documents, as well as system configuration files, are automatically synced to cloud services so that the documents I need are available on whichever computer I happen to be using at the time. My Bash profiles and IDE configurations are synced the same way. No matter where I am, my terminal configuration, key-binding, and bookmarks are all the same.

My personal Mac is littered with custom Folder Actions and Automator tasks. If I want to optimize images for the web I just drop them in a folder. I add music and movies to my media library the same way. Lyrics, subtitles, and metadata are all collected in the background. The resulting files are automatically added to my media library.

Whenever possible I will automate any repetitive task before me.

Leap Motion Research and Development

Many years ago I came across the Leap Motion at a developer conference. It is an inexpensive controller that allows you to detect physical motion in the space above the device itself. This gives the user an entirely new way to interact with their desktop systems. In some ways, it provides a user experience unlike any other before it.

Though I never brought any of my Leap Motion products to market, I had had an amazing time working with their SDK to create a theremin inspired MIDI controller.

Pebble Development

Before Google Wear or the Apple Watch, the Pebble smartwatch was my first foray into the wearable computing market. A low power Bluetooth peripheral that extends the capabilities of our existing smartphones with new sensors as well as a new way to visualize information at a glance to our wrists. With its e-ink display, Pebble was first to market with a wearable display that consumed so little power that it could last all day on a single charge.

Working with Pebble's SDK, I was able to create an application for my first trip to WWDC that showed, not only the current time but also information about my next upcoming session. This allowed me to have constant access to information about when my next session begins and where I needed to be for it, without digging through a paper schedule or checking the calendar on my phone.

Getting In Touch

If anything I have covered here has interested you or you just want to get in touch, you can get in touch with me at any of the links below.

Find Me

Like most other people, my internet presence extends beyond this site alone. Below are a few other sites and services you can find me one. If, for some reason, you want to follow my public Spotify playlists, feel free.

All material © Joshua Rufer