Site Reliability Engineering - Developer

Smarsh   •  

Portland, OR

5 - 7 years

Posted 239 days ago

This job is no longer available.

 Position Summary

 We are searching for an experienced software or systems engineer interested in ensuring the stability, reliability, and performance of our SaaSassessment platform. The Site Reliability Engineering (SRE) team at Smarsh is a hybrid development and operations team within our Technical Operations group. The primary focus of the SRE team is to maintain the integrity and performance of our continuously-integrated platform through understanding the relationships between infrastructure-layer code, functional application pools, network and software-defined load balancers, Mongo, SQL and PostgreSQL databases, message queues and data caches, all running ina mixture of private data centers and Content Delivery Networks. We use a mixture of monitoring tools to identify and mitigate possible client affecting issues.

As a member of the Smarsh SRE team, you must have the desire to troubleshoot complex technical problems, and you must work effectively with a wide variety of technical internal teams and vendors, as well as internal non-technical teams. Strong verbal and written communication skills are a must, as you will be collaborating with others to diagnose, resolve and communicate issues as efficiently as possible. You must be self-driven and can look at problems in new and different ways to find solutions. You will look for ways to implement scripting and automation to improve existing tasks and procedures.

Responsibilities

  • Work with internal teams to architect and build tools and automation
  • Analyze the current state of the application and infrastructure, designing appropriate solutions and working with teams to implement them
  • Review entire application stack and execute initiatives to reduce failures, defects and issues with overall performance
  • Review code base and make recommendations for improving performance
  • Collaborate with quality assurance engineers to assist in resolution of software defects
  • Collaborate with project architects and project lead developers to prove the validity of new software technologies
  • Engage and help improve Smarsh’s software development methodology
  • Perform other duties as assigned to ensure the success of the team and the entire organization
  • Research industry trends and technologies, and promote adoption of best-in-class tools and technologies
  • Take initiative to advance the quality, performance, or scalability of our applications, by influencing the architecture or design of our products
  • Design, develop and execute automated tests to validate solutions and environments
  • Troubleshoot issues across the entire stack – hardware, software, application and network

Skills and Abilities

  • Proficiency in Python and Django
  • Experience creating tools that integrate with external databases and other systems 
  • Good understanding of Java and/or .NET
  • Deep Linux and Windows systems knowledge and administration background
  • Hands-on experience with SQL and NoSQL database troubleshooting and performance tuning
  • Good understanding of software design concepts
  • Understanding of software development methodologies
  • Ability to solve complex problems
  • Excellent analytical, troubleshooting and communication skills
  • Experience with log aggregation and data analysis
  • Experience with at least one scripting language
  • Ability to support the web platform during off-hours
  • Demonstrated ability to follow through with all tasks, promises and commitments
  • Ability to communicate and work effectively within priorities
  • Ability to advocate ideas and to objectively participate in design critiques
  • Ability to work under tight timelines in a fast-paced environment

Education and Experience

  • Minimum Bachelor’s degree in computer science or a related field; equivalent combinations of experience and education will be considered in lieu of a degree
  • Minimum four years progressive experience in a software development environment in high growth technology companies
  • Experience with web development of large-scale distributed systems and complex application architectures are a big plus
  • Strong written and oral communication skills
  • Firm understanding of SQL and NoSQL database concepts
  • Experience in fault tolerant system design