Remote Senior Software Engineer II

closed
Logo of Narvar

Narvar

πŸ“Remote - Canada

Job highlights

Summary

Join Narvar as a Senior Software Engineer to have a measurable impact on some of the world's largest brands and develop products that will touch millions of consumers.

Requirements

  • 8+ years of experience building reliable, scalable, and high-quality systems
  • Experience leading teams, mentoring junior engineers, and informing the technical roadmap
  • BS/MS in computer science, information systems, or equivalent
  • Experience building well-designed software with Java (or C#) and frameworks like Spring
  • Experience implementing microservice architecture patterns, sidecar, API Gateways, and distributed tracing
  • Experience with relational databases like Postgres or MySQL and NoSQL databases like Cassandra/YugaByte, DynamoDB, Redis - schema design, optimization, query analysis, sharding, and handling very large datasets
  • Knowledge of performance tuning, optimization, and garbage collection
  • Experience with a scripting language to get basic tasks done – Python, Shell scripts
  • Understanding cloud native principles and software development using the services available on AWS and GCP
  • Experience handling scale and building medium to large scale enterprise business applications
  • Experience writing tests, using CI/CD pipelines, and Docker containers

Responsibilities

  • Partner with product managers, designers, and customer success teams to inform our roadmap and synthesize and clarify requirements
  • Translate requirements to work streams for your team and work with the team to design, estimate, develop, and productionize features
  • Use agile and iterative development methodologies to ship code to production several times a week
  • Provide production support for customer issues and proactively work to improve operational efficiency
  • Constantly improve quality by adopting test-driven development approaches, writing unit and integration tests, and raising the bar on processes and methodologies that improve reliability and performance of software
  • Invest in the growth of other team members
  • Research and adopt new technologies and open source implementations where applicable and heavily inform the technical direction of the team
  • Communicate proficiently and influence the team through well-written technical design documents, write-ups/thought documents, and well-synthesized feedback
This job is filled or no longer available