Principal Software Engineer

ServiceTitan ServiceTitan · Enterprise · Yerevan, Armenia

Principal Software Engineer to lead technical direction and execution for company-wide initiatives, working at the intersection of architecture and hands-on coding. The role involves designing and building large-scale distributed systems, with a focus on AI/ML and LLM-based architectures including orchestration, retrieval, and agentic patterns within the enterprise SaaS platform.

What you'd actually do

  1. Define the technical vision for your domain, plan 18+ months ahead, and see it through - writing code, leading implementation, and taking end-to-end accountability for quality and outcomes.
  2. Produce complete, production-ready system designs and then help build them. You write code and lead others in writing high-quality code. You drive and participate in major architectural decisions relating to scale, reliability, and security, and you're the person who makes those decisions real.
  3. Be the reference point for engineering excellence. Your implementations, code reviews, and technical decisions serve as the model others learn from. You conduct architecture reviews, identify systemic risks, and introduce improvements that make the entire organization more effective at shipping.
  4. Proactively identify opportunities to extract shared systems, define reusable patterns, and establish approaches that eliminate duplication and inconsistency across teams. You prevent the organization from diverging technically and build the foundations others build on top of.
  5. Coach and mentor Staff and Senior engineers in technical design, architecture, and systems thinking. You create opportunities for others to grow, run cross-team knowledge-sharing sessions, and make the engineers around you demonstrably better.

Skills

Required

  • 10+ years of industry experience in large-scale enterprise web or SaaS applications
  • 7+ years in senior IC roles designing and building systems used by other engineers at scale
  • Proven track record of designing and shipping large-scale distributed systems
  • Deep expertise in at least one primary technology stack (e.g. C#/.NET, Java,C++ or equivalent)
  • Strong command of distributed systems fundamentals: event-driven architecture, asynchronous programming, concurrency, fault tolerance, and performance tuning
  • Hands-on experience with cloud infrastructure (Azure, AWS, or GCP), including architecture, automation, and operational practices
  • Solid grounding in data architecture: relational, NoSQL, vector databases, and distributed persistence
  • Familiarity with AI/ML systems and LLM-based architectures - including orchestration, retrieval, and agentic patterns
  • Experience leading monolith-to-microservices or service-oriented migrations through to completion
  • Strong command of modern engineering practices: Git, CI/CD, containerization (Docker), RESTful services, and observability tooling (e.g. Elasticsearch, DataDog, Prometheus)
  • B.S., M.S., or PhD in Computer Science, Engineering, or a related technical field

Nice to have

  • Ability to quickly ramp up on and contribute to any technology in ServiceTitan's stack

What the JD emphasized

  • hands-on drive
  • hands-on technical contribution
  • proven track record of designing and shipping large-scale distributed systems
  • hands-on experience with cloud infrastructure
  • hands-on experience with modern engineering practices

Other signals

  • AI/ML-driven scheduling
  • dispatch automation
  • real-time operational workflows
  • LLM-based architectures
  • orchestration
  • retrieval
  • agentic patterns