The March update of Graphite Comics just went live. It’s one of those updates that is very significant, with major changes under the hood — but which users will almost certainly not notice at all.
This makes for an interesting opportunity to talk about balancing needs in software development. In this case, we are looking at balancing speed and efficiency against operating costs. And even more interestingly, we can look at an example where a technical decision that improved efficiency and user experience evolved, over time, to actually have a detrimental effect on user experience!
Graphite is a scalable, efficient and multi-platform graphical content distribution system for mobile devices and the web.
I designed and developed the backend system powering Graphite — a Node.js based system that is powered by several AWS services, in addition to some locally hosted server functionality (mostly to handle maintenance jobs and statistical analysis of the live system) and a media sharing system facilitating the onboarding of new users coming from social media sites like Twitter and Facebook.
I also developed the iOS app for Graphite — one of the biggest and most complex mobile projects I have ever taken on. Although on the surface Graphite seems quite simple, in fact the technology powering it is extremely sophisticated and complex.
In addition to developing the iOS app and the server-side platform, I current manage the development of every other current and future platform — including Android, the web, and a few other platforms on the roadmap.
Scrawl is a social media app developed over the course of one month, representing a typical social media app project.
Aside from being a pretty neat idea, I actually launched this app to demonstrate a few critical concepts that many first time (and even some fairly experienced!) mobile entrepreneurs might not be aware of. Let’s take a look at a few of them!
In this series of posts, I want to discuss several myths, misconceptions, and misunderstandings that threaten to derail inexperienced or non-technical founders of tech startups.
Note: this post also appears on Glowdot with permission.
In the 10+ years I have been developing for mobile platforms — 15 years if you count Windows Mobile! — I continue to be amazed by the number of well-intentioned founders who fall for the trap of the cheap offshore development firm. I am not exaggerating when I say I have never heard of a development that went well that leveraged a team of developers from a shop in India. The failure rate is so insanely high that I wonder how the word hasn’t spread far and wide to stay the hell away from offshore code factories.
My best guess is that it has become a sort of industry meme, and as such it has woven itself so deeply into the fabric of the industry that it will take more than countless blog posts, post-mortem talks, and shared war stories to make it go away.
GlobeChat is a highly scalable, modern, efficient text messaging app with the unique feature that it translates incoming messages into your native language in real time as you chat.
I designed and developed the backend infrastructure for GlobeChat as well as the iOS app, and oversaw the development of the Android app. This development included integration with several AWS services as well as building modules to interface with Microsoft’s Azure cloud platform for translation services.
GlobeChat also, unsurprisingly, exemplifies the multitude of layers of complexity required when localizing an app for multiple languages. In total, GlobeChat supports 61 languages — and in order to do so, the app must not only translate messages between users, but include localized text in the client apps, as well as localized text on the server side (e.g. to translate common push notification messages, server generated error messages, and so on).
Managing copy on all of those levels for 61 languages is a massive task on it’s own, in addition to the technical complexity of building a chat app, let alone one that is handling translation in real time!
Indeed, this is so complex and novel that the technology powering GlobeChat has been patented.
Mysteryopolis was developed as a bundled exclusive for the then new Navi tablet — an Android based tablet designed for kids, and featuring a kid friendly lineup of apps and games.
I built Mysteryopolis and designed the minigames based on Zuiker’s script, which was originally very large in scope. One of the early challenges on this project was figuring out what we could do within the budget and timeline we had available to us, while still staying true to the creator’s original vision.
Aside from the game design and development, Mysteryopolis also required a content library management system — specifically, we needed to be able to distribute a lightweight game app that allowed users to download episodes (read: very large, very high quality video files) and game content on demand — and delete and reinstall said content in order to manage device resources.