[Advice needed]Getting PHP/Oracle/MySQL developer on board for backend

Hi everyone, this is a slightly long post. It’s a pretty crucial business decision we have to make, so thanks for being patient :slightly_smiling: .

We’re a marketplace startup. We connect buyers with service providers in the printing industry. We’re doing a lot of things manually but now it’s time to address these things with a decent backend with our brand new backend developer. Right now we’ve got print shop profiles inserted in a database in a very static way with a terrible schema. In fact though, this schema is fairly basic, it’s going to be more complex in terms of amounts of data it’ll contain very soon.

Our challenge is to make this schema future proof and also prepare for a more automatic system. Currently we’ve set all the data ourselfs but a next step in the near future is to do it dynamically with user profiles created by the users themselfs and then do more stuff like an advanced booking system, with a chat feature for both parties, etc…

Since most things are fairly static and all we do is subscribe to some data to our views (Polymer components), we are not using too much of meteor’s functionality yet (this was a decision I’ve made due to the lack of a backend developer which resulted in too much time wasted on developing something inadequately). We’re fortunate enough to finally have found a backend developer joining our team and the first step is going to fix the database model so we know we’re ready to take on more shops and offer more features on our site.

Our backend developer mainly uses PHP, Oracle & MySQL. She does know Javascript but she’s not familiar with the Meteor stack, nor has she ever done any NoSQL. We have to figure out how we are going to proceed with her improving our backend (that’s barely existing anyway). Preferably we could keep using meteor and have her integrate parts of the stack she desires to use for the backend into meteor. But that might not be possible and of course she should be comfortable with the stack she’ll be developing. I guess GraphQL could help us with this (?) but it’s not even in beta yet so not sure if we could go down this road already. Any comments on this @sashko @arunoda

I am looking for ideas and possibilities how you think someone with her background could fit into our team the easiest way. I would love to keep meteor, I love the stack, I love the community, I love everything that meteor offers. But if I’d have to choose between meteor vs. a backend developer on the team, I’d choose the developer. So here’s where you come in to hopefully give us some good solutions what we can do to keep meteor but make her happy at the same time :smiley: . She’ll probably add to the discussion as you comment on this thread, I am sure she can give you more insights into what she knows and what she needs to know in order to come up with the best solution.

Please keep in mind I’m non technical developer. I am fairly comfortable with frontend but I’m actually a UX designer, I’ve only developed our website so far because there was simply nobody else to develop it, so I’m sure Vida, our backend developer will give you more details if you’ll need more info.

There are so many factors to consider that would impact the solution. I’ll throw in a few quick comments though:

  • Do you want to continue using Meteor and is your backend developer open to learning new things? If so have them ramp up on Meteor and Mongo. If they have javascript experience already, it won’t take long for them to be productive. If they’re not interested in learning Meteor/Mongo though, then it will be a bit difficult to integrate them into the Meteor development workflow. I’m sure you can find a way to have them stick with the tools they know best, and integrate them in somehow, but you’ll likely be killing the additional productivity Meteor brings to the table at the same time.
  • If you want to stay within the Meteor ecosystem, using Mongo is really the best choice (for now). That being said you can always consider looking into using Oracle via metstrike:meteor-oracle or MySQL via numtel:mysql. If your developer is new to Meteor though, I’d recommend sticking with Mongo (for now). If SQL is a must you can also look into a hybrid solution that uses something like Stripe’s MoSQL (synchs Mongo with Postgres).
  • Since your backend dev has no Meteor experience, don’t even consider trying to integrate a GraphQL approach yet. The pros are still figuring this all out - wait for the dust to settle or you will be wasting a LOT of your precious startup time.

To your backend dev - seriously, take a look at Meteor, try the tutorials, read over The Guide, and most importantly don’t panic! You’ll be stepping outside of your comfort zone a bit, but the end result will be truly rewarding! :slightly_smiling:

1 Like

TL;DR: Let her do the tutorial. I was sold.

:slightly_smiling:

If you are using MySQL then a lot of your data probably doesn’t need to be reactive and you can just use a node MySQL client inside a Meteor method to return static data.
This article gives you some information on doing that.

For parts you do want to have reactive, I just uploaded a package that creates reactive collections from external sources. alt:replication

2 Likes

Thanks for all the feedback! I’ve met with the developer to come up with the database schema for our site and this is what I received initially for a MongoDB database. Which did confuse me a bit though, does this make sense? Shouldn’t the structure be very flat with Mongo?

https://drive.google.com/file/d/0B_Hj1-99DFxsNFlIRnppVDZkUkE/view?usp=sharing

A developer who I briefly talked to saw the ERD and said it should be more flat but it seems she came up with it based on this approach:
http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1

So I’m not sure if he just assumed it’s too relational since he just quickly looked at it. Does the ERD she came up with make sense? Or do you think we should schedule a meeting with a potential tech mentor?

Note at sashko & arunoda: Somehow the forum saved editing my first post as a state, so I accidentally edited over the intial introduction post and had to restore it, so you probably got tagged again, sorry.