Faits : A. X._ était titulaire de la raison individuelle "Garage U._", à... (GE). L'entreprise avait pour but l'exploitation d'un garage avec atelier de réparations ainsi que le commerce de tous véhicules automobiles; elle a été radiée du registre du commerce le 15 septembre 2015 après avoir cessé ses activités. Sur la base d'un contrat de travail du 6 juin 2011, modifié par avenant du 14 février 2012, Z._ a travaillé au service de X._ en tant que mécanicien en automobiles du 6 juin 2011 au 31 mars 2014, pour un salaire horaire brut de 30 fr. Le temps de travail convenu était de 3 heures par jour jusqu'à fin février 2012, puis de 50% à compter du 1 er mars 2012. L'employeur versait à l'employé son salaire au comptant, sans lui réclamer de quittance. B. Le 5 mars 2015, Z._ a saisi le Tribunal des prud'hommes du canton de Genève d'une demande tendant au paiement par X._ des sommes brutes de 15'588 fr. et 67'548 fr. à titre de salaire, sous déduction des sommes effectivement perçues, de 55'207 fr.50 à titre de rémunération d'heures supplémentaires et de 6'293 fr.70 à titre d'indemnité pour les vacances non prises. L'employé alléguait que l'employeur ne lui avait jamais versé l'intégralité du salaire, se bornant à lui donner de temps en temps quelques centaines de francs. Il prétendait également que, du 6 juin 2011 au 31 janvier 2012, il avait effectué en moyenne une heure supplémentaire par jour et, du 1 er février 2012 au 31 mars 2014, entre trois et quatre heures supplémentaires par jour, de sorte que 1'688,7 heures supplémentaires au total devaient lui être payées. Il expliquait enfin qu'il n'avait pas été autorisé à prendre de vacances, alors qu'il avait droit à 56 jours à ce titre. X._ a conclu au rejet de la demande. Il alléguait notamment qu'il n'avait jamais demandé à l'employé d'effectuer des heures supplémentaires, mais qu'il mettait à sa disposition son matériel et son garage pour que ce dernier exécute des travaux sur des voitures pour son propre compte et pour ses propres clients. L'employeur a déposé une demande reconventionnelle, tendant à la condamnation de Z._ à lui verser 63'549 fr.40 (recte: 33'549 fr.40) à titre de frais non remboursés et 30'000 fr. à titre de dommages-intérêts; il a produit diverses factures, libellées notamment au nom du garage U._, qui faisaient état de commandes de matériel, ainsi que divers documents, non contresignés par l'employé, qui mentionnaient les sommes qu'il prétendait avoir prêtées à ce dernier. Par jugement du 28 avril 2016, le Tribunal des prud'hommes a débouté Z._ des fins de sa demande. Il a considéré que l'employeur avait établi par indices, en particulier par témoins, le versement de l'intégralité du salaire, de sorte que l'employé n'était titulaire d'aucune créance à ce titre. Il n'en allait pas différemment de l'indemnité réclamée à titre d'heures supplémentaires, l'employé n'ayant pas prouvé en avoir effectuées. S'agissant du droit aux vacances, il portait sur 56,4 jours pour toute la durée des rapports de travail, dont il fallait retrancher les 57 jours pris par l'employé, ce qui ne laissait subsister aucun solde à indemniser. Le tribunal a également rejeté les conclusions reconventionnelles de l'employeur. Statuant le 21 avril 2017 sur appel de Z._, la Chambre des prud'hommes de la Cour de justice du canton de Genève a annulé partiellement le jugement de première instance, puis a condamné X._ à verser à Z._ les sommes brutes de 15'256 fr.05 plus intérêts à 5% dès le 15 août 2013 et de 3'833 fr.70 plus intérêts à 5% dès le 1 er avril 2014. D'une part, elle a constaté que l'employé avait touché l'intégralité de son salaire en 2011 et 2012; en revanche, l'employeur n'avait pas apporté la preuve du paiement du salaire relatif à l'année 2013 et aux mois de janvier à mars 2014; déduction faite de la somme que l'employé reconnaissait avoir reçue (10'000 fr.) et de celle que l'employeur avait versée à l'office des poursuites pour le compte de l'employé (13'383 fr.95), il subsistait un montant de 15'256 fr.05, avant les déductions sociales et légales usuelles. D'autre part, la cour cantonale a retenu que l'employé avait droit à 56 jours de vacances, dont à déduire ceux qu'il avait pris (soit 22 jours), de sorte qu'un solde de 34 jours de vacances - représentant un montant de 3'833 fr.70 - devait être indemnisé. La Cour de justice a débouté l'employé pour le surplus, notamment s'agissant des heures supplémentaires à la rémunération desquelles il prétendait. C. X._ interjette un recours en matière civile. Il demande au Tribunal fédéral de rejeter intégralement la demande en paiement de Z._ et de condamner ce dernier aux frais judiciaires des deux instances cantonales. L'intimé, dont le mandataire n'est pas un avocat (cf. art. 40 al. 1 LTF), a fait savoir qu'il n'entendait pas déposer de réponse, tout en concluant au rejet du recours. Pour sa part, la cour cantonale se réfère à son arrêt.