Software Engineer

Location: Mountain View, CA

Ref#: 1648.3236

posted: 6-Oct-2017

Responsible for analyzing, designing, debugging and/or modifying software; or evaluating, developing, modifying and coding software programs to support programming needs. Maintain and enhance existing code with focus on implementation. Collaborate with and assist team of engineers in writing functional, design and user interface specifications. Follow software lifecycle process when developing software. Help identify solutions to problems encountered in software cycle. Develop advanced software using Kubernetes, Docker, Python and Go on Linux computers leveraging AWS services to build, test, deploy, and scale our non-production and production environments that comprise over a thousand nodes in three countries. Lead automation design and planning. Through automation, ensure 99.99% uptime of our complex, multi-tenant, micro service based architecture that serves 12 other products as a platform. Build a Kubernetes 1.5 cluster from scratch on AWS with automation and self-healing. Develop an advanced HTT routing system using a cluster of nginx servers. Deploy couch base, Elasticsearch, and RabbitMQ to large clusters that replicate to multiple availability zones and support high availability failover. Fully automated backup and restore testing that spans multiple regions in each country; metrics, monitoring, alerting, and automated recovery for all services globally. Support up to 1000 engineers using our platform with technical plans and detailed documentation on how to consume our services. Utilizes graduate-level research and analysis skills. Supervises 8 engineers. Employer will accept Master’s degree in Computer Science, Engineering, Management Information Systems, or related technical field and 3 years of work experience in job offered or in a computer-related occupation. Alternatively, will accept Bachelor’s degree in Computer Science, Engineering, Management Information Systems or related technical field and 5 years of work experience in job offered or in a computer related occupation. Any suitable combination of education, experience or training is acceptable. Position requires 3 years experience in the following (5 years if have Bachelor’s): 1. Languages: Python, Go or Golang; 2. Linux and TCP/IP network fundamentals; 3. Micro services implementing API functionality using REST, JSON; 4. Advanced troubleshooting and diagnostic skills across large, distributed, multi-service environments; 5. Standard coding and development tools such as git, Artifactory, Jenkins; and Position requries 1 year of experience in the following (3 years if have Bachelor’s): 6. Configuration Management Software: Chef, Puppet, or Ansible; 7. Continuous Integration and Continuous Deployment; 8. Deploying software on RackSpace; 9. Configuration and maintenance of common applications such as Apache, memcached, MySQL/MariaDB, Couchbase, and RabbitMQ; 10. Requesting/installing SSL certificates, key management; 11. Logstash/Graphite/InfluxDB/Grafana and other diagnostic and alerting tools.