3
4 Comments

I need some advice. Small team, big problem. Limited budget. Looking to keep costs down, team happy, Product sustainable and viable.

I’m part of the advisory team for a new start up buildings a mobile app (iOS and Android) based in Africa. It’s a great job based on the problem we are trying to solve. The technical hiring decisions are being made and although there’s a technical adviser, I wanted to get some independent perspectives on a few questions.

I’m not a developer or technical person and beyond Wordpress, some HTML and CSS, I’m as non-tech an I could be.

We’d be using AWS and I was thinking if there’s any specific choices relating to the architecture of the app as a whole that would keep server costs down so we have a longer runway?

Also, what advise do you have on code longevity. Developers may come and go, or we might get lucky and bond for the long haul. We are trying to offer competitive remuneration and to be careful with the selection so we don’t have a high turn over. But even with this, what best practices can we introduce from the start so that code doesn’t get too complicated or confusing to maintain as we grow and if we have transition to transition from the first set of developers or any of them to a replacement.

Also, what are the limitations of building in flutter (or similar alternatives) as opposed to swift for iOS and ______ for android?

What is your experience managing payments on the web for your mobile apps? We are considering providing the app for free with most functions and allowing users to upgrade their accounts to a paid plan (via the web page) that would increase the number of tools they have access to within the app.

A comfortable office, supportive team and good pay is all we are offering. Do developers and other tech folks really care about pool tables and other cool contraptions I see in most tech company offices?

on August 16, 2020
  1. 4

    These are all legit questions that can be answered. However I would really recommend either investing in the right person for tech leadership and/or involve the developers you bring onboard in these conversations.

    For engineers in a starting company, being involved with these decisions can greatly increase the level of ownership, understanding and responsibility from individuals. Increased ownership and understanding in turn will help building higher quality and maintainable code.

    You would want this because the opposite effect is really negative. Developers will need to start working with technology that they might not agree with, lack experience of or won't understand why the decision for ie AWS/flutter has been made. That directly influences happiness, turnover and the quality of code.

    Having great technical leadership can also help, because they can explain decisions and control the quality. Just slapping documentation as a requirement might not help as much.

    For longevity of code; Also make sure to properly track changes being made in Github (this is super standard), because in Pull Requests and Issues you can document the considerations and concerns of certain code parts (ADRs as mentioned by @fbonneau), rather that just how they work.

    Overall it's super exciting to start a new project, but they way you start it and how final decisions are made are super important for the early development team. After that a lot more technical decisions will be made, for which you want a good process too.

    Good luck!

  2. 2

    I wouldn't optimise server costs before you're confident product/market fit is incoming. I'd recommend to first build a cheap and dirty MVP using throwaway tech, but it sounds like you may be past that stage.

    AWS can be pretty cheap (AWS lambda for example), but it has to be a good fit for what you're building. If your developers feel constrained building serverless on lambda, then that decision would be expensive in terms of development time and headache, and not be worth it. Developer happiness usually trumps server costs.

    To me, pool tables etc aren't important but good salary, nice people and a product I believe in are.

    PS: Where in Africa? Hi from Cape Town 😃

  3. 1

    I'll just add my two cents on a small part of your question:

    "Do developers and other tech folks really care about pool tables and other cool contraptions I see in most tech company offices?"

    In my opinion, NO! In fact as a very experienced developer, if any company running ads looking to hire me feel a need to highlight the fact that they have pool tables, video games, beer on Fridays etc, I don't even consider applying - there are lots of reasons I might or might not take any given job, but a pool table (or similar items) will never be one of them - and in fact, the simple fact that a company felt in important enough to advertise as a 'perk', tells me all I need to know about what it will be like working there.

    Nothing wrong with having said 'perks' I guess, but thinking that is a going to be a deciding factor in anyone's decision about making a multi-year commitment to an employer is pretty lame.

  4. 1

    So many random questions not well organised, let me try to address a few

    • AWS brings many advantages, but best cost is not one of them. If you want better pricing there you have to remove flexibility and commit to high until. Nodes for a long period. (They might be best value for other reasons like time saving for many things).
    • Bypassing Apple payments via payment on website as far as I know is not allowed and would not be approved, you have to pay the 30% tax, on Android might be allowed (I'm not an app guy) (there might have been a few hand selected exceptions made with huge struggles..)
    • There are things more important than office like benefits that change between locations but commonly include health benefits, learning funds, tooling allocations and other smaller things. It also depends highly on who you complete with for talent, supply and demand. Attracting and keeping talent is a big topic. Lab days are another "benefit" some provide and might be highly appreciated and can be useful...
    • I'd you want more stable easy to onboard code, put more time into docs, including system and code architecture and design and that they happen before coding. And allocate upkeep/refactor/taking care of code time
  5. 3

    This comment was deleted 6 years ago