I'm an electrical engineer, I work with hardware design and baremetal programming -- I have no idea where to even look to learn about databases and nomenclature

About a year and a half ago, a friend from grad school (a mechanical engineer with an MBA) and I decided we wanted to start a company. Our goal was to work with cities, offering smart city solutions (in the form of hardware).

One of our early members was a guy who was a backend developer for Apple (he eventually had to leave us as he was starting a family, and got a great offer from Amazon).

Originally our goal was to avoid building an app other than as a "proof of concept" -- the app wasn't intended to be a revenue stream; it was intended to service the people of the city. So we figured it could be "series A" expense.

Well, part of our evolution was to realize that an app was an important aspect of our goal -- and as our business model developed (we started with an idea and worked towards becoming a business second) , it became obvious we needed a robust app for pilots and early iterations -- and for more reasons than our business model.

So we evaluated where we were at -- we had a small team of ~10 people, 4 of whom were engineers (Apple guy had left by now) -- none of whom were software/stack engineers. We were seeking seed funding, but what we had built thus far was hardware, and a simple database for collecting information from the hardware.

This is how we approached building an app:

  • We needed an application that was presentable to a city, and acted as a consumer facing for our tech

  • None of us had the ability to create this app at a level that a city would expect

  • We could A) Use seed funding to hire a few good app engineers and build something or

  • B) We could find and vet an app studio that really meshed well with us and have a team of professional engineers build an app with us

At the end of the day, we figured we wouldn't even know what makes a good app engineer, a good app engineer. So we could throw darts and hire people we felt were great, pay them (Because it didn't seem, with our schedule, that an unpaid engineer was going to develop an app at the level required). We hired a company to build an app for us. A local studio, where we could have weekly facetime, daily conference calls as required, and accomplish what we expected with our seed funding (seed funding was also used for PCBAs/other mfg expenses/software/case testing/etc). We were funded for $250k.

Fast forward to now, the app studio is handing us the "keys" to an application that functions well. For the most part, I understand what they've done from a design point (i.e. we have this database, collecting this, it's captured and historics are put here, etc).

But something I, personally, overlooked while this was happening was "Oh shit, now I have a gcloud PaaS or w/e". How do I calculate estimate server costs? How do I have Tableau safely access data? What can I possibly do, inadvertently, that will fuck stuff up? What if I need to change how this database pulls data from my sensor database? What if I need to change how my sensor database is structured? This is definitely a con of going out-of-house to have an application built. And while I may have emotions regarding it, it's done now, so how do I work with it.

Obviously the answer is "hire someone" -- we're beginning series A funding in a month. We have a functional app, with functional hardware that's deployed and working. We will hire someone(s) when we have money. But when that time comes around, I need to know exactly what skills we're looking for, how to ask the right questions of someone I want to hire, and how to make sure I can communicate my needs and ideas clearly. That is why I asked these questions. When our college friend from Apple worked with us, he was our "go to" -- I knew, that even if he didn't know how to do something, he could hire someone who did with reasonable confidence. There was trust with him because I knew the guy for 6+ years, and I'd worked with him on other things. I don't have someone like that anymore, so it's definitely a scary venture to undertake. It would be a disservice to both my colleagues, and the person I'm hiring if I asked for "x" when I really meant "y".

Anyways, thank you for your suggestions -- I will 100% look into them. I appreciate the help.

/r/DatabaseHelp Thread Parent