Designs the document model deliberately
Embed or reference is the decision that determines whether this application is fast in a year. It is made in week one, usually by accident.
MongoDB, Express, React and Node, held by one person. A fast stack to build in and an easy one to get wrong, mostly at the data layer, where the flexibility that makes it quick early is the thing that hurts later.
The appeal is real: JavaScript everywhere, fast to start, enormous ecosystem. The risk is also real and it is almost always the schema you did not design because you did not have to.
Embed or reference is the decision that determines whether this application is fast in a year. It is made in week one, usually by accident.
A Mongo query without an index is a collection scan that works beautifully on ten thousand documents and falls over at two million.
Express gives you no structure, which means the structure has to come from discipline. Routes, services, and a clear line between them.
Not everything is global. A good one knows which state belongs to the server, which to the URL, and which to a component.
Because a flexible database will happily store whatever shape you send it, including the wrong one.
Nobody on the bench knows all of this. We shortlist against what your problem actually needs, and tell you where the gaps are.
No algorithm puzzles. Every exercise below is a task this role does in a normal week, and we watch the method more than the answer.
Orders, customers and line items. Where do they embed and where do they reference, and can they say why in terms of how the data will be read.
A real pipeline that takes eight seconds. We want to see them use explain before they start changing things.
A component tree with state in the wrong places. The fix tells us whether they understand the difference between server cache and application state.
A candidate who cannot answer this has only ever used one database and will reach for it whatever the problem is.
You interview every candidate we put forward, so these are yours to use. They separate somebody who has run this in production from somebody who interviews well.
Decides from the read pattern and the growth pattern. Embeds what is always read together and bounded; references what grows without limit or is shared.
Has a blanket rule. Embedding everything hits the sixteen megabyte document ceiling; referencing everything rebuilds a relational database badly.
Runs explain, looks at whether an index was used, and checks the shape of the query against the indexes that exist before changing any code.
Adds caching. It makes the symptom quieter and leaves a collection scan running underneath it, which is worse because now nobody notices.
Knows they exist across documents in a replica set, knows they are more expensive than in a relational database, and designs so that most operations do not need one.
Says Mongo does not have transactions. Out of date by years, and it usually means their consistency model is hope.
Names authentication, validation, rate limiting, request logging with a correlation id, and a single error handler at the end.
Just body parsing and CORS. The error handling is then scattered through every route, and half the routes will be missing it.
Yes, for the right shape of application, and the ecosystem is as strong as it has ever been. What has changed is that Postgres has got very good at JSON, so "we need flexible documents" is no longer automatically an argument for Mongo. Our engineers will say so.
Nearly always yes, since it is the same React and the same Node underneath. The learning curve is the rendering model rather than the language.
It is a real migration, not a configuration change, and anyone who tells you otherwise is selling something. Done properly it is a few weeks of work per significant collection, and it is easier the earlier you decide.
Thirty minutes, and a shortlist within a day. If a mern developer is the wrong hire for what you described, you will hear that instead.
Either one reaches Umer directly. No forms sitting in a queue.