Hi all, I'm Rich Fox. Welcome to Nadohs Software LLC. 👋

I'm a passionate software engineer 🚀 with experience on mobile, backend, and web. My specialities include Native iOS (Swift/Objective-C), Flask Backend (Python) React-Native (javascript/CSS/HTML).

What I do

Experienced engineer with an infrastructure background, doing Mobile/Backend/Web development, using AI and LLMs to ugrade your app, and building apps from start to finish.

  • swift

  • app-dev

  • python

  • docker

  • reactjs

  • aws

  • firebase

  • JavaScript

  • nodejs

  • npm

⚡ Develop highly interactive Front end / User Interfaces for your web and mobile applications

⚡ AI, Neural Network and LLM integation into apps.

⚡ Integration of third party services such as Firebase/ AWS / Digital Ocean

⚡ Enhanching existing projects, as well as building from scratch, mobile apps, web apps, and backend services at both small and large scales.

Experiences

Nadohs Software LLC
Nadohs Software LLC
Engineering/Owner
May 2021 – Present

Worked on large scale iOS podcast project (Skp'd) and flask backend (Python). Additionally worked on React-Native and chrome extension projects for clients.

  • Built Skp’d Smart Podcast Player - (iOS App + Flask Backend) - AI powered podcast player.
  • Built SteadFast Smart Task Board - (React Web App + Flask Backend) - LLM and vectorDB integrated project.
  • Built Wholesale Tea Guide - (React-Native App + Firebase) - LLM and vectorDB integrated project.
  • Built ColorBlinder - (iOS App, Core Image, SwiftUI) - Colorblindness simulator on realtime camera feed, export image comparisons. Uses Core Image and SwiftUI.
  • Built GitKey - (iOS Keyboard Extension) - Keyboard extension for iOS that allows you to connect GitHub account and copy commit history time and comments to screen.
LinkedIn
LinkedIn
Senor Software Engineer - Mobile Infrastructure
March 2017 – May 2021

  • Developed and led migration of a Web-viewer library adopted across all LinkedIn iOS apps.
  • Enhanced badging and deep-linking infrastructure; introduced a data-based strategy to optimize app store review requests. This led to an app rating boost from 4.1 to 4.4 in just a week.
  • Implemented PKCE and single sign-on authentication through deep-linking.
  • Collaborated on the migration of LinkedIn apps to a new in-house unified architecture based on clean architecture concepts.
  • Conducted in-depth analyses comparing Swift and Obj-C in terms of build & indexing time, including the creation of tools and experiments.
  • Authored and reviewed numerous RFCs, many as part of mobile-infra working group which I outlined and implemented procedures to enhance and optimize the working groups effectiveness.
  • Organized and hosted the internal iOS meetup group, giving over 10 presentations on various topics.
  • Mentored four engineers, offering guidance on RFC writing, code architecture, code reviews, and overall craftsmanship.
Propeller Labs
Propeller Labs
Lead iOS Engineer
Sep 2014 – Mar 2017

  • Led a team of three iOS engineers at Propeller Labs, a web and mobile development consultancy.
  • Introduced and oversaw the code review process, standardized networking layer architecture, and played a pivotal role in the implementation of best practices and code style guidelines.
  • Oversaw the open-sourcing of four internal libraries to GitHub with full test coverage and CI/CD integration.

Mobile Projects

Skp'd (iOS + Flask Backend)
Skp'd (iOS + Flask Backend)

Intelligent Podcast Player app with near-real time backend waypoint detection. Seemlessly skip passed the fluff content.

GitKey
GitKey

A keyboard extension that connects to your GitHub account, to easily allow for copying commit activity for record keeping.

Colorblinder
Colorblinder

Real time colorblind video filter overlay, with filtered image exportation features. Built with Core Image and SwiftUI.

Web Projects

SteadFast (React Web App + Flask Backend)
SteadFast (React Web App + Flask Backend)

(In development) A task board application with context-aware LLM/VectorDB based AI subtask suggestions, context summaries based on project documents, and research helper.

Wholesale Tea Guide - (React Web App)
Wholesale Tea Guide - (React Web App)

Created for a client to sell access to a digital database through subscriptions. Features include database lookup, user login, note-taking, and subscription integration.

Chrome Extensions - (JavaScript, CSS, HTML)
Chrome Extensions - (JavaScript, CSS, HTML)

Developed chrome extensions for clients for price monitoring, data scraping, and comparisons.

Education

Udacity Nanodegree
Udacity Nanodegree
Udacity Nanodegree Certificate - Deep Learning

2017 June - Sept

Completed Udacity Deep Learning Nanodegree.

  • Did course work for 10-20 hours a week over four months to complete program.
  • Built a neural network from scratch without library, as well as CNN, RNN, and GANs, with libraries, to complete numerous projects for course.
Zhejiang University
Zhejiang University
MA - 对外汉语 - Mandarin as a Second Language

2011 - 2013

Wrote Thesis 'Measuring what's Lost in Translation.' A research study using linguistic syntax analysis on differences after transating complex texts from English to Mandarin and back again.

  • Shadowed teacher at Zhejiang University class. Planned and taught lesson on tone pair practice activities.
  • Worked at QuVideo(VivaVideo) during last several months of degree doing iOS Development part time, later full.
University of Florida
University of Florida
BA - East Asian Language and Literature: Chinese

2007 - 2009

Studied up to level-3 Chinese, Linguistics, and East Asian History, Literature, Poetry, and Religions.

  • Completed Summer Study Abroad in Beijing, China. at Tsinghua University.

Blogs

Lessons Learned From Propeller’s First VR Game for HTC VIVE

Adding a second developer solved the majority of these problems and was organized as one person working at a computer and the other standing in the play area waiting for the cue to go in and out of VR. This allowed the tester to remain in a safe testing area while their partner guided them around physical limitations and directed them to testing parameters. This also has the added benefit of letting the coder make live tweaks in Unity during game play testing. We were able to test changing physics properties on objects to determine how best to stack blocks, as well as figure out how to best reposition items for the player’s perspective.. At some point we went a step further and cycled a third person into the development system: our designer. Since so much of VR development uses plug-and-play widgets, a designer is able to vastly improve VR aesthetics even if they lack programming experience. He thought about things we hadn’t considered, like adjusting shadows, adding objects far off in the distance that only the acute observer would find, as well as perfecting the lighting angle and color.. In our game, we wanted the player to have the option of going up higher as they stack upward so they could potentially continue endlessly. We built a platform that acted like an elevator, with a switch attached to it which allows players to go up or down by pushing buttons.. The switch was fine for me and my pair developer, but we got mixed reviews when we let other people try it out. Some thought it worked well, but others had trouble reaching it. It turns out some people are really tall and have problems reaching things at a fixed height and location. There were also people who just didn’t like having to look for and click on an elevator button in the midst of stacking blocks.. After consistently receiving the same tester feedback, we became convinced that utilizing other buttons on the control pad was the best implementation for this functionality. We removed the elevator switch and decided that holding up or down on the touchpad would control the elevator direction. We also added arrow indicators on the controller model to make this even more clear.. On most platforms, keyboard input methods are clear, established, and not given a second thought. Within VR and AR, there are no clear standards yet.. We experimented with keyboard APIs we found available, but no format gained a dominant following (or provided a great user experience). So instead, we built our own. Basing it off what a real-world parallel might look like, we provided large letter blocks for the user to hit.. This turned out to be difficult to use, tiresome even, and more work that I anticipated. I failed to consider the amount of arm movement and accuracy it would require. Humbled by the clunky experiences we’d attempted, we returned to using existing keyboard APIs. The SteamVR API turned out to be relatively easy to implement, but we’re looking forward to riffing on new keyboard interactions until a dominant VR text-input standard emerges.. The purpose of HeapVR is to stack blocks into the tallest possible tower without the structure collapsing. As such, we started with standard physics and began to test the stacking. No one could stack more than 8 blocks high, which made us realize that realistic physics wasn’t all it’s cracked up to be.. The Unity Engine gives us the ability to adjust the presence and properties of physics, and we experimented with most of them in our quest for more compelling gameplay. The first adjustment we tried was making the blocks weigh less, and then weigh more, but this did very little for their stack-ability. So then we cranked the drag property way up high. You can think of the drag property as the rule in physics that causes a feather to fall much more slowly than, say, a truck. With this change, one could now stack forever or even in mid-air, since it took so long for the blocks to fall.. With that in mind, we pulled the drag property way back down, but higher than we started at, finding the perfect sweet spot. Blocks still fell to the ground more slowly than you would expect them to, but our justification was that we’d just insist the player was stacking on Mars if anyone questioned us.. With our “improved” physics, we found a sweet spot between challenging and rewarding stacking game play. However, it felt like we were still bound by a low skill-ceiling. No matter how good a player became, they couldn’t stack higher than the simple physics allowed.. In order to improve the game, we turned to a secondary game mechanic: floating “ghost blocks.” These mid-air “anchors” forced the user to adjust the structure of their towers, but also allowed clever players to reinforce them.. HeapVR was the first VR game we created at Propeller. It is a game where players stack blocks strategically as they are slowly elevated upward. After 100+ hours of development into our project, we came out with a structured development process, several lessons learned through user testing, and a deflated ego on how best to input text.. Enjoy this demo for the first game mode release:.

TALKS

Generic Table View Controllers

2017 Forward Swift Conference

Cast-Free Arithmetic in Swift

2015 - Realm Swift Meetup

Contact Me

Discuss a project or have a question? Feel free to reach out to me.