Faits :
A.
Par contrat de travail du 25 septembre 2014, l'entreprise B._ SA a engagé A._ en qualité de chauffeur à compter du 1er octobre 2014.
Le salaire mensuel brut s'élevait à 4'400 fr. pour un temps de travail hebdomadaire de 48 heures. L'employeuse pouvait demander à l'employé d'effectuer des heures supplémentaires dans un cadre qui soit acceptable pour celui-ci. Les heures supplémentaires devaient être compensées par des congés selon l'Ordonnance sur les chauffeurs (OTR 1, RS 822.221), respectivement par des congés de même durée une fois le solde épuisé. L'employé ne pouvait pas prétendre au paiement des heures supplémentaires. Il bénéficiait de quatre semaines de vacances par année.
Le 6 septembre 2016, l'employeuse a repris le service de distribution de la société C._ SA. L'accord prévoyait qu'elle reprenne des camionnettes et des chauffeurs de la cédante; aussi l'employeuse a-t-elle engagé trois chauffeurs de cette société, par contrats datés du même jour.
Le 30 septembre 2016, l'employeuse a licencié l'employé avec effet au 30 novembre suivant. Dans un courrier qu'elle lui a adressé le 20 octobre 2016, elle lui a confirmé les raisons indiquées oralement, tenant à une "modification de trafic" qui devait intervenir le 1er novembre 2016 dans le secteur d'affectation de l'employé et impliquait de réduire l'effectif du personnel roulant.
L'employé s'est opposé à son licenciement, l'estimant abusif, ce que l'employeuse a contesté.
Ensuite d'incapacités de travail successives de l'employé, la fin des rapports de travail a été reportée au 31 mars 2017.
B.
B.a. L'employé a saisi le Tribunal civil de l'arrondissement de La Côte (VD) d'une demande tendant à ce que l'employeuse lui verse 29'930 fr. 55 nets et 8'514 fr. bruts, intérêts en sus. Il a notamment allégué avoir effectué 427 heures supplémentaires, dont 235 devraient encore lui être réglées.
Par jugement du 23 octobre 2018, le Tribunal d'arrondissement a condamné l'employeuse à verser à l'employé la somme brute de 1'410 fr. 44 plus intérêts, à titre de salaire afférent aux vacances. Les premiers juges ont en substance considéré que l'employé n'avait pas été licencié de manière abusive; par ailleurs, aucun élément ne permettait d'établir les heures supplémentaires qu'il aurait effectuées, ni de déterminer si celles-ci avaient été compensées de manière suffisante par des jours de congé.
B.b. Par arrêt du 8 juillet 2019, la Cour d'appel civile du Tribunal cantonal vaudois a rejeté l'appel de l'employé. Ses motifs seront évoqués ci-dessous dans la mesure utile à la discussion.
C.
L'employé recourt en matière civile en reprenant les conclusions de sa demande en paiement.
Aucun échange d'écritures n'a été ordonné.
Considérant en droit :
1.
Les conditions de recevabilité du recours en matière civile sont réalisées sur le principe, notamment celles afférentes à la valeur litigieuse minimale de 15'000 fr. (art. 74 al. 1 let. a LTF) et au délai de recours (art. 100 al. 1 LTF).
2.
2.1. Le recours en matière civile peut être exercé pour violation du droit fédéral (art. 95 let. a LTF). Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Eu égard, toutefois, à l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), 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 (ATF 141 III 86 consid. 2; 140 III 115 consid. 2; 137 III 580 consid. 1.3). Par exception à la règle selon laquelle il applique le droit d'office, il n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de façon détaillée (principe d'allégation, art. 106 al. 2 LTF; ATF 135 III 397 consid. 1.4 in fine).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). 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'art. 95 LTF (art. 105 al. 2 LTF). "Manifestement inexactes" signifie ici "arbitraires" (ATF 140 III 115 consid. 2 p. 117; 135 III 397 consid. 1.5).
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 (ATF 140 III 264 consid. 2.3 p. 266; 136 III 552 consid. 4.2).
3.
Il est constant que le recourant a été employé par l'intimée au bénéfice d'un contrat de travail de durée indéterminée, que l'employeuse a résilié le 30 septembre 2016 pour le 30 novembre suivant. Le litige porte sur deux points: le caractère prétendument abusif du congé (consid. 4) et la rétribution des heures supplémentaires que l'employé prétend avoir effectuées et qui n'auraient pas été compensées par des congés (consid. 5).
4.
4.1. Chaque partie peut décider unilatéralement de mettre fin à un contrat de travail de durée indéterminée (art. 335 al. 1 CO). Ce droit est toutefois limité par les dispositions sur le congé abusif (art. 336 ss CO). L'art. 336 CO énonce une liste non exhaustive de cas de résiliation abusive, concrétisant l'interdiction générale de l'abus de droit (ATF 136 III 513 consid. 2.3).
L'abus est en principe retenu lorsque le motif invoqué n'est qu'un simple prétexte tandis que le véritable motif n'est pas constatable (ATF 130 III 699 consid. 4.1 in fine p. 703; arrêt 4A_224/2018 du 28 novembre 2018 consid. 3.1). Pour dire si un congé est abusif, il faut se fonder sur son motif réel. Déterminer le motif d'une résiliation est une question de fait (ATF 136 III 513 consid. 2.3 in fine p. 515). En revanche, savoir si le congé est abusif relève du droit (arrêt 4A_714/2014 du 22 mai 2015 consid. 3.3).
4.2. La cour cantonale a considéré que le congé n'était pas abusif. Le motif avancé par l'employeuse, à savoir sa réorganisation, était bien réel. Celle-ci avait passé un accord avec C._ SA prévoyant l'obligation de reprendre les chauffeurs de cette société; elle avait conclu trois nouveaux contrats de travail en exécution de cet accord.
4.3. Le recourant reproche à la cour cantonale d'avoir ainsi versé dans l'arbitraire. Il soutient que la véritable cause du licenciement résidait dans ses problèmes de santé (évoqués dans l'arrêt attaqué), lesquels " l'obligea[ie]nt à suivre des traitements médicaux le vendredi en fin d'après-midi "; " les éléments " le démontrant auraient été écartés contre toute logique. Il émet à cet égard deux critiques.
La première porte sur le constat relatif aux "compétences" respectives des trois chauffeurs engagés (permis de conduire de catégorie B) et du recourant (permis de catégorie BE), dont les juges vaudois ont déduit que le poste du recourant n'avait pas été repourvu comme tel. Le recourant s'appuie sur les caractéristiques des deux types de permis (cf. art. 3 s. de l'Ordonnance réglant l'admission à la circulation routière [OAC, RS 741.51]) pour en conclure qu'il n'avait pas des compétences inférieures - étant même titulaire d'un permis plus large -, et qu'il n'avait ainsi pas pu être licencié pour des motifs de restructuration. Cette défense adopte toutefois au moins une prémisse erronée, à savoir qu'une restructuration devrait nécessairement se faire au profit de personnel plus qualifié.
La seconde critique a trait au fait que le recourant, victime d'importants problèmes de santé, avait été empêché à plusieurs reprises de se rendre à son rendez-vous médical hebdomadaire. Les juges cantonaux ont considéré que la faute en revenait à l'intéressé lui-même - lequel arrivait en retard au travail - plutôt qu'à ses supérieurs. Le recourant renvoie à cet égard au témoignage de D._ selon lequel " les tournées n'étaient pas réalisables dans le temps imparti " et fait grief à la cour cantonale de s'en être distancée, au motif que ce témoin était un "proche", ce qu'il conteste. La lecture du procès-verbal d'audition topique révèle que les deux hommes, autrefois collègues de travail, "[s']entend[aient]" encore de temps en temps au téléphone mais ne se voyaient "pas vraiment"; le recourant lui avait "un petit peu parlé de la procédure" l'opposant à l'employeuse sans lui montrer les écritures. Si le terme "proche" n'est pas le plus adéquat, la cour cantonale pouvait sans arbitraire faire preuve de circonspection vis-à-vis d'un tel témoin, et ce quand bien même il était encore employé par la partie adverse au moment de son audition, et partant dans une position pouvant inciter à une certaine réserve vis-à-vis de son employeuse. Qui plus est, pour retenir la constatation litigieuse dont l'importance est toute relative, la Cour d'appel s'est appuyée sur d'autres arguments dont le recourant ne dit mot, ce qui clôt définitivement toute discussion.
L'autorité d'appel n'a de toute évidence pas apprécié les preuves de manière arbitraire. Partant, sa conclusion selon laquelle le congé n'était pas abusif doit être confirmée.
5.
Le second point litigieux porte sur les heures supplémentaires prétendument exécutées par l'employé, dont celui-ci exige rétribution.
5.1.
5.1.1. Conformément à l'art. 8 CC, il incombe au travailleur de prouver qu'il a effectué des heures supplémentaires, respectivement de prouver la quotité des heures dont il demande la rétribution (ATF 129 III 171 consid. 2.4 p. 176).
Lorsqu'il est établi que le salarié a effectué des heures supplémentaires dont il ne parvient pas à prouver le nombre avec exactitude, le juge peut en faire l'estimation par application analogique de l'art. 42 al. 2 CO. Une telle évaluation se fonde sur le pouvoir d'appréciation des preuves et relève de la constatation des faits, que le Tribunal fédéral revoit uniquement sous l'angle de l'arbitraire. Ressortit en revanche au droit la question de savoir quel degré de preuve s'applique. Cela étant, la facilitation probatoire offerte par l'art. 42 al. 2 CO ne dispense nullement le travailleur de fournir au juge, dans la mesure raisonnablement exigible, tous les éléments constituant des indices du nombre d'heures supplémentaires accomplies. La conclusion selon laquelle les heures supplémentaires ont réellement été effectuées dans la mesure alléguée doit s'imposer au juge avec une certaine force (cf., entre autres, arrêts 4A_493/2019 du 19 mai 2020 consid. 5.3.1; 4A_285/2019 du 18 novembre 2019 consid. 6.2.3; 4A_338/2011 du 14 décembre 2011 consid. 2.2, in PJA 2012 282; 4A_543/2011 du 17 octobre 2011 consid. 3.1; ATF 128 III 271 consid. 2; 133 III 462 consid. 4.4.2 p. 471; 122 III 219 consid. 3).
5.1.2. L'art. 46 LTr (Loi sur le travail; RS 822.11) et les dispositions d'exécution y relatives obligent l'employeur à enregistrer et conserver diverses données concernant chaque travailleur, en particulier les durées quotidienne et hebdomadaire du travail effectivement fourni, y compris le travail compensatoire et le travail supplémentaire, et les jours de repos ou de repos compensatoire accordés (art. 73 al. 1 let. c et d OLT 1 [Ordonnance 1 relative à la Loi sur le travail; RS 822.111]).
Les conséquences que peut entraîner, au niveau probatoire, la violation d'une obligation de ce type sont discutées. D'aucuns estiment qu'elle peut induire un renversement du fardeau de la preuve, tandis que d'autres proposent d'y remédier au niveau de l'appréciation des preuves - une autre solution étant de se tourner vers l'un ou l'autre remède en fonction de l'intensité du comportement litigieux (cf. LARDELLI/VETTER, in Basler Kommentar, 6e éd. 2018, n° 81 ad art. 8 CC et les auteurs cités). Ces différentes approches n'ont pas nécessairement une incidence pratique (cf. HANS PETER WALTER, in Berner Kommentar, 2012, n° 321 ad art. 8 CC).
A cet égard, la cour de céans a constaté que ni l'art. 46 LTr, ni l'OLT 1 ne prévoyait un renversement du fardeau de la preuve. Celui-ci n'était envisageable qu'en cas d'entrave à la preuve constitutive d'un abus de droit, soit par exemple lorsque l'employeur détruisait le moyen de preuve pour empêcher le travailleur d'établir celle-ci. Un tel abus ne résultait pas du seul fait que l'employeur n'avait pas satisfait à son devoir d'enregistrement. Ceci dit, l'état de nécessité probatoire et le comportement de l'employeur pouvaient être pris en compte dans l'appréciation des preuves (arrêt 4C.307/2006 du 26 mars 2007 consid. 3.1, approuvé par ROGER RUDOLPH, in DTA 2007 239). En ce domaine, la doctrine semble aller dans le même sens, préconisant de faciliter la preuve par une diminution du degré de preuve ou une estimation (cf. RUDOLPH, in Arbeitsgesetz, Kommentar, [Geiser et alii éd.] 2005, également édité en français, nos 15-18 ad art. 46 LTr; PORTMANN/RUDOLPH, in Basler Kommentar, 7e éd. 2020, nos 6-6a ad art. 321c CO; ALFRED BLESI, in ArG Kurzkommentar, [Blesi et alii éd.] 2018, n° 31 ad art. 46 LTr; MÜLLER/MADUZ, ArG Kommentar, 8e éd. 2017, n° 6 ad art. 46 LTr).
Par ailleurs, dans des affaires concernant des chauffeurs, la cour de céans a jugé qu'au regard des obligations de contrôle et d'enregistrement échéant à l'employeur (cf. art. 16 OTR 1), il n'était pas réaliste d'exiger du travailleur qu'il tienne lui-même un décompte exact de ses heures supplémentaires. Il n'en demeurait pas moins qu'il pouvait établir, en particulier par témoins, si et dans quelle mesure approximative il avait accompli des heures supplémentaires (arrêts 4A_501/2013 du 31 mars 2014 consid. 6.3; 4C.146/2003 du 28 août 2003 consid. 5.2; sur la preuve testimoniale dans ce cas de figure, cf. aussi arrêt précité 4A_543/2011 consid. 3.1.3).
5.2. In casu, la cour cantonale a jugé que le recourant n'avait pas prouvé avoir effectué 427 heures supplémentaires, dont à déduire 4 x 48 heures qui auraient été compensées par des congés, ce qui laisserait subsister un solde de 235 heures à rétribuer. Les "récapitulatifs des heures déclarées" par le travailleur et les relevés du tachygraphe ne permettaient pas de retenir l'existence d'heures supplémentaires non compensées. Les données tachygraphiques révélaient certes qu'il lui était arrivé à plusieurs reprises de travailler jusqu'à 16 heures et 50 minutes par jour et jusqu'à 55 heures par semaine, mais ceci n'était pas systématique. L'interrogatoire de l'intéressé n'avait qu'une force probante limitée. Subsistait le témoignage de D._, qui devait être apprécié avec prudence; ce seul témoignage, confronté aux relevés du tachygraphe, ne permettait pas de se convaincre "avec une certaine force" que les heures supplémentaires non compensées avaient réellement été effectuées et ce, quand bien même lesdits relevés n'étaient que partiels, puisqu'ils comptabilisaient uniquement le temps passé dans les camions à l'exclusion des camionnettes, et ne s'enclenchaient qu'une fois le chauffeur au volant de son véhicule. Le travailleur aurait pu disposer de moyens de preuves supplémentaires, tels que des décomptes fournis mensuellement à l'employeuse, comme l'avait fait le témoin D._.
5.3. Le recourant dénonce une appréciation arbitraire des preuves et une violation de l'art. 42 al. 2 CO. Il explique que les 427 heures qu'il a articulées correspondent - sur une période de deux ans (du 1er octobre 2014 au 30 septembre 2016) - à 4,6 heures de travail supplémentaire par semaine et soutient que la cour cantonale aurait dû prêter foi aux déclarations du témoin D._ évoquant des journées de dix heures de travail et des semaines à 60 heures, d'autant qu'elles seraient corroborées par les données tachygraphiques mentionnées ci-dessus. Le recours à l'art. 42 al. 2 CO se justifierait d'autant plus qu'il incombait à l'employeuse de mettre en place un système de contrôle horaire, respectivement de documenter les horaires de ses employés conformément aux art. 46 LTr et 73 OLT 1. Or, elle n'enregistrait que le temps passé dans les camions, ce qui lui évitait - d'après lui - de comptabiliser les heures supplémentaires.
5.4. Le recourant ne plaide pas que la violation de l'obligation d'enregistrer le temps de travail effectif telle que prescrite par l'art. 46 LTr et l'OLT 1 devrait conduire à un renversement du fardeau de la preuve. A juste titre. Il suffit en effet de constater qu'une situation d'abus de droit permettant éventuellement d'envisager un tel renversement fait défaut. Pour le surplus, l'autorité précédente n'a pas méconnu l'art. 42 al. 2 CO, ni la jurisprudence et la doctrine topiques, concernant les allègements en matière de preuve. Elle est toutefois arrivée à la conclusion que l'employé eût pu et dû fournir davantage d'indices quant au nombre d'heures supplémentaires accomplies, les éléments produits n'étant pas de nature à imposer les faits "avec une certaine force". Ce faisant, l'autorité précédente a fait une appréciation des preuves, dont on ne voit pas qu'elle serait entachée d'arbitraire.
Le recourant se plaint que les juges vaudois ont accueilli avec "prudence" le témoignage de D._. Il a déjà été expliqué qu'une certaine circonspection était de mise (consid. 4.3 supra). Au surplus, le recourant a renoncé à l'audition de deux autres témoins censés attester du nombre d'heures supplémentaires. Enfin, il ne dit mot quant au fait qu'il aurait pu, selon les juges vaudois, fournir mensuellement à l'employeuse des décomptes de ses heures, comme le témoin D._. On relèvera enfin qu'il ne tire pas argument du fait qu'il ne pouvait prétendre au paiement des heures supplémentaires, selon l'art. 4 du contrat - clause dont la cour cantonale a renoncé à examiner la portée.
C'est dès lors à juste titre que l'autorité précédente a rejeté la conclusion tendant à la rémunération des heures supplémentaires alléguées.
6.
Le recours s'avère intégralement mal fondé et doit être rejeté. Partant, le recourant supportera les frais de procédure, fixés selon le tarif ordinaire étant donné la valeur litigieuse (cf. art. 65 al. 4 let. c LTF a contrario). Il n'aura pas à verser des dépens à son adverse partie qui n'a pas été invitée à se déterminer sur le recours.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais de procédure, fixés à 2'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud.
Lausanne, le 16 juin 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
La greffière : Monti