$ cat ~/projects/mitsubishi-salesforce.mdx
Mitsubishi Salesforce ID
Salesforce performance tracking for Mitsubishi's dealer network — lead management, reporting, and backend optimization at scale.
- .NET Core
- Hangfire
- SQL Server
- Redis
- Azure Storage
- Docker
Context
Mitsubishi's dealer network runs on a Salesforce-backed sales pipeline. The mobile app used by dealers needed real-time visibility into leads, performance metrics, and reporting — and it had to feel fast even on the 3G connections dealers get in some regions.
What I built
- .NET Core services for lead ingestion, distribution, and reporting. The endpoints the app called most were read-heavy and cacheable, so the architecture leaned into that from the start.
- SQL Server tuning — added covering indexes on the hot read paths, rewrote a few
SELECT *queries that were pulling unused columns, where the planner was making bad choices. Response times on the reports endpoint went from 2–3 seconds to under 400ms. - Redis caching with a short TTL on the lead list and a longer TTL on the aggregated reports. The cache invalidation strategy was deliberately simple: write through on lead state changes, expire on schedule for reports.
- Hangfire for the recurring background jobs — nightly aggregations, dealer score recomputation, and Salesforce sync reconciliation. Each job is a discrete class with retry semantics.
Outcome
The app started feeling instant on the dashboard the dealers open 30 times a day. More importantly, the slow-report problem stopped being a support ticket.
What I'd do differently: introduce feature flags from day one. We ended up wanting to gate the new caching layer for specific dealers during the rollout, and shipping it everywhere-and-rolling-back was a risk we didn't need to take.