This is a senior software engineer role on a team that designs, builds and maintains software components for a product.
The work runs from gathering requirements through design, coding, testing and upkeep of live applications.
Responsibilities
Compare customer and business expectations with what the current product and solutions do, and identify the gaps, updates and changes needed, per iteration where agile is used.
Sort requirements into their applicable types, spot likely solution risks while gathering them, then alert the right stakeholders and propose fixes.
Help write user stories for components, applications and complex features in agile teams.
Help design solutions so that processes and applications work together for specific product modules, weighing trade-offs against business needs.
Turn high-level designs into detailed designs with mock screens, pseudocode and functional logic for specific modules.
Write and configure lean code for whole components, and confirm they meet business, technical, non-functional, maintainability, availability and scalability needs.
Help choose languages, development standards and tools for coding and configuration.
Learn the basics of new languages and frameworks that will be useful for upcoming work.
Write scripts that automate repetitive, routine work in CI/CD, testing and other processes where applicable.
Build telemetry features as needed, working independently.
Make sure security policy requirements are applied to components and applications during development and configuration.
Map customer requirements to test objectives, then design test cases for components and modules.
Run test cases and suitable testing tools to find errors and defects across the whole component.
Track and analyze defects, and run regression testing after every code change to fix them wherever they occur.
Review defects from past projects so similar ones do not come back.
Find and fix performance and availability bottlenecks in applications.
Handle complex maintenance work on applications on your own.
Monitor application performance by tracking and analyzing suitable metrics, and carry out corrective, adaptive and perfective maintenance and re-engineering.
Analyze application logs, maintenance data and performance data, and report your findings.
Assess change requests to decide which are valid and feasible.
Keep the project on track against approved milestones and timelines.
Requirements
Hold a Master's degree or equivalent in computer science, computer engineering, computer information systems, software engineering or a related field, plus 1 year of software engineering or related experience.
Or hold a Bachelor's degree or equivalent in one of those fields, plus 3 years of software engineering or related experience.
Have designed and built large-scale, multi-threaded, distributed software using object-oriented design and programming in Java, Scala, Python and Bash.
Have built and deployed applications using container technology.
Have built efficient solutions on distributed databases and pub-sub messaging systems such as Cassandra, Kafka, Solr, SQL, S3, Elasticsearch and RabbitMQ.
Have analyzed distributed application logs, metrics, insights and heap dumps to improve efficiency, scalability and stability.
Have designed and implemented APIs using REST and RPC.
Have worked with dependency injection frameworks such as Spring and Spring Boot.
Have mentored junior engineers through thorough code reviews and design reviews that help them ship high-quality work.
Have built high-performance data movement systems that move data from large-scale systems into analytical processing systems for faster queries, using Spark, Hadoop, HDFS and BigQuery.
Have worked with CI/CD systems including Jenkins, Git and Grafana.
Have worked with NoSQL databases including Cassandra, BigQuery and Elasticsearch.
Have used build systems including Ant and Maven.
Any amount of experience with these skills is accepted.
Conditions
Salary is $117,000/year to $234,000/year.
Additional compensation includes annual or quarterly performance incentives.
The role is based at 1375 Crossman Avenue, Sunnyvale, CA 94089.
Benefits and eligibility may depend on your job classification and length of employment, and are subject to change and to plan or program terms.
The company is an equal opportunity employer and keeps a drug-free workplace with zero tolerance for illegal drugs and alcohol on the job.
Benefits
Competitive pay plus performance-based incentive awards.
Dental, vision and medical health coverage.
401(k), stock purchase, and life insurance paid by the company.
Paid time off covering sick days, parental and family care leave, bereavement, jury duty and voting.
Short-term and long-term disability cover.
Education assistance, with college degrees paid 100% by the company.
Company discounts, military service pay, adoption expense reimbursement and more.