Senior Software Engineer role covering a component or application from requirements through design, coding, testing and upkeep.
The team works in agile iterations on a product.
Responsibilities
For each iteration, find where customer or business expectations differ from the current product or solution, and note what must change.
Sort requirements into their proper categories.
Spot likely solution risks while gathering requirements, alert the right stakeholders, and propose fixes.
Help write user stories for components, applications and complex features.
Help design solutions so that processes and applications work together across the modules of a product.
Weigh trade-offs in component design against business needs.
Help turn the high-level design into detailed design: mock screens, pseudocode and functional logic for specific modules.
Write or configure lean code for whole components or applications, meeting business, technical and non-functional requirements, with low maintenance cost, high availability and high scalability.
Help choose languages, development standards and tools for coding and configuration.
Learn on your own the basics of languages and frameworks that will be useful later.
Write scripts that automate repetitive, routine work in CI/CD, testing or other processes, where applicable.
Build telemetry features on your own when needed.
Make sure security policy requirements are applied during code development and configuration.
Turn customer requirements into test objectives.
Identify and write test cases for components and modules, then run them to find errors and defects across the whole component.
Run different kinds of tests with suitable tools for each testing need.
Track and analyze defects in components and modules, and run regression tests after every code change.
Review defects from past projects and solutions to prevent similar ones.
Find and resolve performance and availability bottlenecks in applications.
Handle complex maintenance work on applications independently.
Track and analyze the right metrics to monitor application performance.
Carry out corrective, adaptive and perfective maintenance, along with re-engineering work.
Analyze application logs, maintenance records and performance data, and report your findings.
Assess change requests and decide which are valid and feasible.
Keep the project on schedule against approved milestones and deadlines.
Requirements
Either a Master's degree or equivalent in Computer Science, Computer Engineering, Computer Information Systems, Software Engineering, Information Technology, Electronic Engineering, Electrical Engineering or a closely related area, plus 1 year of software engineering or related experience.
Or a Bachelor's degree or equivalent in one of those same areas, plus 3 years of software engineering or related experience.
Experience building scalable, maintainable web services in Java.
Experience using Spring Boot to build applications quickly and efficiently.
Experience building scalable, maintainable RESTful web services that let different software systems communicate, with solid API design and implementation.
Experience writing and running unit tests with JUnit to check code quality and behavior.
Experience using Jira to organize development tasks, manage project workflows and coordinate team work.
Experience using Git to manage code versions, track changes and collaborate on projects.
Experience designing and querying SQL databases that support application features and data integrity.
Experience launching instances and working with cloud resources on GCP and Azure.
Experience writing test scripts with Python libraries for test-driven development.
Experience using Maven to automate builds, manage dependencies and keep Java project structure consistent.
Experience designing, implementing and running distributed NoSQL databases that handle large data across many servers with high availability and fault tolerance.
Experience setting up and maintaining Jenkins pipelines for automated build, test and deployment, so delivery stays fast and consistent.
Experience configuring Kibana to visualize data and analyze system performance, traffic patterns and security events through interactive dashboards.
Experience developing and tuning Elasticsearch queries and data models that store, search and analyze large volumes of data for full-text search, logging and real-time analytics.
There is no minimum amount of experience with these skills; any amount of relevant experience is accepted.
Conditions
Salary range is $150,080 per year to $234,000 per year.
The work location is 1375 Crossman Avenue, Sunnyvale, CA 94089.
Benefit eligibility depends on your job classification and length of employment, and benefits may be governed by specific plan or program terms and may change. More details are available from the company.
The company is an equal opportunity employer and enforces a zero-tolerance policy on illegal drugs and alcohol at work.
Benefits
Annual or quarterly performance incentives are available on top of base pay, along with performance-based incentive awards.
Medical, vision and dental health coverage.
401(k), stock purchase plan and company-paid life insurance.
PTO including sick leave, parental leave, family care leave, bereavement leave, jury duty and voting time.
Short-term and long-term disability cover.
Education assistance, with 100% company-paid college degrees.
Company discounts, military service pay and adoption expense reimbursement.