Jobs and Careers
VI

Staff Software Engineer - Full Stack (Performance Engineering) (Hybrid/Onsite)

Visa
Foster City, United Statesfull_timeVerifiedPosted 23 Sept 2024
💰 $132,300/yr

About the role

Company Description

Visa is a world leader in payments and technology, with over 259 billion payments transactions flowing safely between consumers, merchants, financial institutions, and government entities in more than 200 countries and territories each year. Our mission is to connect the world through the most innovative, convenient, reliable, and secure payments network, enabling individuals, businesses, and economies to thrive while driven by a common purpose – to uplift everyone, everywhere by being the best way to pay and be paid.

Make an impact with a purpose-driven industry leader. Join us today and experience Life at Visa.

Job Description

This position is ideal for an experienced software engineer who is passionate about solving challenging business problems and building applications that have high availability & resiliency. The candidate will be extensively involved in hands-on performance & chaos engineering activities including POCs, design, documentation, code instrumentation, profiling and monitoring application, middleware & platforms components. You will be an integral part of the Open VisaNet performance engineering team.

 

Essential Functions

Responsible for developing performance plans and models for applications and infrastructure in a highly scalable, low-latency, high-availability, and high-throughput payment processing system.

Comprehend and take ownership of component-level performance engineering tasks, including code and data flow reviews.

Create and participate in performance and resiliency testing and fine-tuning of distributed components.

Collaborate with Development, Test Engineering, Support, and Product & Project Management teams to review and document requirements & timelines

Assess, create, and execute load-testing tools to simulate workload limits for Visas most critical payment applications.

Engage in performance engineering with a shift-left approach on microservices and establish benchmarks. Proficiency in Go Benchmarks and Go Profiling is advantageous.

Design and carry out chaos-resiliency evaluation experiments on microservices to identify potential resiliency weaknesses and failure points.

Perform root cause analysis for identified issues.

Analyze metrics and trends to find opportunities for enhancing application performance.

Explore methods to resolve issues and present corrective actions, conduct sessions with developers and architects to discuss recommended improvements or techniques.

Oversee the system performance lifecycle and identify key metrics for performance enhancements.

Generate regular performance engineering reports for review by architects, developers, and project managers.

Deliver technical presentations to guide teams on improving system and application performance.

Innovate solutions to enhance the effectiveness of performance engineering.

Contribute to performance tuning, scalability, reliability, and high availability of fault-tolerant distributed components.

Ensure proper documentation and internal publication of design trade-offs, code best practices, and lessons learned.

Support in triaging and troubleshooting highly distributed services in production environments.

Design and develop performance engineering aids like profiles, traces, or any observability frameworks.

Establish and promote performance best practices and influence non-functional requirements at early stages.

Work closely with application development teams to provide technical direction for improving application performance.

 

Mandatory Skillset

 

In-depth understanding of application performance KPIs, including their trade-offs and patterns

Capability in performance modeling using performance test data tailored to specific non-functional requirements of an application

Solid grasp of microservices architecture, CGROUP, and namespaces within Linux

Comprehensive knowledge of Linux memory management systems

Expert understanding of the IO subsystem, including its layers, various types of IO operations, caching mechanisms, file systems, and RAID configuration

Proficient in the compute subsystem with detailed knowledge of process, thread, and goroutines or LWT scheduling

Familiarity with process states, context switching, and system calls

Understanding of network layers, protocols, flow control, and congestion control

Basic knowledge regarding data centers

Proficiency in at least one programming language such as GoLang, Python, or Java, with the ability to write code independently

Skill in building a cost profile for applications based on CPU, memory, IO, and network test results

Ability to profile CPU and memory consumption or raw dumps and familiarity with traces, thread dumps, and debug logs

Experience in cre

Apply for this role

Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.

Apply Now →Generate Application Kit

Free account required — sign up in 30s

Company

Visa

View company profile →