0% found this document useful (0 votes)
89 views4 pages

Software Developer Career Skills Matrix - Draft

- I can produce a correct implementation for a simple method or interface, given a well-defined specification of desired behavior and interface. I regularly seek help/advice from others. My code can be understood & maintained by others. - I can adapt my code when I receive small changes in its specification without rewriting it entirely, provided I know the change is incremental. I can change my own code given detailed instructions from a more experienced programmer. - I know the entry and termination points in the code I write. I can use the main I/O channels of my language to input and print simple text and numbers.

Uploaded by

cpieren
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views4 pages

Software Developer Career Skills Matrix - Draft

- I can produce a correct implementation for a simple method or interface, given a well-defined specification of desired behavior and interface. I regularly seek help/advice from others. My code can be understood & maintained by others. - I can adapt my code when I receive small changes in its specification without rewriting it entirely, provided I know the change is incremental. I can change my own code given detailed instructions from a more experienced programmer. - I know the entry and termination points in the code I write. I can use the main I/O channels of my language to input and print simple text and numbers.

Uploaded by

cpieren
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Core Competency Discipline Junior Software Developer Intermediate Software Developer Senior Software Developer Lead Software Developer

Experience
I have a Computer Science Degree or Technology I have at least 2 years industry experience in development. 2-5 I have at least 5 years industry experience in development. 5-10 I have at least 7 years industry experience in development, and
diploma in development years of experience recommended years of experience recommended have been primary dev owner of several projects. 7-10 years of
Experience experience is recommended,

I can produce a correct implementation for a I can produce a correct implementation for a I can recognize in advance inconsistent or I can recognize in advance inconsistent or
simple method or interface, given a well-defined complex method or interface, given a loosely defined conflicting requirements in specifications. I conflicting requirements in specifications. I
specification of desired behavior and specification of desired behavior and can break down a complex program architecture can break down a complex program architecture
Writing Code
interface. I regularly seek help/advice from others. interface. I work independently and rarely require assistance. into smaller components and layers that can be implemented into smaller components and layers that can be implemented
My code can be understood & maintained by others. I actively follow Clean Code principles and organize my code in parallel. I will independently find a scalable solution in parallel. I will independently find a scalable solution
in a way that is intuitive for others within appropriate project constraints. within appropriate project constraints.
I can adapt my code when I receive small I can derive a refactoring strategy on my own I can reverse-engineer someone else's code I can reverse-engineer someone else's code
changes in its specification without rewriting it code, given relatively small changes in base with help from the original specification, base with help from the original specification,
entirely, provided I know the change is specifications. I can change other people's and predict accurately the effort needed to and predict accurately the effort needed to
incremental. I can change my own code code given precise instructions from a person adapt it to a new specification. I can introduce adapt it to a new specification. I can introduce
given detailed instructions from a more already familiar with the code. refactored code incrementally into a shared system refactored code incrementally into a shared system
experienced programmer with minimal impact to others. with minimal impact to others.
Refactoring
I can determine myself whether a small I can predict accurately the effort needed to I can reverse-engineer someone else's code I can reverse-engineer someone else's code
change in specification is incremental or adapt my own code base to a new base without original specification, and base without original specification, and
requires a large refactoring. I can change my specification. I can follow an existing predict accurately the effort needed to adapt predict accurately the effort needed to adapt
own code given loose instructions from a refactoring strategy on someone else's code. it to a new specification. it to a new specification.
more experienced programmer. I can take full responsibility for the integration
of someone else's patch onto my own code.
I know the entry and termination points in the I can delegate functions to an external I can implement both client and server I can implement both client and server
code I write. I can use the main I/O channels process at run-time. I know how to software for arbitrary protocol specifications. I software for arbitrary protocol specifications. I
of my language to input and print simple text productively use streaming and buffering to can quantify accurately the time and space can quantify accurately the time and space
and numbers. work on large data sets and use them in my overheads of different communication overheads of different communication
code. I am familiar with the notion of locality mechanisms (e.g., syscalls, pipes, sockets). I mechanisms (e.g., syscalls, pipes, sockets). I
and use it to tailor my implementations. am familiar with hardware architectures and am familiar with hardware architectures and
can predict how sequential programs will can predict how sequential programs will
behave when changing the underlying behave when changing the underlying
Embedding in a hardware. I can estimate the scalability of hardware. I can estimate the scalability of
larger system parallel code fragments on a given platform parallel code fragments on a given platform
I can make calls to web services comfortably. I know I have written web services for use by others. I have written I am familiar with most software architectures I am familiar with most software architectures
how API's function and can implement them. I may API's for use in other projects. I can do this with no supervision. in use with systems I develop for. I can work in use with systems I develop for. I can work
need help from time to time. I am comfortable with standard security practices and status together with system architects to mutually together with system architects to mutually
Writing

code implementations optimize my own software architecture with optimize my own software architecture with
the overall system architecture. I am familiar the overall system architecture. I am familiar
with most design and operational cost/benefit with most design and operational cost/benefit
trade-offs in systems that I develop for. trade-offs in systems that I develop for.
Ensures all changes scale
Follows SOLID Design Principles
May know of some design patterns but may not have Knows and reads about Design patterns. Has implemented Understands design patterns, can recognize when patterns are Understands design patterns, can recognize when patterns are
experience on properly implementing them or them but may need help from time to time. violated. Implements patterns consistently. Mentors other on violated. Implements patterns consistently. Mentors other on
Architecture
requires help. design patterns. Creates long-term scalable systems, and can design patterns. Creates long-term scalable systems, and can
spot issues well in advance spot issues well in advance
Knows how an application is architected/implemented
Must know how to connect different systems
I can write and execute basic SQL queries safely I can join data together and perform grouping functions, sorting I can profile my queries and determine optimization I can profile my queries and determine optimization opportunities
such as select, insert and update. I can select data functions, and aggregation. opportunities and correct them and correct them
efficiently with using nolock and avoiding select * and
Databases understand why.
I can join data from two or more tables using inner I can write subqueries. I have at least a cursory understanding I am comfortable adding appropriate indexes and analyzing I am comfortable adding appropriate indexes and analyzing
join, or outer joins and understand the differences of indexes, Triggers, and execution plans. execution plans. I have a cursory understanding of DB Configs execution plans. I have a cursory understanding of DB Configs
and can explain them. that may impact performance that may impact performance
I am able to utilize the built-in ORM functionality in I am able to resolve most ORM-driven merge conflicts due to I am able to resolve all ORM-driven merge conflicts due to my I am able to resolve all ORM-driven merge conflicts due to my
order to complete the tasks. I understand high level my experience. I profile my code to ensure the SQL is efficient. understanding of what the ORM is doing under the hood. I understanding of what the ORM is doing under the hood. I profile
what an ORM is doing behind the scenes. I make a I conciously make use of ORM features to ensure efficiency profile all my code and ensure efficiency is maximized, but can all my code and ensure efficiency is maximized, but can also
ORM Tools cursory attempt to use ORMs efficiently. within my code. also spot inefficient ORM code without the need to profile. I spot inefficient ORM code without the need to profile. I
conciously make use of ORM features to ensure efficiency conciously make use of ORM features to ensure efficiency
throughout the system, including through multiple layers throughout the system, including through multiple layers

I understand what unit tests are, and have I try to write unit tests for my code up-front. I am familiar with I am comfortable writing various types of automated tests. I I am comfortable writing various types of automated tests. I
experience writing unit tests for my own code code coverage and can find gaps where more testing would be know how to make use of the technology stack to create these know how to make use of the technology stack to create these
beneficial. I know the differences between different types of quickly and efficiently, and am comfortable with integrating quickly and efficiently, and am comfortable with integrating
Testing
testing (eg. Integration tests vs Unit tests, etc) these automations within the larger build environment. I can these automations within the larger build environment. I can
quickly spot missing test coverage and am comfortably adding quickly spot missing test coverage and am comfortably adding it
it in. in.
I can assemble program fragments by I can recognize when existing code requires I can systematically remove constraints from I can systematically remove constraints from
renaming variables until the whole becomes a particular overall architecture for reuse (e.g. existing code that are not mandated by existing code that are not mandated by
coherent and compatible with my goal. an event loop). I can adapt my own code in specification, to maximize its generality. I can specification, to maximize its generality. I can
advance to the requirements of multiple read and understand code that uses APIs read and understand code that uses APIs
separate libraries that I plan to reuse. most common in my domain without help most common in my domain without help
from their documentation. I can interface from their documentation. I can interface
code from different programming languages code from different programming languages
Reusing code with distinct operational semantics. with distinct operational semantics.
Given a library of mostly pure functions and I can recognize and extract reusable I can discover and reliably exploit I can discover and reliably exploit
detailed API documentation, I can reuse this components from a larger code base for my undocumented/unintended behavior of any undocumented/unintended behavior of any
library productively in my code. own use, even when the original author did code written in a language I understand, code written in a language I understand,
Understanding

not envision reusability. I can package, including code that I did not write myself. including code that I did not write myself.
document and distribute a software library for
others to reuse. I can interface stateless
code from different programming languages.
I can read the code I wrote and explain what I I can show and explain code fragments I I can gauge the expertise level of my I can gauge the expertise level of my
intend it to mean to someone more write in either imperative or declarative style audience and change the way I talk to them audience and change the way I talk to them
experienced than me. to someone else who knows a different accordingly. I can recognize when an accordingly. I can recognize when an
programming language where the same explanation is overly or insufficiently detailed explanation is overly or insufficiently detailed
style is prevalent, so that this person can for a given audience, and both give and receive feedback for a given audience, and both give and receive feedback
reproduce the same functionality in their accordingly. accordingly.
Explaining / language of choice.
Discussing code I can read code from someone of a similar I can explain my data structures, algorithms I can take part effortlessly in any I can take part effortlessly in any
role and explain what it and architecture patterns to someone else conversation or discussion about the conversation or discussion about the
means. I can recognize and explain simple using the standard terms in my domain, language(s) I use, and have a good familiarity language(s) I use, and have a good familiarity
mismatches between specification and without reference to my code. with idiomatic constructs. I can come up with idiomatic constructs. I can come up
implementation in my code or code from spontaneously with correct and spontaneously with correct and
someone at the same level as me or lower. demonstrative code examples for all demonstrative code examples for all
concepts I need to share with others. concepts I need to share with others.
I understand the basics of scrum and kanban I understand the basics of scrum and kanban and can explain I can work with product or solutions and setup a sprint or I know how to setup sprints based on team capacity. I
the pros and cons of each methodology kanban based on requirements provided. I can run a sprint understand what our team priorities are and manage to them
planning meeting and retro. effectively. I work with stakeholders to communicate changes in
sprint due to unplanned work. I am aware of target deliverables
and dates that have been communicated and I keep constant
eye on burndown progress and projected dates to ensure
Agile Practices
tracking and communicate as early as possible if we are off
target. I know how to make decisions along with stakeholders on
features in order to make timelines. I can run a retro and action
items that come from them and review progress. I know when to
use sprints vs when to use Kanban. I organise a demo or provide
a demo video when required.
I can distinguish between a command prompt I can read the reference documentation for I am able to read and understand most I am able to read and understand most
at a shell and an input prompt for a program the language(s) or API I use, and refer to it expert literature applicable to the languages I expert literature applicable to the languages I
run from this shell. I can follow online tutorials to clarify my understanding of arbitrary code use. I am able to recognize when an use. I am able to recognize when an
without help and reach the prescribed fragments. I can understand the general academic innovation is applicable to my academic innovation is applicable to my
outcome. I can search for the text of common concepts in articles or presentations by domain and adapt it for use in my projects. domain and adapt it for use in my projects.
error messages and adapt the experience of experts. I can track and determine who is
other people to my need. responsible for an arbitrary code fragment in
a system I use or develop for.
I can distinguish between features general to I can infer the abstract operating model of an I can recognize and expose tacit I can recognize and expose tacit
Resourcefulness
a language and features specific to a API or library from its interface, without assumptions in expert literature in my assumptions in expert literature in my
particular language implementation. I can access to documentation, and write small test domain. I can reliably recognize when the domain. I can reliably recognize when the
read the text of error messages and programs to test if my model is accurate. I narrative or description of a programming narrative or description of a programming
understand what they mean without external can recognize when a reference achievement is false or misleading, without achievement is false or misleading, without
help. documentation for a language or API is testing explicitly. testing explicitly.
incomplete or contradictory with a reference
implementation.
I may need help to complete my work from time to I often help others with their tasks and teach them new I often help others with their tasks and teach them new
time Can work independently, without follow ups or reminders techniques techniques
I can use a common programming I express and use dependency tracking in my I modify my programming environment to I modify my programming environment to
environment and follow common workflows programming environment to avoid tailor it to my personal style, and can quantify tailor it to my personal style, and can quantify
step-by-step to test/run a program. unnecessary (re)processing in my how these changes impact my productivity. I how these changes impact my productivity. I
development cycles. I can use different can productively use the preferred can productively use the preferred
development branches in version control for programming environments of at least 80% of programming environments of at least 80% of
different programming tasks. all programmers at my level or below. all programmers at my level or below.
I can integrate my source files in a I use different workflows for different I can reliably recognize and quantify friction I can reliably recognize and quantify friction
programming environment that automates programming assignments, with different between other programmers and their between other programmers and their
Mastery of the large portions of my programming workflow. I trade-offs between initial set-up overhead programming environment. I can measurably programming environment. I can measurably
environment use version control to track my progress and and long-term maintenance overhead. I can improve the productivity of my peers by improve the productivity of my peers by
Interacting

roll back from unsuccessful changes. enter the environment of someone else at my helping them tailor their environment to their helping them tailor their environment to their
level or below and make code contributions personal style. personal style.
there with minimal training.
I may need help working with source control, I fully understand how source control, automated builds and I can setup source control systems, CI/CD and teach others I can setup source control systems, CI/CD and teach others how
building, and pushing code. Is able to follow a source deployment function and can deploy without help. I understand how to use them properly. I have experience customizing and to use them properly. I have experience customizing and
control strategy when explained. and can explain the value in specific source control strategies integrationg variables and tools into these pipelines/systems integrationg variables and tools into these pipelines/systems
Interacting
I can distinguish between correct and Knows how to troubleshoot issues I can devise systematic strategies to track I can devise systematic strategies to track
incorrect output in my own programs. I am Looks for the root cause of an issue and fixes that rather than and fix bugs in code that I can and fix bugs in code that I can
familiar with the etiquette for asking help from just a bandaid. Ensures not to introduce new issues with their understand. I can recognize a hardware bug understand. I can recognize a hardware bug
experts in my domain. fix. in a system driven mostly by software I in a system driven mostly by software I
Deep analysis of the bug. Knows how to ensure the application designed. designed.
performs and implements code with that intention
Know how to troubleshoot performance issues
I can reliably distinguish between incorrect I can reduce a program error to the simplest I can track and attribute responsibility I can track and attribute responsibility
output due to incorrect input, from incorrect program that demonstrates the same error. I accurately for most unexpected/undesired accurately for most unexpected/undesired
Troubleshooting output due to program error. I can narrow have one or more working strategy to track behaviors in systems that I develop for. I can behaviors in systems that I develop for. I can
down the location of a program error in a and fix heisenbugs in code that I can track and isolate hardware bugs in systems track and isolate hardware bugs in systems
complex program to a single module or understand. I write and use regression tests where I have access to all software sources. where I have access to all software sources.
function. I can isolate and fix Bohr bugs in my for code that I work with directly.
own code.
I am able to spot logging opportunities when I am Proactively creates logging to catch theoretical bugs in Proactively creates very targetted logs in advance of any Proactively creates very targetted logs in advance of any issues.
struggling to pinpoint the location of a bug advance. May need to tailor those logs as bugs are issues. Can largely predict the verbosity of logs that will be Can largely predict the verbosity of logs that will be required.
encountered to achieve an appropriate verbosity. required. Knows in advance to add logs to areas that may not Knows in advance to add logs to areas that may not be intuitive,
be intuitive, and captures all Fatal events within the application and captures all Fatal events within the application logs rather
logs rather than relying on the underlying systems. than relying on the underlying systems.
Is able to take ownership of their own tasks but may Takes ownership of their tasks or issues, and sees solutions to Delegates work but continues to own it and make sure it gets Delegates work but continues to own it and make sure it gets
need reminders or help to make sure to follow see it through the end. Including through QA, Business Review completed till the end. This includes work requested by outside completed till the end. This includes work requested by outside
through it till the end. May need assistance dealing and Demo. Doesn't require reminders to ensure their tasks get parties. Is able to own entire projects, and parties. Is able to own entire projects, and spot/escalate/unblock
Ownership with Solutions to unblock things. completed on time, despite temporary blockages that may spot/escalate/unblock tasks that others on the team may be tasks that others on the team may be working through. Updates
arise. Tasks take a reasonable amount of time to complete, in working through. Keeps Lead(s) up to date with latest risk stakeholders if work can not be completed on time and notifies
line with others in my role. points and blockages. Tasks take a reasonable amount of time relevant parties and adjusts sprint or delivery targets, in
to complete, in line with others in my role. alignment with Solutions.
With some assistance, knows what systems to Feels comfortable owning & configuring alerting. Is able to Very quickly diagnoses impact, and based on that next steps Very quickly diagnoses impact, and based on that next steps and
monitor for alerts, and what the implications of those strike a close balance between actionable alerts vs noise. Has and escalations. Is comfortable making larger feature updates escalations. Is comfortable making larger feature updates in
alerts are. Follows established protocols to reach out a high degree of empathy for the users. Understands the in code to resolve support issues (in communication/approval code to resolve support issues (in communication/approval with
to users reporting issues. Follows established software and intentions enough to identify high level software with internal stakeholders). Consistently meets all SLAs and internal stakeholders). Consistently meets all SLAs and follows
Support
protocls to escalate in case of high risk or outage issues, or when a feature is interfering with user's regular work. follows all processes, and can explain why those processes are all processes, and can explain why those processes are in place
events Is able to solve many issues with gentle code updates (eg. in place
CRM element changes) and is comfortable adding in logging to
targetted locations in the software
I participate in retrospectives and sprint planning I am an active participant in meetings with teammates and I'm able to mentor staff and tailor my approach to different I'm able to mentor staff and tailor my approach to different
stakeholders. I can effectively communicate my ideas without learning styles of the person I am working with learning styles of the person I am working with. I provide
much trouble. performance coaching through regular 1 on 1 feedback. I action
retrospective items and track and maintain process and hold
myself and the team accountable.
Creates documentation but may need help making it Creates clear to understand and follow documentation. When Creates clear to understand and follow documentation. When Creates clear to understand and follow documentation. When
clear and easy to understand existing documentaiton is lacking, I update it to the best of my existing documentaiton is lacking, I update it to the best of my existing documentaiton is lacking, I update it to the best of my
ability, or flag it for further prioritization ability, or flag it for further prioritization ability, or flag it for further prioritization
Communication I can explain what I worked and what I am about to Creates effective tickets that outline exactly what needs to be I am able to run demos, stand-ups, retrospectives and meeting I am able to run demos, stand-ups, retrospectives and meeting
work on in stand-ups. I have trouble expressing done. to stakeholders effectively and clearly. I am able to speak to to stakeholders effectively and clearly. I am able to speak to
thoughts/ideas to peers. The ticket should be written for someone who doesn't complex technical solutions in a matter that business complex technical solutions in a matter that business
understand the project or the requirement of the current task. stakeholders can understand. I can clearly tie business need to stakeholders can understand. I can clearly tie business need to
Updates tickets clearly explaining the issue, solution, steps work being demonstrated. work being demonstrated. I encourage staff to assume these
taken, problems we ran into and remaining steps roles from time time.
Time entries should be accurate, entered on time and have
good descriptions explaining what was done
Tickets are kept up to date
I enter my time but may need to be reminded. I can I enter my time consistently and update time remaining I understand capacity and how it's calculated and being used to I understand the purpose and goal of estimation and i constantly
provide some level of estimate for my work but may effectively daily. I can estimate my work fairly accurately. I will help with planning. I can identify when others may be struggling review our teams ability to estimate and provide adequate
be off. I may occasionally miss my burndown call out if I am going over on tasks and proactively seek or going over on tasks and offer to help. I usually meet my strategies to deal with potential challenges that come up during a
Delivery commitments, or require regular assistance in assistance. I often meet my burndown commitments, due to a burndown commitments, and often spend some time helping sprint.I consistently review the teams time entries and ensure we
meeting them. high estimation accuracy and occasionally accepting help from others do the same. top them up to meet capacity. I understand why time entry is
others when I know my tasks are at risk of missing. needed and explain that to my team. I ensure my team is
updating remaining time on tasks.
I can learn by reading others code review comments Understands the change and how it solves the problem Understands the change and how it solves the problem Understands the change and how it solves the problem
and reading others code commits Checks for scalability Checks for scalability Checks for scalability
Making sure the solution is not brittle Making sure the solution is not brittle Making sure the solution is not brittle
Code Review Makes sure it follows best practices Makes sure it follows best practices Makes sure it follows best practices
Leaves effective comments on PR's Leaves effective comments on PR's Leaves effective comments on PR's
Can make effective decisions on if a PR comment should be Can make effective decisions on if a PR comment should be
addressed immediately or at a later time addressed immediately or at a later time
Understands the high level security risks that may be Keeps an eye out for any possible security risks in own code as Builds security in from the beginning. Actively goes out of their Builds security in from the beginning. Ensures projects have
present in the system, and follows recommendations well as in PRs or already present in the system, including way to check for security risks. Can identifiy security risks not security checks and audits built into the project breakdowns.
to avoid those risks PII/unauthorized API or code access. Understands the impact just in the software system, but also in the interactions between Encourages staff to escalate all possible security risks, and is
Security
to business of the security risks. Uses strategies to actively software and client environment. When risks are found, will prepared to escalate those internally.
avoid such security risks. Knows to escalate for next steps suggest next steps and escalate with the appropriate internal
when active risks are identified stakeholders
I actively seek insights and growth opportunities from I share my experience within the team, particularly with junior I look for opportunities to mentor others. When an opportunity I look for opportunities to mentor others. When an opportunity for
those with more experience, and seek exposure to a members. When I leave feedback on PRs I take the time to for growth is identified I am comfortable talking to the wider growth is identified I am comfortable talking to the wider team
wide breadth of experiences explain why, to promote further learning. I still seek growth team about why it is important, and how to improve. I recognize about why it is important, and how to improve. I recognize that
Mentorship
opportunities from those with more experience and focus on a that while others devs may turn to me for advice, I must coach while others devs may turn to me for advice, I must coach them
deep understanding of the technology stack I use them rather than simply provide solutions. rather than simply provide solutions. I look for opportunities to
setup mentoring relationships
I am able to work well with others. I am able to I am able to work well with others. I am able to resolve most I can identify when there may be wider conflict within a team. I I consistently identify when there may be wider conflict within a
resolve most disagreements amicably and will disagreements amicably and will escalate for assistance when may be brought in to resolve technical conflicts, and can do so team, and keep an active pulse on the team dynamic. I am
Working with escalate for assistance when needed. needed. in a way that doesn't offend others. I know when it is comfortable in understanding others points of view, without
others / Conflict appropriate to escalate for conflict de-escalation assistance. pointing fingers myself. I may be brought in to resolve both
Mgmt technical and personality conflicts, and can do so in a way that
doesn't offend others. I know when it is appropriate to escalate
for conflict de-escalation assistance.
Learning

I may refer to school work to familiarize myself with I occasionly read white papers, blogs, books on technology. I I suggest relevant conferences to management for attendance I suggest relevant conferences to management for attendance
topics encountered while working often take online courses and other training on my own time or by myself or others. I take online courses and training and by myself or others. I take online courses and training and
Self Improvement with work suggests training opportunities to others and management. I suggests training opportunities to others and management. I
actively provide suggestions for technology & process actively provide suggestions for technology & process
improvements within my wider team & department improvements within my wider team & department
I try to take part or lead team & company events, with respect to I organize team & attend company events, and do in so in a way
I try to take part in team & company events, with respect to my my own comfort levels. I consistently work with others in a that aims to respect the comfort levels of my team. I consistently
own comfort levels. I try to work with others in a positive way. I positive way. I encourage others to do so as well. I feel work with others in a positive way. I encourage others to do so
Positive I try to take part in team & company events, with encourage others to do so as well. I feel comfortable escalating comfortable escalating concerns to my Lead so they can be as well. I feel comfortable handling escalations (and looping in
Company respect to my own comfort levels. I try to work with concerns to my Lead so they can be addressed further, so that addressed further, so that everyone can enjoy a positive and appropriate stakeholders) to ensure that everyone can enjoy a
Culture others in a positive way everyone can enjoy a positive and respectful environment respectful environment positive and respectful environment

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy