You should do both concurrently, with collaboration. This can largely depend on technology at play. I assume by front-end developer you mean either Xaml or Html/Css depending on the application, and by backend, web services, business logic, and data access logic.
You should have collaborated enough already that both know what the objective is. Your front-end developer can build the entire user interface working with hard-coded JSON DTO objects, while the backend developer can iron out all the data access, business logic, and web services. The DTO and web services can be tweaked, since these are the glue in between. You do need to be "close" on what the DTO might look like, but it does not have to be exact, but you should have collaborated before doing either "end" of the project, so there isn't this large adjustment when you need to integrate the layers together. This includes deciding up front what potential service calls and data transfer objects might be at play, and as each developer runs into potential design problems or issues, they should be collaborating with one another to alter the design at that point, and not at the end.
It sounds like you have a process/communication problem.
Usually you do need to complete the backend first so the front-end developer can replace the hard coded DTO objects with actual service calls, and there needs to be some collaboration here, especially integration testing before these bits are sent off to a tester.
We have developed several projects successfully this way, and when done right, you can get faster concurrent development, rather than linear development. Our reason for moving to this approach is we are a scrum team, but have skillset gaps and different strengths, so we are utilizing the layered architecture appropriately to allow people to work in their strength areas, and develop features concurrently.
Caveat - not all features or projects lend itself to this methodology, but if you can do it, I would highly recommend it.