The Senior Software Developer’s role is to analyze, design, code, test, execute, assess, and troubleshoot software programs and applications. This includes researching, designing, configuring, developing and documenting software specifications throughout the production lifecycle. The Senior Software Developer will also analyze and amend software errors in a timely and accurate fashion and provide status reports when required. The Senior Software Developer also provides 3rd level Production support.
A. Strategy & Planning – 30%
• Collaborate with business analysts, product managers and application architects in the initiation of new solutions and/or software programs and applications.
• Assist other developers in conceptualizing and developing new software programs and applications.
• Plan phases of the software development life cycle (SDLC) for a variety of projects.
• Assist in the preparation and documentation of software requirements, specifications and designs.
• Research and document detailed design of the business systems.
• Oversee the unit testing of program logic, data processing, and error resolution.
B. Acquisition & Deployment – 20%
• Conduct research on emerging application development software products, languages, and standards in support of procurement and development efforts.
• Recommend, schedule, and perform software improvements and upgrades.
C. Operational Management – 50%
• Consistently write, translate, and code software programs and applications according to specifications.
• Run and monitor software performance tests on new and existing programs for the purposes of correcting errors, isolating areas for improvement, and general debugging.
• Administer critical analysis of test results and deliver solutions to problem areas.
• Generate statistics and prepare and write reports for management and/or team members on the status of the programming process.
• Assist in the development and maintenance of user manuals and guidelines.
• Write programming scripts to enhance functionality and/or appearance of business systems as necessary.
• Liaise with operational teams to assist in resolving problems with software products or business systems and identifying and fixing root cause of incidents.
Knowledge and Skills Required
Education and Experience
• College Diploma or University Degree in the field of computer science or software engineering.
• Minimum of 8 years equivalent work experience.
• Expert in J2SE technologies such as; JDBC, Java collections, Java IO concurrency, multi-threading, reflection, EJB, JPA, JSP/JSF, JMS, Spring, Hibernate and Struts.
• Extensive technical knowledge of programming languages such as: C/C++, Java, Scripting languages ex. Perl and/or TCL.
• Expert with Spring framework
• Expert in SOA and Microservices architecture and design.
• Expert in creating Restful API services
• Extensive knowledge of gRPC (nice to have)
• Expert knowledge of Web Services, XML, XSD Schema
• Extensive knowledge of Spring Security.
• Extensive knowledge of web application servers: Tomcat and WebLogic is required, JBoss is optional.
• Expert experience with Software version control tools: Git, Nexus
• Expert experience with build automation tools: Gradle and Maven
• Expert experience with configuration management tools: Ansible preferred
• Expert experience with CI/CD automation tools: Jenkins preferred
• Extensive knowledge with DNS management systems: BlueCat DNS preferred
• Extensive knowledge of network systems and concepts: firewalls, f5
• Expert experience with secrets management tools: HashiCorp Vault preferred
• Strong experience working with open source software technologies
• Understanding and exposure to agile task allocation and defect management
• Extensive experience with SOLARIS & LINUX operating systems is a must, RHEL preferred.
• Extensive experience with relational databases – Oracle is preferred.
• Knowledge and experience of MQ technologies (ActiveMQ/IBM MQ).
• Familiarity with the financial industry is an asset.
• Reliable project owner.
• Leading developer role in multiple projects.
• Ability to effectively prioritize and execute tasks in a high-pressure environment is crucial.
• Flexible and adaptable with regard to learning and understanding new technologies.
• Good written and oral communication skills.
• Strong interpersonal skills.
• Ability to conduct research into software-related issues and products and lead development stream, provide POC.
• Technically proficient and highly logical.
• Highly self-motivated and directed.
• Keen attention to detail.
• Proven analytical and problem-solving abilities.
• Ability to work both independently and in a team-oriented, collaborative environment
• Overtime hours may be required to meet project deadlines.
• Open to discussion and giving feedback promptly.
• Happy to share information and knowledge with team members.
• Encourage and inspire others.
What you can expect from us
Build your career with us.
It is an extraordinary time to be in business. As digital transformation continues to accelerate, CGI is at the center of this change—supporting our clients’ digital journeys and offering our professionals exciting career opportunities.
At CGI, our success comes from the talent and commitment of our professionals. As one team, we share the challenges and rewards that come from growing our company, which reinforces our culture of ownership. All of our professionals benefit from the value we collectively create.
Be part of building one of the largest independent technology and business services firms in the world.
Learn more about CGI at www.cgi.com.
No unsolicited agency referrals please.
CGI is an equal opportunity employer. In addition, CGI is committed to providing accommodations for people with disabilities in accordance with provincial legislation. Please let us know if you require a reasonable accommodation due to a disability during any aspect of the recruitment process and we will work with you to address your needs.