Job Title : Lead Software Engineer
Location : Toronto Canada Hybrid schedule - 2 - 3 days onsite
Duration : 3-6 Months Contract
Job Description :
As a Java Lead Engineer, you will lead a team of engineers in designing, developing, and maintaining robust, scalable, and high-performance applications.
Your deep expertise in Java, microservices architecture, and cloud-native technologies will be essential in delivering enterprise-level solutions.
You will also be responsible for ensuring code quality, adherence to design principles, and the successful deployment of applications in a CI / CD environment.
Key Responsibilities :
- Application Development :
- Lead the development and maintenance of scalable, high-performance applications using Java and related frameworks.
- Architect and develop microservices using Spring Boot and other Java frameworks, ensuring modularity and reusability.
- Design and implement RESTful APIs that adhere to best practices in security, scalability, and performance.
- Microservices & Cloud-Native Architecture :
- Design and implement microservices architectures that follow the 12-factor app principles.
- Leverage Kubernetes for container orchestration, ensuring applications are deployed, managed, and scaled effectively.
- Utilize Kafka for building scalable, real-time data processing and messaging systems.
- Code Quality & Design Principles :
- Advocate for and enforce coding standards, code reviews, and best practices to maintain high-quality code.
- Apply SOLID principles and design patterns to ensure maintainable and scalable software architecture.
- Drive the adoption of automated testing practices, including unit, integration, and end-to-end testing.
- Database Management :
- Design and optimize SQL queries and database schemas to ensure efficient data storage and retrieval.
- Collaborate with the data engineering team to integrate relational databases with applications.
- Continuous Integration & Continuous Deployment (CI / CD) :
- Implement and manage CI / CD pipelines to automate the build, test, and deployment processes.
- Ensure smooth deployment of applications through automation, minimizing downtime and errors.
- Continuously improve the deployment process by integrating new tools and practices.
- Leadership & Mentorship :
- Lead and mentor a team of engineers, providing technical guidance and fostering a collaborative environment.
- Conduct regular code reviews, ensuring adherence to coding standards and best practices.
- Encourage continuous learning and professional development within the team.
- Collaboration & Communication :
- Work closely with product managers, designers, and other stakeholders to deliver features that align with business requirements.
- Ensure clear communication of technical concepts to non-technical stakeholders.
- Collaborate with cross-functional teams to integrate solutions across the organization.
- Performance & Scalability :
- Monitor application performance, identifying and resolving bottlenecks to ensure optimal operation.
- Implement scalability strategies, including load balancing and clustering, to handle increasing user demands.
- Conduct performance tuning of Java applications and optimize resource utilization.
- Innovation & Continuous Improvement :
- Stay updated with the latest trends and advancements in Java, microservices, and cloud technologies.
- Experiment with new tools, frameworks, and methodologies to continuously improve software development practices.
- Lead initiatives to enhance the engineering culture within the team, promoting innovation and efficiency.
Qualifications :
- Education : Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related field.
- Experience :
- Minimum of 5+ years of experience in software development with a strong focus on Java and related technologies.
- Proven experience in leading software engineering teams and driving successful project delivery.
- Extensive experience with Spring Boot and microservices architecture.
- Strong proficiency in SQL and relational database management.
- Hands-on experience with Kafka for messaging and event-driven architectures.
- Expertise in implementing CI / CD pipelines using tools like Jenkins, GitLab CI, or similar.
- Proficiency in Kubernetes for container orchestration and management.
- Skills :
- Strong understanding of the 12-factor app methodology and its application in building cloud-native applications.
- Deep knowledge of RESTful API design and implementation.
- Excellent problem-solving and analytical skills.
- Strong communication and leadership abilities.
- Ability to work collaboratively in a fast-paced, dynamic environment.
Preferred Qualifications :
- Experience with other Java frameworks such as Hibernate, Struts, or Play Framework.
- Knowledge of NoSQL databases and their integration with Java applications.
- Familiarity with DevOps practices and tools.
- Certification in Java, Kubernetes, or cloud platforms (e.g., AWS, GCP).
A reasonable, good faith estimate of the minimum and maximum for this position is $70 / Hr to $72 / Hr with Limited benefits