Location: Waterloo Ontario N2L 3L3, Hybrid On-site 4 days a week
Duration: 12 months to long term
Overview
Employees in this job function are responsible for designing, developing, testing and maintaining software applications and products to meet customer needs. They are involved in the entire software development lifecycle including designing software architecture, writing code, testing for quality and deploying the software to meet customer requirements. Full-stack software engineering roles, who can develop all components of software including user interface and server side also fall within this job function.
Key Responsibilities
- Engage with customers to deeply understand their use-cases, pain points, and requirements, showcasing empathy and advocating for user-centric software solutions
- Solve complex problems by designing, developing, and delivering using various tools, languages, frameworks, methodologies (like agile) and technologies
- Assess the requirements of the software application or service and determine the most suitable technology stack, integration method, deployment strategy, etc.
- Create high-level software architecture designs that outline the overall structure, components, and interfaces of the application
- Collaborate with cross functional teams like product owners, designers, architects etc.
- Define and implement software test strategy, guidelines, policies and processes in line with organization vision, industry regulations and market best practices.
- Work on continuously improving performance and optimizing the application and implement new technologies to maximize development efficiency
- Familiar with programming practices, such as test-driven development, continuous integration, and continuous delivery
- Support security practices to safeguard user data including encryption and anonymization.
- Create user-friendly and interactive interfaces
- Develop and maintain back-end applications like APIs and microservices using server-side languages
- Evaluate and incorporate emerging technologies and capabilities to deliver their solutions, and are monitoring and participating in solutions for new stack layers, often involving industry collaboration
Skills Required
SQL Server, Java, Spring Boot
- Java: Writing Java application code. Good understanding of object-oriented principles and design.
- SQL Server: writing SQL queries and optimizing slow performing queries. Relational database design and indexing strategies
- SpringBoot: developing REST APIs handling high call volume
Experience Required
- Bachelor's degree in computer science, software engineering or related field 8+ years of experience in software development (Java, C#, or similar are preferred)
- 8+ years of experience working with relational databases (such as SQL server) Experience in front end development (JavaScript, HTML, etc)
Experience Preferred:
- Experience with SpringBoot and Java Microservices Experience with ELK stack (ElasticSearch and Logstash in particular)
- Experience with OpenShift, Kubernetes, Docker, and similar technologies
- Experience with public clouds such as GCP, Azure, and AWS Embedded development experience and experience with GDB Experience with Python
#INDPRO