What are the responsibilities and job description for the Java Software Engineer position at Charles Schwab Inc.?
Your Opportunity
At Schwab, you’re empowered to make an impact on your career. Here, innovative thought meets creative problem solving, helping us “challenge the status quo” and transform the finance industry together.
Schwab is looking to hire a Software Engineer to contribute to its new generation order management system which drives a significant revenue for Schwab. In this development position, the Software Engineer will perform complex software design tasks and technical analysis on Schwab’s highly scalable and highly performant order management system. Specifically, this role will act as a subject matter expert on the system’s server side modules. In addition, they will also provide mentorship for junior developers, liaise with developers from other teams and ensure development practices are in line with company best practices and policies.
Responsibilities:
- Performs product design & troubleshooting exercises of extremely high complexity which require extensive research and analysis.
- Works closely with, answers questions from and supports developers from other applications that integrate and use the order management system
- Leads system design and specification development, program logic and flow-charting, testing, debugging, and documentation. Will be responsible for making complex design choices to be used by the development teams.
- Leads moderate to highly complex programming tasks, providing review of various development tasks and documentation. Provides analysis of problems and recommends solutions.
- Contributor in client/technology interactions in the development of technology solutions
- Interfaces with Enterprise Architecture & Infrastructure teams on strategic designs and initiatives.
- Leads the troubleshooting of complex problems in development and production environments, ensuring timely resolution of issues.
- Mentors more junior engineers/developers, serves as an SME on their system of expertise and directs the work and assigns development tasks of junior engineers/developers.
This position is located in Ann Arbor, Michigan
What you have
To ensure that we have fulfilled our promise of "challenging the status quo," this role has specific qualifications that successful candidates should have.
Required Qualifications
- Bachelor's degree in Computer Science
- 5 Years of Java programming experience
- 5 Experience with OOA/OOD, distributed systems/software, real time processing, relational database systems, messaging systems
- Experience with concurrency and multi-threading
- Experience with scaling, Java Garbage Collection, and performance tuning
- Deep understanding of data structures, algorithms and design patterns (GoF)
- Experience with agile, test-driven development
- Experience with Unix/Linux
- Experience with build, deploy and test automation tools like Ant, Gradle, Maven, Jenkins, TeamCity, Junit, TestNG, JaCoCo or similar tools
- Demonstrated experience working with core business logic within applications
- Excellent written and verbal communication skills
Preferred Qualifications
- Experience with application development frameworks like Spring, Hibernate, JSF or similar frameworks
- Experience in distributed in-memory data grid
- Experience in developing APIs and Frameworks
In addition to the salary range, this role is also eligible for bonus or incentive opportunities