JM Sanchez
Jose Miguel (JM) Sanchez

JM Sanchez

Technical Product Lead, Solutions Architect and Head of Systems & Data Engineering

I take platform risk off the CEO’s desk. I have worked with data and systems for more than twenty years, and for the last twelve I have directed business-intelligence and engineering teams whose work covers five countries. I build systems meant to keep running, pass an audit, and cost a fraction of the managed-cloud version.

The short version

What I do
I own the technical line end to end (edge, compute, data, client apps and compliance) and lead the team that builds it. I stay close enough to the code to review it properly, which is what lets me lead specialists rather than only manage them.
Where
Twelve years directing BI, analytics and systems engineering for operations in the United States, Kenya, South Africa, the Philippines and the Dominican Republic, reporting to VP and C-level. I have also delivered data work for United Nations Development Programme projects.
Results
A voice assistant that starts speaking in under 500 ms. Infrastructure that runs for about $1,900 a month where the managed equivalent lists at $38,000. No personal data stored in plaintext.
How I work
Errors are never swallowed, tests run against a real database, every dependency is pinned to an exact version, and AI-assisted tooling is part of the whole team’s workflow.
Contracting
Through a US (Delaware) B2B entity, so there is no employer-of-record overhead on your side.

Two results

Both come from systems running in production. Each one opens to show how it was done.

Time to first audible byte

Sequential pipeline3–6 s
Streaming pipeline< 500 ms

Same model, same hardware, same data centre.

Monthly cost of the same workload

Managed cloud, list price$38,000
What runs in production$1,900

Four platforms

Systems I designed, built or led, and am still accountable for. Client and product names are withheld under confidentiality; I can walk through any of them in depth on a call.

Decision log

These are the decisions I would defend in an architecture review: what I chose, what I turned down, and what it cost. I keep records like these in the repositories themselves, next to the code they affect.

  1. D-01Speech synthesis one sentence at a time instead of waiting for the full model response
    Context
    A sequential voice pipeline leaves the user in silence for three to six seconds.
    Decision
    Stream over one multiplexed HTTP/2 connection and start synthesis on the first complete sentence.
    Consequences
    Under 500 ms to the first audible byte. Cancellation has to reach every stage, so every stage runs under a shared context.
  2. D-02Opaque tokens stored in Valkey instead of JWT sessions
    Context
    A JWT cannot be revoked without a revocation list, and a revocation list is a session store under another name.
    Decision
    Use a real session store and keep tokens opaque.
    Consequences
    Instant revocation, smaller requests, and quota counting in constant time. One more stateful service to operate.
  3. D-03Field-level encryption in the application instead of a separate, segregated data tier
    Context
    The budget could not pay for a segregated data tier.
    Decision
    Encrypt every personal-data field with AES-256-GCM using a KMS-issued data key before it reaches the disk, and wipe the key from memory after use.
    Consequences
    The database never holds readable personal data, even if it is copied. KMS is called only when a batch contains personal data, so key-service latency does not slow ordinary traffic.
  4. D-04A self-hosted HA cluster, with staging built like production instead of managed multi-tier cloud
    Context
    The managed build of the workload lists at $38,000 a month.
    Decision
    Stateless compute nodes, separate persistent volumes, continuous WAL-G archiving and an enterprise CDN, with staging identical to production.
    Consequences
    About $1,900 a month, no configuration drift, and horizontal scaling by adding nodes. The team owns operations, so restore drills are automated instead of written down.
  5. D-05A temporary IPv4 address during image pulls instead of a permanent public IPv4 address
    Context
    An IPv6-only host needed images from a registry without IPv6 records. A permanent address would be scanned permanently.
    Decision
    Attach an address for the pull only and release it from an event-driven success hook.
    Consequences
    No standing IPv4 exposure. The timing complexity this added was later removed by moving the teardown from a timer to the hook.
  6. D-06Protobuf over HTTP/2 for every API instead of JSON over REST
    Context
    Server and client drift apart when each side writes its own request and response types.
    Decision
    Generate both sides from the same contract file, and do not allow JSON on the wire.
    Consequences
    A whole class of integration bugs disappears, versions change safely through field numbering, and payloads are smaller on slow mobile connections. Debugging needs tooling that can read the binary format.
  7. D-07Hand-written SQL through a connection pool instead of an ORM
    Context
    Partitioned time-series reports have to stay predictable under load.
    Decision
    Write the SQL, generate typed code from it with sqlc, and run it through pgx.
    Consequences
    Query plans anyone can read and indexes anyone can reason about. More SQL to write and review.
  8. D-08Tests against a real database instead of mocked repositories
    Context
    A mock confirms the code matches my assumptions. Only a real database confirms my assumptions match the database.
    Decision
    Integration tests run against real PostgreSQL, and CI fails if any test is skipped.
    Consequences
    Slower test runs, and no green pipelines that tested nothing.
  9. D-09Every dependency pinned to an exact version instead of floating tags such as :latest and @main
    Context
    When there is an incident, the build that matters may be six months old.
    Decision
    Semantic versions or SHA-256 digests for containers, GitHub Actions, Go modules and infrastructure providers.
    Consequences
    Any past build reproduces byte for byte. Upgrades happen on purpose, through a reviewed change.

Why Go

Go compiles to one static binary, handles tens of thousands of concurrent connections on a single node, and treats every error as a value that has to be dealt with. The latency and cost results above depend on all three.

Security and compliance

I have worked under HIPAA, HITECH, the Stark Law, PCI-DSS and GDPR, and I build the cryptography as well as the policy documents. The compliance design is self-assessed against published standards and has not been certified by a third party. Where certification is required, I prepare the evidence an auditor needs and work alongside the assessor.

How changes ship

Every change goes from a feature branch through automated gates to a verified deploy. If any gate fails, the deploy rolls back on its own and the diagnostic probes stay in place.

How I lead

From Santo Domingo I lead a business-intelligence and engineering team whose work reaches operations in five countries. Much of my week is spent between operations, finance, executive leadership and engineering, turning goals that each group defines differently into a roadmap all of them sign. I also designed the KPI and weighted-incentive frameworks used from agent to VP level, so performance is measured the same way the business pays for it.

I care about the people who ship the work as much as the architecture. A system the team cannot own will not last, however good it looks on paper.

My teams work under six rules, and the pipeline enforces them:

“A system that is up on modest hardware beats a correct architecture nobody can afford.”

From an architecture decision record I wrote and then held to across four repositories, one HA cluster and a national deployment.

Tools

Experience

YearsRoleOrganization
currentProduct Manager, AI lead and principal developer on a 3-engineer teamConfidential product (under NDA)
2022–nowBusiness Intelligence, Statistics and Reporting ManagerERC Global CX, remote and multi-national
2025–nowHealthcare Compliance Content Specialist, part timeHealthcare-compliance company, Texas (remote)
6 monthsGeneral Manager, Product Manager and Scrum Master (contract)Pharmaceutical enterprise projects, Dominican Republic
2014–2022Statistics and Reporting ManagerERC Global / Working Bees
2012–2014Senior Analyst, then Reporting Team ManagerLaurus International, Santo Domingo
2003–2010Lead Statistics Analyst and Department LeadAmov International Teleservices (Claro / América Móvil), Santo Domingo

Questions

Contact

Tell me what you are working on: the latency target, the compliance requirement, the system nobody wants to touch, or the infrastructure bill. I read every message and reply personally, usually within a day. You can also message me on LinkedIn.

There is no email address or phone number on this site. The form sends your message to me directly over an encrypted connection.