Position: Senior Backend Software Engineer
Company: Casting Networks
Experience required: 5y
English level: upper

Casting Networks International (CNI) is the leading SaaS provider of casting, booking and audition management software to the entertainment and modeling industries worldwide. Casting directors and agents use CNI to source, book and manage talent across film, television, commercial, digital, and print projects, facilitating over a million auditions per year. CNI is headquartered in Los Angeles, with offices in New York, San Francisco, London, Sydney, Cape Town, Poland, Ukraine, and India. Do you know how your favourite actors appear in your favourite movies, shows, commercial, print projects?Here in CNI we know :)

You Will
•	Propose, design, and implement industry-leading solutions for services that will be utilized by millions of clients worldwide.
•	Participate in and contribute to the planning process for new features and projects
•	Build highly maintainable, easy-to-understand code in the backend micro services
•	Assist in task management and Agile planning
•	Work with top-notch engineering teams to understand and respond to their needs
Basic Qualifications
•	At least 5 years of experience as a software engineer.
•	Expert knowledge and production experience with Nodejs, TypeScript.
•	Production experience working with Apollo GraphQL Server.
•	Production experience with AWS stack
•	Production experience working with Nestjs framework.
•	Fluent English speaker
•	Preferred Qualifications
•	Experience working with OOP languages.
•	Experience designing and developing Microservices and SOA.
•	Experience working with AWS Kinesis, Lambda, SQS, S3, ElastiCache, ElasticSearch, Kubernetes, Docker & Terraform
•	Experience designing and building high-performance scalable web services.
•	Experience in REST API design and implementation.
•	Experience in unit testing, test automation, and continuous delivery.
•	Experience with stream-processing and message-broker software.

Nice to have
•	Experience working with distributed teams.
•	Ability to work independently and as part of a team.
•	Ability to work quickly toward tight deadlines, and make smart tradeoffs between speed, accuracy, and maintainability.
•	Bachelor's or Master's degree in computer science (or equivalent professional experience).