I’ve had an increasing number of conversations over the past few weeks about both React Native and Firebase — mostly with non-technical founders who have been advised by those they trust that, before they embark on their app development, they should choose one (or both) of these technologies at the core of their stack.
I want to very briefly give my take on both of these, as a developer who has used both, and advised both for and against both.
Big things start with a simple idea. But what I want to talk about today is how that simple idea grows bigger successfully. Specifically, I want to look at the very first step I believe all entrepreneurs should take before setting out to turn their grand vision into reality!
The vast majority of projects I have worked on in the past have come to me in one of three states:
The founder has an extremely simple, short and concise idea, and they are ready to build on that idea with the help of a technical consultant
The founder has an idea, and a big roadmap of features they eventually want to build — and they’ve been turning this idea over in their head for months or even years, refining and adding and removing features along the way
The founder has already started building, and along the way things got complicated, convoluted, confused or chaotic in some way and they need help getting it back on track.
My dream client is in that first state, of course. But more often than not, the founder is in state two, and has a big list of features they want at launch. But in order to avoid walking blindly into state 3, we need to take a step back and ask a couple questions first…
For a lot of non-technical founders setting out to build their product, it can be hard to understand just how much work needs to be done before you write a single line of code! In this post, I will break down much of the ground work that needs to be done by your tech team before you start to actually build out your product.
This initial setup involves getting the following ready:
Setting up your accounts with the app stores you plan to launch in
Setting up your cloud hosting and database hosting plans
Setting up your domain and configuring your SSL certificates
Setting up your code repository
Setting up an alpha/beta testing process for pre-release testing
Setting up your task and bug tracking system
Choosing the framework(s) you plan to leverage to build out your technology
While all of these steps are fairly straightforward, and common to just about every development project, they are nonetheless absolutely critical, and in some cases the decisions you make here can affect your company in the future — sometimes even very far into the future!
Hands down the most terrifying phase of building a new tech startup is launch. So many pieces of a very complex puzzle have to come together at exactly the same time in exactly the right way for things to go right.
If you’ve never gone through it, you may be wondering what on Earth I’m on about. After all, isn’t the goal just to get the product out the door as fast as possible? Release early, release often and all that, right? Well, not in my experience. I have actually witnessed many products that launched way too early! But more importantly, I’ve seen teams that launched way too wrongly.
While experience is helpful in getting all of those moving parts in sync and timed up perfectly, it also contributes to that overall dread. The more products you’ve launched, the more you know how many things can go wrong, and just how slightly one variable can be off to throw the whole machine into chaos and, worst of all, how much luck is actually involved!
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.
I am a mobile app developer, platform architect, and technology consultant based in Santa Monica. I help companies big and small get their tech in check!
More specifically, I build things -- mobile apps, web apps, watch apps, games, desktop software, and more. I've led hundreds of project developments over my nearly 20 year career, for the biggest entertainment companies in the world, Fortune 500 companies, bootstrapped startups, and individual entrepreneurs just getting their start.
You'd be hard pressed to find another developer with a more varied portfolio of projects, or a more diverse list of clients than me.
If you need an app, get in touch and lets discuss your project!