The Software Developer II will work closely with a dynamic team of developers who all share a common goal: building highly reliable and scalable systems.
- 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.
- Perform other duties as required and assigned by manager and upper management.
- Follow legal policies as directed.
Minimum Job Requirements
- 3+ 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.
Preferred Job Requirements
- Knowledge of data structures and algorithms
- Experience with Object Relational Mapping (ORM) tools such as Spring and Hibernate.
- Experience with Asynchronous messaging technologies such as JMS, Apache Kafka, Apache Pulsar, or RabbitMQ.
- Experience with production trouble shooting and analysis using log / debugging tools such as Splunk, AppDynamics.
- 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.
- Agile Development
- Development Frameworks /IDEs such as IntelliJ
- ORM Frameworks such as Hibernate
- Multi threading, Concurrent programming
- Security frameworks
- Cache technologies
- Micro Service Architecture
- Transaction Handling across DBs/Services
- Enterprise Architecture
- Peer programming/ Code review skills
- Scaling applications for performance and availability
- Log analysis tools such as Splunk, ELK Stack
- RDBMS (such as Oracle) Knowledge
- Unit/Integration Testing Tools such as JUnit, TestNg
- 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
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.