Software Sage #7: Search is a Common Pattern, OpenSearch might Help
This is one of those complex problems that have already been solved. Don't solve it again, unless you have a compelling reason.

Being able to search for something is a fundamental pattern.

Similar to my Amplify article a few editions ago talking about building MVPs rapidly, this article will be tool-focused.

Searching for a Search tool for my Engineering Toolbox

I've found 'being able to efficiently search' to be one of those extremely common patterns in tech. Therefore I wanted to find an Open Source solution to this pattern that I could use regardless of the particular Cloud I am using or App I am building, and is backed by a good group/regularly maintained. It would also be nice if that tool had an easy to spin up version that works in the Cloud I am most familiar with: AWS.

OpenSearch seemed to meet that criteria:

  1. OpenSearch Website: https://opensearch.org/
  2. OpenSearch on AWS: https://aws.amazon.com/opensearch-service/
  3. Backed by the Linux Foundation, AWS, Uber, etc.: https://foundation.opensearch.org/
  4. Their GitHub project: https://github.com/opensearch-project
  5. Maintained (as of this Article, their last release was a week ago): https://github.com/opensearch-project/OpenSearch
  6. Forked from Elasticsearch: https://en.wikipedia.org/wiki/Elasticsearch

What can OpenSearch do, though?

OpenSearch by itself includes (from their page on Features):

There is also an AWS Managed OpenSearch Service:

How do you solve this requirement?

Curious how other folks solve this in their domains. No tool is globally perfect. I do really like that this tool supports Vector search though.

Sage's Bookshelf

This is the grab bag of cool things. Now with cool rocket ship emojis to demonstrate that we're going to the moooon.

πŸš€ Design: Your Customers have Jobs Too- help them do their Job (Article from Harvard Business Review that reminded me of working back from User Pain)

πŸš€ QA: Selenium Can help you build Regression Testing Quickly & Easily (The Selenium IDE can record what you do in your own website/webapp, then use those series of actions as a test)

πŸš€ Workshop: Priority Map Workshop (Stop bluntly asking your team to prioritize things in a meeting, help them by using a Workshop such as the Priority Map)

πŸš€ Acceptance Testing: What - When - Then (A template for writing Acceptance Tests for your User Stories- the more Templates you use, the lower the cognitive load on your team)

πŸš€ Workplace Trends: Results of Qualtrics study of 35k Employees (Some interesting trends, as always think critically about the differences between a trend and the specifics of your workplace)

πŸš€ Productivity: Eat That Frog (Embrace the terrible taste of getting the most important thing of the day done)

πŸš€ Microservices: Death by a Thousand Microservices (β€œEveryone is doing microservices, yet we have a single Django monolith maintained by just a few engineers, and a MySQL instance - what are we doing wrong?”)

πŸš€ AI: Generate Synthetic Data With PromptWright (Another cool AI Tool for generating Synthetic Data, they published a release last week so at least this one is maintained)


Building AI: Interested in help building AI & Software? Check out Rosenblatt AI via Website, or check out the Upwork. Let them know I sent you. :)

#startup #cto #ceo #fullstack #fullstackengineering #softwareengineering


Software Sage #3: 100x Software Engineering - Solve User Pain, Write Quality Code
Understand your user, understand your team, and you need not fear the result of a thousand releases.