What are the responsibilities and job description for the Senior Scala Backend Engineer - Denver, CO (On-site) - USC-GC-Only position at Wise Skulls Corp.?
Title: Senior Scala Backend Engineer Location: Denver, CO (On-site) Duration: 6 months (possibility of extension)
JD:
JD:
JOB SUMMARY
- Looking for a strong Scala backend engineer with microservices experience to work in a small, agile team. The team develops client-facing REST APIs that provide data for IP TV (television over the internet), for functionality such as consumer entitlement verification, on/off-net verification, parental control verification, and settings.
- The technology stack includes Scala, Scalatra, Memcached, Kafka, MongoDB, docker, Kubernetes, Splunk and Datadob. All code is written in a functional style, and is fully asynchronous using Scala Futures. The team works at scale, handling hundreds of millions of REST calls per day.
- Engineers on this team create new microservices and improve existing microservices. Projects are usually of considerable complexity and require a mastery of development tools. Engineers are expected to design and implement scalable, dependable systems as needed. As this is a small team, engineers must be self-starters, capable of handling responsibility and making decisions.
REQUIRED QUALIFICATIONS
Technologies
- Strong experience with Scala back end API implementation
- Understanding of MongoDB or other NoSQL databases
- Strong mindset with a willingness to learn new domains and technologies
- Expertise in end-to-end understanding of the system and testing the services
- Experience with test-driven development and automated testing frameworks
- Experience using AWS managed services
- Experience with caching architectures, particularly Memcached
- Strong experience with containerization and container orchestration, (Docker, Kubernetes, Helm, Istio, Argo, etc).
- Strong experience with monitoring technologies (Splunk, Instana, Datadog, Prometheus, etc).
- Knowledge of API documentation, especially Swagger (OpenAPI)
- Experience using CI/CD automation (Jenkins, Gitlab)
Skills/Abilities and Knowledge
- Ability to read, write, speak and understand English
- Strong experience working with DevOps engineers to build and deploy infrastructure with cloud deployment technologies.
- Strong Understanding of Scrum/Agile development methodologies.
- Capable of delivering on multiple competing priorities with little supervision.
- Experience with building and designing REST APIs using scala.
- Experience with software security principles and patterns.
- Ability to collaborate with and contribute to a common culture of excellence.
- Experience with test-driven development and automated testing frameworks.
- Must be capable of delivering on multiple competing priorities with little supervision.
MAJOR DUTIES AND RESPONSIBILITIES
- Actively and consistently supports all efforts to simplify and enhance the customer experience.
- Code and perform unit and integration testing of software to ensure proper and efficient execution and adherence to business and technical requirements.
- Code, test, debug, and enhance software.
- Write programs according to specifications, and define specifications for complex programs.
- Monitor and repair critical systems on an as needed basis.
- Develop and maintain technical documentation.
- Serve as final escalation point to resolve incidents and problems for production applications and web services supported by the team in accordance with identified Service Level Agreements.
- Collaborate with internal customers, technical and architecture teams to solve complex software problems.
- Provide system users and management with system analysis and improvement recommendations.
- Identify and recommend system design/requirements needs for software enhancements.
- Implement, monitor, test, and audit new software programs to maximize efficiency of software systems.
- Participate in continuous performance improvement sessions to discuss opportunities to improve processes and/or standards.
- Coordinate with technical teams to analyze and resolve software related problems causing operational difficulties, advising on specialized features and functions.
- Maximize the efficiency of the various software systems by implementing, monitoring, testing and auditing new software programs.
- Follow established configuration/change control processes.
- Collaborate with customers and internal/external technical teams to identify software problems and communicate remediation plans
- Mentor and coach junior team members.