v9.1.3: AWS Cosell
We now have a lead list filtering feature to allow us to cosell with AWS. This lead list filtering now allows us to find opportunities across the AWS ecosystem for startups and SLED for us to perform outreach.
We now have a lead list filtering feature to allow us to cosell with AWS. This lead list filtering now allows us to find opportunities across the AWS ecosystem for startups and SLED for us to perform outreach.
We are excited to announce that we are now closely working with Vanta. As a partner of Vanta, we are able to offer our customers a streamlined experience for managing their security and compliance needs. We are able to provide our customers with a comprehensive solution that includes security monitoring, compliance management, and risk assessment.
As part of this partnerships:
With this we are combining the sales processes of MakeProspect with the compliance remediation of PolicyCop.
For the v1.1.1 release of MakeProspect we are focusing on the lead list filtering, onboarding companies onto our platform, and setting up the WhatsApp groups that we use to interact with customers. Lastly, we are focusing in on the campaigns feature to start building out the outreach capabilities.
Overall this is an internal release and not an external feature release.
We are building a team to support the requirements of AI in healthcare. This new organization is called Deepfacts.ai. We have signed up our first customer and are looking to develop and expand the capabilities around a core set of features.
We are getting started with a few areas of focus:
With this additional capability we are able to provide additional platform engineering capabilties to healthcare customers.
W. Edwards Deming popularized the use of Statistical Process Control as a means to improve quality. This method transformed Japanese industry into an industrial power after being completely destroyed after World War II.
opsZero implements Statistical Process Control and we use Control Charts to improve our processes as Quality is a part of our Principles.
We have certain goals with our KPIs (Key Performance Indicators):

Control Limits are based on the standard deviation. The aim is to keep the process within its limits and gradually tighten them over time.

The nice thing about Control Charts is that they can be used for:
This makes Control Charts a useful visualization across functions.
At opsZero, Control Charts are used for all at-a-glance KPIs to find patterns in how we are moving towards our targets. In addition, we use Pareto Charts to build products that reduce Support and Sales issues (covered in a future post).
The Bay Area startup tech stack is MacBooks, Google Workspace, Slack, iPhones, and either AWS or Google Cloud. The rest of the world seems to be Microsoft Windows, Microsoft Office, Microsoft Teams, Android, and an on-site SharePoint server. AWS has the most to lose as Azure catches up.
My wife recently needed Parallels with Windows installed on her MacBook to use Arcgis. I thought, what the hell, and decided to install Parallels on my own machine because I’ve heard so much about how much better Excel for Windows is than the Mac version. (Yes, I got excited about Excel, so sue me…)
So I did it. And having played with Windows for the first time in a decade and a half I have to say I finally get Microsoft’s strategy after seeing this parallel universe.
Microsoft is playing a long game. But their game is to tie everything, and I mean everything, to Microsoft Azure.
If you are in the Bay Area bubble with the Apple, Google, and AWS tech stack, we may be missing out on one of the significant technological shifts. I am betting the winner, in the long run, will be Microsoft.
Microsoft has a huge distribution advantage. Say what you will about Steve Ballmer, but he built a high-power enterprise sales team at Microsoft. Buying a single unified package from Microsoft will, over time, be cheaper than buying piecemeal software from different vendors.
This is why Slack lost. But everyone in the Bay was scratching their head at why Slack lost — because we were looking at Google as the 800-pound gorilla, not Microsoft, which is now the 1200-pound gorilla.
From a technological standpoint, Azure will consistently be behind AWS. Microsoft is a close follower, not a leader.
There will be deals that give companies Azure + Office + Teams at a bundled rate cheaper than piecemeal competitors. Companies will pay for it.
This is all speculative, of course. Amazon, being one of the most innovative companies of our generation, will hopefully give Microsoft a run for its money.
But at this point, the two Clouds I am betting on for production, compliance-oriented workloads are Azure first, then AWS.
Cloudflare provides a great CDN with no egress charges on bandwidth. The best way to use Cloudflare is through Cloudflare Pages.
Using Cloudflare Pages should be pretty straightforward for most frameworks that generate a SPA. However, see the example below for how to use Cloudflare Pages from asset pipelines for Ruby on Rails and Django.
Here is an example of using GitHub Actions to publish Django static files:
- name: Build Static Files
run: |
docker run --env STATIC_ROOT='/static-compiled/' \
--env DATABASE_URL='sqlite:///db.sqlite' \
-v $PWD/static:/app/static \
-v $PWD/static-compiled:/static-compiled \
$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \
python manage.py collectstatic --noinput
- name: Publish Static Files
uses: cloudflare/wrangler-action@2.0.0
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
command: pages publish ./static-compiled --project-name=opszero-static --commit-dirty=true
Our goal with Workflows & Automations includes a standardization on Python as our backend language of choice. We wanted to standardize on a common web framework as well.
While Flask and FastAPI are the most popular for APIs, they tend to have a no-batteries-included approach leading to N+1 ways of building software. However, opsZero is building an opinionated stack and this requires standardization, and we have chosen Django for our Web Framework.
Our entire business is already reliant on Django as the primary framework so we have extensive experience using it, and absolutely love the built-in templating and ORM with migrations.
Lastly, with ASGI, a lot of extra features for WebSockets and Events are built into the framework using channels. The built-in functionality along with years of Django experience means we can provide Django expertise quickly.
We want to meet our customers' needs regardless of the Cloud they are using and with the lowest cost possible, so we are making available pre-built templates to use Django in both Serverless as well as Kubernetes environments.
We are releasing three templates:
These three templates allow us to deliver value to you faster.
Think what you want of Elon Musk, but he has achieved quite a bit in engineering novel solutions to complex problems. We’ve worked mainly on implementing the same process to great effect in what we do.
The principles are:
You can watch him describe his process here:
When solving a problem for a customer, the customer may not actually know what they need. So uncover the actual requirement behind the request.
Usually, a problem such as:
The production database is high CPU and clients can’t connect
may actually be a root cause issue:
The production database is being used to replicate data to a data warehouse, which is causing the issue.
This root cause analysis can be gleaned through a five whys analysis.
Second, with these requirements there needs to be a clear owner responsible for the issue. If there is not an owner for something, then that itself is an issue. Ownership of each component means that someone exists to optimize each piece.
Systems over time become complex. Pieces are added that don’t need to exist—or they were added, then forgotten about.
Systems should get less complex, not more so.
As we build things, we build to get the task done. This means we may add complexity to the system that didn’t need to exist, but because we are pathfinding our way to the solution, that complexity is needed.
Once we get to the point of the system working as needed, we go back and remove the pieces that are not needed.
After removing unnecessary parts, there may still be complexity within the current components.
To simplify these components, we need to reduce variability and increase standardization.
For example:
if-else blocks to account for variability can increase complexity.It’s best to initially build with some variability, then refine through A/B testing over time toward the optimal solution.
Once an optimal approach is found:
This leads to faster outcomes, with fewer branching paths, creating better flow.
Lastly, automate the processes such that things happen without intervention.
Cloudflare D1 is a great way to quickly create and work with SQLite databases where a larger PostgreSQL or MySQL don’t make sense. These are some examples to quickly work with D1.
wrangler d1 create data-cloud-vendors
wrangler d1 execute data-cloud-vendors --command='CREATE TABLE Customers (CustomerID INT, CompanyName TEXT, ContactName TEXT, PRIMARY KEY (`CustomerID`));'