Senior Software Developers are responsible for working on significant critical projects, must be able to take responsibility for all facets of the development process. They actively participate in Backlog Grooming and architecture discussions. They are capable of designing and implementing full system architectures with an emphasis on redundancy, scalability and durability. They foster strong working relationships within their scrum team and across other business groups. They are capable of supporting and mentoring team members to improve overall team velocity. They have mastery in core technologies and tools, understand all phases of the company software development life cycle, and demonstrate initiative and integrity in all aspects of work. They should demonstrate good analytical skills, have a basic understanding of overall company organization, as well as a strong understanding of business partner relationships and operations.
- Perform new application development including initial design and evaluation for work load to give an estimated work duration
- Provide maintenance support and enhance performance to existing application code
- Review and document existing application code
- Analyze and design databases within an application area, working individually or coordinating database development as part of a team
- Monitor and troubleshoot production software issues and provide solutions
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints
- Confer with systems analysts, engineers, programmers, product managers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces and legacy systems
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Develop and coordinate software unit testing and system testing and validation procedures, and documentation
- Develop in accordance with system performance standards set by the organization
- Coordinate software deployments and monitor applications to ensure specifications are met
- Mentor Junior developers
- Perform other duties as required and assigned by manager and upper management.
- Follow legal policies as directed.
Minimum Job Requirements
- 5+ years of recent software development experience.
- Strong development experience using Java, preferably with Java version 1.8 or later.
- Strong analytical skills.
- Proficiency in Object Oriented design and programming.
- Experience with build management tools, preferably Maven.
- Experience with version control tool, preferably Git.
- Proficiency with IDE-based development, especially in Eclipse or IntelliJ.
- Proficiency building unit tests / integration tests using JUnit or similar.
- SQL/NoSQL development experience
- Experience building web services, preferably using the REST style
- Knowledge of data structures and algorithms
Preferred Job Requirements
- Experience with production trouble shooting and analysis using log / debugging toolssuch as Splunk, AppDynamics.
- Experience using or administering Jira, Confluence, Bitbucket, subversion, Jenkins,Nexus Repository Manager
- Highly proficient in understanding new technologies accomplishing projects goals successfully.
- Exceptionally well organized, strong work ethics and willingness to work hard to achieve employer objectives.
- Strong teamwork and communication skills.
- Experience with building applications using container technologies such as Docker.
- Transaction Handling across DBs/Services
- Industry Technology Leadership
- Process Improvement & Product Management
- Agile Development
- Development Frameworks /IDEs such as IntelliJ
- ORM Frameworks such as Hibernate
- Multi threading, Concurrent programming
- Security frameworks
- Cache technologies
- Micro Service Architecture
- Enterprise Architecture
- Peer programming/ Code review skills
- Scaling applications for performance and availability
- Log analysis tools such as Splunk, ELK Stack
- Build tools such as Maven, Gradle
- Restful Web Services
- Data Structures and Algorithms
- Object Oriented Design
- SQL / NoSQL databases
- Source code management tools such as GIT/SVN
- Unix/ Linux
- Data interchange technologies such as JSON, XML
- Container technologies such as Tomcat, Jetty
- Written and Communication skills
- RDBMS (such as Oracle) Knowledge
- Unit/Integration Testing Tools such as JUnit, TestNg
Bachelor’s degree or U.S. equivalent in Computer Applications, Computer Engineering, Computer Science, Information Systems, Information Technology, or a related field or equivalent.
This position requires the incumbent to sit, stand and perform general office functions. The incumbent may also be required to lift up to 25 pounds occasionally. Bending, stooping and reaching are also frequently required.
Equal Employment OpportunityIt is our policy to provide equal employment opportunity for all applicants and associates. This policy includes our commitment to ensure that all employment decisions are made without regard to race, color, religion, gender, national origin, disability, pregnancy, veteran status (including Vietnam era veterans), age, sexual orientation, gender identity, or any other non-job-related characteristic protected by law.