Faits :
A.
A.a. Par contrat de travail du 1er octobre 2007, A._ (ci-après: l'employeur) a engagé B._ (ci-après: l'employé) en qualité d'ouvrier d'atelier mécanique dans le garage qu'il exploitait à U._ (VD). Selon la convention écrite, l'employé devait travailler 50 heures par semaine pour un salaire mensuel de 3'400 fr. bruts.
A.b. En pratique, l'employé a travaillé au moins 50 heures par semaine, bénéficiant de quatre semaines de vacances par an. Jusqu'en décembre 2015, il a touché un salaire mensuel de 3'795 fr. bruts, soit 3'197 fr. nets, versé douze fois l'an et remis en main propre.
Dans l'ensemble, l'employé donnait satisfaction dans l'exécution de ses tâches, même s'il ne bénéficiait pas d'une solide expérience dans le domaine. Il n'est pas établi qu'il se comportait de manière inadéquate sur son lieu de travail, notamment qu'il buvait de l'alcool ou téléphonait durant ses heures de travail.
A.c. Au début de l'année 2016, l'employeur qui souhaitait cesser son activité a décidé de licencier l'employé. Comme il était hospitalisé, il a chargé un agent d'affaires breveté de remettre en main propre à l'employé une lettre de licenciement, en date du 29 janvier 2016. L'employé ayant refusé de signer la missive qui lui était présentée, la résiliation a été confirmée par courrier du 5 février 2016.
Le 9 février 2016, l'agent d'affaires a remis à l'employé une quittance que ce dernier a signée, portant sur un montant de 3'500 fr. versé "au titre de rémunération du mois de janvier 2016, à l'instar des rémunérations mensuelles (Fr. 3'500.00 nets mensuels x 12) perçues depuis le début des rapports de travail le 1er octobre 2007 ici confirmées pour valoir au demeurant quittance".
Le 9 mars 2016, l'employé a signé une seconde quittance, laquelle indiquait qu'une somme de 7'000 fr. lui avait été remise "au titre de rémunération du mois de février et de mars 2016, à l'instar des rémunérations mensuelles (Fr. 3'500.00 nets mensuels x 12) perçues depuis le début des rapports de travail le 1er octobre 2007 ici confirmées pour valoir au demeurant quittance ".
Les rapports de travail ont pris fin le 31 mars 2016.
B.
B.a. Par requête de conciliation du 18 mai 2016, l'employé a assigné l'employeur devant le Tribunal civil de l'arrondissement de Lausanne. Le 25 juillet 2016, il a déposé une demande concluant au paiement de 94'542 fr. plus intérêts, prétention ultérieurement réduite à 76'342 fr. Le demandeur entendait ainsi obtenir la différence entre le salaire effectivement perçu et celui prévu par la convention collective de travail des garages du canton de Vaud (ci-après: la CCT), le treizième salaire prescrit par cette CCT et la rétribution des heures supplémentaires effectuées. L'employé concluait également à la délivrance d'un certificat de travail avec une teneur modifiée.
A l'audience des débats et de jugement, l'employé a été interrogé et dix témoins ont été entendus, dont la fille de l'employeur, qui a travaillé pour lui de 2010 à 2013. Certains témoins avaient un litige avec l'employeur (dont sa femme) pour des motifs étrangers à la présente cause.
Par jugement du 30 juin 2017, le Tribunal civil a condamné l'employeur au paiement de 76'342 fr., intérêts en sus, et l'a astreint à délivrer un nouveau certificat de travail.
Le Tribunal a retenu les faits mentionnés sous let. A.b ci-dessus en procédant à l'appréciation des témoignages recueillis, du contrat écrit, des fiches de salaire, certificats de salaire annuels et des deux quittances signées en février et mars 2016. En droit, il a considéré que les parties s'étaient liées par un contrat de travail et que leurs rapports contractuels relevaient de deux CCT successives ayant fait l'objet d'arrêtés cantonaux d'extension approuvés par le Conseil fédéral. L'employeur devait ainsi s'acquitter de la différence entre les salaires minimaux prévus par ces CCT (4'000 fr. bruts, puis 4'100 fr., plus un 13ème salaire) et les salaires moindres qu'il avait versés. Il devait en outre payer les heures supplémentaires de l'employé, correspondant à la différence entre les 42 heures hebdomadaires prévues par les CCT et les 50 heures convenues et effectivement accomplies.
B.b. L'employeur a déféré ce jugement à la Cour d'appel civile du Tribunal cantonal vaudois, en concluant à ce qu'il ne doive verser aucune somme d'argent à la partie adverse.
Par arrêt du 18 mai 2018, les juges cantonaux ont rejeté l'appel de l'employeur, après avoir refusé d'ordonner les mesures d'instruction requises. Les motifs qui sous-tendent cette décision seront évoqués ci-après dans la mesure utile.
C.
L'employeur a saisi le Tribunal fédéral d'un recours en matière civile, à l'issue duquel il conclut en substance au rejet de la demande en tant qu'elle tend au paiement d'une somme d'argent. Il précise ne pas remettre en question l'arrêt attaqué dans la mesure où il ordonne la délivrance d'un certificat de travail.
L'autorité précédente s'est référée à son arrêt.
Dans sa réponse, l'employé a conclu au rejet du recours et sollicité l'assistance judiciaire complète, en particulier la désignation de son conseil, Me Patrick Mangold, comme avocat d'office. Il a déposé des documents aux fins d'établir son manque de ressources suffisantes au sens de l'<ref-law>.
L'employeur a déposé une réplique, qui n'a pas suscité de commentaires de l'intimé.
Sur requête de l'employeur, l'effet suspensif a été accordé au recours par ordonnance présidentielle du 11 octobre 2018.

Considérant en droit :
1.
L'arrêt attaqué est une décision finale (<ref-law>) rendue en matière civile (<ref-law>) par un tribunal supérieur désigné comme autorité cantonale de dernière instance, lequel a statué sur recours (<ref-law>). La cause atteint la valeur litigieuse minimale de 15'000 fr. requise pour les affaires pécuniaires de droit du travail (<ref-law>). Déposé par la partie qui a succombé dans ses conclusions libératoires et qui a donc qualité pour recourir (<ref-law>), dans le délai (art. 45 al. 1 et art. 100 al. 1 LTF) et la forme (<ref-law>) prévus par la loi, le présent recours est recevable sur le principe, sous réserve de l'examen des griefs particuliers.
2.
2.1. Le recours en matière civile peut être exercé pour violation du droit fédéral (<ref-law>), notion qui inclut le droit constitutionnel (<ref-ruling> consid. 1.4 p. 674). Le Tribunal fédéral applique le droit d'office (<ref-law>). Compte tenu, toutefois, de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), il n'examine en principe que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes. Il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 2; <ref-ruling> consid. 2). Par ailleurs, le Tribunal fédéral n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de façon circonstanciée, conformément au principe d'allégation ancré à l'<ref-law> (<ref-ruling> consid. 2.2; <ref-ruling> consid. 3.2).
2.2.
2.2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). «Manifestement inexactes» signifie ici «arbitraires» (ATF <ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>). La critique de l'état de fait retenu est soumise au principe strict de l'allégation évoqué ci-dessus (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit ainsi expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 p. 18).
2.2.2. L'appréciation des preuves est entachée d'arbitraire lorsque le juge du fait n'a manifestement pas compris le sens et la portée d'un moyen de preuve, a omis sans raisons objectives de tenir compte des preuves pertinentes ou a effectué, sur la base des éléments recueillis, des déductions insoutenables. L'arbitraire ne résulte pas du seul fait qu'une autre solution serait concevable, voire préférable (<ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.2).
Ni le droit d'être entendu, ni l'<ref-law> n'empêchent le juge de procéder à une appréciation anticipée des preuves et de renoncer à ordonner une mesure d'instruction pour le motif qu'elle est manifestement inadéquate, porte sur un fait non pertinent, ou n'est pas de nature à ébranler la conviction que le juge a acquise sur la base des éléments déjà recueillis. Le refus d'une mesure probatoire par appréciation anticipée des preuves ne peut toutefois être remis en cause devant le Tribunal fédéral qu'en invoquant l'arbitraire (<ref-ruling> consid. 4.3.1 et 4.3.2, p. 376 s., et les arrêts cités).
3.
Il est constant que les parties ont été liées par un contrat de travail, lequel a été résilié par l'employeur avec effet au 31 mars 2016. Devant l'autorité de céans, le litige porte essentiellement sur l'horaire de travail pratiqué, les salaires effectivement touchés et la portée des quittances signées en 2016. C'est le lieu de passer à l'examen des griefs.
4.
4.1. L'employeur dénonce tout d'abord une violation de l'<ref-law> et de son droit d'être entendu (art. 29 al. 2 Cst.). La Cour d'appel aurait refusé à tort d'administrer les preuves requises, qui seraient nécessaires en ce qu'elles discréditeraient divers témoignages orientés afférents aux horaires de travail de l'employé. Leur caractère nouveau devrait être admis, dès lors que ce sont les auditions des témoins à l'audience des débats et de jugement qui auraient révélé une telle nécessité.
4.2.
4.2.1. En appel, l'<ref-law> n'autorise la prise en compte des faits et moyens de preuve nouveaux que s'ils sont invoqués ou produits sans retard (let. a), respectivement s'ils ne pouvaient être invoqués ou produits devant la première instance bien que la partie qui s'en prévaut ait fait preuve de la diligence requise (let. b).
4.2.2. En l'occurrence, l'employeur a requis en appel la tenue d'une audience, son interrogatoire, la production des comptes de sa dernière année d'activité, la production de pièces destinées à établir que deux témoins n'étaient pas en mesure d'attester les heures d'arrivée de l'employé et l'audition de deux nouveaux témoins; il a en outre produit neuf pièces nouvelles.
La Cour d'appel a refusé toutes ces mesures par l'argumentation suivante:
«L'appelant n'explique pas pour quel motif ces mesures d'instruction ou les pièces produites n'ont pas pu l'être en première instance. Il n'appartient au demeurant pas à la Cour de céans de compléter l'instruction pour déterminer dans quelle mesure les témoignages sont crédibles. Les témoins ont été exhortés à dire la vérité et avertis des sanctions pénales qu'ils encouraient, ce qui apparaît suffisant sans qu'il soit nécessaire de vérifier, notamment auprès de leurs employeurs, si leurs déclarations sont compatibles avec leurs horaires de travail. S'agissant du témoin nouvellement découvert, celui-ci devrait être entendu sur les horaires de travail de l'intéressé et son penchant pour l'alcool. Or les premiers juges ont déjà procédé à l'audition d'une dizaine de témoins sur ces questions, si bien qu'elles peuvent être considérées comme suffisamment instruites.»
4.3. Ce faisant, l'autorité précédente a présenté une motivation qui suffit, indépendamment de l'<ref-law>, à rejeter les mesures requises en tant qu'elles visent à infirmer la crédibilité des témoins et à obtenir des preuves supplémentaires sur les horaires de travail et le prétendu penchant de l'employé pour l'alcool. La cour cantonale a en effet procédé à une appréciation anticipée des preuves, considérant que sa conviction était déjà faite et que de nouvelles mesures seraient impropres à la modifier. Or, cette appréciation anticipée est dénuée d'arbitraire, au regard des preuves déjà administrées, dont l'appréciation échappe également au grief tiré de l'art. 9 Cst. (cf. infra consid. 5).
Cette conclusion prive d'objet le grief tiré du droit d'être entendu (cf. consid. 2.2.2 supra). Elle rend inutile l'examen du point de savoir si l'employeur, qui était assisté d'un avocat à l'audience de débats et de jugement, a fait preuve de la diligence requise en formulant ses nouvelles offres de preuve dans le cadre de l'appel. Pour le surplus, force est de constater que l'employeur ne fournit pas d'autres explications à ses nouvelles réquisitions que la découverte des témoignages orientés et d'un témoin nouveau, de sorte que ses réquisitions se heurteraient pour le surplus au défaut de motivation requise en lien avec l'<ref-law> (cf. <ref-ruling> consid. 4.1).
5.
5.1. L'employeur reproche ensuite aux juges vaudois d'avoir apprécié arbitrairement les pièces produites (en particulier le contrat de travail et les quittances) et les témoignages recueillis. Les juges cantonaux se seraient appuyés sur des témoignages orientés, émanant de plusieurs personnes en conflit avec lui - déclarations dont ils ont pourtant admis le peu de force probante. Ils auraient arbitrairement ignoré les déclarations de deux employées dont sa fille, qui seraient cruciales sur la question du salaire touché.
5.2. Dans la foulée des premiers juges, la Cour d'appel a retenu en fait que l'employé avait travaillé au moins 50 heures par semaine et qu'il avait touché jusqu'en décembre 2015 un salaire mensuel brut de 3'795 fr., soit un salaire net de 3'197 fr.; il n'avait pas perçu de 13ème salaire.
Pour établir l'horaire de travail, la Cour s'est fondée sur le contrat de travail écrit et les témoignages recueillis; quant au salaire perçu, elle l'a déduit des certificats de salaire annuels et des fiches de salaire, après avoir sous-pesé les témoignages y relatifs et les quittances établies en février et mars 2016.
5.3. Force est d'admettre que la constatation sur l'horaire de travail effectif de l'employé échappe au grief d'arbitraire dans l'appréciation des preuves, respectivement au grief de violation du droit fédéral.
Le contrat écrit prévoyait un horaire de 50 heures hebdomadaires. Selon l'employeur, ce contrat serait simulé dans la mesure où il mentionnerait - à la demande de l'employé - un salaire fictivement plus bas que celui versé en réalité. Le salaire étant un élément essentiel du contrat, il faudrait en inférer que l'ensemble du contrat était simulé et que celui-ci ne saurait entrer en considération.
L'argument méconnaît que la simulation ne porte pas nécessairement sur la totalité du contrat, peut donc être partielle et concerner toutes sortes d'éléments du contrat (cf. arrêt 4A_90/2016 du 25 août 2016 consid. 3.3.2; BÉNÉDICT WINIGER, in Commentaire romand, 2e éd. 2012, nos 78 s. ad <ref-law>). Quand bien même les parties auraient simulé le salaire, respectivement auraient eu l'intention d'occulter le salaire réellement versé - intention qui ne ressort pas de l'état de fait -, cela ne signifierait pas automatiquement que le contrat serait simulé quant à l'horaire mentionné. A cet égard, la cour cantonale a relevé pertinemment qu'on ne voyait pas pour quelle raison les parties auraient simulé un horaire trop élevé, alors qu'il eût été plus logique de prévoir un horaire réduit justifiant le salaire réduit prévu contractuellement; l'employeur ne dit mot à ce sujet. Dans son appréciation des preuves relatives à l'horaire de travail, l'autorité d'appel pouvait tenir compte sans arbitraire du contrat écrit, tout en retenant dans le même temps un salaire effectif différent de celui mentionné dans cette pièce.
L'autorité précédente s'est également appuyée sur les déclarations de témoins, dont elle a présenté un résumé sur les points topiques après avoir indiqué les liens et/ou conflits que chaque témoin pouvait avoir avec l'une ou l'autre partie. La fille de l'employeur avait admis que l'employé arrivait plus tôt que l'heure alléguée par son père; elle ignorait à quelle heure il partait le soir, dès lors qu'elle-même partait plus tôt. Elle ne savait pas non plus si l'employé venait travailler le samedi. Même si l'on admettait que les autres témoignages n'avaient que peu de force probante pris individuellement, il résultait de tous ceux-ci que l'employé travaillait tard le soir et revenait le samedi. L'hypothèse selon laquelle l'employé aurait « bu des verres» avec des clients ou aurait téléphoné pendant son temps de travail pouvait être écartée, également pour le motif que l'employeur ne s'était à aucun moment plaint d'un tel comportement pendant toute la durée des rapports contractuels.
Cette appréciation des preuves portée par la Cour d'appel, motivée de façon plus détaillée dans l'arrêt attaqué, n'a rien d'insoutenable. L'employeur tente vainement de substituer son point de vue à celui de l'autorité précédente, en insistant sur les aspects qui lui sont favorables.
5.4. Les mêmes réflexions valent pour les constatations relatives au salaire mensuel effectivement perçu (3'795 fr. bruts, soit 3'197 fr. nets) et à l'absence de preuve du versement d'un 13ème salaire.
La Cour d'appel s'est fondée sur les fiches et certificats de salaire, non sans avoir pris en compte les témoignages et quittances. A cet égard, l'employeur reproche aux juges cantonaux d'avoir examiné les quittances sous le seul angle d'une reconnaissance de dette négative (quittance pour solde de tout compte), en méconnaissant qu'il pouvait s'agir d'un moyen de preuve par lequel l'employé attestait avoir toujours reçu un salaire mensuel net de 3'500 fr. en espèces; il dénonce dans la foulée une violation de l'<ref-law>.
Le grief est infondé. Les juges cantonaux ont expressément envisagé l'hypothèse selon laquelle l'employé aurait certifié un tel fait en apposant sa signature sur les quittances (arrêt attaqué, p. 21). Ils ont toutefois objecté que ces quittances étaient en contradiction avec les autres pièces du dossier et avec le témoignage de l'agent d'affaires breveté; de surcroît, l'employé ne comprenait pas bien le français - ce que plaidait la partie adverse elle-même - et avait signé ces quittances alors qu'on lui remettait en main propre le salaire du mois, de sorte qu'elles n'étaient pas compréhensibles et ne pouvaient être retenues contre lui.
Les quittances sont des moyens de preuve à apprécier comme tels (<ref-ruling> consid. 2.7 p. 163), et on ne discerne pas d'arbitraire dans le raisonnement de la Cour d'appel, qui a mis en balance ce moyen avec les autres éléments recueillis. Indépendamment de la question du cadre des allégués, le seul fait que l'employé, aux dires de l'agent d'affaires, soit venu au bureau de celui-ci « accompagné de quelqu'un pour l'aider dans la traduction» et qu'il n'ait pas paru surpris du montant versé n'est pas de nature à modifier cette conclusion.
5.5. L'autorité précédente a également exclu que les attestations signées par l'employé puissent constituer des quittances pour solde de tout compte, en relevant qu'elles ne comportaient pas de mention d'un solde de tout compte ou de toute prétention. A la lumière des quittances en cause et des éléments qui précèdent, on ne discerne dans cette analyse aucune violation du droit fédéral, étant rappelé qu'on ne saurait admettre à la légère une telle reconnaissance de dette négative (<ref-ruling> consid. 1a; arrêt 4A_461/2018 du 20 mars 2019 consid. 7.4.1). L'argument supplémentaire que la Cour a tiré de l'<ref-law>, selon lequel l'employé ne pouvait renoncer à ses créances à ce moment-là, est ainsi superfétatoire, de sorte que le grief y relatif, tiré de l'interdiction de l'abus de droit (<ref-law>), est sans autre privé d'objet.
6.
6.1. L'employeur reproche enfin à l'autorité précédente d'avoir retenu l'accomplissement d'heures supplémentaires par l'employé en violation de l'<ref-law>, respectivement des <ref-law> et 42 al. 2 CO. D'une part, il eût fallu démontrer que l'employeur avait exigé ces heures, ou du moins qu'elles étaient objectivement justifiées. D'autre part, il incombait à l'employé d'apporter la preuve de ces heures, ce qu'il n'aurait pas fait, les témoignages recueillis étant dépourvus de force probante.
6.2. Par heures supplémentaires au sens de l'<ref-law>, on entend le temps de travail qui excède le temps de travail prévu par le contrat, le contrat-type de travail, la convention collective ou l'usage (cf. <ref-law>; <ref-ruling> consid. 4a p. 70).
En l'occurrence, il a été retenu que le contrat fixait à 50 heures le temps de travail hebdomadaire, horaire qui a été appliqué en pratique, alors que la convention collective étendue n'exigeait que 42 heures en moyenne. Les juges vaudois en ont déduit que l'employé avait accompli huit heures supplémentaires par semaine, au sens de la CCT qui prévoyait de les rémunérer avec un supplément d'un quart, conformément à l'<ref-law>. L'employeur recourant ne discute pas le chiffre de 42 heures et ne conteste pas l'analyse juridique sur la notion d'heures supplémentaires, à juste titre (cf. <ref-ruling> consid. 4b; arrêt 4C.237/1995 du 17 octobre 1995 consid. 2, in JAR 1997 p. 119; GABRIEL AUBERT, in Commentaire romand, op. cit., n° 11 in fine ad <ref-law>). Pour le surplus, la constatation selon laquelle l'employé a effectivement accompli au moins 50 heures par semaine est issue d'une appréciation des preuves exempte d'arbitraire (consid. 5.3 supra), et non d'un renversement du fardeau de la preuve contraire à l'<ref-law>, comme le soutient l'employeur. L'autorité précédente n'a certes vu aucun motif de retenir que l'employé n'avait pas effectué les 50 heures prévues contractuellement, mais cette remarque répondait à l'allégation de l'employeur selon laquelle l'employé n'avait jamais travaillé 50 heures par semaine, contrairement à ce qui était prévu dans le contrat de travail (arrêt attaqué, p. 20). L'employé a dûment allégué et établi qu'il avait travaillé 50 heures par semaine, conformément au contrat.
Les considérations qui précèdent privent d'assise les griefs afférents aux heures supplémentaires.
6.3. L'employeur ne formule aucun autre grief, ce qui clôt toute discussion (cf. art. 42 al. 1 et 2 LTF).
7.
En définitive, le recours de l'employeur doit être rejeté. Aussi celui-ci supportera-t-il les frais judiciaires (<ref-law>), fixés à 4'000 fr., et devra-t-il payer une indemnité de dépens arrêtée à 5'000 fr. pour les frais d'avocat de la partie adverse (art. 68 al. 1 et 2 LTF).
L'intimé a établi ne pas disposer de ressources suffisantes (cf. <ref-law>). Vu l'issue du litige, sa requête d'assistance judiciaire doit être admise et son avocat, Me Patrick Mangold, doit être désigné conseil d'office. Le recourant versera l'indemnité de dépens directement à l'avocat d'office. La LTF ne prévoit certes pas la distraction des dépens, mais la jurisprudence l'admet dans cette situation particulière (arrêts 4A_248/2015 du 15 janvier 2016 consid. 6 et les réf. citées; 4A_328/2016 du 10 novembre 2016 consid. 4).
Pour le cas où les dépens ne pourraient pas être recouvrés, la Caisse du Tribunal fédéral versera une indemnité de 5'000 fr. audit conseil d'office; en pareille hypothèse, le recourant devra rembourser ultérieurement la Caisse s'il devient en mesure de le faire (art. 64 al. 2 et 4 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La requête d'assistance judiciaire de l'intimé est admise et Me Patrick Mangold lui est désigné comme avocat d'office.
3.
Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge du recourant.
4.
Le recourant versera à Me Mangold une indemnité de 5'000 fr. à titre de dépens. Au cas où ces dépens ne pourraient pas être recouvrés, la Caisse du Tribunal fédéral versera ledit montant à Me Mangold.
5.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 7 août 2019
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente: Kiss
La greffière: Monti