Job Summary
Reporting to the Manager, Information Architecture, this software developer role will participate in development projects and work closely with the IT Systems team to provide software solutions. The Software Developer II will design, implement, and maintain software programs in support of business and educational delivery needs at CNC. The role involves designing software solutions and maintaining a catalogue of custom-developed and third-party software to ensure high business value, information security, and system interoperability.
Specific Duties
- Build software modules supporting development projects, aligned with specifications from the Software Developer III.
- Design web, desktop, and console applications to meet business and educational needs, aligned with IT architectural goals.
- Write efficient, maintainable code, markup, and queries for software applications.
- Conduct code reviews to assess quality and provide feedback.
- Plan and coordinate testing, upgrades, changes, and deployments.
- Manage and curate CNC software code repository, ensuring proper documentation, versioning, and change management.
- Train users on new software.
- Perform database administration tasks such as security configuration, backups, and maintenance planning.
- Create, maintain, and troubleshoot complex SQL queries involving aggregation, sub-queries, and advanced features.
- Optimize data structures, SQL queries, and application logic for performance.
- Identify and implement improvements in existing programs.
- Design and develop information systems based on process diagrams and documented requirements.
- Advocate for the use of technology to automate and standardize business practices.
- Analyze processes to produce operational improvement recommendations.
- Ensure data confidentiality, security, and compliance with relevant legislation.
- Apply industry-standard security practices to safeguard information systems and applications.
- Participate in committees and working groups as a subject matter expert.
- Manage enterprise system user accounts, including setup and information retrieval.
- Troubleshoot basic network issues using standard tools.
- Contribute to the college's vision, mission, and goals, supporting learners.
- Promote a professional and respectful work environment.
- Perform other related duties as assigned.
Skills & Qualifications
- Bachelor’s degree or higher in Computer Science or Software Engineering from a recognized institution.
- Minimum of two years of experience in software design and development or equivalent education and experience.
- Experience in post-secondary education or the public sector is preferred.
- Proficiency with Microsoft development tools such as Visual Studio, SQL Server Management Studio, and IIS.
- Experience with ASP.NET, C#, Razor, Blazor, Web APIs, JavaScript, CSS, JQuery, and Knockout.js.
- Understanding of Azure AD, Azure development, and app registration.
- Knowledge of SQL Server features like external tables, triggers, indexing, and sub-queries.
- Understanding of high availability concepts like clustering and load balancing.
- Ability to automate tasks using shell scripts and PowerShell.
- Experience with source control systems.
- Knowledge of content management systems such as Sitefinity.
- Understanding of system configuration management and risk management practices.
- Ability to interpret system diagrams and models.
- Knowledge of network concepts and troubleshooting techniques.
- Ability to mentor less experienced team members and lead projects.
- Strong commitment to service excellence, teamwork, and effective communication skills.