Lead Software Engineer
Role details
Job location
Tech stack
Job description
As a Lead, Software Engineering, you will leverage your experience to implement and refine technical solutions for a wide range of industries. Working with a diverse team, you will engage in the entire engineering life cycle, focusing on designing, developing, optimizing, and deploying sophisticated software engineering solutions and infrastructure at a production scale suitable for the world's largest companies.
- Collaborate closely with and influence general consulting teams to identify software solutions to client business problems, to prioritize and execute those solutions
- Serve as a technical lead in delivering end-to-end solutions for client cases (from solution architecture to hands-on development work)
- Participate in the software development life cycle including designing distributed systems, reviewing documentation, and conducting code reviews
- Participate in expert client advisory services that require expertise in software engineering with distributed systems, AI and application architecture
- Collaborate on the development of reusable common frameworks, models, and components to efficiently address common software engineering challenges across various industries and business functions
- Champion best demonstrated practices in software engineering, and share learnings with team members in AIS about theoretical and technical developments in software engineering
- Lead industry-leading innovations that translate into great impact for our clients in case work
- Influence, educate and directly support the software engineering capabilities of our clients
- Stay current with emerging trends and technologies in cloud computing, data analysis, and software engineering, and proactively identify opportunities to enhance the capabilities of the software platform.
- Travel is required. This position requires regional travel away from your home office/primary working location. Travel frequency and destinations will vary based on project needs.
Requirements
Do you have experience in Web development?, Do you have a Master's degree?, * Master's degree in Computer Science, Engineering, or a related technical field
- 5 years minimum experience
- 3+ years at Senior or Staff level, or equivalent
Technical Skills and Knowledge:
- Working knowledge (4+ years) of Python
- Experience with server-side frameworks and technologies such as FastAPI, Node.js, Flask.
- Experience with Cloud platforms and services (AWS, Azure, GCP, etc.)
- Experience with implementation of large-scale structured or unstructured databases, orchestration and container technologies such as Docker, Kubernetes, Jenkins or Terraform
- Strong computer science fundaments in data structures, algorithms, automated testing, object-oriented programming, performance complexity, and implications of computer architecture on software performance.
- Experience with data architecture, database schema design, database scalability and SQL
- Knowledge of client-side technologies such as React, Angular, Vue.js, HTML and CSS
- Knowledge of agile development methodologies and principles
- Professional fluency in English and French with excellent communication (both oral and written) skills
Interpersonal Skills:
- Strong interpersonal and communication skills, including the ability to explain and discuss technicalities of solutions, algorithms and techniques with colleagues and clients from other disciplines
- Curiosity, proactivity and critical thinking
- Ability to collaborate with people at all levels and with multi-office/region teams
Other Experience:
- Relevant professional hands-on experience in web development, programming languages, version control, software design pattern, infrastructure and deployment, integration and unit testing implementation