Working on natural language processing for real-world applications requires more than just developing model implementations and evaluating them on existing datasets, or memorizing various library APIs. Often, what's needed is an entirely different mindset: How can I break down complex business problems into machine learning components? How do I design my data to make the problem easier and get human experts involved? And how do I incorporate linguistic insights to find approaches that are more likely to succeed? In this talk, I'll share some lessons we've learned from commercial use cases of our software, spaCy and Prodigy, and suggest ways we can teach applied NLP thinking and ship more successful projects.