Description
Visa is seeking a Software Development Engineer to join their team. As a Software Development Engineer at Visa, you will be an expert problem-solver and builder who designs, implements, and improves software applications and systems.
In this role, you will spend approximately 60–75% of your time coding, working hands-on with code, data, and modern tools (including AI-assisted development, cloud services, and automation frameworks) to deliver secure, scalable, and high-quality technology solutions that drive business outcomes in the fintech sector.
Key Responsibilities:
- Collaborate with stakeholders to determine requirements for product components and incorporate feedback into future designs or solutions.
- Translate functional requirements into system designs and communicate component interactions, ensuring alignment with business needs and timelines.
- Design and develop product components, refine code plans, and lead design reviews to ensure completeness and adherence to requirements.
- Contribute to project estimation, considering delivery costs and escalating issues that may cause delays.
- Lead by example in creating, implementing, and maintaining extensible, reusable code, and drive code quality through metrics and best practices.
- Apply debugging tools to resolve moderately complex issues and identify opportunities for automation across products.
- Lead code reviews, ensuring adherence to coding standards and providing feedback to team members.
- Create complex test plans, identify test gaps, and proactively address defects to minimize customer impact.
- Leverage data analysis and monitoring standards to identify patterns and defects in all environments.
- Respond to incidents during on-call rotations, troubleshoot complex issues, and assist in incident response and resolution.
- Build, enhance, and identify new developer tools to support programs and applications.
- Proactively seek new knowledge and adapt to trends and technical solutions to improve product performance and recommend resources to other engineers.
Qualifications:
- 7.5+ years of relevant software engineering experience
- Bachelor's or Master's degree in Computer Science, Software Engineering, Distributed Systems, or related field
- Extensive technical experience with JAVA, Spring, Hibernate
- Advanced Java development including concurrency, multithreading, and performance optimization
- Deep understanding of distributed system architectures (microservices, event-driven, service mesh)
- Experience with distributed consensus algorithms (Raft, Paxos) and coordination services (Zookeeper, etcd)
- Proficiency in distributed data management patterns (CQRS, Event Sourcing, Saga patterns)
- Strong knowledge of distributed caching (Redis, Hazelcast, Memcached)
- Experience with message queues and streaming platforms (Kafka, RabbitMQ, Pulsar)
- Understanding of CAP theorem, eventual consistency, and distributed transaction management
- Experience building highly available, fault-tolerant systems with disaster recovery capabilities
- Knowledge of service discovery, load balancing, and circuit breaker patterns
- Proficiency in code development using Eclipse/MyEclipse, JetBrains IntelliJ or any major Java IDE
- Strong experience with GIT/Stash, Maven, and Jenkins
- Extensive experience in API Development using SOAP or REST, JSON and XML
- Deep knowledge of API standards including OAuth, SAML
- Experience with GraphQL, gRPC, and modern API gateway patterns
- Understanding of API versioning, rate limiting, and distributed API management
- Experience building async/reactive APIs using Spring WebFlux or similar frameworks
- Experience with SQL datastores (DB2/MySQL) and Unix/Linux platforms
- Understanding of database sharding, replication, and distributed database systems
- Experience with distributed file systems (HDFS, S3, or similar)
- Knowledge of data consistency patterns across distributed datastores
- Proven experience with tools development, automation (CI/CD, Auto Deployment, System Availability), logging and monitoring
- Experience with distributed tracing (Jaeger, Zipkin, OpenTelemetry)
- Working knowledge of streaming platforms like Kafka for real-time data processing
- Hands-on experience with LLM integration and serving at scale (OpenAI API, Azure OpenAI, Claude, Llama, etc.)
- Proficiency in AI-assisted development tools (GitHub Copilot, Cursor, Cline, or similar)
- Experience building intelligent APIs with AI/ML inference endpoints in distributed environments
- Understanding of vector databases (Pinecone, Weaviate, ChromaDB) for RAG applications
- Knowledge of prompt engineering and AI model fine-tuning
- Experience designing scalable microservices architectures handling millions of transactions
- Knowledge of distributed system monitoring and observability (Prometheus, Grafana, ELK stack)
- Understanding of container orchestration in distributed environments
- Experience with chaos engineering and resilience testing
- Proficiency in distributed debugging and troubleshooting techniques