CINXE.COM
Dev Degree
<!doctype html> <html class="no-js hasFlex" lang="en"> <head> <script type="application/vnd.locksmith+json" data-locksmith>{"version":"v160","locked":false,"initialized":true,"scope":"index","access_granted":true,"access_denied":false,"requires_customer":false,"manual_lock":false,"remote_lock":false,"has_timeout":false,"remote_rendered":null,"hide_resource":false,"hide_links_to_resource":false,"transparent":true,"locks":{"all":[],"opened":[]},"keys":[],"keys_signature":"290f15252892bcba15140561233866dfe1a9b5d60c3059de00b03e90133870be","state":{"template":"index","theme":126306189334,"product":null,"collection":null,"page":null,"blog":null,"article":null,"app":null},"now":1732684141,"path":"\/","locale_root_url":"\/","canonical_url":"https:\/\/devdegree.ca\/","customer_id":null,"customer_id_signature":"290f15252892bcba15140561233866dfe1a9b5d60c3059de00b03e90133870be","cart":null}</script><script data-locksmith>!function(){var require=undefined,reqwest=function(){function succeed(e){var t=protocolRe.exec(e.url);return t=t&&t[1]||context.location.protocol,httpsRe.test(t)?twoHundo.test(e.request.status):!!e.request.response}function handleReadyState(e,t,n){return function(){return e._aborted?n(e.request):e._timedOut?n(e.request,"Request is aborted: timeout"):void(e.request&&4==e.request[readyState]&&(e.request.onreadystatechange=noop,succeed(e)?t(e.request):n(e.request)))}}function setHeaders(e,t){var n,s=t.headers||{};s.Accept=s.Accept||defaultHeaders.accept[t.type]||defaultHeaders.accept["*"];var r="undefined"!=typeof FormData&&t.data instanceof FormData;for(n in!t.crossOrigin&&!s[requestedWith]&&(s[requestedWith]=defaultHeaders.requestedWith),!s[contentType]&&!r&&(s[contentType]=t.contentType||defaultHeaders.contentType),s)s.hasOwnProperty(n)&&"setRequestHeader"in e&&e.setRequestHeader(n,s[n])}function setCredentials(e,t){"undefined"!=typeof t.withCredentials&&"undefined"!=typeof e.withCredentials&&(e.withCredentials=!!t.withCredentials)}function generalCallback(e){lastValue=e}function urlappend(e,t){return e+(/[?]/.test(e)?"&":"?")+t}function handleJsonp(e,t,n,s){var r=uniqid++,a=e.jsonpCallback||"callback",o=e.jsonpCallbackName||reqwest.getcallbackPrefix(r),i=new RegExp("((^|[?]|&)"+a+")=([^&]+)"),l=s.match(i),c=doc.createElement("script"),u=0,d=-1!==navigator.userAgent.indexOf("MSIE 10.0");return l?"?"===l[3]?s=s.replace(i,"$1="+o):o=l[3]:s=urlappend(s,a+"="+o),context[o]=generalCallback,c.type="text/javascript",c.src=s,c.async=!0,"undefined"!=typeof c.onreadystatechange&&!d&&(c.htmlFor=c.id="_reqwest_"+r),c.onload=c.onreadystatechange=function(){if(c[readyState]&&"complete"!==c[readyState]&&"loaded"!==c[readyState]||u)return!1;c.onload=c.onreadystatechange=null,c.onclick&&c.onclick(),t(lastValue),lastValue=undefined,head.removeChild(c),u=1},head.appendChild(c),{abort:function(){c.onload=c.onreadystatechange=null,n({},"Request is aborted: timeout",{}),lastValue=undefined,head.removeChild(c),u=1}}}function getRequest(e,t){var n,s=this.o,r=(s.method||"GET").toUpperCase(),a="string"==typeof s?s:s.url,o=!1!==s.processData&&s.data&&"string"!=typeof s.data?reqwest.toQueryString(s.data):s.data||null,i=!1;return("jsonp"==s.type||"GET"==r)&&o&&(a=urlappend(a,o),o=null),"jsonp"==s.type?handleJsonp(s,e,t,a):((n=s.xhr&&s.xhr(s)||xhr(s)).open(r,a,!1!==s.async),setHeaders(n,s),setCredentials(n,s),context[xDomainRequest]&&n instanceof context[xDomainRequest]?(n.onload=e,n.onerror=t,n.onprogress=function(){},i=!0):n.onreadystatechange=handleReadyState(this,e,t),s.before&&s.before(n),i?setTimeout(function(){n.send(o)},200):n.send(o),n)}function Reqwest(e,t){this.o=e,this.fn=t,init.apply(this,arguments)}function setType(e){return null===e?undefined:e.match("json")?"json":e.match("javascript")?"js":e.match("text")?"html":e.match("xml")?"xml":void 0}function init(o,fn){function complete(e){for(o.timeout&&clearTimeout(self.timeout),self.timeout=null;0<self._completeHandlers.length;)self._completeHandlers.shift()(e)}function success(resp){var type=o.type||resp&&setType(resp.getResponseHeader("Content-Type"));resp="jsonp"!==type?self.request:resp;var filteredResponse=globalSetupOptions.dataFilter(resp.responseText,type),r=filteredResponse;try{resp.responseText=r}catch(e){}if(r)switch(type){case"json":try{resp=context.JSON?context.JSON.parse(r):eval("("+r+")")}catch(err){return error(resp,"Could not parse JSON in response",err)}break;case"js":resp=eval(r);break;case"html":resp=r;break;case"xml":resp=resp.responseXML&&resp.responseXML.parseError&&resp.responseXML.parseError.errorCode&&resp.responseXML.parseError.reason?null:resp.responseXML}for(self._responseArgs.resp=resp,self._fulfilled=!0,fn(resp),self._successHandler(resp);0<self._fulfillmentHandlers.length;)resp=self._fulfillmentHandlers.shift()(resp);complete(resp)}function timedOut(){self._timedOut=!0,self.request.abort()}function error(e,t,n){for(e=self.request,self._responseArgs.resp=e,self._responseArgs.msg=t,self._responseArgs.t=n,self._erred=!0;0<self._errorHandlers.length;)self._errorHandlers.shift()(e,t,n);complete(e)}this.url="string"==typeof o?o:o.url,this.timeout=null,this._fulfilled=!1,this._successHandler=function(){},this._fulfillmentHandlers=[],this._errorHandlers=[],this._completeHandlers=[],this._erred=!1,this._responseArgs={};var self=this;fn=fn||function(){},o.timeout&&(this.timeout=setTimeout(function(){timedOut()},o.timeout)),o.success&&(this._successHandler=function(){o.success.apply(o,arguments)}),o.error&&this._errorHandlers.push(function(){o.error.apply(o,arguments)}),o.complete&&this._completeHandlers.push(function(){o.complete.apply(o,arguments)}),this.request=getRequest.call(this,success,error)}function reqwest(e,t){return new Reqwest(e,t)}function normalize(e){return e?e.replace(/\r?\n/g,"\r\n"):""}function serial(e,t){var n,s,r,a,o=e.name,i=e.tagName.toLowerCase(),l=function(e){e&&!e.disabled&&t(o,normalize(e.attributes.value&&e.attributes.value.specified?e.value:e.text))};if(!e.disabled&&o)switch(i){case"input":/reset|button|image|file/i.test(e.type)||(n=/checkbox/i.test(e.type),s=/radio/i.test(e.type),r=e.value,(!n&&!s||e.checked)&&t(o,normalize(n&&""===r?"on":r)));break;case"textarea":t(o,normalize(e.value));break;case"select":if("select-one"===e.type.toLowerCase())l(0<=e.selectedIndex?e.options[e.selectedIndex]:null);else for(a=0;e.length&&a<e.length;a++)e.options[a].selected&&l(e.options[a])}}function eachFormElement(){var e,t,a=this,n=function(e,t){var n,s,r;for(n=0;n<t.length;n++)for(r=e[byTag](t[n]),s=0;s<r.length;s++)serial(r[s],a)};for(t=0;t<arguments.length;t++)e=arguments[t],/input|select|textarea/i.test(e.tagName)&&serial(e,a),n(e,["input","select","textarea"])}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var n={};return eachFormElement.apply(function(e,t){e in n?(n[e]&&!isArray(n[e])&&(n[e]=[n[e]]),n[e].push(t)):n[e]=t},arguments),n}function buildParams(e,t,n,s){var r,a,o,i=/\[\]$/;if(isArray(t))for(a=0;t&&a<t.length;a++)o=t[a],n||i.test(e)?s(e,o):buildParams(e+"["+("object"==typeof o?a:"")+"]",o,n,s);else if(t&&"[object Object]"===t.toString())for(r in t)buildParams(e+"["+r+"]",t[r],n,s);else s(e,t)}var context=this,XHR2;if("window"in context)var doc=document,byTag="getElementsByTagName",head=doc[byTag]("head")[0];else try{XHR2=require("xhr2")}catch(ex){throw new Error("Peer dependency `xhr2` required! Please npm install xhr2")}var httpsRe=/^http/,protocolRe=/(^\w+):\/\//,twoHundo=/^(20\d|1223)$/,readyState="readyState",contentType="Content-Type",requestedWith="X-Requested-With",uniqid=0,callbackPrefix="reqwest_"+ +new Date,lastValue,xmlHttpRequest="XMLHttpRequest",xDomainRequest="XDomainRequest",noop=function(){},isArray="function"==typeof Array.isArray?Array.isArray:function(e){return e instanceof Array},defaultHeaders={contentType:"application/x-www-form-urlencoded",requestedWith:xmlHttpRequest,accept:{"*":"text/javascript, text/html, application/xml, text/xml, */*",xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript",js:"application/javascript, text/javascript"}},xhr=function(e){if(!0!==e.crossOrigin)return context[xmlHttpRequest]?new XMLHttpRequest:XHR2?new XHR2:new ActiveXObject("Microsoft.XMLHTTP");var t=context[xmlHttpRequest]?new XMLHttpRequest:null;if(t&&"withCredentials"in t)return t;if(context[xDomainRequest])return new XDomainRequest;throw new Error("Browser does not support cross-origin requests")},globalSetupOptions={dataFilter:function(e){return e}};return Reqwest.prototype={abort:function(){this._aborted=!0,this.request.abort()},retry:function(){init.call(this,this.o,this.fn)},then:function(e,t){return e=e||function(){},t=t||function(){},this._fulfilled?this._responseArgs.resp=e(this._responseArgs.resp):this._erred?t(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):(this._fulfillmentHandlers.push(e),this._errorHandlers.push(t)),this},always:function(e){return this._fulfilled||this._erred?e(this._responseArgs.resp):this._completeHandlers.push(e),this},fail:function(e){return this._erred?e(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):this._errorHandlers.push(e),this},"catch":function(e){return this.fail(e)}},reqwest.serializeArray=function(){var n=[];return eachFormElement.apply(function(e,t){n.push({name:e,value:t})},arguments),n},reqwest.serialize=function(){if(0===arguments.length)return"";var e,t=Array.prototype.slice.call(arguments,0);return(e=t.pop())&&e.nodeType&&t.push(e)&&(e=null),e&&(e=e.type),("map"==e?serializeHash:"array"==e?reqwest.serializeArray:serializeQueryString).apply(null,t)},reqwest.toQueryString=function(e,t){var n,s,r=t||!1,a=[],o=encodeURIComponent,i=function(e,t){t="function"==typeof t?t():null==t?"":t,a[a.length]=o(e)+"="+o(t)};if(isArray(e))for(s=0;e&&s<e.length;s++)i(e[s].name,e[s].value);else for(n in e)e.hasOwnProperty(n)&&buildParams(n,e[n],r,i);return a.join("&").replace(/%20/g,"+")},reqwest.getcallbackPrefix=function(){return callbackPrefix},reqwest.compat=function(e,t){return e&&(e.type&&(e.method=e.type)&&delete e.type,e.dataType&&(e.type=e.dataType),e.jsonpCallback&&(e.jsonpCallbackName=e.jsonpCallback)&&delete e.jsonpCallback,e.jsonp&&(e.jsonpCallback=e.jsonp)),new Reqwest(e,t)},reqwest.ajaxSetup=function(e){for(var t in e=e||{})globalSetupOptions[t]=e[t]},reqwest}(); /*! * Reqwest! A general purpose XHR connection manager * license MIT (c) Dustin Diaz 2015 * https://github.com/ded/reqwest */!function(){var o=window.Locksmith={},e=document.querySelector('script[type="application/vnd.locksmith+json"]'),n=e&&e.innerHTML;if(o.state={},o.util={},o.loading=!1,n)try{o.state=JSON.parse(n)}catch(u){}if(document.addEventListener&&document.querySelector){var s,r,a,t=[76,79,67,75,83,77,73,84,72,49,49],i=function(){r=t.slice(0)},l="style",c=function(e){e&&27!==e.keyCode&&"click"!==e.type||(document.removeEventListener("keydown",c),document.removeEventListener("click",c),s&&document.body.removeChild(s),s=null)};i(),document.addEventListener("keyup",function(e){if(e.keyCode===r[0]){if(clearTimeout(a),r.shift(),0<r.length)return void(a=setTimeout(i,1e3));i(),c(),(s=document.createElement("div"))[l].width="50%",s[l].maxWidth="1000px",s[l].height="85%",s[l].border="1px rgba(0, 0, 0, 0.2) solid",s[l].background="rgba(255, 255, 255, 0.99)",s[l].borderRadius="4px",s[l].position="fixed",s[l].top="50%",s[l].left="50%",s[l].transform="translateY(-50%) translateX(-50%)",s[l].boxShadow="0 2px 5px rgba(0, 0, 0, 0.3), 0 0 100vh 100vw rgba(0, 0, 0, 0.5)",s[l].zIndex="2147483645";var t=document.createElement("textarea");t.value=JSON.stringify(JSON.parse(n),null,2),t[l].border="none",t[l].display="block",t[l].boxSizing="border-box",t[l].width="100%",t[l].height="100%",t[l].background="transparent",t[l].padding="22px",t[l].fontFamily="monospace",t[l].fontSize="14px",t[l].color="#333",t[l].resize="none",t[l].outline="none",t.readOnly=!0,s.appendChild(t),document.body.appendChild(s),t.addEventListener("click",function(e){e.stopImmediatePropagation()}),t.select(),document.addEventListener("keydown",c),document.addEventListener("click",c)}})}o.isEmbedded=-1!==window.location.search.indexOf("_ab=0&_fd=0&_sc=1"),o.path=o.state.path||window.location.pathname,o.basePath=o.state.locale_root_url.concat("/apps/locksmith").replace(/^\/\//,"/"),o.reloading=!1,o.util.console=window.console||{log:function(){},error:function(){}},o.util.makeUrl=function(e,t){var n,s=o.basePath+e,r=[],a=o.cache();for(n in a)r.push(n+"="+encodeURIComponent(a[n]));for(n in t)r.push(n+"="+encodeURIComponent(t[n]));return o.state.customer_id&&(r.push("customer_id="+encodeURIComponent(o.state.customer_id)),r.push("customer_id_signature="+encodeURIComponent(o.state.customer_id_signature))),s+=(-1===s.indexOf("?")?"?":"&")+r.join("&")},o._initializeCallbacks=[],o.on=function(e,t){if("initialize"!==e)throw'Locksmith.on() currently only supports the "initialize" event';o._initializeCallbacks.push(t)},o.initializeSession=function(e){if(!o.isEmbedded){var t=!1,n=!0,s=!0;(e=e||{}).silent&&(s=n=!(t=!0)),o.ping({silent:t,spinner:n,reload:s,callback:function(){o._initializeCallbacks.forEach(function(e){e()})}})}},o.cache=function(e){var t={};try{var n=function r(e){return(document.cookie.match("(^|; )"+e+"=([^;]*)")||0)[2]};t=JSON.parse(decodeURIComponent(n("locksmith-params")||"{}"))}catch(u){}if(e){for(var s in e)t[s]=e[s];document.cookie="locksmith-params=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/",document.cookie="locksmith-params="+encodeURIComponent(JSON.stringify(t))+"; path=/"}return t},o.cache.cart=o.state.cart,o.cache.cartLastSaved=null,o.params=o.cache(),o.util.reload=function(){o.reloading=!0;try{window.location.href=window.location.href.replace(/#.*/,"")}catch(u){o.util.console.error("Preferred reload method failed",u),window.location.reload()}},o.cache.saveCart=function(e){if(!o.cache.cart||o.cache.cart===o.cache.cartLastSaved)return e?e():null;var t=o.cache.cartLastSaved;o.cache.cartLastSaved=o.cache.cart,reqwest({url:"/cart/update.json",method:"post",type:"json",data:{attributes:{locksmith:o.cache.cart}},complete:e,error:function(e){if(o.cache.cartLastSaved=t,!o.reloading)throw e}})},o.util.spinnerHTML='<style>body{background:#FFF}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}#loading{display:flex;width:100%;height:50vh;color:#777;align-items:center;justify-content:center}#loading .spinner{display:block;animation:spin 600ms linear infinite;position:relative;width:50px;height:50px}#loading .spinner-ring{stroke:currentColor;stroke-dasharray:100%;stroke-width:2px;stroke-linecap:round;fill:none}</style><div id="loading"><div class="spinner"><svg width="100%" height="100%"><svg preserveAspectRatio="xMinYMin"><circle class="spinner-ring" cx="50%" cy="50%" r="45%"></circle></svg></svg></div></div>',o.util.clobberBody=function(e){document.body.innerHTML=e},o.util.clobberDocument=function(e){e.responseText&&(e=e.responseText),document.documentElement&&document.removeChild(document.documentElement);var t=document.open("text/html","replace");t.writeln(e),t.close(),setTimeout(function(){var e=t.querySelector("[autofocus]");e&&e.focus()},100)},o.util.serializeForm=function(e){if(e&&"FORM"===e.nodeName){var t,n,s={};for(t=e.elements.length-1;0<=t;t-=1)if(""!==e.elements[t].name)switch(e.elements[t].nodeName){case"INPUT":switch(e.elements[t].type){default:case"text":case"hidden":case"password":case"button":case"reset":case"submit":s[e.elements[t].name]=e.elements[t].value;break;case"checkbox":case"radio":e.elements[t].checked&&(s[e.elements[t].name]=e.elements[t].value);break;case"file":}break;case"TEXTAREA":s[e.elements[t].name]=e.elements[t].value;break;case"SELECT":switch(e.elements[t].type){case"select-one":s[e.elements[t].name]=e.elements[t].value;break;case"select-multiple":for(n=e.elements[t].options.length-1;0<=n;n-=1)e.elements[t].options[n].selected&&(s[e.elements[t].name]=e.elements[t].options[n].value)}break;case"BUTTON":switch(e.elements[t].type){case"reset":case"submit":case"button":s[e.elements[t].name]=e.elements[t].value}}return s}},o.util.on=function(e,a,o,t){t=t||document;var i="locksmith-"+e+a,n=function(e){var t=e.target,n=e.target.parentElement,s=t.className.baseVal||t.className||"",r=n.className.baseVal||n.className||"";("string"==typeof s&&-1!==s.split(/\s+/).indexOf(a)||"string"==typeof r&&-1!==r.split(/\s+/).indexOf(a))&&!e[i]&&(e[i]=!0,o(e))};t.attachEvent?t.attachEvent(e,n):t.addEventListener(e,n,!1)},o.util.enableActions=function(e){o.util.on("click","locksmith-action",function(e){e.preventDefault();var t=e.target;t.dataset.confirmWith&&!confirm(t.dataset.confirmWith)||(t.disabled=!0,t.innerText=t.dataset.disableWith,o.post("/action",t.dataset.locksmithParams,{spinner:!1,type:"text",success:function(e){(e=JSON.parse(e.responseText)).message&&alert(e.message),o.util.reload()}}))},e)},o.util.inject=function(e,t){var n=["data","locksmith","append"];if(-1!==t.indexOf(n.join("-"))){var s=document.createElement("div");s.innerHTML=t,e.appendChild(s)}else e.innerHTML=t;var r,a,o=e.querySelectorAll("script");for(a=0;a<o.length;++a){r=o[a];var i=document.createElement("script");if(r.type&&(i.type=r.type),r.src)i.src=r.src;else{var l=document.createTextNode(r.innerHTML);i.appendChild(l)}e.appendChild(i)}var c=e.querySelector("[autofocus]");c&&c.focus()},o.post=function(e,t,n){!1!==(n=n||{}).spinner&&o.util.clobberBody(o.util.spinnerHTML);var s={};n.container===document?(s.layout=1,n.success=function(e){document.getElementById(n.container);o.util.clobberDocument(e)}):n.container&&(s.layout=0,n.success=function(e){var t=document.getElementById(n.container);o.util.inject(t,e),t.id===t.firstChild.id&&t.parentElement.replaceChild(t.firstChild,t)}),n.form_type&&(t.form_type=n.form_type),o.loading=!0;var r=o.util.makeUrl(e,s);reqwest({url:r,method:"post",type:n.type||"html",data:t,complete:function(){o.loading=!1},error:function(e){if(!o.reloading)if("dashboard.weglot.com"!==window.location.host){if(!n.silent)throw alert("Something went wrong! Please refresh and try again."),e;console.error(e)}else console.error(e)},success:n.success||o.util.clobberDocument})},o.postResource=function(e,t){e.path=o.path,e.search=window.location.search,e.state=o.state,e.passcode&&(e.passcode=e.passcode.trim()),e.email&&(e.email=e.email.trim()),e.state.cart=o.cache.cart,e.locksmith_json=o.jsonTag,e.locksmith_json_signature=o.jsonTagSignature,o.post("/resource",e,t)},o.ping=function(e){if(!o.isEmbedded){e=e||{};var t=function(){e.reload?o.util.reload():"function"==typeof e.callback&&e.callback()};o.post("/ping",{path:o.path,search:window.location.search,state:o.state},{spinner:!!e.spinner,silent:"undefined"==typeof e.silent||e.silent,type:"text",success:function(e){(e=JSON.parse(e.responseText)).messages&&0<e.messages.length&&o.showMessages(e.messages),e.cart&&o.cache.cart!==e.cart?(o.cache.cart=e.cart,o.cache.saveCart(function(){t(),e.cart&&e.cart.match(/^.+:/)&&o.util.reload()})):t()}})}},o.timeoutMonitor=function(){var e=o.cache.cart;o.ping({callback:function(){e!==o.cache.cart||setTimeout(function(){o.timeoutMonitor()},6e4)}})},o.showMessages=function(e){var t=document.createElement("div");t.style.position="fixed",t.style.left=0,t.style.right=0,t.style.bottom="-50px",t.style.opacity=0,t.style.background="#191919",t.style.color="#ddd",t.style.transition="bottom 0.2s, opacity 0.2s",t.style.zIndex=999999,t.innerHTML=" <style> .locksmith-ab .locksmith-b { display: none; } .locksmith-ab.toggled .locksmith-b { display: flex; } .locksmith-ab.toggled .locksmith-a { display: none; } .locksmith-flex { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding: 10px 20px; } .locksmith-message + .locksmith-message { border-top: 1px #555 solid; } .locksmith-message a { color: inherit; font-weight: bold; } .locksmith-message a:hover { color: inherit; opacity: 0.8; } a.locksmith-ab-toggle { font-weight: inherit; text-decoration: underline; } .locksmith-text { flex-grow: 1; } .locksmith-cta { flex-grow: 0; text-align: right; } .locksmith-cta button { transform: scale(0.8); transform-origin: left; } .locksmith-cta > * { display: block; } .locksmith-cta > * + * { margin-top: 10px; } .locksmith-message a.locksmith-close { flex-grow: 0; text-decoration: none; margin-left: 15px; font-size: 30px; font-family: monospace; display: block; padding: 2px 10px; } @media screen and (max-width: 600px) { .locksmith-wide-only { display: none !important; } .locksmith-flex { padding: 0 15px; } .locksmith-flex > * { margin-top: 5px; margin-bottom: 5px; } .locksmith-cta { text-align: left; } } @media screen and (min-width: 601px) { .locksmith-narrow-only { display: none !important; } } </style> "+e.map(function(e){return'<div class="locksmith-message">'+e+"</div>"}).join(""),document.body.appendChild(t),document.body.style.position="relative",document.body.parentElement.style.paddingBottom=t.offsetHeight+"px",setTimeout(function(){t.style.bottom=0,t.style.opacity=1},50),o.util.on("click","locksmith-ab-toggle",function(e){e.preventDefault();for(var t=e.target.parentElement;-1===t.className.split(" ").indexOf("locksmith-ab");)t=t.parentElement;-1!==t.className.split(" ").indexOf("toggled")?t.className=t.className.replace("toggled",""):t.className=t.className+" toggled"}),o.util.enableActions(t)}}()}();</script> <script data-locksmith>Locksmith.cache.cart=null</script> <script data-locksmith>Locksmith.jsonTag="\u003cscript type=\"application\/vnd.locksmith+json\" data-locksmith\u003e{\"version\":\"v160\",\"locked\":false,\"initialized\":true,\"scope\":\"index\",\"access_granted\":true,\"access_denied\":false,\"requires_customer\":false,\"manual_lock\":false,\"remote_lock\":false,\"has_timeout\":false,\"remote_rendered\":null,\"hide_resource\":false,\"hide_links_to_resource\":false,\"transparent\":true,\"locks\":{\"all\":[],\"opened\":[]},\"keys\":[],\"keys_signature\":\"290f15252892bcba15140561233866dfe1a9b5d60c3059de00b03e90133870be\",\"state\":{\"template\":\"index\",\"theme\":126306189334,\"product\":null,\"collection\":null,\"page\":null,\"blog\":null,\"article\":null,\"app\":null},\"now\":1732684141,\"path\":\"\\\/\",\"locale_root_url\":\"\\\/\",\"canonical_url\":\"https:\\\/\\\/devdegree.ca\\\/\",\"customer_id\":null,\"customer_id_signature\":\"290f15252892bcba15140561233866dfe1a9b5d60c3059de00b03e90133870be\",\"cart\":null}\u003c\/script\u003e";Locksmith.jsonTagSignature="fb153b136e1a0fc280c204fe2266531421d4034f73fdc4f260821b5db9bf3b5e"</script> <!-- Basic page needs ================================================== --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <link rel="shortcut icon" href="//devdegree.ca/cdn/shop/files/favicon_32x32.png?v=1613159812" type="image/png" /> <!-- Pixels ================================================== --> <!-- Global site tag (gtag.js) - Google Ads: 635282946 --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-635282946"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-635282946'); </script> <!-- Title and description ================================================== --> <title> Dev Degree </title> <meta name="description" content="Earn a computer science degree at Shopify through a learning and placement path that’s unlike any other program. Our innovative work-integrated learning model provides hands-on experience across a breadth of disciplines and teams, giving you the confidence to jump-start your future—wherever it takes you."> <!-- Mobile Specific Metas --> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="320"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <!-- Helpers ================================================== --> <meta property="og:type" content="website"> <meta property="og:title" content="Dev Degree"> <meta property="og:description" content="Earn a computer science degree at Shopify through a learning and placement path that’s unlike any other program. Our innovative work-integrated learning model provides hands-on experience across a breadth of disciplines and teams, giving you the confidence to jump-start your future—wherever it takes you."> <meta property="og:url" content="https://devdegree.ca/"> <meta property="og:site_name" content="Dev Degree"> <meta name="twitter:card" content="summary"> <link rel="canonical" href="https://devdegree.ca/"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="theme-color" content="#17234f"> <!-- CSS ================================================== --> <link href="//devdegree.ca/cdn/shop/t/12/assets/stylescss.scss.css?v=178008249783949864381729174598" rel="stylesheet" type="text/css" media="all" /> <link href="//devdegree.ca/cdn/shop/t/12/assets/slick.scss.css?v=105554840067576297321630434854" rel="stylesheet" type="text/css" media="all" /> <link href="//devdegree.ca/cdn/shop/t/12/assets/fonts.css?v=181007908889101614191630434830" rel="stylesheet" type="text/css" media="all" /> <!-- Header hook for plugins ================================================== --> <!-- icons ================================================== --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/7877722134/digital_wallets/dialog"> <meta name="shopify-checkout-api-token" content="f38211f9e499c18aad1e4c9b92f40f7a"> <meta id="in-context-paypal-metadata" data-shop-id="7877722134" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="CAD"> <script async="async" src="/checkouts/internal/preloads.js?locale=en-CA"></script> <link rel="preconnect" href="https://shop.app" crossorigin="anonymous"> <script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-CA&shop_id=7877722134" crossorigin="anonymous"></script> <script id="apple-pay-shop-capabilities" type="application/json">{"shopId":7877722134,"countryCode":"CA","currencyCode":"CAD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/7877722134","merchantName":"Dev Degree","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","interac","jcb"],"total":{"type":"pending","label":"Dev Degree","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script> <script id="shopify-features" type="application/json">{"accessToken":"f38211f9e499c18aad1e4c9b92f40f7a","betas":["rich-media-storefront-analytics"],"domain":"devdegree.ca","predictiveSearch":true,"shopId":7877722134,"smart_payment_buttons_url":"https:\/\/devdegree.ca\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/spb.en.js","dynamic_checkout_cart_url":"https:\/\/devdegree.ca\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/dynamic-checkout-cart.en.js","locale":"en"}</script> <script>var Shopify = Shopify || {}; Shopify.shop = "devdegreeteam.myshopify.com"; Shopify.locale = "en"; Shopify.currency = {"active":"CAD","rate":"1.0"}; Shopify.country = "CA"; Shopify.theme = {"name":"Reconfigure 2021 - Live - July 2022","id":126306189334,"schema_name":"Lorenza","schema_version":"2.7.1","theme_store_id":798,"role":"main"}; Shopify.theme.handle = "null"; Shopify.theme.style = {"id":null,"handle":null}; Shopify.cdnHost = "devdegree.ca/cdn"; Shopify.routes = Shopify.routes || {}; Shopify.routes.root = "/";</script> <script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script> <script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script> <script>window.ShopifyPay = window.ShopifyPay || {}; window.ShopifyPay.apiHost = "shop.app\/pay";</script> <script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script> <script> window.Shopify = window.Shopify || {}; if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; window.Shopify.featureAssets['shop-js'] = {"login-button":["modules/client.login-button_PyB0yoLG.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"shop-pay-payment-request":["modules/client.shop-pay-payment-request_BSPYpBgE.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js","modules/chunk.shop-pay_DNi9j_X8.esm.js"],"payment-terms":["modules/client.payment-terms_BF5x7ymI.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"pay-button":["modules/client.pay-button_Cc3hmsbn.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"discount-app":["modules/client.discount-app_Dl148wJa.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"avatar":["modules/client.avatar_BTnouDA3.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/client.init-shop-for-new-customer-accounts_BXLde5-4.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/client.init-shop-email-lookup-coordinator_CSM1j0yH.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"init-customer-accounts-sign-up":["modules/client.init-customer-accounts-sign-up_BDGFEblG.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"init-customer-accounts":["modules/client.init-customer-accounts_Ztg3e7fA.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"]}; </script> <script>(function() { function asyncLoad() { var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=XDBZjB\u0026shop=devdegreeteam.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=XDBZjB\u0026shop=devdegreeteam.myshopify.com"]; for (var i = 0; i < urls.length; i++) { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = urls[i]; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } }; if(window.attachEvent) { window.attachEvent('onload', asyncLoad); } else { window.addEventListener('load', asyncLoad, false); } })();</script> <script id="__st">var __st={"a":7877722134,"offset":-18000,"reqid":"52275d13-fadb-4563-8e87-ab41b09d138f-1732684141","pageurl":"devdegree.ca\/","u":"d2bfb388d7aa","p":"home"};</script> <script>window.ShopifyPaypalV4VisibilityTracking = true;</script> <script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');function s(t,e,n=!1){try{const o=window.sessionStorage;for(const[n,c]of Object.entries(JSON.parse(o.getItem(e))))t.elements[n]&&(t.elements[n].value=c);n&&o.removeItem(e)}catch{}}const a='form_key',i=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response','password'],u=()=>{try{return window.sessionStorage}catch{return}},m=t=>t.elements[a],f='form_type',d='cptcha';function p(t){t.dataset[d]=!0}const l=window,h=l.document,_='Shopify',y='ce_forms',E='captcha';let v=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe','https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js',T={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=l[_][y],c=o.bindForm;if(c)return c(t,g,e,T).then(n);o.q.push([[t,g,e,T],n]),v||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:'https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js'})),v=!0)});var g,T;l[_]=l[_]||{},l[_][y]=l[_][y]||{},l[_][y].q=[],l[_][E]=l[_][E]||{},l[_][E].protect=function(t,e){n(t,void 0,e),p(t)},Object.freeze(l[_][E]),function(t,e,n,l,h,_){const[y,E,v,g]=function(t,e,n){const s=e?o:[],a=t?c:[],i=[...s,...a],u=[...o],m=r(i),f=r(s),d=n&&r(i.filter((([t,e])=>n.includes(e)))),p=r(u),l=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];return[l(m),l(f),l(d),l(p)]}(l,h,_),T=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},S=t=>y().includes(t);t.addEventListener('submit',(t=>{const e=T(t);if(!e)return;const n=S(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=m(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!u())return;!function(t){const e=u();if(!e)return;const n=m(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){m(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:a})),t.elements[a].value=e}(t,e),function(t,e){const n=u();if(!n)return;const o=[...t.querySelectorAll('input[type="password"]')].map((({name:t})=>t)),c=[...i,...o],r={};for(const[s,a]of new FormData(t).entries())c.includes(s)||(r[s]=a);n.setItem(e,JSON.stringify(r))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const w=(t,e)=>{t&&!t.dataset[d]&&(n(t,e.some((e=>e===t))),p(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=T(t);S(e)&&w(e,E())}));const A=e.get('form_key'),b=e.get(f),I=A&&b;t.addEventListener('DOMContentLoaded',(()=>{const t=E();if(I)for(const e of t)e.elements[f].value===b&&s(e,A);[...new Set([...v(),...y().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>w(e,t)))}))}(h,new URLSearchParams(l.location.search),n,!0,!1,['guest_login'])})()}();</script> <script integrity="sha256-EGCDRYTvIEOXsReXgqGwkAR+5Dl8tickSrieA/ZcQwc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//devdegree.ca/cdn/shopifycloud/shopify/assets/storefront/load_feature-1060834584ef204397b1179782a1b090047ee4397cb627244ab89e03f65c4307.js" crossorigin="anonymous"></script> <script crossorigin="anonymous" defer="defer" src="//devdegree.ca/cdn/shopifycloud/shopify/assets/shopify_pay/storefront-80e528be853eac23af2454534897ca9536b1d3d04aa043b042f34879a3c111c8.js?v=20220906"></script> <script integrity="sha256-HAs5a9TQVLlKuuHrahvWuke+s1UlxXohfHeoYv8G2D8=" data-source-attribution="shopify.dynamic-checkout" defer="defer" src="//devdegree.ca/cdn/shopifycloud/shopify/assets/storefront/features-1c0b396bd4d054b94abae1eb6a1bd6ba47beb35525c57a217c77a862ff06d83f.js" crossorigin="anonymous"></script> <style id="shopify-dynamic-checkout-cart">@media screen and (min-width: 750px) { #dynamic-checkout-cart { min-height: 50px; } } @media screen and (max-width: 750px) { #dynamic-checkout-cart { min-height: 180px; } } </style><script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script> <script src="https://code.jquery.com/jquery-latest.min.js"></script> <script src="//www.youtube.com/iframe_api" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/modernizr.min.js?v=21391054748206432451630434840" type="text/javascript"></script> <script> window.Theme = {}; Theme.localization = { cart: { quantity: "Qty", allInCart: "That&#39;s all we have in stock at the moment." }, product: { addedToCart: "Added to Cart!" } }; </script> <script src="//devdegree.ca/cdn/shop/t/12/assets/lazysizes.min.js?v=164671140253812716401630434836" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/lazysizes.rias.min.js?v=124284299834728756501630434837" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/lazysizes.bgset.min.js?v=72009607408926569371630434836" type="text/javascript"></script> <link href="//devdegree.ca/cdn/shopifycloud/shopify-plyr/v1.0/shopify-plyr.css" rel="stylesheet" type="text/css" media="all" /> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1904241839800487'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1904241839800487&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> <!-- Twitter universal website tag code --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version=‘1.1’,s.queue=[],u=t.createElement(n),u.async=!0,u.src=‘//static.ads-twitter.com/uwt.js’, a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,‘script’); // Insert Twitter Pixel ID and Standard Event data below twq(‘init’,‘nvxy6’); twq(‘track’,‘PageView’); </script> <!-- End Twitter universal website tag code --> <script type="text/javascript" src="//script.crazyegg.com/pages/scripts/0012/4914.js" async="async" ></script> <link href="//devdegree.ca/cdn/shop/t/12/assets/re.css?v=21800621977840110031630434841" rel="stylesheet" type="text/css" media="all" /> <link href="//devdegree.ca/cdn/shop/t/12/assets/custom-fields.css?v=91920930425301698801630434829" rel="stylesheet" type="text/css" media="all" /> <script src="//devdegree.ca/cdn/shop/t/12/assets/custom-fields-widgets.js?v=160540944247093329111630434828" defer="defer"></script> <meta property="og:image" content="https://cdn.shopify.com/s/files/1/0078/7772/2134/files/dev_degree_social_7f53285d-ebc4-4efe-90f9-8e36cc9ca866.png?v=1630326834" /> <meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0078/7772/2134/files/dev_degree_social_7f53285d-ebc4-4efe-90f9-8e36cc9ca866.png?v=1630326834" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="628" /> <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> <script>(function(){if ("sendBeacon" in navigator && "performance" in window) {var session_token = document.cookie.match(/_shopify_s=([^;]*)/);function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 7877722134,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token: session_token && session_token.length === 2 ? session_token[1] : "",page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script> <script id="web-pixels-manager-setup">(function d(d,e,r,a,n){var o,i,t,s,l=(i=(o={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,t=o.legacy,s=navigator.userAgent,i.test(s)?"modern":(t.test(s),"legacy"));window.Shopify=window.Shopify||{};var c=window.Shopify;c.analytics=c.analytics||{};var u=c.analytics;u.replayQueue=[],u.publish=function(d,e,r){return u.replayQueue.push([d,e,r]),!0};try{self.performance.mark("wpm:start")}catch(d){}var h=[r,"/wpm","/b",n,l.substring(0,1),".js"].join("");!function(d){var e=d.src,r=d.async,a=void 0===r||r,n=d.onload,o=d.onerror,i=document.createElement("script"),t=document.head,s=document.body;i.async=a,i.src=e,n&&i.addEventListener("load",n),o&&i.addEventListener("error",o),t?t.appendChild(i):s?s.appendChild(i):console.error("Did not find a head or body element to append the script")}({src:h,async:!0,onload:function(){var r=window.webPixelsManager.init(d);e(r);var a=window.Shopify.analytics;a.replayQueue.forEach((function(d){var e=d[0],a=d[1],n=d[2];r.publishCustomEvent(e,a,n)})),a.replayQueue=[],a.publish=r.publishCustomEvent,a.visitor=r.visitor},onerror:function(){var e=d.storefrontBaseUrl.replace(/\/$/,""),r="".concat(e,"/.well-known/shopify/monorail/unstable/produce_batch"),n=JSON.stringify({metadata:{event_sent_at_ms:(new Date).getTime()},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:a||"latest",bundle_target:l,page_url:self.location.href,status:"failed",surface:d.surface,error_msg:"".concat(h," has failed to load")},metadata:{event_created_at_ms:(new Date).getTime()}}]});try{if(self.navigator.sendBeacon.bind(self.navigator)(r,n))return!0}catch(d){}var o=new XMLHttpRequest;try{return o.open("POST",r,!0),o.setRequestHeader("Content-Type","text/plain"),o.send(n),!0}catch(d){console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging a load error.")}return!1}})})({shopId: 7877722134,storefrontBaseUrl: "https://devdegree.ca",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Dev Degree","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"devdegreeteam.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/devdegree.ca"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"purchasingCompany":null},},function pageEvents(webPixelsManagerAPI) {webPixelsManagerAPI.publish("page_viewed", {});},"https://devdegree.ca/cdn","1518c2ba4d2b3301a1e3cb6576947ef22edf7bb6","3c762e5aw5b983e43pc2dc4883m545d5a27",);</script> <script>window['GoogleAnalyticsObject'] = 'ga'; window['ga'] = window['ga'] || function() { (window['ga'].q = window['ga'].q || []).push(arguments); }; window['ga'].l = 1 * new Date();</script> <script>var _gaUTrackerOptions = {'allowLinker': true};ga('create', 'UA-82702-71', 'auto', _gaUTrackerOptions);ga('send', 'pageview'); (function(){ ga('require', 'linker'); function addListener(element, type, callback) { if (element.addEventListener) { element.addEventListener(type, callback); } else if (element.attachEvent) { element.attachEvent('on' + type, callback); } } function decorate(event) { event = event || window.event; var target = event.target || event.srcElement; if (target && (target.action || target.href)) { ga(function (tracker) { var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/'; }); } } addListener(window, 'load', function(){ for (var i=0; i<document.forms.length; i++) { if(document.forms[i].action && document.forms[i].action.indexOf('/cart') >= 0) { addListener(document.forms[i], 'submit', decorate); } } for (var i=0; i<document.links.length; i++) { if(document.links[i].href && document.links[i].href.indexOf('/checkout') >= 0) { addListener(document.links[i], 'click', decorate); } } }) }()); </script> <script>window.ShopifyAnalytics = window.ShopifyAnalytics || {}; window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; window.ShopifyAnalytics.meta.currency = 'CAD'; var meta = {"page":{"pageType":"home"}}; for (var attr in meta) { window.ShopifyAnalytics.meta[attr] = meta[attr]; }</script> <script>window.ShopifyAnalytics.merchantGoogleAnalytics = function() { }; </script> <script class="analytics">(function () { var customDocumentWrite = function(content) { var jquery = null; if (window.jQuery) { jquery = window.jQuery; } else if (window.Checkout && window.Checkout.$) { jquery = window.Checkout.$; } if (jquery) { jquery('body').append(content); } }; var hasLoggedConversion = function(token) { if (token) { return document.cookie.indexOf('loggedConversion=' + token) !== -1; } return false; } var setCookieIfConversion = function(token) { if (token) { var twoMonthsFromNow = new Date(Date.now()); twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; } } var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; if (trekkie.integrations) { return; } trekkie.methods = [ 'identify', 'page', 'ready', 'track', 'trackForm', 'trackLink' ]; trekkie.factory = function(method) { return function() { var args = Array.prototype.slice.call(arguments); args.unshift(method); trekkie.push(args); return trekkie; }; }; for (var i = 0; i < trekkie.methods.length; i++) { var key = trekkie.methods[i]; trekkie[key] = trekkie.factory(key); } trekkie.load = function(config) { trekkie.config = config || {}; trekkie.config.initialDocumentCookie = document.cookie; var first = document.getElementsByTagName('script')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.onerror = function(e) { var scriptFallback = document.createElement('script'); scriptFallback.type = 'text/javascript'; scriptFallback.onerror = function(error) { var Monorail = { produce: function produce(monorailDomain, schemaId, payload) { var currentMs = new Date().getTime(); var event = { schema_id: schemaId, payload: payload, metadata: { event_created_at_ms: currentMs, event_sent_at_ms: currentMs } }; return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); }, sendRequest: function sendRequest(endpointUrl, payload) { // Try the sendBeacon API if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { var blobData = new window.Blob([payload], { type: 'text/plain' }); if (window.navigator.sendBeacon(endpointUrl, blobData)) { return true; } // sendBeacon was not successful } // XHR beacon var xhr = new XMLHttpRequest(); try { xhr.open('POST', endpointUrl); xhr.setRequestHeader('Content-Type', 'text/plain'); xhr.send(payload); } catch (e) { console.log(e); } return false; }, isIos12: function isIos12() { return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; } }; Monorail.produce('monorail-edge.shopifysvc.com', 'trekkie_storefront_load_errors/1.1', {shop_id: 7877722134, theme_id: 126306189334, app_name: "storefront", context_url: window.location.href, source_url: "//devdegree.ca/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js"}); }; scriptFallback.async = true; scriptFallback.src = '//devdegree.ca/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js'; first.parentNode.insertBefore(scriptFallback, first); }; script.async = true; script.src = '//devdegree.ca/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js'; first.parentNode.insertBefore(script, first); }; trekkie.load( {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":7877722134,"isMerchantRequest":null,"themeId":126306189334,"themeCityHash":"11146397450397875761","contentLanguage":"en","currency":"CAD"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} ); var loaded = false; trekkie.ready(function() { if (loaded) return; loaded = true; window.ShopifyAnalytics.lib = window.trekkie; var originalDocumentWrite = document.write; document.write = customDocumentWrite; try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; document.write = originalDocumentWrite; window.ShopifyAnalytics.lib.page(null,{"pageType":"home"}); var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) var token = match? match[1]: undefined; if (!hasLoggedConversion(token)) { setCookieIfConversion(token); } }); var eventsListenerScript = document.createElement('script'); eventsListenerScript.async = true; eventsListenerScript.src = "//devdegree.ca/cdn/shopifycloud/shopify/assets/shop_events_listener-61fa9e0a912c675e178777d2b27f6cbd482f8912a6b0aa31fa3515985a8cd626.js"; document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); })();</script> <script class="boomerang"> (function () { window.BOOMR = window.BOOMR || {}; window.BOOMR.themeName = "Lorenza"; window.BOOMR.themeVersion = "2.7.1"; window.BOOMR.shopId = 7877722134; window.BOOMR.themeId = 126306189334; })();</script> <script defer src="https://devdegree.ca/cdn/shopifycloud/perf-kit/shopify-perf-kit-1.0.2.min.js" data-application="storefront-renderer" data-shop-id="7877722134" data-render-region="gcp-asia-southeast1" data-page-type="index" data-theme-instance-id="126306189334" data-monorail-region="shop_domain" data-resource-timing-sampling-rate="10" ></script> <script async="async" src="https://www.google-analytics.com/analytics.js"></script> </head> <body id="dev-degree" class="template-index" > <div id="shopify-section-newsletter-popup" class="shopify-section popout"> <div id="popOuts" data-show-exit="false" data-show-entrance="false" data-entrance-delay="10"> <div id="newsLetter" class="innerWrapper"> <a class="closePopOut closeIcon" href="#"> <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 224.512 224.512" style="enable-background:new 0 0 224.512 224.512;" xml:space="preserve"> <g> <polygon points="224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254 "/> </g> </svg> </a> <div class="closePopOut fullBackClose"></div> <div class="animateIn gridJustify"> <div class="half flexItem"> <div class="formWrap gridJustify centerColumns"> <div class="innerFlex"> <div class="rte"> </div> <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /> <input type="hidden" name="contact[tags]" value="newsletter"> <input type="hidden" name="contact[accepts_marketing]" value="true"> <label for="Email">email@example.com</label> <input type="email" value="" placeholder="email@example.com" type="email" name="contact[email]" id="Email" class="input-group-field newsletter__input" autocorrect="off" autocapitalize="off" required> <input name="subscribe" type="submit" class="button formSend" value="Subscribe"/> <a class="closePop" href="#">No Thanks</a> </form> </div> </div> </div> </div> </div> </div> </div> <div id="shopify-section-header" class="shopify-section header"> <!-- SECRET KEY 1: SHOPIFY COMMERCE --> <header class=" sticky " role="banner"> <div class="grid header-grid flexGrid gridJustify"> <div class="leftMenu flexItem oneFifth keepWidth gridAlignLeft"> <a class="logo" href="/" itemscope itemtype="http://schema.org/Organization"> <img class="" src="//devdegree.ca/cdn/shop/files/Logo_Blue-01_300x.png?v=1613159812" srcset="//devdegree.ca/cdn/shop/files/Logo_Blue-01_300x.png?v=1613159812 1x, //devdegree.ca/cdn/shop/files/Logo_Blue-01_300x@2x.png?v=1613159812 2x" alt="Dev Degree" itemprop="logo"> </a> <style> header .logo { max-width: 300px; width : 300px!important; } header .logo img { max-height: 69px; } @media (max-width: 736px) { header .logo img { max-height: 49px; } } </style> <a href="#" class="burgerNav" aria-controls="NavDrawer" aria-expanded="false"> <span></span> <span></span> <span></span> </a> <nav class="burger-menu nav-type--regular"> <ul> <li> <a href="/pages/program" class="burger-menu-link burger-dropdown-link"> About </a> <ul class="burger-dropdown-list"> <li class="burger-dropdown-item"> <a href="/pages/program" class="burger-menu-link "> Program </a> </li> <li class="burger-dropdown-item"> <a href="/pages/partners" class="burger-menu-link "> Partners </a> </li> <li class="burger-dropdown-item"> <a href="/pages/team" class="burger-menu-link "> Team </a> </li> </ul> </li> <li> <a href="/pages/student-experience" class="burger-menu-link "> Student Experience </a> </li> <li> <a href="/pages/admissions-page" class="burger-menu-link "> Admissions </a> </li> <li> <a href="https://devdegree.ca/a/faq" class="burger-menu-link "> FAQ </a> </li> </ul> </nav> </div> <div class="flexItem threeFifth keepWidth alignCenter"> <nav class="menu"> <div class="grid"> <ul class="flexGrid gridJustify centerColumns menu-list"> <li class="flexItem dropdown-item" aria-haspopup="true"> <a href="/pages/program" class="menu-link"> About </a> <ul class="dropdown-list dropdown-list-1 "> <li class="dropdown-item"> <a href="/pages/program" class="dropdown-link"> Program </a> </li> <li class="dropdown-item"> <a href="/pages/partners" class="dropdown-link"> Partners </a> </li> <li class="dropdown-item"> <a href="/pages/team" class="dropdown-link"> Team </a> </li> </ul> </li> <li class="flexItem dropdown-item" > <a href="/pages/student-experience" class="menu-link"> Student Experience </a> </li> <li class="flexItem dropdown-item" > <a href="/pages/admissions-page" class="menu-link"> Admissions </a> </li> <li class="flexItem dropdown-item" > <a href="https://devdegree.ca/a/faq" class="menu-link"> FAQ </a> </li> </ul> </div> </nav> </div> <div class="rightMenu flexItem oneFifth keepWidth alignRight"> <div class="header-cart-wrapper"> <div class="header-cart-wrapper-inner"> <a href="https://devdegree.ca/pages/request-for-information" class="button re-btn" onClick ="ga('send', 'event', 'Application Link', 'Clicked Application Link', 'Header');" > Sign up to learn more </a> </div> </div> <style> .re-btn { background-color: #ffd037 ; color: #17234f; border: 0px; } .re-btn:hover { background-color: #eabd2a ; color: #17234f; } </style> </div> </div> </header> <div class="announcement-bar" onClick= "ga('send','event','Application Link','Clicked Application Link', 'Announcement Bar')" style=" color: #17234f ; background-color: #fe9c8e; border-bottom: 5px solid #FFD737 "> APPLICATIONS FOR DEV DEGREE FALL 2025 WILL OPEN DECEMBER 2024! </div> <style> #shopify-section-header { margin-bottom: 130px; background-color: #F3F9F4; } #mainWrap > .slideshow:first-child, #shopify-section-product-alternate-template { margin-top: -170px; } #mainWrap > .slideshow:first-child .heroOverlay { padding-top: 160px; } @media (max-width: 736px) { #shopify-section-header { margin-top: 130px; } #mainWrap > .slideshow:first-child, #shopify-section-product-alternate-template { margin-top: -130px; } #mainWrap > .slideshow:first-child .heroOverlay { padding-top: 130px; } } @media (max-width: 568px) { #shopify-section-header { margin-top: 80px; } #mainWrap > .slideshow:first-child, #shopify-section-product-alternate-template { margin-top: -80px; } #mainWrap > .slideshow:first-child .heroOverlay { padding-top: 80px; } } .burgerNav { display: none !important; } .header-cart { top: calc(100% - 10px); } @media screen and (min-width: 737px) { .fullPageSection { height: calc(100vh - 120px); } .fullPageSection.align-image-left.fixed-image .bgImage, .fullPageSection.align-image-right.fixed-image .bgImage { height: calc(100% - 120px); } } </style> </div> <main id="mainWrap"> <!-- BEGIN content_for_index --><div id="shopify-section-28b96e20-0719-4ec5-9d9a-1fcce0e6ea43" class="shopify-section featured-video"> <hr class="page-section-divider"> <div class="sectionWrap hasBlockTitle"> <div class="grid flexGrid"> <div class="flexItem"> <iframe src="https://www.youtube.com/embed/nEa0qhmYLgs?rel=0&modestbranding=1" frameborder="0" allowfullscreen></iframe> </div> </div> </div> </div><div id="shopify-section-1597079978748" class="shopify-section index-text"> <hr class="page-section-divider"> <div class="indexText grid"> <div class="sectionWrap"> <h2 class="indexText-text"> A computer science degree unlike any other </h2> <div class="indexText-subtext"> <p>Earn a computer science degree through a learning and placement path that’s unlike any other computer science program. Our innovative work-integrated learning model provides hands-on experience across a breadth of disciplines and teams, giving you the confidence to jump-start your future—wherever it takes you. While we foster a culture of ownership and autonomy, we won't leave you to navigate the program and placements alone. Our technical mentors and support team are responsible for guiding, evaluating, and providing actionable feedback—every step of the way. Plus, you'll be part of a small class, so you'll never feel like just a number. We’ll also pay for your degree and give you a salary, so you can focus on learning and growth, all while working on impactful projects.</p> </div> </div> </div> </div><div id="shopify-section-1597079831791" class="shopify-section featured-content"> <div class="fullPageSectionsWrap no-top-border no-bottom-border" data-animation="true"> <div class="fullPageSection block-1597079831791-0 align-image-left"> <div class="bgImage fixedPosition lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/emily_1_{width}x{height}.png?v=1613159824" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <div class="bgImage" style="background-image: url(//devdegree.ca/cdn/shop/files/emily_1_800x.png?v=1613159824)"></div> </noscript> <a class="linkOverlay" href="/pages/program"></a> <div class="content"> <div class="inner"> <h2 class="genHeadingXL"> <a href="/pages/program">Learn by doing</a> </h2> <div class="fullPageSectionText"> <p>Dev Degree is an innovative evolution of the traditional co-op program, allowing you to master development skills faster. Hands-on experience at Shopify in parallel to attending classes gives you the opportunity to put those skills to use on real-world problems—while you learn. </p><p></p> </div> <a href="/pages/program" class="button tertiary">Learn more about the program</a> </div> </div> </div> <div class="fullPageSection block-1597079831791-1 align-image-right"> <div class="bgImage fixedPosition lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/dd_2_{width}x{height}.png?v=1613159860" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <div class="bgImage" style="background-image: url(//devdegree.ca/cdn/shop/files/dd_2_800x.png?v=1613159860)"></div> </noscript> <a class="linkOverlay" href="/pages/student-experience"></a> <div class="content"> <div class="inner"> <h2 class="genHeadingXL"> <a href="/pages/student-experience">Dive deep into development</a> </h2> <div class="fullPageSectionText"> <p>Dev Degree students develop skills that employers are looking for. With placements on multiple different teams throughout the program, you’ll gain a rich development experience across a range of technology to build craft excellence and discover what you truly love working on. Grow your confidence and skills by working with people from across the business and disciplines to build realistic, impactful products.</p> </div> <a href="/pages/student-experience" class="button tertiary">Learn more about the student life</a> </div> </div> </div> <div class="fullPageSection block-1597079831791-2 align-image-left"> <div class="bgImage fixedPosition lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/dd_4_{width}x{height}.png?v=1613159861" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <div class="bgImage" style="background-image: url(//devdegree.ca/cdn/shop/files/dd_4_800x.png?v=1613159861)"></div> </noscript> <a class="linkOverlay" href="/pages/team"></a> <div class="content"> <div class="inner"> <h2 class="genHeadingXL"> <a href="/pages/team">Grow through support</a> </h2> <div class="fullPageSectionText"> <p>We remember what it’s like to navigate the early days of post-secondary education. It can feel overwhelming! We have a dedicated team of instructors, mentors, and specialists to support you throughout the entire program, giving you the peace of mind that you are learning innovative development and communication skills from the best in the industry. You will be guided, supported, and trusted.</p> </div> <a href="/pages/team" class="button tertiary">Meet the team</a> </div> </div> </div> <div class="fullPageSection block-1597080863991 align-image-right"> <div class="bgImage fixedPosition lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/dd_3_{width}x{height}.png?v=1613159861" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <div class="bgImage" style="background-image: url(//devdegree.ca/cdn/shop/files/dd_3_800x.png?v=1613159861)"></div> </noscript> <a class="linkOverlay" href="/pages/program"></a> <div class="content"> <div class="inner"> <h2 class="genHeadingXL"> <a href="/pages/program">Focus on learning—not finances</a> </h2> <div class="fullPageSectionText"> <p>Don’t let finances stop you from pursuing your dreams or distract you from your studies. Kick-start your career without the burden of large student debt. Plus, you’ll get paid vacation time to allow you to rest and recharge.</p> </div> <a href="/pages/program" class="button tertiary">Learn more about the compensation</a> </div> </div> </div> </div> <style> #shopify-section-1597079831791 .block-1597079831791-0 h2, #shopify-section-1597079831791 .block-1597079831791-0 h2 a:hover { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-0 .fullPageSectionText { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-0 .button.default { background-color: #f3f9f3; border-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-0 .button.alternate { border-color: #f3f9f3; color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-0 .button.alternate:hover { color: #f3f9f3; background-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-0 .content { background-color: #17234f; } #shopify-section-1597079831791 .block-1597079831791-1 h2, #shopify-section-1597079831791 .block-1597079831791-1 h2 a:hover { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-1 .fullPageSectionText { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-1 .button.default { background-color: #f3f9f3; border-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-1 .button.alternate { border-color: #f3f9f3; color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-1 .button.alternate:hover { color: #f3f9f3; background-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-1 .content { background-color: #17234f; } #shopify-section-1597079831791 .block-1597079831791-2 h2, #shopify-section-1597079831791 .block-1597079831791-2 h2 a:hover { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-2 .fullPageSectionText { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-2 .button.default { background-color: #f3f9f3; border-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-2 .button.alternate { border-color: #f3f9f3; color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-2 .button.alternate:hover { color: #f3f9f3; background-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597079831791-2 .content { background-color: #17234f; } #shopify-section-1597079831791 .block-1597080863991 h2, #shopify-section-1597079831791 .block-1597080863991 h2 a:hover { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597080863991 .fullPageSectionText { color: #f3f9f3; } #shopify-section-1597079831791 .block-1597080863991 .button.default { background-color: #f3f9f3; border-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597080863991 .button.alternate { border-color: #f3f9f3; color: #f3f9f3; } #shopify-section-1597079831791 .block-1597080863991 .button.alternate:hover { color: #f3f9f3; background-color: #f3f9f3; } #shopify-section-1597079831791 .block-1597080863991 .content { background-color: #17234f; } </style> </div><div id="shopify-section-1597346772465" class="shopify-section slideshow"><div class="fxInElement fadeIn fullScreenSlider slickSlider overlayFX slider-1597346772465" data-override-color="#17234f" data-transition="fade"> <ul data-margin="0" data-full="1" data-tab="1" data-mob="1" data-auto="true" data-timeout="9000"> <li > <div class="bgImage paraOne"> <div class="zoomProxy lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day1-proofs-6951_cropped_{width}x{height}.jpg?v=1613160109" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <img class="fullSpan" src="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day1-proofs-6951_cropped_1200x.jpg?v=1613160109"> </noscript> </div> <div class="heroOverlay align-left"> <div class="gridTable"> <div class="inner flexItem paraTwo"> <h2>Cailyn Edwards, Alumni</h2> <h3><p>“We work together to solve hard problems, and are always eager to help each other learn. I can't imagine being as successful at university if I didn't have the crew here on my side.”</p></h3> </div> </div> </div> </li> <li > <div class="bgImage paraOne"> <div class="zoomProxy lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day1-proofs-6966_{width}x{height}.jpg?v=1613159901" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <img class="fullSpan" src="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day1-proofs-6966_1200x.jpg?v=1613159901"> </noscript> </div> <div class="heroOverlay align-left"> <div class="gridTable"> <div class="inner flexItem paraTwo"> <h2>Nicholas Ellul, Alumni</h2> <h3><p></p><p>“In a world where universities have a hard time keeping up with the pace of technology, Dev Degree is doing something different. This is the future of computer science education.”</p></h3> </div> </div> </div> </li> <li > <div class="bgImage paraOne"> <div class="zoomProxy lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7062_{width}x{height}.jpg?v=1613159901" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <img class="fullSpan" src="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7062_1200x.jpg?v=1613159901"> </noscript> </div> <div class="heroOverlay align-left"> <div class="gridTable"> <div class="inner flexItem paraTwo"> <h2>Britta Evans-Fenton, Alumni</h2> <h3><p></p><p>“Having guidance from mentors and specificities at Shopify has meant I’ve been able to learn the top best practices from those who have really shaped the field of computer science.”</p></h3> </div> </div> </div> </li> <li > <div class="bgImage paraOne"> <div class="zoomProxy lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7330_{width}x{height}.jpg?v=1613159901" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <img class="fullSpan" src="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7330_1200x.jpg?v=1613159901"> </noscript> </div> <div class="heroOverlay align-left"> <div class="gridTable"> <div class="inner flexItem paraTwo"> <h2>Natalia Kingsbury, Alumni</h2> <h3><p>“I was at a crossroads in life and going back to school seemed scary, but being able to get work experience, get paid, and not accrue student debt was the perfect path for me as a mature student.”</p></h3> </div> </div> </div> </li> <li > <div class="bgImage paraOne"> <div class="zoomProxy lazyload lazyload-fade" data-bgset="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7412_Cropped_2_{width}x{height}.jpg?v=1613160110" data-sizes="auto" data-parent-fit="width"> </div> <noscript> <img class="fullSpan" src="//devdegree.ca/cdn/shop/files/Shopify_DevDegree-Day2-proofs-7412_Cropped_2_1200x.jpg?v=1613160110"> </noscript> </div> <div class="heroOverlay align-left"> <div class="gridTable"> <div class="inner flexItem paraTwo"> <h2>Devan Andersen, Alumni</h2> <h3><p></p><p>“Because my instructors helped me build a strong foundation first, I was able to jump right into the fun and excitement of the problems I'd be solving in my first team placement.”</p></h3> </div> </div> </div> </li> </ul> <div class="grid"> <div class="fullScreenSlider-controls flexGrid"> <span class="paraTwo control prev"> <svg viewBox="0 0 51 51" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> <g id="Previous" sketch:type="MSLayerGroup" transform="translate(25.500000, 25.500000) rotate(-90.000000) translate(-25.500000, -25.500000) translate(1.000000, 1.000000)"> <g id="Oval-1-+-linear-medium-3-01" sketch:type="MSShapeGroup"> <ellipse id="Oval-1" stroke="#F05049" stroke-width="2" cx="24.5" cy="24.5" rx="24.5" ry="24.5"></ellipse> <path d="M25.75,18.05175 L33.875,26.019125 L33.875,23.724625 L26.14325,16.148875 L25.75,15.754 L25.38925,15.39325 L24.994375,15 L24.601125,15.39325 L24.125,15.869375 L23.8455,16.148875 L16,23.757125 L16,26.051625 L24.125,18.167125 L24.123375,34.08075 L25.748375,34.08075 L25.75,18.05175 Z" id="linear-medium-3-01" fill="#F05049"></path> </g> </g> </g> </svg> </span> <span class="paraTwo control next"> <svg viewBox="0 0 51 51" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> <g id="Next" sketch:type="MSLayerGroup" transform="translate(25.500000, 25.500000) rotate(-270.000000) translate(-25.500000, -25.500000) translate(1.000000, 1.000000)"> <g id="Oval-1-+-linear-medium-3-01" sketch:type="MSShapeGroup"> <ellipse id="Oval-1" stroke="#F05049" stroke-width="2" cx="24.5" cy="24.5" rx="24.5" ry="24.5"></ellipse> <path d="M25.75,18.05175 L33.875,26.019125 L33.875,23.724625 L26.14325,16.148875 L25.75,15.754 L25.38925,15.39325 L24.994375,15 L24.601125,15.39325 L24.125,15.869375 L23.8455,16.148875 L16,23.757125 L16,26.051625 L24.125,18.167125 L24.123375,34.08075 L25.748375,34.08075 L25.75,18.05175 Z" id="linear-medium-3-01" fill="#F05049"></path> </g> </g> </g> </svg> </span> </div> </div> </div> <style> .slider-1597346772465.fullScreenSlider h2, .slider-1597346772465.fullScreenSlider h3, .slider-1597346772465.fullScreenSlider a, .slider-1597346772465.fullScreenSlider p { color: #17234f; } .slider-1597346772465.fullScreenSlider svg * { stroke: #17234f; } .slider-1597346772465.fullScreenSlider svg path { fill: #17234f; } .slider-1597346772465.fullScreenSlider.overlayFX .heroOverlay { background-color: rgba(243, 249, 243, 0.8); } </style> </div><!-- END content_for_index --> <script data-locksmith> var load = function () { Locksmith.initializeSession({silent: window.location.search === ""}); Locksmith.util.on('submit', 'locksmith-resource-form', function (event) { event.preventDefault(); var data = Locksmith.util.serializeForm(event.target); Locksmith.postResource(data, { spinner: false, container: 'locksmith-content' }); }); Locksmith.util.on('click', 'locksmith-manual-trigger', function (event) { event.preventDefault(); Locksmith.postResource({}, { spinner: true, container: document }); }); Locksmith.submitPasscode = function (passcode) { Locksmith.postResource( { passcode: passcode }, { spinner: false, container: 'locksmith-content' } ); }; }; if (typeof Locksmith !== 'undefined') { load(); } else { window.addEventListener('load', load); } </script> <div id="shopify-section-learn-more-cta" class="shopify-section"> <div class="learn-more-cta"> <div style=" max-width: 1000px; margin: 0 auto;"> <h2>Does this all sound interesting to you?</h2> <a href="https://devdegree.ca/pages/request-for-information" class="button primary " id="re-btn2" onClick="ga('send','event','Application Link','Clicked Application Link','Learn more CTA');"> Stay Informed!</a> </div> </div> <style> #re-btn2 { background-color: #ffd037 ; color: #17234f; border: 2px solid #FFD037; } #re-btn2:hover { background-color: #eabd2a ; color: #17234f; } #re-btn3 { background-color: #17234f ; color: #fafafa; border: 2px solid #fff; } #re-btn3:hover { background-color: #eabd2a ; color: #17234f; } </style> </div> <div id="shopify-section-footer" class="shopify-section"> <!-- SECRET KEY 2: TOBI LUTKE --> <footer class=""> <div class="footerLogo grid flexGrid gridJustify"> <a class="flexItem" href="/"> <img src="//devdegree.ca/cdn/shop/files/shopify_logo_black_0f6eb8b4-934d-4ab2-8810-adaf3c0a34aa_120x.png?v=1613159812" srcset="//devdegree.ca/cdn/shop/files/shopify_logo_black_0f6eb8b4-934d-4ab2-8810-adaf3c0a34aa_120x.png?v=1613159812 1x, //devdegree.ca/cdn/shop/files/shopify_logo_black_0f6eb8b4-934d-4ab2-8810-adaf3c0a34aa_120x@2x.png?v=1613159812 2x" alt="Dev Degree" itemprop="logo"> </a> </div> <div class="footerMain grid flexGrid gridAlignTopLeft footerMenuCount-1 "> <div class="footerAbout flexItem"> <div><p><strong>Questions? </strong>Email us: <a href="mailto:info@devdegree.ca" title="mailto:info@devdegree.ca">info@devdegree.ca</a></p></div> </div> <div class="footerMenu flexItem"> <ul> <li> <a href="/pages/program" title="">About</a> </li> <li> <a href="/pages/partners" title="">Our partners</a> </li> <li> <a href="/pages/team" title="">Our team</a> </li> <li> <a href="/pages/admissions-page" title="">Admissions</a> </li> <li> <a href="/pages/student-experience" title="">Student experience</a> </li> <li> <a href="https://devdegree.ca/a/faq" title="">FAQs</a> </li> <li> <a href="/pages/request-for-information" title="">Stay Informed</a> </li> <li> <a href="https://shopify.com" title="" rel="nofollow">Shopify</a> </li> </ul> </div> </div> </footer> </div> </main> <script src="//devdegree.ca/cdn/shopifycloud/shopify/assets/themes_support/api.jquery-b0af070cfe3f5cf7c92f9e2a5da2665ee07ed2aad63bb408f8d6672f894a5996.js" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/isotope.js?v=174299703730515077301630434834" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/jquery.cookie.js?v=101081071833767112781630434854" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/imagesloaded.pkgd.min.js?v=58209854333173575541630434833" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/slick.js?v=132507426157923434171630434843" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/fastclick.min.js?v=29723458539410922371630434830" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/jquery.hoverIntent.minified.js?v=56060696947679488261630434835" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/lodash.custom.min.js?v=184270817579077332941630434837" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/jquery.fitvids.js?v=8044612188741632641630434835" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/eventemitter3.js?v=177499474776964453221630434829" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/moment.js?v=54242163144288501131630434840" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shopifycloud/shopify/assets/themes_support/option_selection-86cdd286ddf3be7e25d68b9fc5965d7798a3ff6228ff79af67b3f4e41d6a34be.js" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/timber.js?v=4925616801495709071630434854" type="text/javascript"></script> <script src="//devdegree.ca/cdn/shop/t/12/assets/app.js?v=86412674614598846751630434854" type="text/javascript"></script> <style> </style> </body> </html>