Principal Software Engineer

R&D / Engineering Salt Lake City, Utah


Description

Principal Software Engineer

Location: Salt Lake City, UT

The Platform API team is responsible for the public API Gateway of the CXone cloud-based CCaaS platform, handling more than a billion API calls per day.  The core of this public interface is the Kong open-source microservice API gateway, which is extended via Lua-based plugins to provide access to the entire family of CXone public APIs.  Our services run in Docker containers hosted in AWS, and our team is responsible for defining and maintaining our Docker containers, our AWS infrastructure, and our test and deployment pipelines written in Jenkins.

The Platform API team also provides API governance support for the entire CXone development organization.  We provide Swagger-based API management tools which include pipeline-based standards enforcement, and we consult with teams on how to make our APIs consistent throughout the organization.

During a typical workday, an engineer on the Platform API could expect to:

  • Coordinate with Architecture and Network Engineering to understand and develop platform architecture
  • Develop a Dockerized api-proxy solution built on the Kong API Gateway written with and using Lua best practices
  • Work with CloudFormation templates to extend and refine our AWS infrastructure. Including, but not limited to:
    • Utilizing auto-scaling with Docker containers running on EC2
    • Develop and manage the entire AWS stack and all its components
      • RDS, Elasticache, etc
  • Understand and define performance level needs for the platform
  • Design, implement, execute, and report performance testing results
  • Define Cloudwatch logs and alarms
  • Integrating with third party products integrating with Cloudwatch
  • Manage IAM permissions and work with DevOps to maintain “least privilege” 
  • Coordinate with other teams to provide API contract guidance and implement routing for their microservices
  • Develop and refine Jenkins CI/CD pipelines to deploy code, run acceptance tests, and monitor environment health


To Land This Gig You'll Need:

  • Bachelor’s degree in Computer Science, Business Information Systems or related field or equivalent work experience is required.
  • 8+ years experience in software development
  • Experience with DevOps tools and processes
  • Experience in one or more of the following software languages: Java, C#, JavaScript, Scripting Languages (Python, Scala, Lua etc..)  (or other established languages)
  • Experience designing, developing, deploying and supporting RESTful APIs.
  • Experience with developing services, clients and multi-threaded software.
  • Experience developing with SQL Server or equivalent
  • Working knowledge of unit testing and test automation
  • Working knowledge of user stories and use cases
  • Working knowledge of object-oriented software design and design patterns.
  • Comfortable working in a fast-paced environment.

Bonus Experience:

  • Experience with Jira
  • Experience with automation/testing tools
  • Experience with/knowledge of agile development processes
  • Experience(s) as a technical or team lead or equivalent experience
  • Experience with telecommunications/telephony
  • Experience with call centers
  • Experience working in a CI/CD Environment
  • Experience with AWS technologies

NICE is committed to provide an environment based on equal opportunity for all qualified applicants and employees. It is the policy of NICE to afford equal employment opportunities to qualified individuals, regardless of age, race, color, creed, religion, citizenship, ancestry, national origin, sex, gender, pregnancy, mental or physical disability, marital status, veteran status, service in the Armed Forces, sexual or affectional orientation, atypical hereditary cellular or blood traits, genetic information, status as a victim of domestic or sexual violence, and/or any other status protected by any applicable federal, state and/or local statute or regulation.