Friday 29 September 2017

AWS Deployment, iOS11 updates and startup management

How did I get here? yes that is the exact thought in my head right now, how did I get here? (or this link) Yes not long ago, I had a job that paid a somewhat decent amount, I was working on a very challenging (and interesting) project and I had plenty of time to play games. Right now: well I am still working on an interesting project, not getting paid (not yet) and I am getting very little time to play games. Ok so maybe not 'thaaat' different from my former situation except the part about the money. The point is that being a sole founder in a startup, I just have to so many things at the same time, I mean seriously think about this, I am building a Java Spring web version for My Day To-Do, I have to deploy it to AWS, learn new APIs in iOS 11, make iOS11 updates, make job descriptions, find more employees (interns) to work with me at my startup etc etc. The number of disparate (different) tasks I need to get my head around is just staggering. In this post I will be sharing some of the recent problems (AWS deployment issues etc) that I have been facing and what was my approach to solving them.

AWS Deployment


I think before we talk about AWS deployment and it's challenges I think I should talk a little bit about the web version.

Web version


I have been working on the web version of My Day To-Do (MDT) for the last few months now and it's actually a lot of fun! One of the only thing I loved about my former job was the project that I was working on, it was a project based on the Java that used Spring framework that made heavy use of GWT and AngularJS for some of it's front-end. While I do not miss GWT, I did miss Spring and Angular somewhat, I mean the concept of dependancy injection is difficult to grasp at first but once you do, it becomes so much fun to work with. Hence when I started building the web version, I naturally decided to use tech that I am familiar with which includes Java and Spring. 

The current state of the web project 

At this point, it has all the necessary RESTful endpoints to collect and capture app info but it needs a little bit of tidying up and polish before it's live and for use by everyone. It would have been live by now but as I said there is far too much work to do at my startup for just one person, therefore I am limited by size - the team size that is.

Web app deployment

Now on-to the meat of this section, so when thinking about deploying the MDT web app, AWS seemed to be the obvious choice - almost every company or startup I have worked with uses it to deploy their Java web apps. 

Anyway I have only just deployed an in development web version of it after creating an account and activating the free-tier, however getting to that point was not as simple as I had hoped. Why? I think that AWS has a bit of a steep learning curve, I mean deployment is not hard at all but familiarity with the AWS console does take a little time to get used to. Amazon has plenty of docs to help you but a lot of them focus on the theoretical aspects which while very important makes it difficult to get your first deployment going quickly... unless of course you are a sys admin. Anyway I a couple of things that hindered my quick deployment were

  1. Familiarity with security groups: This one caught me a little off-guard
  2. Pointing a custom URL to your Amazon: I am a little embarrassed to admit that I actually had to find a tutorial to figure out what was so obvious. Anyway here's a link on the Youtube tutorial that I found.
One of the reasons why it was important for me to deploy a version to AWS was so I can start collecting some user info. At this point we are not collecting any user info in MDT, and there is a plan to change that and deploying the web version with RESTful endpoints is a part of the plan.

iOS11 updates


iOS11 is a very significant update for iOS developers (devs) as it adds a completely re-designed App Store and also introduces some cool new API for devs to play with. 

Re-designed App Store

In the latest update Apple has decided to change the way App Names are displayed on the App Store which means that I will have to change the name or the caption of it for the next update. This is something that concerns me why? well because in the past every time I have changed the app name the downloads for the Lite version have taken a dip i.e. reduced. Hence the re-designed App Store means I have to think about the new structure of the App name very carefully. Have I come up with something yet? well not for the Lite version but I have released an update for the Pro version.


New iOS11 API



In the last 2 or so months I have been thinking about releasing single feature apps i.e. Apps that do only one thing. Why? well MDT is a big (relatively) product and the main focus of the startup, however as I have talked about before, the revenue is lacking, I mean we are not generating enough revenue to be able to hire people and get help. Therefore single feature apps is a way to fill that gap somehow, I mean every time I add a new feature to MDT, I have to learn how to add that bit. So I have been thinking why not spin out a single feature app and maybe generate some revenue? An alternative means of generating revenue would be to offer services i.e. contract work, but I want to avoid that as much as I can. At this point my thoughts are, that if I start offering services i.e. building websites or apps on contract, it will take my focus away from MDT a lot more than I would like.

So what single feature app?


Well I have been working with the new CoreML API that Apple introduced with iOS11 and I almost have an app ready which at this point is a raw product that needs a bit of polish.

The app would have been released had I not been jugging between a few different things simultaneously.

Seeking help


It's not a secret that I need help at MDT i.e. people to work with me on the product, now to get help I must seek help, which would involve preparing a job description etc. I have already mentioned in one of my earlier posts on the challenge of making a job description. Therefore I have some experience with it and as such this process is not hard it's one more thing to takes me away from whatever programming I am doing. Right now I am looking for four interns to join my startup and here's who they are and the job descriptions I have prepared for them.

Market research 


I have mentioned in a few of my earlier posts (Trying to capture the Chinese market or Marketing with Bing Ads) about the increasing number of downloads that we get from China? We have had a high number of downloads form China in the last few months and that has only increased this month. Therefore the role of the market research intern would be to simply do some more market research and find out what our Chinese users feel about our product. Have a look at the job description here to get an idea of one example of intern job descriptions for a startup.

Design


Seriously it's about time I found someone for this? I have already talked about the negative feedback that we received on our product design so we could really use some help with that. Anyway here's the job description for the design intern, I have done what limited advertising that we can do at this stage.

Front-end coding 


The architecture on which MDT was built is a unique combination of HTML based UI with native Swift code, you can read more about it here. At this time, there is plenty of front-end work to do at MDT, with the redesign of the iOS app interface currently underway and the web version being built, there is a lot of front-end work to do. You can have a look at the job description here.

Marketing/Admin


This would be someone who handles all the little things that take up a ton of my time. Things such as posting to social media, managing sub-projects (like project for  translations etc) so all in all a '2nd in command' or a First Officer. Once again have a look at the job description here.

Summary

The first logical thought after reading all that would be that I should just focus on one thing and see it through instead of starting too many things. Yes to an extent that is true however I cannot always control things e.g. I started working on the iOS11 single feature app but then with Lite downloads and daily active users steadily increasing, the web version and capturing user info became a priority.

Anyway so between working on the web version, planning for the company future and finding people to work with/for me, I am very very busy and hence I was unable to blog till month's end. Here's something interesting, despite all that it seems that I generally have more free time than pretty much anyone I know. I mean I go to the gym regularly, I (try to) get 7.5+ hours of sleep every day (it's necessary for my muscles to grow), and I always have time to meet my friendsI suppose one of the advantages for me is that I can work from anywhere as long as I have access to a computer (internet connection too but I can do without it).

Finally, I am working on my app full-time right now so if you find my blog posts useful and want to support me you can 
  • Or download the Lite(free) version and leave us an App Store review that would really help

No comments:

Post a Comment