This is a staff-level software engineering role in Bellevue, Washington, covering the design, build, testing and upkeep of software components and applications.
The role sits within a team building software products and works across requirements, design, development, testing and maintenance.
Responsibilities
Find gaps between what customers and the business expect and what the current product and solutions deliver, including scope for each agile iteration.
Sort requirements into their applicable types.
Identify likely solution risks while requirements are being gathered, inform the right stakeholders, and recommend corrective steps.
Help write user stories for components, applications, and complex systems.
Help design software solutions so that processes and applications work together across the components and modules of a product.
Weigh trade-offs when designing a component against business requirements.
Help turn high-level designs into detailed designs covering mock screens, pseudocode, and functional logic for modules and components.
Build and configure lean code for whole components or applications that meets business, technical, and non-functional needs, with low maintenance, high availability, and high scalability.
Help choose languages, development standards, and tools for coding and configuration.
Proactively learn the basics of coding languages and frameworks that will be useful later.
Write scripts that automate repetitive, routine work in CI/CD, testing, and other processes.
Add telemetry features on your own where needed.
Make sure security policy requirements are built into components and applications during coding and configuration.
Turn customer requirements into test objectives, design test cases for each component or module, and run them to find errors and defects.
Run the right types of testing with suitable tools for each testing need.
Log and review defects in components and modules, and run regression tests after every code change.
Study defects from earlier engineering work to prevent similar ones from recurring.
Find and fix performance and availability bottlenecks in applications.
Handle complex maintenance work on applications without close supervision.
Track relevant metrics to monitor and assess 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.
Requirements
A Master's degree or equivalent in Computer Science, Engineering (any discipline), or a related field, plus 3 years of experience in large-scale enterprise software development.
Or a Bachelor's degree or equivalent in those fields, plus 6 years of progressively responsible experience after the bachelor's degree in large-scale enterprise software development.
The company accepts experience with the skills below at any length.
Architecture: define architecture blueprints, split systems into microservices and components, and choose a tech stack that fits business needs and technology strategy, using UML, draw.io, mermaid.js, and C4-PlantUML.
Prompting: write effective prompts for OpenAI LLMs and LangChain to get the outputs and analysis you need.
LLM systems: build structured pipelines for complex LLM-based RAG applications, including agents or multi-step reasoning, using LangChain, LangGraph, and Milvus DB.
Object-oriented design: design object-oriented code and implement it in suitable programming languages (OOPs).
Observability: track system performance and diagnose issues from real-time metrics, logs, and traces using Open Telemetry, Telemetry, and Grafana.
Asynchronous microservices: design and build them with REST APIs for high availability and throughput, using FastAPI, Flask, message queues, and brokers such as Kafka.
Containers: package applications into portable containers and run them at scale for consistent deployment and reliability, using Docker, Kubernetes, Helm, and Istio.
Delivery: manage code changes and automate software delivery with version control and CI/CD pipelines, using GitHub and Jenkins.
Quality: ensure reliability and maintainability through automated testing, test-driven development (pytest and unit tests), and code quality tools (SonarQube, Pylint, Black, and PMD).
Databases: design, implement, and maintain databases for efficient storage and retrieval, using SQL Server.
Caching: design and maintain caching systems using Redis and Cassandra to improve performance, reduce database load, and cut response time.
Performance tuning: optimize query performance and data workflows for high-volume transactional systems, using AzureSQL, Airflow, and PgSQL query and index tuning.
Modernization: modernize and refactor legacy monolithic components using coverage, cProfile, PMD, and VisualVM.
Conditions
The job is located at 10900 NE 4th St., Bellevue, WA 98004.
The salary range is $206,086/year to $264,000/year.
Eligibility for some benefits depends on your job classification and length of employment, and benefits may change or follow specific plan or program terms.
Details on benefits and eligibility are on the company's internal benefits site.
The company is an equal opportunity employer and has a zero-tolerance policy for illegal drug and alcohol use on the job, aimed at a safe and productive workplace.
Benefits
Performance-based incentive awards, paid annually or quarterly.
Competitive pay.
Medical, vision, and dental coverage.
401(k), stock purchase, and company-paid life insurance.
PTO including sick leave, parental leave, family care leave, bereavement, jury duty, and voting.
Short-term and long-term disability coverage.
Education assistance, including 100% company-paid college degrees.
Company discounts, military service pay, adoption expense reimbursement, and more.