The secret life of a waitress: my nine nightmare customers – from flirts to constant complainers

The secret life of a waitress: my nine nightmare customers – from flirts to constant complainers

The Guardian Headline Full font family includes several styles, each with different weights and italics. The light version (weight 300) comes in both regular and italic styles, as does the regular version (weight 400). The medium (weight 500) and semibold (weight 600) styles also have regular and italic variants. Each font file is available in WOFF2, WOFF, and TrueType formats, hosted on the Guardian’s servers.@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: Guardian Titlepiece;
src: url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@media (min-width: 71.25em) {
.content__main-column–interactive {
margin-left: 160px;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive {
margin-left: 240px;
}
}

.content__main-column–interactive .element-atom {
max-width: 620px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-atom {
max-width: 100%;
}
}

.content__main-column–interactive .element-showcase {
margin-left: 0;
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-showcase {
max-width: 620px;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-showcase {
max-width: 860px;
}
}

.content__main-column–interactive .element-immersive {
max-width: 1100px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-immersive {
width: calc(100vw – var(–scrollbar-width, 0px));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
}
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(-20px);
width: calc(100% + 60px);
}
}

@media (max-width: 71.24em) {
.content__main-column–interactive .element-immersive {
margin-left: 0;
margin-right: 0;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(0);
width: auto;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive .element-immersive {
max-width: 1260px;
}
}

.content__main-column–interactive p,
.content__main-column–interactive ul {
max-width: 620px;
}

.content__main-column–interactive:before {
position: absolute;
top: 0;
height: calc(100% + 15px);
min-height: 100px;
content: “”;
}

@media (min-width: 71.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
z-index: -1;
left: -10px;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
}
}The provided text appears to be a fragment of CSS code, which is a styling language for web pages. It contains various style rules, media queries, and color definitions, likely for a news or article website. The code sets properties like margins, padding, colors, and typography for different elements and themes, including a dark mode.The CSS code defines styles for various elements on a webpage. It sets specific fonts, sizes, and layouts for drop caps, pullquotes, and immersive elements. The code includes responsive design rules that adjust margins, padding, and grid layouts for different screen sizes, ensuring proper display on devices from mobile to desktop.The CSS code defines styles for a layout wrapper, adjusting grid structures, typography, and element visibility across different screen sizes. For larger screens, it sets specific grid templates, modifies headline font sizes and widths, and hides certain elements like lines and social components. Borders and spacing are customized using CSS variables, and media queries ensure responsive behavior from medium to extra-large viewports.@media (max-width: 46.24em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=”media”] {
width: calc(100vw – var(–scrollbar-width, 0px));
margin-left: -10px;
}
}

@media (max-width: 46.24em) and (min-width: 30em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=”media”] {
margin-left: -20px;
}
}

.furniture-wrapper figcaption {
position: absolute;
bottom: 0;
padding: 4px 10px 12px;
background-color: var(–captionBackground);
color: var(–captionText);
max-width: unset;
width: 100%;
margin-bottom: 0;
min-height: 46px;
}

.furniture-wrapper figcaption span {
color: var(–headerBorder);
}

.furniture-wrapper figcaption span svg {
fill: var(–headerBorder);
}

.furniture-wrapper figcaption span:nth-of-type(1) {
display: none;
}

.furniture-wrapper figcaption span:nth-of-type(2) {
display: block;
max-width: 90%;
}

@media (min-width: 30em) {
.furniture-wrapper figcaption {
padding: 4px 20px 12px;
}
}

.furniture-wrapper figcaption.hidden {
opacity: 0;
}

.furniture-wrapper #caption-button {
display: block;
position: absolute;
bottom: 10px;
right: 8px;
z-index: 30;
background-color: var(–captionBackground);
border: none;
border-radius: 50%;
padding: 6px 5px 5px;
}

.furniture-wrapper #caption-button svg {
transform: scale(0.85);
}

@media (min-width: 30em) {
.furniture-wrapper #caption-button {
right: 10px;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive:before {
top: -12px !important;
height: calc(100% + 24px) !important;
}
}

.content__main-column–interactive h2 {
max-width: 620px;
}

:root {
–new-pillar-colour: var(–darkmode-pillar, var(–darkModeFeature)) !important;
–headerBorderColor: #606060;
–darkModeFeature: #ff5943;
}

nav + section {
display: none;
}

nav + aside {
display: none;
}

aside + section {
display: none;
}

.furniture-wrapper {
background-color: var(–darkBackground);
margin: 0 -10px;
padding: 0 10px 4px;
}

@media (min-width: 30em) {
.furniture-wrapper {
margin: 0 -20px;
padding: 0 20px 8px;
}
}

@media (min-width: 61.25em) {
.furniture-wrapper {
padding: 0 20px;
}
}

@media (min-width: 81.25em) {
.furniture-wrapper:before {
content: “”;
width: calc((100vw – 1298px) / 2);
height: 100%;
position: absolute;
left: calc((100vw – 1298px) / -2);
background-color: var(–darkBackground);
border-right: 1px solid var(–headerBorderColor);
}
.furniture-wrapper:after {
content: “”;
width: calc((100vw – 1298px) / 2);
height: 100%;
position: absolute;
right: calc((100vw – 1298px) / -2);
background-color: var(–darkBackground);
}
}

.furniture-wrapper .article-header,
.furniture-wrapper [data-gu-name=”title”] a,
.furniture-wrapper [data-gu-name=”title”] span {
color: var(–new-pillar-colour, –darkModeFeature);
}

@media (min-width: 61.25em) {
.furniture-wrapper #headline > div:first-child,
.furniture-wrapper [data-gu-name=”headline”] > div:first-child,
.furniture-wrapper .headline > div:first-child {
border-top: 1px solid var(–headerBorderColor);
}
}

.furniture-wrapper #headline h1,
.furniture-wrapper [data-gu-name=”headline”] h1,
.furniture-wrapper .headline h1 {
font-weight: 700;
color: #dcdcdc;
}

.furniture-wrapper #headline figure,
.furniture-wrapper [data-gu-name=”headline”] figure,
.furniture-wrapper .headline figure {
margin-top: 0;
margin-bottom: 2px;
}

@media (min-width: 71.25em) {
.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=”meta”]:before {
background-color: var(–headerBorderColor);
}
}

.furniture-wrapper #meta details,
.furniture-wrapper #meta summary,
.furniture-wrapper #meta summary span,
.furniture-wrapper [data-gu-name=”meta”] details,
.furniture-wrapper [data-gu-name=”meta”] summary,
.furniture-wrapper [data-gu-name=”meta”] summary span {
color: #dcdcdc;
}

.furniture-wrapper #meta .meta__social a,
.furniture-wrapper #meta .meta__social button,
.furniture-wrapper [data-gu-name=”meta”] .meta__social a,
.furniture-wrapper [data-gu-name=”meta”] .meta__social button {
border-color: var(–headerBorderColor);
color: var(–new-pillar-colour, –darkModeFeature);
}

.furniture-wrapper #meta .meta__social a svg,
.furniture-wrapper #meta .meta__social button svg,
.furniture-wrapper [data-gu-name=”meta”] .meta__social a svg,
.furniture-wrapper [data-gu-name=”meta”] .meta__social button svg {
fill: var(–new-pillar-colour, –darkModeFeature);
}

.furniture-wrapper #meta .meta__social a:hover,
.furniture-wrapper #meta .meta__social button:hover,
.furniture-wrapper [data-gu-name=”meta”] .meta__socialWhen hovering over links or social media buttons, the text color changes to a dark background color, and the background becomes a new pillar color or dark mode feature. Icons in these buttons also fill with the dark background color.

Text within meta sections appears in a light gray (#dcdcdc), while links are colored with the new pillar or dark mode feature color. Hovering over these links changes their color and underline to match the same theme.

In standfirst sections, links have no bottom border and are underlined with a color based on the header border, defaulting to light gray. On hover, the underline shifts to the new pillar or dark mode feature color. Paragraphs and list items in these sections are also light gray.

For larger screens (over 61.25em), the first paragraph in a standfirst gets a top border matching the header border color, which is removed on even larger screens (over 71.25em). At that same breakpoint, a background line appears before the standfirst.

On medium screens (over 46.25em), the furniture wrapper adds sidebars with a dark background and a border, adjusting their width based on the viewport. These sidebars expand or contract at different breakpoints (61.25em, 71.25em, and 81.25em) to maintain layout proportions as the screen size changes.For screens wider than 1298px, the right position is calculated as half the difference between the viewport width (minus any scrollbar) and 1298px, applied negatively. Within the furniture wrapper, the stroke color for SVGs in keyline-4 and lines elements uses the header border color variable. Similarly, border colors for social and comment elements in the meta section also adopt this variable.

In the article body, h2 headings have a font weight of 200, but if they contain a strong element, the weight increases to 700.

Several font faces are defined for the “Guardian Headline Full” family, each with specific weights and styles (light, regular, medium, semibold, and their italics), sourcing from woff2, woff, and ttf formats hosted on the Guardian’s assets domain.@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”);
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”);
font-weight: 600;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: Guardian Titlepiece;
src: url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

:root:has(.ios, .android) {
–darkBackground: #1a1a1a;
–feature: #c70000;
–darkmodeFeature: #ff5943;
–new-pillar-colour: var(–primary-pillar, var(–feature));
}

@media (prefers-color-scheme: dark) {
:root:has(.ios, .android) {
–new-pillar-colour: var(–darkmode-pillar, var(–darkmodeFeature));
}
}

body.ios #feature-article-container .element-atom:first-of-type + p:first-of-type:first-letter,
body.ios #feature-article-container .element-atom:first-of-type + .sign-in-gate + p:first-of-type:first-letter,
body.ios #feature-article-container .element-atom:first-of-type + #sign-in-gate + p:first-of-type:first-letter,
body.ios #standard-article-container .element-atom:first-of-type + p:first-of-type:first-letter,
body.ios #standard-article-container .element-atom:first-of-type + .sign-in-gate + p:first-of-type:first-letter,
body.ios #standard-article-container .element-atom:first-of-type + #sign-in-gate + p:first-of-type:first-letter,
body.ios #comment-article-container .element-atom:first-of-type + p:first-of-type:first-letter,
body.ios #comment-article-container .element-atom:first-of-type + .sign-in-gate + p:first-of-type:first-letter,
body.ioThis CSS code sets styles for article containers on Android and iOS devices. It adjusts the color of the first letter in certain paragraphs to match a secondary pillar color. It also hides article headers by setting their height to zero and modifies the layout of furniture wrappers, including labels, headlines, and images. Labels are styled with bold, capitalized text in specific fonts and colors. Headlines are set to 32px, bold, with padding and a dark color. Images are positioned with relative margins and full width, adjusting for scrollbars.For images within the furniture wrapper, set the background to transparent and the width to the full viewport minus the scrollbar width, with the height adjusting automatically.

For the standfirst section in feature, standard, and comment articles on both iOS and Android, add 4 pixels of padding to the top, 24 pixels to the bottom, and a negative 10-pixel margin on the right.

Within the standfirst section, set paragraph text to use the Guardian Headline font family.

For links inside the standfirst section, including those within list items, set the color to the new pillar color, remove any background image, underline the text with an offset of 6 pixels using the header border color, and remove any bottom border. On hover, maintain these styles.When links within the standfirst are hovered over, the underline color changes to the new pillar color. On iOS and Android devices, the meta section in feature, standard, and comment articles has no margin. Within this meta section, the byline, author name, and related links also adopt the new pillar color. The meta__misc area has no padding, and any SVG icons inside it are outlined with the new pillar color. For showcase elements, the caption button is displayed as a flex container, centered with 5px padding, measuring 28px by 28px, and positioned 14px from the right.For iOS and Android devices, the article body in feature, standard, and comment containers has no side padding.

For non-thumbnail, non-immersive images within these article bodies, the figure elements have no margin, a width calculated from the viewport minus 24 pixels and any scrollbar width, and an automatic height. Their captions have no padding.

Immersive image figures within these containers have a width calculated from the viewport minus any scrollbar width.

Quoted blockquotes within the prose of these article bodies use the new pillar color for their decorative before element.

Links within the prose use the primary pillar color, have an underline with a 6px offset, and use the header border color for the underline, with no background image. On hover, the underline color changes to the new pillar color.

In dark mode, the following styles apply…On iOS and Android devices, the furniture wrapper for feature, standard, and comment articles has a background color of #1a1a1a. Within these wrappers, content labels use the CSS variable –new-pillar-colour for their text color. The main headline (h1.headline) has no background color and uses –headerBorder for its text color, marked as important. Paragraphs within the standfirst also adopt the –headerBorder color for their text. Links in the standfirst, along with author bylines and author links in the meta section, are styled with the –new-pillar-colour. Icons (svg) in the meta__misc area use –new-pillar-colour for their stroke. Additionally, captions (figcaption) for showcase images within these article containers are styled consistently across both operating systems.For iOS and Android devices, the text color of captions in showcase images within feature, standard, and comment articles is set to the dateline color.

For quoted text blocks within the article body on both iOS and Android, the text color uses the new pillar color.

The main content areas in feature, standard, and comment articles for both iOS and Android have their background color set to a dark background, and this setting is enforced as important.

Additionally, for iOS devices, the first letter of a paragraph following specific elements like atoms or sign-in gates in these article types is styled as a drop cap.This appears to be a CSS selector targeting the first letter of paragraphs in various article containers on iOS and Android devices. It specifically applies to paragraphs that come after certain elements like `.element-atom`, `.sign-in-gate`, or `#sign-in-gate` within different article body sections.The provided text appears to be a fragment of CSS code, not standard English prose. It contains selectors, properties, and media queries for styling a webpage. To rewrite it in fluent, natural English while keeping the meaning intact, I would describe its purpose and function.

This CSS code defines styling rules for a website, likely a news or article platform. It specifies visual details like colors, padding, and font sizes for different sections such as article bodies, comments, and interactive content. The rules adjust for various device types (like Android and iOS) and user preferences, such as dark mode, which changes color schemes to darker shades for better readability in low-light conditions.On iOS and Android devices, hide the article header in feature, standard, and comment article containers by setting its opacity to zero. For these same containers, remove any margin from the furniture wrapper. Set the color of content labels within the furniture wrapper to use a custom CSS property for the new pillar color, defaulting to a dark mode feature color. Ensure the main headline text appears in a light gray color. Style links within the article header or title element to also use the new pillar color variable. For the meta section, create a subtle striped background using a repeating linear gradient based on the header border color. Finally, apply these same meta section and byline styles consistently across all specified containers and platforms.This CSS code sets styles for different article types on iOS and Android devices. It defines colors for bylines, links, icons, and labels within the meta sections of feature, standard, and comment articles. The colors vary based on the device and article container, using specific hex values and CSS variables for consistency.This CSS code sets styles for different article containers on iOS and Android devices. It defines colors for icons in meta sections, applies a top border to meta sections on larger screens, and adjusts margins for meta content. The styles also target paragraphs and lists within article bodies across various container types.Influencers have been having a tough time at restaurants lately. They’re just trying to film a quick video or snap a few photos of their meal, and then restaurateur Jeremy King—of London’s Ivy and Wolseley—writes an article claiming they’re ruining the dining experience for “bona fide guests,” something he says staRestaurants are “desperately trying to stop” this. I’ve read articles calling TikTok the end of the London dining scene. Friends’ parents have even said they would get up and leave if they were sitting next to anyone filming their meal.

This surprises me. I have worked as a waitress for over five years, a job I love, and most of the joy comes from the customers I serve. Of course, for every ten great customers, you’re bound to get one who isn’t so great—I’ve certainly had my fair share.

So I can confidently say that influencers are the least of my worries. In fact, I’d rank them and their camera crews at the very bottom of my list of the rudest customers I’ve encountered. Here is that list, in the hope that after reading it, you’ll agree influencers aren’t the ultimate dining room devil.

1. The Arrogant and Ill-Mannered
This is the most common type of rude customer. They range from people who simply can’t say “please” and “thank you” to those who seem to think being awful is a sport. I once asked a couple if they had any allergies. They looked me up and down, smirked at each other, and one declared: “We’re allergic to poor people.” My mounting student debt and I kept our distance, for my health as much as theirs.

These customers also tend to reinterpret a waiter’s purpose to suit their specific needs. I believe—and many would agree—that my job is to ensure people have an enjoyable, stress-free meal. But some diners assume that because they’re paying, they can have whatever they want, whenever they want it, whether it’s food not on our menu or service far beyond my pay grade. A customer once asked me to do their grocery shopping while they ate lunch.

Another low point was serving a group of women sitting outside with their dogs. One dog decided to relieve itself beside their table. The owner summoned me and demanded I clean it up.

2. The Work-from-Homers
A very specific type, seen more and more often at my restaurant. The Work-from-Homer arrives, orders a single coffee, sits all day, ignores requests to have our table back, and participates in Zoom calls for the entire restaurant to hear. What’s worse is they’ve evolved: become smarter, more prepared, and more resourceful. I recently watched a customer pull an extension cord from his backpack to charge his laptop, phone, Apple Watch, and headphones—I half-expected his electric toothbrush to appear next.

You might think these are ideal customers—neither needy nor fussy, just wanting to work in peace, waving you away when you offer service. The problem is, we run a restaurant, not an office space with free Wi-Fi and unlimited tap water for £3.49. Their presence heavily detracts from the restaurant’s atmosphere and the small service charge I receive at month’s end.

3. The Clicker
There’s a lot of overlap between the Clicker and the Arrogant type, but I think people who click their fingers to get my attention deserve their own category because they often consider it polite—even normal. Out of principle, I’ve always refused to respond to such hailing, but this comes with issues. The Clicker has been known to morph into the clapper, the whistler, or even the glass-tapper—they never grasp the effectiveness of simply saying “excuse me” or even “hello.”

4. The Flirt
In my first summer as a waitress…Once, a customer’s first question before ordering was, “Do you have a boyfriend?” I mistakenly told the truth—that I was single—which led to an onslaught of unwanted flirting. I quickly retreated to the staff room. Since then, I’ve learned to rely on my colleagues to either switch sections with me or ask such customers to leave.

5. The Brawler
What happens when you combine a hot Saturday afternoon with limited outdoor seating? You get the Brawler—someone who will physically fight for an outdoor table during the brief time of year when sitting outside is pleasant. On warm, sunny days, the competition for these tables is fierce. I’ve had to break up physical fights where customers used handbags, strollers, or even chairs to secure their spot for an al fresco Caesar salad and iced Americano. The upside? I now feel fully qualified to referee a boxing match.

6. The Complainer
Let me clarify: by “Complainer,” I don’t mean someone who’s unhappy with their food or wait time—that’s understandable. However, there are three specific types of complaints that come across as rude.

The first is the customer who complains about things completely beyond my control, like street noise, car smells, the outdoor temperature, or—my favorite—the position of the sun. Their frustration only grows when they realize I can’t stop traffic or control the weather. Once, a customer noticed I was blocking a ray of sunlight that had been in her eyes and instructed me to stay put until further notice.

I also have no say over restaurant prices. That’s why we provide menus—so customers can choose based on taste, mood, and budget. Yet, I’ve had diners explode when they see the bill, insisting the price must be wrong and demanding I change it. And no, my manager can’t change it either.

Then there are those who complain about me or my colleagues to each other while I’m standing right there. Surprisingly, many feel comfortable saying things like, “I’ve heard the service here is terrible,” or “I don’t think she wrote down my order—she’ll definitely get it wrong,” while I’m awkwardly waiting for them to decide. I’ve always wondered: are these remarks meant for me to hear, like indirect feedback they’re too afraid to give face-to-face? Or, like the Arrogant customer, do they simply see me as an invisible person in an apron?

The final type of Complainer is the one who wants me to scold other people’s children, especially within earshot of the parents. Families with kids have every right to dine out. If you don’t want to see or hear children, I suggest going somewhere they aren’t allowed.

7. The Rule-Breaker
These people refuse to follow rules designed to make things easier for other customers and staff. They bring their own food, play music out loud, and sit at tables that don’t fit their group size. Once, after a colleague asked a customer not to smoke on the non-smoking terrace, she caught him having a cigarette in the restaurant bathroom instead.Some customers wander into areas that are off-limits, like kitchens and staff rooms, and question why items they happen to see—such as a particular breakfast cereal—aren’t available on the menu. They arrive before opening or linger long after closing. While most guests will take the hint from a glance at the clock or a polite reminder that closing time is approaching, the “Rules Don’t Apply” type requires a full theatrical performance to even notice.

Recently, after waiting half an hour past closing for one man to leave, my team and I began shutting down the restaurant: turning up the lights, switching off the music, mopping the floors, and changing out of our uniforms. Our rude customer ignored all of this, leaving us standing in our coats for another fifteen minutes before he finally closed his laptop, gave a casual wave, and left without an apology.

The most extreme version of this customer is the Dine-and-Dasher. It’s baffling every time—how can someone enjoy a meal, benefit from others’ hard work, and then simply slip away without paying? Unfortunately, it’s becoming more common. There’s nothing more embarrassing than having to tell your boss that a table has left without paying a bill of over £100. The first time it happened to me, I was 19, new to the job, and terrified I’d be fired or forced to cover the cost myself.

Once, I actually caught two women running off without paying. I chased them down the street and insisted they return to settle the bill. Strangely, they replied, “We can’t pay—we have a meeting to get to.” That response confused me even more than the act itself. In the end, I managed to get them to come back and pay.

As for the influencer—armed with a camera and a certain self-focus—they don’t come close to matching the rudeness of the customers described above. When approached politely, I’ve actually enjoyed helping influencers create content. Their presence can be mutually beneficial: they get a meal, the restaurant gains a paying customer plus some advertising, and the staff receive our service charge. It’s a win for everyone.

Of course, if an influencer starts displaying any of the behaviors mentioned earlier, then yes, I’d consider them rude—but not because they’re an influencer. It would simply be because they’re being rude.

Frequently Asked Questions
Of course Here is a list of FAQs about The Secret Life of a Waitress My Nine Nightmare Customers designed to sound like questions from a curious reader or a fellow service industry worker

General Beginner Questions

Q What is this articlebook about
A Its a firstperson account from a waitress sharing her most challenging and memorable customer experiences categorized into nine frustrating types shes encountered on the job

Q Who is this for
A Its for anyone whos ever worked in customer service dined at a restaurant or is just curious about the unseen dramas that happen between the kitchen and the table

Q Is this based on a true story
A Yes its presented as a reallife memoir or personal essay from someone who has worked extensively as a waitress

About the Nightmare Customers

Q What are some examples of the nine nightmare types
A While the full list is in the piece common types include The Flirt The Constant Complainer The Menu Illiterate and The Campers

Q Is The Flirt really that bad Isnt it just harmless
A From a servers perspective its often not harmless It can be uncomfortable demeaning and puts the server in a tough spot where they have to be nice to avoid a bad tip or complaint even when boundaries are crossed

Q Whats so bad about The Constant Complainer Dont they just want their meal right
A Theres a difference between a legitimate issue and chronic complaining designed to get free items or exert control It creates stress extra work and often results in an unfairly small tip despite the extra effort to please them

Q Are there any nightmare customers who dont realize theyre being difficult
A Absolutely Types like The Indecisive Orderer or The Special Request Overhaul often dont realize how their actions slow down service for the entire section and create chaos for the kitchen

Advanced Insider Questions