Faits :
A.
La société X._ (ci-après: X._) est propriétaire d'une parcelle à... sur laquelle elle entendait construire un immeuble adossé à une importante falaise. Sur proposition de l'architecte, Z._ SA Bureau d'Ingénieurs Conseils (ci-après: Z._ SA) a été chargée de diverses prestations en relation avec des travaux spéciaux. A la suite de différends, le mandat a été révoqué. Z._ SA a alors adressé à X._ une facture de 17'820 fr., que la destinataire a contestée.
B.
Les parties se sont mises d'accord pour soumettre le litige à un arbitre unique. A défaut d'entente sur la personne de l'arbitre, celui-ci a été désigné par le juge d'appui étatique en la personne de l'avocat A._.
Par sentence du 19 avril 2016, l'arbitre a dit que X._ devait payer à Z._ SA le montant de 17'820 fr. avec intérêts à 5% l'an dès le 12 mai 2011.
C.
Assistée d'un avocat qui résiliera son mandat par la suite, X._ interjette un recours en matière civile. Elle demande l'annulation de la sentence arbitrale.
Tout en contestant la recevabilité du recours, Z._ SA conclut au rejet de celui-ci.
L'arbitre a déposé de brèves observations.
La recourante a répliqué.
Par ordonnance du 13 juillet 2016, la Présidente de la cour de céans a accordé l'effet suspensif requis par la recourante.

Considérant en droit :
1.
Dans l'arbitrage interne, le recours en matière civile est recevable contre les décisions arbitrales aux conditions prévues aux art. 389 à 395 CPC (art. 77 al. 1 let. b LTF). La procédure est régie par la LTF (art. 389 al. 2 CPC), dont certaines dispositions sont toutefois déclarées inapplicables par l'art. 77 al. 2 LTF. Seuls les griefs invoqués et motivés sont examinés (art. 77 al. 3 LTF).
Dirigé contre une sentence finale (art. 392 let. a CPC), le recours a été déposé en temps utile (art. 100 al. 1 LTF) par la partie qui a succombé dans ses conclusions (art. 76 al. 1 LTF).
L'intimée est d'avis que le recours est irrecevable en raison d'une valeur litigieuse insuffisante. Dans les affaires pécuniaires, le recours en matière civile n'est recevable que si la valeur litigieuse s'élève à 30'000 fr. au moins en cas de contestation ne relevant ni du droit du bail à loyer ni du droit du travail (art. 74 al. 1 let. b LTF); lorsque la valeur litigieuse minimale n'est pas atteinte, le recours sera recevable si la contestation soulève une question juridique de principe (art. 74 al. 2 let. a LTF). L'art. 74 LTF ne figure pas parmi les dispositions déclarées inapplicables par l'art. 77 al. 2 LTF. Comme le recours constitutionnel subsidiaire n'est pas ouvert contre une sentence arbitrale (cf. art. 113 LTF), la question se pose de savoir si le recours en matière civile dirigé contre une telle décision est soumis à l'exigence d'une valeur litigieuse minimale. Le Tribunal fédéral ne s'est jamais prononcé sur ce point, que ce soit dans le cadre d'un arbitrage international ou d'un arbitrage interne.
Dans le cas présent, la question souffre encore de rester indécise, car les griefs soulevés dans le recours se révèlent de toute manière mal fondés pour les motifs exposés ci-dessous.
2.
Invoquant le motif de recours prévu à l'art. 393 let. a CPC, la recourante se plaint de ce que l'arbitre unique aurait été désigné irrégulièrement. A son avis, il fallait nécessairement nommer un ingénieur civil ou un géotechnicien pour trancher le litige, et non un avocat, fût-il spécialiste FSA en droit de la construction et de l'immobilier, à l'instar de l'arbitre désigné en l'occurrence.
2.1. L'art. 393 let. a CPC correspond à l'art. 190 al. 2 let. a LDIP applicable en matière d'arbitrage international. Par régularité de la désignation de l'arbitre unique, il faut entendre la manière dont l'arbitre a été nommé et l'absence de motifs de récusation; la récusation est notamment possible lorsque l'arbitre ne répond pas aux qualifications convenues par les parties (cf. art. 180 al. 1 let. a LDIP). Celui qui renonce par anticipation, en concluant une convention d'arbitrage, au droit - de rang constitutionnel et conventionnel - à voir sa cause entendue par un tribunal établi par la loi, peut raisonnablement s'attendre à ce que les membres du tribunal arbitral ou l'arbitre unique, non seulement offrent des garanties suffisantes d'indépendance et d'impartialité, mais encore répondent aux exigences que les parties ont fixées d'un commun accord (nombre, qualifications, mode de désignation) ou qui résultent d'un règlement d'arbitrage adopté par elles, voire de dispositions légales applicables à titre subsidiaire (cf. <ref-ruling> consid. 4).
2.2. La procédure suivie pour désigner l'arbitre et l'indépendance de l'arbitre désigné ne sont pas contestées. Seules les qualifications de l'arbitre pour juger le cas d'espèce sont mises en cause. Or, il ne ressort pas de la sentence - et la recourante elle-même ne le prétend pas - que les parties auraient fixé d'un commun accord des exigences en matière de qualifications que l'arbitre désigné ne remplirait pas. La recourante ne soutient pas non plus que des exigences au sujet de la formation de l'arbitre découleraient d'un règlement d'arbitrage applicable en l'espèce ou de dispositions légales. Le grief est dès lors mal fondé.
Au passage, il sied de relever que le juge étatique n'a en général pas non plus des connaissances techniques spécifiques; le cas échéant, il fait appel à un expert, comme l'a d'ailleurs fait l'arbitre dans le cas présent.
3.
La recourante dénonce une violation de son droit d'être entendue (art. 393 let. d CPC), au motif que sa requête d'une seconde expertise a été écartée.
3.1. L'art. 393 let. d CPC précise que la sentence issue d'un arbitrage interne peut être attaquée si l'égalité des parties ou leur droit d'être entendues en procédure contradictoire n'a pas été respecté. Ce motif de recours a été repris des règles régissant l'arbitrage international. En conséquence, la jurisprudence relative à l'art. 190 al. 2 let. d LDIP est, en principe, également applicable dans le domaine de l'arbitrage interne.
Tel qu'il est garanti par l'art. 182 al. 3 et l'art. 190 al. 2 let. d LDIP, le droit d'être entendu en procédure contradictoire n'a en principe pas un contenu différent de celui consacré en droit constitutionnel. Ainsi, il a été admis, dans le domaine de l'arbitrage, que chaque partie a le droit de s'exprimer sur les faits essentiels pour le jugement, de présenter son argumentation juridique, de proposer, pour autant qu'elle le fasse à temps et dans les formes prévues, ses moyens de preuve sur des faits pertinents et de prendre part aux séances du tribunal arbitral. Vu la nature formelle du droit d'être entendu, la violation de cette garantie entraîne l'annulation de la sentence attaquée (<ref-ruling> consid. 4.1 p. 288 s. et les arrêts cités).
3.2. L'arbitre a rejeté la requête d'une seconde expertise présentée par la recourante lors de l'audience de jugement du 7 décembre 2015, au motif qu'elle devait être présentée au plus tard lors de la première audience du 17 septembre 2013 et qu'elle était donc tardive. La recourante oppose une écriture de l'arbitre du 29 octobre 2014 par laquelle celui-ci transmet le rapport d'expertise B._ aux parties et leur fixe un délai pour d'éventuelles demandes d'explication ou questions complémentaires ou, point sur lequel la recourante insiste, pour requérir une deuxième expertise. Dans ses observations au recours, l'arbitre allègue, sans de plus amples explications, que la deuxième expertise requise par la recourante ne portait pas sur les mêmes faits que l'expertise B._, mais sur d'autres faits. Dans sa réplique, la recourante ne conteste pas réellement et concrètement ces dires de l'arbitre, alors que cela lui aurait été possible sans difficultés particulières; elle se limite à la considération générale selon laquelle demander une contre-expertise signifie demander une expertise destinée à contrôler les conclusions d'une précédente expertise; elle ajoute toutefois qu'une contre-expertise peut par ailleurs répondre à d'autres éléments qui font partie de la procédure ou qui nécessitent une réponse, comme par exemple le point de savoir qui a rompu d'abord le contrat d'adjudication à forfait.
Les parties ont discuté de l'expertise à ordonner lors de l'audience du 17 septembre 2013. Mandat a alors été donné à l'expert en géotechnique B._ de répondre à une seule question: "Est-ce que [l'intimée] a effectué des prestations correspondant à la phase 32 décrite dans le contrat signé par les parties le 25 novembre 2010?". L'expert a déposé son rapport, puis a répondu à des questions de la recourante dans un rapport complémentaire du 14 octobre 2015. A la fin de l'audience de jugement du 7 décembre 2015, la recourante, à teneur du procès-verbal manuscrit figurant au dossier, a requis "une expertise par un architecte sur les allégués 50 à 69". Il s'agit d'allégués que la recourante avait présentés dans son mémoire de réponse du 25 juillet 2013. L'intimée les avait contestés lors de l'audience du 17 septembre 2013; la recourante avait alors uniquement requis l'audition d'un témoin au sujet des allégués 63 à 66, sans demander d'expertise au sujet de ses allégués 50 à 69 pourtant contestés.
Comme la recourante le relève, une contre-expertise ne peut logiquement pas être requise au début de la procédure probatoire, mais seulement une fois l'expertise principale déposée. En l'espèce, il n'est toutefois pas établi que l'expertise requise par la recourante lors de l'audience finale de jugement était une contre-expertise, à savoir une expertise portant sur les mêmes questions que l'expertise B._. De son libellé se référant uniquement aux allégués 50 à 69, sans référence explicite à la question soumise à l'expert B._, on ne saurait déduire que la seconde expertise se rapportait aux mêmes faits que la première. Il eût appartenu à la recourante de le montrer dans le détail, ce qu'elle n'a pas fait, alors que l'arbitre avait déclaré que la seconde expertise devait porter sur d'autres faits. Au contraire, la recourante s'est limitée à des remarques très générales sur le sens d'une contre-expertise, tout en les complétant par des considérations selon lesquelles une contre-expertise pouvait porter également sur des questions nouvelles. En conclusion, il n'est pas démontré que l'expertise demandée par la recourante devait porter sur les mêmes faits que l'expertise B._ et, partant, qu'elle ne pouvait pas être requise au début de la procédure probatoire.
L'arbitre a jugé que la requête d'expertise devait être présentée d'entrée de cause et ne pouvait plus l'être à l'audience finale. La recourante n'allègue aucune disposition de procédure que, ce faisant, l'arbitre aurait appliquée de manière arbitraire. En ne donnant pas suite à une requête de preuve tardive, l'arbitre n'a pas violé le droit d'être entendu de la recourante.
Pour le surplus, comme l'arbitre n'a pas rejeté la requête de seconde expertise parce qu'il l'estimait inutile ensuite d'une appréciation anticipée, les critiques de la recourante au sujet du caractère prétendument lacunaire, peu clair et contradictoire de l'expertise B._ sont sans pertinence.
4.
En dernier lieu, la recourante se plaint d'arbitraire (art. 393 let. e CPC), au motif que l'arbitre n'aurait pas constaté que le mandat la liant à l'intimée avait été résilié par cette dernière de manière implicite et qu'elle-même s'était limitée à en prendre acte.
4.1. Une constatation de fait est arbitraire au sens de l'art. 393 let. e CPC uniquement si le tribunal arbitral, à la suite d'une inadvertance, s'est mis en contradiction avec les pièces du dossier, soit en perdant de vue certains passages d'une pièce déterminée ou en leur attribuant un autre contenu que celui qu'ils ont réellement, soit en admettant par erreur qu'un fait est établi par une pièce alors que celle-ci ne donne en réalité aucune indication à cet égard. L'objet du grief d'arbitraire en matière de faits est restreint: il ne porte pas sur l'appréciation des preuves et les conclusions qui en sont tirées, mais uniquement sur les constatations de fait manifestement réfutées par des pièces du dossier. La façon dont le tribunal arbitral exerce son pouvoir d'appréciation ne peut pas faire l'objet du recours; le grief d'arbitraire est limité aux constatations de fait qui ne dépendent pas d'une appréciation, c'est-à-dire à celles qui sont inconciliables avec des pièces du dossier (<ref-ruling> consid. 3.6 et 3.7; arrêt 4A_599/2014 du 1er avril 2015 consid. 3.1, in SJ 2015 I p. 405).
4.2. La recourante reproche à l'arbitre de ne pas avoir constaté un acte implicite de l'intimée. Une telle critique sort manifestement du cadre du grief d'arbitraire pouvant être invoqué dans un recours contre une sentence rendue dans une procédure d'arbitrage interne.
5.
Sur le vu de ce qui précède, le recours, à supposer qu'il soit recevable, est mal fondé.
La recourante qui succombe supportera les frais judiciaires (art. 66 al. 1 LTF) et versera des dépens à l'intimée (art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, fixés à 2'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à l'arbitre unique.
Lausanne, le 28 juillet 2016
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann