Software Developer

Job description:

Software Developers design, develop, test, debug, maintain, document, and implement software applications or specialized utility programs. They are responsible for enhancements to existing packaged applications or pre-engineered templates and identify security risks, create requirements to capture security issues, and perform initial threat modeling.

Minimum Educational Qualifications:

A bachelor’s degree, usually in computer science, computer systems engineering, software engineering, or mathematics, or completion of a college program in computer science is usually required. A master’s or doctoral degree in a related discipline may be required.

Experience:

2-4 Years

Career Progression:

The career path of a Software Developer typically starts with an Associate position (Junior Software Developer), and then progresses to Software Developer, followed by Software Architect, Software Manager, and can move into senior management as Chief Technology/ Chief Information Officer.

About the Assessment Tool:

The platform measures skills that are organized around 6 general areas of competence: Business Analysis and Management, Design and Architecture, Development and Implementation, Testing and Quality Assurance, Security and Standards, and Administration and Support. Not all sections within these competencies are relevant to the chosen occupation as there are several common – and some unique – competencies for each of the 5 occupations.

The user is asked to select their proficiency level as it relates to the stated competency. There are three proficiency levels to choose from: Levels 1, 2, and 3. 

Level 1: Basic Level
The individual has some knowledge and experience to carry out standard, routine tasks under supervision. They can follow instructions, complete assigned tasks, manage their work, and assist other colleagues.

Level 2: Intermediate Level
The individual has the knowledge and experience to carry out both standard and non-standard tasks with minimal supervision. They can plan activities, make key decisions and work independently.

Level 3: Advanced Level
The individual has the knowledge and experience to carry out complex and specialized tasks confidently and consistently without any supervision. They apply specialized knowledge to design and implement strategies and provide guidance and supervision on the activity to others. 

These levels are related to job proficiency and do not describe learning levels that are usually associated with training programs or the levels indicated in specific IT certificates or certifications. In addition, these levels do not link to organizational hierarchical levels that define competency levels based on responsibilities and accountabilities. 

The results also show the criticality ratings for each competency. This describes the relative value or importance of each competency as identified by employers, HR professionals, and subject matter experts. Typically, the size of the organization, business or industry type, the specific skill and demand gap, etc. may influence the value/importance of each competency identified. The criticality rating may be based on the need and requirement for the specific job in question. Not Applicable means that a particular competency is not currently necessary for an individual to perform their job effectively. Desirable means that a particular competency would be beneficial, but not essential, for an individual to perform their job effectively. Essential means that a particular competency is necessary for an individual to perform their job effectively.

The following table outlines the recommended proficiency levels across the six competency areas based on primary and secondary research and the criticality ratings for each competency.

Competency Area 1: Business Analysis and Management Recommended Proficiency Criticality Rating
1.1 BUSINESS ENVIRONMENT ANALYSIS Level 2 Essential
1.2 BUSINESS NEEDS ANALYSIS Level 2 Essential
1.3 DATA ANALYTICS Not Applicable
1.4 EMERGING TECHNOLOGY SYNTHESIS Level 2 Essential
Competency Area 2: Design and Architecture Recommended Proficiency Criticality Rating
2.1 DATA DESIGN Level 1 Essential
2.2 SOFTWARE DESIGN Level 2 Essential
2.3 SOLUTION ARCHITECTURE Level 2 Essential
2.4 SYSTEM INTEGRATION Level 1 Essential
2.5 USER EXPERIENCE DESIGN Level 1 Essential
2.6 USER INTERFACE DESIGN Level 2 Essential
Competency Area 3: Development and Implementation Recommended Proficiency Criticality Rating
3.1 APPLICATIONS DEVELOPMENT Level 2 Essential
3.2 APPLICATION INTEGRATION Level 2 Essential
3.3 CLOUD COMPUTING Desirable
3.4 SOFTWARE CONFIGURATION Level 2 Essential
3.5 DATA ENGINEERING Not Applicable
3.6 DATA VISUALIZATION Not Applicable
Competency Area 4: Testing and Quality Assurance Recommended Proficiency Criticality Rating
4.1 SOFTWARE TESTING Level 2 Essential
4.2 TEST PLANNING Level 1 Essential
4.3 USABILITY TESTING Desirable
Competency Area 5: Security and Standards Recommended Proficiency Criticality Rating
5.1 DATA ETHICS Desirable
5.2 AUDIT AND COMPLIANCE Not Applicable
5.3 CYBER AND DATA BREACH INCIDENT MANAGEMENT Not Applicable
5.4 CYBER FORENSICS Not Applicable
5.5 CYBER RISK MANAGEMENT Not Applicable
5.6 QUALITY STANDARDS Level 1 Essential
5.7 SECURITY ADMINISTRATION Not Applicable
5.8 SECURITY GUIDANCE Not Applicable
5.9 SECURITY GOVERNANCE Not Applicable
Competency Area 6: Administration and Support Recommended Proficiency Criticality Rating
6.1 APPLICATIONS SUPPORT Level 2 Essential
6.2 DATABASE ADMINISTRATION Level 2 Essential
6.3 INFRASTRUCTURE SUPPORT Not Applicable
6.4 NETWORK ADMINISTRATION Not Applicable
6.5 PERFORMANCE MANAGEMENT Level 1 Desirable
6.6 PROBLEM MANAGEMENT Level 2 Essential
6.7 USER SERVICE SUPPORT Not Applicable

Software Developer Resources

Regulation and Certifications

This occupation is not regulated in Canada. However, software engineering is a discipline of professional engineering which is regulated. The following are some of the certifications and/or certificate programs that may be useful for this occupation:

Certified Software Development Professional (CSDP) – IEEE Computer Society 

Microsoft Certified Azure Developer Associate

Microsoft Technology Associate (MTA) – Software Development

AWS Certified Developer – Associate

Oracle Certified Professional, Java EE 7 Application Developer

Scrum Alliance Certified Scrum Developer (CSD)

Citrix Certified Associate-Virtualization (CCA-V)

Popular Courses and Learning Streams

The following is a curated collection of available resources that may be useful for this occupation:

“The Complete JavaScript Course 2022: From Zero to Expert!”, Udemy

“Introduction to Software Engineering”, Coursera + IBM

“Clean Code: Writing Code for Humans”, Pluralsight

Introduction to Computer Science and Programming Using Python”, edX + MIT

“Java Object-Oriented Programming”, LinkedIn Learning

Locally Available Certificates, Diplomas, and Degrees

The following is a list of certificates, diplomas, and degrees available from Nova Scotia universities and colleges that may be useful/necessary for this occupation:

Certificates:

Full Stack Application Development Graduate Certificate, Nova Scotia Community College

IT Programming for Internet of Things Graduate Certificate, Nova Scotia Community College

IT Programming for Artificial Intelligence Graduate Certificate, Nova Scotia Community College

Diplomas:

IT Programming Diploma, Nova Scotia Community College

Undergraduate Programs:

Bachelor of Computer Science, Dalhousie University

Bachelor of Applied Computer Science, Dalhousie University

Bachelor of Science with Major in Computing Science, Saint Mary’s University

Bachelor of Science/Arts with Major in Computer Science, St Francis Xavier University

Bachelor of Computer Science, Acadia University

Bachelor of Computer Science with Software Development Defined Option, Acadia University

Bachelor of Science with Major in Computer Science, Mount Saint Vincent University

Graduate Programs:

Master of Computer Science, Dalhousie University

Master of Applied Computer Science, Dalhousie University

Master of Digital Innovation, Dalhousie University

Master of Science in Computing and Data Analytics

Master of Applied Computer Science, St Francis Xavier University