Loading...
Answers
MenuI'm a non-technical founder developing a karaoke mobile app. How I should architect my app in term of software/servers used and programming languages?
I need help engineering the software with all technicality. What server should I use to obtain the best audio-streaming and scalability?
Answers
Better than choose an architecture and try to build the server side of your app, I suggest you to try to find a mate that helps you and was your cofounder. Just you will probably fail in building the app and keeping it working fine in the near future. One-founder teams are very risky for accelerators and VCs. So, you definitely should trust in a co-founder. Read this: http://venturehacks.com/articles/pick-cofounder
A hundred different engineers would answer that question a hundred different ways. Software engineers have styles and preferences, just like musicians. One swears by Ruby on Rails. Another works exclusively with a MEAN stack. Here's the elephant in the room: if you're a non-technical founder, you can't answer your question for yourself, and you likely won't understand the answer that a technologist gives you. You're not an architect, so what can you do with a blueprint? A better question might be, "What is the best way for a non-technical founder to develop software?" To that question, I would respond, hire a CTO-type to consult with you, architect your app, and hire a junior developer to build the thing. Here's a blog post that has more details on this approach: http://blog.closeup.fm/2014/01/24/how-to-hire-a-php-developer/.
Oftentimes the "best" solution is what would be most familiar and usability by the person/people build and supporting the application. In addition to what some of the other responses post, I would also offer that "best" server solutions in this instance may also include how best to scale storage costs and scale users so the application doesn't experience any lag or latency issues with accessing and streaming content. Part of this too will depend on your growth plan and how quickly you expect to need to scale the platform.
Regarding programming languages, there are really only 2 considerations you have to make: 1) for the back-end, there are a myriad of options you can use (again, I would make the focus using a language that is scalable in terms of your ability to recruit talent to build out and support it instead of necessarily advocating Ruby on Rails over say PHP or Python). 2) for the front-end, the only consideration to make for native applications would be utilizing Objective C or Swift (or a combo of both) for iOS. Swift is the newer language and rolled out by Apple, however they will likely never (or not for a long time) move away from allowing Objective C such a huge % of the current apps in market are based in it. So, I would also default this response to a consideration of who you are recruiting to build it versus optimal coding of one language versus another.
There are however some generally steps you can take for your tech team to give them ideas on your blueprint and know where to start for recruitment. So from that standpoint, building a technical specifications document outlining wireframes/front-end and also back-end requirements may be helpful towards organizing your thoughts. Feel free to reach out if I can answer any other questions or if you want to discuss how to build out a technical spec doc.
Related Questions
-
How do you find a good overseas QA team? Has anyone had a good experience with a specific company?
You can have a look at http://ekipa.coHM
-
What are some good resources / communities for Engineering Managers?
Wow...what a big question...here's a few answers... The most important thing to know is that 90% of engineering management is culture management. If you build the right culture, then the engineers will manage themselves. So, do some web searches on engineering team culture and read those types of blog posts. Also, read this: http://algeri-wong.com/yishan/engineering-management.html. Additionally, you can read my blog, I've written quite a bit about engineering management (but I don't write as much as I used to): http://scottporad.com. I follow Hacker News regularly. Personally, I spend my time on the "new" page instead of the "most popular". I developed a deep understanding of Agile and Lean Startup methodologies. The key wasto understand them philosophically and strategically, as opposed to simply understanding them tactically. Once I understood them at their essential levels, the principles could be applied to all types of organizations. Another thing I've done is to identify other organizations that served as "role models" for my team. Then, I would follow their blogs, find the slides from when they speak at conferences, etc. I would look for companies with similar technology, that appeared to be leaders in their space. Of course, find yourself mentors with whom you can discuss your issues. Obviously, you can find those people here on Clarity. Finally, in Seattle, where I live, we have a Seattle CTO mailing list consisting of senior engineering managers from across a broad set of companies. Find the version in your city, and if doesn't exist, start one.SP
-
What is the software development life cycle?
I hate to say it, but Google would have got you a much faster answer than this site. I just typed in "Software life cycle" into google, and there are many great articles.DF
-
What is the best programming language for building multi-platform mobile software that is scalable?
I've been involved in several projects that hinged upon this question (generally start-ups or web+mobile apps), and it's not a clean or easy answer unfortunately! Plus every developer you talk to is going to try to sell you their services, but what you need is simply the truth! I'd suggest that you consider shifting your focus away from finding a best language. That sort of premise can eliminate options that are actually quite valid solutions. Keep in mind that any mobile app will require multiple languages working in harmony - all while used in a commercially consistent and standards-based manner. That's the part that determines your technical scalability! Almost every programming language can achieve this functionality with an experienced developer on your team. The best advice I can give you, is to consult with at least two people on this, and three if your app is os-specific. The most important insight will come from a "full stack" developer. One who's got a variety of enterprise experience, and can code at all levels of the stack. This person needs to have experience in leading a team of other developers, which forces the strategy of which technologies to use and why onto their plates daily. Secondly, you'll want to consult with a "front end" developer, who can tell you what's possible using advanced OOP JavaScript techniques (like Google's angular.js), because in an absurdly fast change over the past 3 years, much of the formerly back-end work has made it's way to the front-end, and is driven by JavaScript, predominantly JSON data, and awesome API's. The game has changed and the front-enders are the poor souls dealing with this rapid shift daily. To do this, they're also fantastic JavaScript programmers, which is a language that runs on all mobile devices and all browsers, too. Love it or hate it JavaScript is the most commonly used language in the world. Finally, if your app is OS-specific, you'll want to consult with a developer who works predominantly with the OS your app is built for. This person lets you know what's possible from the device POV, should know what stacks and JavaScript approaches can and can't be done on that OS, and how to leverage the resources of the device for your app as well as extend it's functionality. BONUS - loop back to the full stack developer to double-check the claims of the front-ender and the mobile developers. Always double check with your most senior programmer ;) All of these consults together in addition to your own research and due diligence will get you comfortable and allow you to navigate on this rather daunting but deeply important journey. There aren't any turn-key options. Instead it's a series of inter-connected modules driven by different languages, and all working in tandem. Every solution will have bugs, and no one group of technologies can do everything without proper developers. If you'd like to go further down the rabbit hole, then we should definitely set-up some time to speak. Otherwise, I wish you great luck in research and encourage you to learn as much as you can! :) It's going to seem hard, and might give you a headache here or there, but learn everything you can about how different technologies "talk" to each other, and then you will be able to build a map for keeping your app and business scalable regardless of the changing tides of technology!MM
-
Where can I find top notch Lamp Stack engineers with the business know how and VC connections?
I've always hired only ridiculously brilliant engineers and those that were either entrepreneurs or entrepreneurially minded (i.e. attended startup weekend, contributed to open source, blogged, etc). The best way to find them is to go to the events they attend. Typically it's developer meetups, open source or programming language oriented conferences, etc. To add a heightened filter, maybe only entrepreneurial oriented events like Business as Software, StartupSchool, or StartupDrinks. Also, using Angel.co to find companies that were once listed, but didn't raise or seem to have "Sunsetted" might be a good strategy. The question I always ask myself when I'm about to do sourcing for talent, or marketing is: 1) Who do I want, or what are examples of those people in the real world? 2) What places do they go/hangout, tools do they use, news sources they read, etc? Be strict with your filters and you should find some candidates... the hard part is convincing them that your project is more interesting then their current job/project/ideas/company/etc - cause these people typically have many options for work.DM
the startups.com platform
Copyright © 2025 Startups.com. All rights reserved.