U.S. Bank Technical Lead Software Engineer - Multiple Locations in SAN FRANCISCO, California
Be part of something big, where integrity matters and success inspires, where great people collaborate, innovate and give back, where you feel included, valued and proud. At U.S. Bank we’re looking for people who want more than just a job – they want to make a difference in the communities where they live and work.
U.S. Bank is seeking a Technical Lead Software Engineer with design and development experience to contribute toward the success of our technology initiatives. In this role you will be part of the team established to configure and develop complex application systems using existing and emerging technology platforms, and consult with business users on requirements gathering, system design, configuration, and implementation. You'll be working closely with the Delivery Manager, IT development, and Architecture groups while collaborating with several lines of business.
-Responsible for designing, testing, developing, operating and maintaining products, sometimes under the guidance of principal engineers.
Consistently writes production-ready code that is easily testable, easily understood by other developers and accounts for edge cases and errors.
Consistently considers best practice when designing APIs and applies applicable patterns across several contexts/codebases, in accordance to agreed best practices and standards. Regularly designs code that fits with the overall architecture.
Uses systematic debugging to diagnose cross service issues and is adept at using a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner.
Takes ownership of incidents which fall in their domain and may be involved in the resolution of an incident or provide assistance to others on resolving incidents.
Understands and knows when to use different data structures. - Understands when algorithms should be applied and the associated complexities. Helps others build their understanding of the applied algorithm and suggests improvements.
Consistently creates reasonable sized code reviews that contain descriptions of changes and testing conducted. Assesses other code reviews with the lens of quality and value - code quality, acceptance criteria, business logic, test coverage and aligned to overall architecture. Highlights any issues with a code review that might result in release complications. Proactive in evaluating code reviews in the team and resolving open code reviews in a timely manner.
Understands their team's testing approach and uses quality metrics to identify gaps. Works with their team to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid.
Approaches engineering work with a security lens and actively looks for vulnerabilities both in the code and when providing code reviews. Has a holistic view on how the applications across more than one context integrate with each other. is aware of the organization’s monitoring philosophy and skilled with the monitoring tools. Helps tune and change the monitoring on their team accordingly.
Develops techniques on effective coaching strategies for different individuals. Seeks out mentoring opportunities specifically to increase knowledge in parts of the system that is not well understood. Supports and advocates others and provides tools to help them grow their understanding a technical topic.
Actively participates and understands Scrum while developing a point of view on an effective software delivery process.
Reviews tasks critically and ensures they are appropriately prioritized and sized for continuous integration and incremental delivery. Anticipates and communicates blockers, delays before they require escalation.
Creates project proposals and designs that have considerable impact or touch multiple systems. Technical designs are clear, well thought out, and considers dependencies, failure states, maintainability, testability and ease of support.
Keeps business context in mind when proposing architectural decisions. Also considers scalability, reliability and performance of systems/contexts affected when defining technical designs.
• Bachelor's degree, or equivalent work experience
• Five to six years of relevant experience
• Experience in service management in Google Cloud Platform and exposure to GCP, AWS or Azure.
• Experience with programming languages like Java, Spark, python, etc for data ingestion or microservices.
• 3 years of solid database management experience.
• Create logical/physical data models with best practices for future growth and performance optimization.
• In-depth knowledge of distributed NoSQL (Cassandra) database, RDBMS Distributed SQL, Search Engine.
• Experience in setting up and managing Cluster across cloud.
• Experience in automation of database setup and scaling.
• Experience with heterogenous database sync mechanism.
• Experience in Continuous integration and Continuous deployment using Maven, Jenkins, Docker, Kubernetes, Terraform, Ansible.
• Nice to have implementation experience with Graph and AI/ML solutions using Python.
• Perform IT resiliency experiments by injecting failures into distributed system to improve the systems resiliency
Job: Information Technology
Primary Location: CA-CA-San Francisco
Shift: 1st - Daytime
Average Hours Per Week: 40
Requisition ID: 200012512
Other Locations: Wisconsin-WI-Brookfield, Georgia-GA-Atlanta, IL-IL-Chicago, Texas-TX-Irving, Minnesota-MN-Richfield
U.S. Bank is an Equal Opportunity Employer committed to creating a diverse workforce.
U.S. Bank is an equal opportunity employer committed to creating a diverse workforce. We consider all qualified applicants without regard to race, religion, color, sex, national origin, age, sexual orientation, gender identity, disability or veteran status, among other factors.