About the Job
We are looking for a Technology Lead responsible for managing a Development team. This role encompasses managing complex back-end services and their corresponding client-side applications (desktop and mobile). Your primary responsibility will be to design and develop these applications while coordinating with the rest of the team working on various infrastructure layers. A commitment to collaborative problem-solving, sophisticated design, and product quality is essential.
Responsibilities
- Serve as a senior professional with 10-12 years of experience.
- Translate application storyboards and use cases into functional applications.
- Design, build, and maintain efficient, reusable, and reliable Java code.
- Ensure optimal performance, quality, and responsiveness of the applications.
- Identify bottlenecks and bugs, and devise solutions to these issues.
- Help maintain code quality, organization, and automation.
- Manage the team and successfully deliver projects.
Skills and Qualifications
- Experience working in an agile software development environment with a solid understanding of agile architecture principles.
- Strong collaborative mindset for decentralized decision-making.
- Demonstrate strong technical skills with a deep understanding of modern architectural styles and practices, including Microservices, Containers, Cloud (AWS, Azure), APIs, Continuous Delivery, Event-driven architecture, and Evolutionary architecture, along with a passion for coding.
- Solid foundation in software architecture concepts, patterns, principles, and quality attributes, with the ability to apply them in real-world scenarios using a pragmatic, systems-thinking approach.
- Proven leadership skills with a proactive, positive, and growth-oriented mindset.
- Ability to foster and motivate programmers in delivering craftsmanship.
- Excellent personal communication skills, with an egoless and empathetic mindset.
- Experience in delivering architectures for large software solutions addressing critical business needs.
- Capability to proactively uncover technical debts and identify continuous improvement opportunities in existing live systems.
- Work closely with the product owner and enterprise architects to influence and prioritize technical backlog items.
Technical Skills Required
- Proficient in Java & Java EE with a solid knowledge of its ecosystems.
- Experience with cloud platforms such as AWS, Azure, or Google and Serverless architecture.
- Front-end technology experience (e.g., Angular, React, Vue, Flutter) and familiarity with Node.js is a plus.
- Understanding of concepts such as OOP, MVC, JDBC, and RESTful services.
- Experience handling JSON and Swagger Open API specifications, microservices orchestration, service mesh, authentication, and authorization.
- Proficient in NoSQL (preferably MongoDB) and RDBMS (e.g., Oracle, PostgreSQL) with the ability to write complex SQL queries, procedures, and functions.
- Experience in designing and creating database schemas to support business processes.
- Proficient in Spring framework (Spring Core, Spring Boot, Spring Batch, Spring Data, Spring Security) and Hibernate ORM.
- Familiarity with messaging technologies such as JMS, ActiveMQ, IBM MQ, and Apache Kafka.
- Expertise in container-based architecture, including Kubernetes and Docker.
- Experience with CI/CD tools like Jenkins and GitLab CI/CD.
- Proficient understanding of code versioning tools (Azure Repo, Bitbucket, Git, GitLab).
- Familiarity with build tools (Ant, Maven, Gradle).
This position offers a unique opportunity to lead innovative technology solutions in a dynamic environment. If you possess the necessary skills and are ready to advance your career, we would love to hear from you.