Java Technical Lead
The Java Technical Lead works closely with the architecture team to bring enhancements and new products to a reality. This role requires extensive hands-on software development skills, deep technical expertise across the entire software delivery process, from content generation to delivery. You will be active member of the Research and Development team which can enable Training, Testing and Execution of sophisticated Machine Learning, Deep Learning and Artificial Intelligence based models in the current product stack.
The Engineering team is seeking a Java Technical Lead who is passionate about writing code and unafraid of solving big problems. You will bring creative ideas and energy to a team, take some risks, and challenge our thinking.
- Defining and implementing our web customer portal for our millions of users with your knowledge of the latest web development tools and methodologies.
- Working as part of our team driving, designing, creating and maintaining components of our Backend Systems.
- Rapidly iterating on product and platform features by quickly understanding requirements and producing good quality code.
- Being a subject matter expert by identifying technology trends and platforms (including web and mobile apps) and collaborating with other team members to make recommendations based on the company's needs.
- Being involved in all stages of development, from product ideation through architecture and execution.
- Helping evolve the software development methodology based on agile and lean thinking, including impacting the development of coding conventions, documentation standards, testing procedures and quality assurance.
- Maintaining up-to-date knowledge of technology standards, industry trends, emerging technologies, and software development best practices.
- Ensuring technical issues are quickly resolved and implement strategies and solutions to help reduce the likelihood of recurrence.
- Identifying competitive services, opportunities for innovation, and providing an assessment of obstacles and technical hurdles to the success of the project.
- Interfacing with Architects to understand the design skeleton.
- Creating the framework for apps, setting standards/guidelines.
- 5 years of Core Java, Multi-threading, Performance Tuning
- 5 years OOA/OOD, knowledge of design patterns, where, why, and how they work
- 2 years of Spring / Spring Cloud / Play Application Framework
- 2 years designing and developing REST Web Services
- 2 years using ORM (Hibernate / Ebeans / OpenJPA)
- 2 years Test Driven Development, Unit Tests
- Experience with Cloud Based Applications on AWS/Microsoft Azure/Google Cloud Platform
- 7+ years software development experience
Qualifications, Strengths and Skill
- Strong conceptual knowledge of: OOPS, Core Java, Collections, Multithreading etc.
- Experience with working on frameworks: Spring Boot all modules, Spring/Struts, JDBC, Hibernate, WebServices (SOAP/REST)
- Experience on web/application servers (Tomcat, Jetty, WildFly, Netty etc.)
- Experience with software design patterns like creational, structural, behavioral and concurrency patterns.
- Experience in DevOps process and tools like Jenkins/Bamboo also build technology like Maven/Gradle
- Experience with GitHub/Bitbucket/GitLab/Subversion etc. versioning systems.
- Experience with micro services development using Spring/Spring boot or any other technology framework.
- Ability to work with automated unit test frameworks like Junit and Mockito.
- Ability to write SQL with complex joins on RDBMS, understanding of database functions
- Ability to quickly learn and deliver on analogous technologies not previously worked on.
- Ability to communicate clearly across teams in the project
Nice to Have
- Experience in working with Log aggregators, application monitoring tools and config servers.
- Experience in developing and deploying applications to cloud platforms AWS, ====P, Azure etc.
- Good to have experience with NoSQL databases like MongoDB/ Apache Cassandra
- Experience with JMS, listeners configuration, queue configuration etc., batch scheduling techniques
- Experience on Agile/Scrum based delivery.
- Unix / Linux operating system knowledge
- Industry recognized Technology Certifications