Software Engineer, telecrm
Jan 2025 — Present2,300+ clients · 20,000+ users · 745M+ API requests a month
- Cut mobile app startup on low-end devices from 23 to 12 seconds by shrinking the initial bundle from 23 MB to 10 MB — lazy-loading modules and dropping dependencies the app never needed on mobile.
- Redesigned role-based access control across 5 modules — dashboards, message templates, saved filters, embedded apps, and confidential fields. Every user used to build their own copy of each; now they're assigned to a role or permission template and everyone in that role gets them. Shipped two-factor authentication and mobile screenshot prevention alongside it.
- Built a Model Context Protocol server with 6 read/write tools, letting LLM applications drive internal CRM workflows.
- Wrote 300+ automated regression tests (Puppeteer, Jest) that run in CI and gate every release, including a reusable helper for driving elements outside the viewport that the suite couldn't reach before.
- Raised the bulk-update limit for unique lead fields from 10,000 to 50,000 leads by splitting the job into a master that hands batches to worker jobs.
- Added saveable filters to the lead activity history, so people can show only the actions they care about — say, calls and notes — without rebuilding the filter every visit.
- Sat with stakeholders to work out what they actually needed, then delivered 200+ analytics dashboards for 40+ clients. One funnel view showed a marketing team where users dropped off and helped lift campaign reply rates 20%.
- Run the ETL pipeline that moves data from MongoDB into Amazon RDS for analytics — scripts scheduled with systemd timers, feeding a self-hosted Metabase instance on Docker — and cut development RDS spend from $500 to $200 a month by right-sizing instances that never passed 20% CPU.
- Moved the mobile app from Capacitor 7 to 8, and shortened releases from a 3-day store review to minutes with over-the-air updates.
- Added Firebase Crashlytics so crashes, ANRs, and other errors are logged and traceable, and started the mobile app's engineering documentation after joining an undocumented codebase.
- Take first-line support duty every fourth sprint: triaged 50+ tickets, fixed what I could, routed the rest, and coordinated with product.
- Own production incidents end to end — reproduce, trace the root cause across the stack, ship the fix.