- Use the right tools for the job
- Explore new ideas and find ways to improve software engineering practices across the entire team
- Be fanatical about performance and performance monitoring
Use efficient data structures and algorithms to enable data processing at scale
- Play a key role in helping shape all aspects of our products from cutting edge usability experiences to large scale data manipulation of terabytes of data
- Ensures software development standards, enterprise patterns and components are utilized in software development projects.
- Strong analytic skills and able to interpret complex information and adapts as needed.
- Participate in business continuous improvement efforts and provide guidance and direction to distributed teams, including onshore and offshore resources.
- Responsible for creating and maintaining all technical artifacts
- Manages workload effectively and reports status of tasks and risks in a timely manner.
- 6+ years of experience and demonstrated proficiency in software design and development methodologies and management techniques.
- Strong computer science fundamentals including a deep understanding of data structures. Able to create elegant, efficient and testable code.
- Experience with distributed computing and performance analysis.
- Java frameworks (Spring Hibernate, ORMs like Hibernate and/or iBATIS);
- Good knowledge OOD and design patterns;
- Extensive experience with the following: Java, Restful services, Spring
- . Extensive experience in writing manual/automated unit tests
- Knowledge on UI framework like Angular JS, Struts, JSF
- CI/CD: Maven, Jenkins or similar tools.
- Application container like Wesphere and tomcat.
- Highly motivated, creative, self-directed, and thrives in small project teams
- NoSQL database management such as Apache Cassandra, MongoDB
- Web Services using SOA, Spring Boot
- Exposure to cloud deployments and chef recipes
- Exposure to API management tools
- Experience working in UNIX environments, UNIX commands, shell scripts and processes.
- Bachelor's degree in computer science, information technology, engineering or related field (willing to accept foreign education equivalent)