Senior Applications Engineer – Remote – Star2Star Communications – Atlanta, GA
Senior Applications Engineer / Architect – Remote. Star2Star Communications has a core purpose: To reshape the ways productive people collaborate and cooperate…From Star2Star Communications – Tue, 18 Aug 2020 20:24:33 GMT – View all Atlanta, GA jobs …

“),r.close()),!r)throw Error(“base not supported”);var a=r.createElement(“base”);a.href=n,r.getElementsByTagName(“head”)[0].appendChild(a);var i=r.createElement(“a”);return i.href=t,i.href}finally{e&&e.parentNode.removeChild(e)}}());var l=i(t||””),f=function(){if(!(“defineProperties”in Object))return!1;try{var e={};return Object.defineProperties(e,{prop:{get:function(){return!0}}}),e.prop}catch(t){return!1}}(),h=f?this:document.createElement(“a”),m=new o(l.search?l.search.substring(1):null);return m._url_object=h,Object.defineProperties(h,{href:{get:function(){return l.href},set:function(e){l.href=e,r(),u()},enumerable:!0,configurable:!0},origin:{get:function(){return”origin”in l?l.origin:this.protocol+”//”+this.host},enumerable:!0,configurable:!0},protocol:{get:function(){return l.protocol},set:function(e){l.protocol=e},enumerable:!0,configurable:!0},username:{get:function(){return l.username},set:function(e){l.username=e},enumerable:!0,configurable:!0},password:{get:function(){return l.password},set:function(e){l.password=e},enumerable:!0,configurable:!0},host:{get:function(){var e={“http:”:/:80$/,”https:”:/:443$/,”ftp:”:/:21$/}[l.protocol];return e?l.host.replace(e,””):l.host},set:function(e){l.host=e},enumerable:!0,configurable:!0},hostname:{get:function(){return l.hostname},set:function(e){l.hostname=e},enumerable:!0,configurable:!0},port:{get:function(){return l.port},set:function(e){l.port=e},enumerable:!0,configurable:!0},pathname:{get:function(){return”/”!==l.pathname.charAt(0)?”/”+l.pathname:l.pathname},set:function(e){l.pathname=e},enumerable:!0,configurable:!0},search:{get:function(){return l.search},set:function(e){l.search!==e&&(l.search=e,r(),u())},enumerable:!0,configurable:!0},searchParams:{get:function(){return m},enumerable:!0,configurable:!0},hash:{get:function(){return l.hash},set:function(e){l.hash=e,r()},enumerable:!0,configurable:!0},toString:{value:function(){return l.toString()},enumerable:!1,configurable:!0},valueOf:{value:function(){return l.valueOf()},enumerable:!1,configurable:!0}}),h}var c,s=e.URL;try{if(s){if(“searchParams”in(c=new e.URL(“http://example.com”))){var f=new l(“http://example.com”);if(f.search=”a=1&b=2″,”http://example.com/?a=1&b=2″===f.href&&(f.search=””,”http://example.com/”===f.href))return}”href”in c||(c=undefined),c=undefined}}catch(m){}if(Object.defineProperties(o.prototype,{append:{value:function(e,t){this._list.push({name:e,value:t}),this._update_steps()},writable:!0,enumerable:!0,configurable:!0},”delete”:{value:function(e){for(var t=0;t<this._list.length t="0;t<this._list.length;++t)if(this._list[t].name===e)return" this._list null n="!1,r=0;r1?arguments[1]:undefined;this._list.forEach(function(n){e.call(t,n.value,n.name)})},writable:!0,enumerable:!0,configurable:!0},toString:{value:function(){return r(this._list)},writable:!0,enumerable:!1,configurable:!0}}),”Symbol”in e&&”iterator”in e.Symbol&&(Object.defineProperty(o.prototype,e.Symbol.iterator,{value:o.prototype.entries,writable:!0,enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,e.Symbol.iterator,{value:function(){return this},writable:!0,enumerable:!0,configurable:!0})),s)for(var h in s)Object.prototype.hasOwnProperty.call(s,h)&&”function”==typeof s[h]&&(l[h]=s[h]);e.URL=l,e.URLSearchParams=o}(),function(){if(“1”!==new e.URLSearchParams([[“a”,1]]).get(“a”)||”1″!==new e.URLSearchParams({a:1}).get(“a”)){var r=e.URLSearchParams;e.URLSearchParams=function(e){if(e&&”object”==typeof e&&t(e)){var a=new r;return n(e).forEach(function(e){if(!t(e))throw TypeError();var r=n(e);if(2!==r.length)throw TypeError();a.append(r[0],r[1])}),a}return e&&”object”==typeof e?(a=new r,Object.keys(e).forEach(function(t){a.set(t,e[t])}),a):new r(e)}}}()}(self);}if (!(“Window”in self
)) {“undefined”==typeof WorkerGlobalScope&&”function”!=typeof importScripts&&function(o){o.constructor?o.Window=o.constructor:(o.Window=o.constructor=new Function(“return function Window() {}”)()).prototype=self}(self);}if (!((function(n){if(!(“Event”in n))return!1
try{return new Event(“click”),!0}catch(t){return!1}})(self)
)) {!function(){function e(e,t){if(!e)throw new Error(“Not enough arguments”);var n;if(“createEvent”in document){n=document.createEvent(“Event”);var o=!(!t||t.bubbles===undefined)&&t.bubbles,i=!(!t||t.cancelable===undefined)&&t.cancelable;return n.initEvent(e,o,i),n}return n=document.createEventObject(),n.type=e,n.bubbles=!(!t||t.bubbles===undefined)&&t.bubbles,n.cancelable=!(!t||t.cancelable===undefined)&&t.cancelable,n}var t={click:1,dblclick:1,keyup:1,keypress:1,keydown:1,mousedown:1,mouseup:1,mousemove:1,mouseover:1,mouseenter:1,mouseleave:1,mouseout:1,storage:1,storagecommit:1,textinput:1};if(“undefined”!=typeof document&&”undefined”!=typeof window){var n=window.Event&&window.Event.prototype||null;e.NONE=0,e.CAPTURING_PHASE=1,e.AT_TARGET=2,e.BUBBLING_PHASE=3,window.Event=Window.prototype.Event=e,n&&Object.defineProperty(window.Event,”prototype”,{configurable:!1,enumerable:!1,writable:!0,value:n}),”createEvent”in document||(window.addEventListener=Window.prototype.addEventListener=Document.prototype.addEventListener=Element.prototype.addEventListener=function o(){var e=this,n=arguments[0],o=arguments[1];if(e===window&&n in t)throw new Error(“In IE8 the event: “+n+” is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.”);e._events||(e._events={}),e._events[n]||(e._events[n]=function(t){var n,o=e._events[t.type].list,i=o.slice(),r=-1,c=i.length;for(t.preventDefault=function a(){!1!==t.cancelable&&(t.returnValue=!1)},t.stopPropagation=function l(){t.cancelBubble=!0},t.stopImmediatePropagation=function s(){t.cancelBubble=!0,t.cancelImmediate=!0},t.currentTarget=e,t.relatedTarget=t.fromElement||null,t.target=t.target||t.srcElement||e,t.timeStamp=(new Date).getTime(),t.clientX&&(t.pageX=t.clientX+document.documentElement.scrollLeft,t.pageY=t.clientY+document.documentElement.scrollTop);++r-1)
)) {self.CustomEvent=function e(t,n){if(!t)throw Error(‘TypeError: Failed to construct “CustomEvent”: An event name must be provided.’);var l;if(n=n||{bubbles:!1,cancelable:!1,detail:null},”createEvent”in document)try{l=document.createEvent(“CustomEvent”),l.initCustomEvent(t,n.bubbles,n.cancelable,n.detail)}catch(a){l=document.createEvent(“Event”),l.initEvent(t,n.bubbles,n.cancelable),l.detail=n.detail}else l=new Event(t,n),l.detail=n&&n.detail||null;return l},CustomEvent.prototype=Event.prototype;}if (!(“document”in self&&”hidden”in document&&”visibilityState”in document
)) {!function(){function i(){document.hidden=document[t+”Hidden”],document.visibilityState=document[t+”VisibilityState”]}var t=document.webkitVisibilityState?”webkit”:document.mozVisibilityState?”moz”:null;t&&(i(),document.addEventListener(t+”visibilitychange”,function(){i(),document.dispatchEvent(new CustomEvent(“visibilitychange”))}))}();}if (!((function(){var n=!1
return document.documentElement.addEventListener(“focusin”,function(){n=!0}),document.documentElement.dispatchEvent(new Event(“focusin”)),n})()
)) {self.addEventListener(“focus”,function(e){e.target.dispatchEvent(new Event(“focusin”,{bubbles:!0,cancelable:!0}))},!0),self.addEventListener(“blur”,function(e){e.target.dispatchEvent(new Event(“focusout”,{bubbles:!0,cancelable:!0}))},!0);}if (!(“onhashchange”in self&&(null==self.onhashchange||”function”==typeof self.onhashchange)
)) {!function(n){function h(){a!==n.location.hash&&(a=n.location.hash,n.dispatchEvent(new Event(“hashchange”))),setTimeout(h,500)}var a=n.location.hash;n.onhashchange=function(){},h()}(self);}if (!(“XMLHttpRequest”in self&&”prototype”in self.XMLHttpRequest&&”addEventListener”in self.XMLHttpRequest.prototype
)) {!function(e,t){e.XMLHttpRequest=function s(){var e=this,n=e._request=t?new t:new ActiveXObject(“MSXML2.XMLHTTP.3.0”);n.onreadystatechange=function(){e.readyState=n.readyState;var t=4===e.readyState;e.response=e.responseText=t?n.responseText:null,e.status=t?n.status:null,e.statusText=t?n.statusText:null,e.dispatchEvent(new Event(“readystatechange”)),t&&e.dispatchEvent(new Event(“load”))},”onerror”in n&&(n.onerror=function(){e.dispatchEvent(new Event(“error”))})},e.XMLHttpRequest.UNSENT=0,e.XMLHttpRequest.OPENED=1,e.XMLHttpRequest.HEADERS_RECEIVED=2,e.XMLHttpRequest.LOADING=3,e.XMLHttpRequest.DONE=4;var n=e.XMLHttpRequest.prototype;n.addEventListener=e.addEventListener,n.removeEventListener=e.removeEventListener,n.dispatchEvent=e.dispatchEvent,n.abort=function r(){return this._request()},n.getAllResponseHeaders=function u(){return this._request.getAllResponseHeaders()},n.getResponseHeader=function i(e){return this._request.getResponseHeader(e)},n.open=function a(e,t){this._request.open(e,t,arguments[2],arguments[3],arguments[4])},n.overrideMimeType=function o(e){this._request.overrideMimeType(e)},n.send=function p(){this._request.send(0 in arguments?arguments[0]:null)},n.setRequestHeader=function d(e,t){this._request.setRequestHeader(e,t)}}(self,self.XMLHttpRequest);}if (!(“fetch”in self
)) {!function(t,e){“object”==typeof exports&&”undefined”!=typeof module?e(exports):”function”==typeof define&&define.amd?define([“exports”],e):e(t.WHATWGFetch={})}(this,function(t){“use strict”;function e(t){return t&&DataView.prototype.isPrototypeOf(t)}function r(t){if(“string”!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&’*+.^_`|~]/i.test(t))throw new TypeError(“Invalid character in header field name”);return t.toLowerCase()}function o(t){return”string”!=typeof t&&(t=String(t)),t}function n(t){var e={next:function(){var e=t.shift();return{done:e===undefined,value:e}}};return v.iterable&&(e[Symbol.iterator]=function(){return e}),e}function i(t){this.map={},t instanceof i?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function s(t){if(t.bodyUsed)return Promise.reject(new TypeError(“Already read”));t.bodyUsed=!0}function a(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function f(t){var e=new FileReader,r=a(e);return e.readAsArrayBuffer(t),r}function u(t){var e=new FileReader,r=a(e);return e.readAsText(t),r}function h(t){for(var e=new Uint8Array(t),r=new Array(e.length),o=0;o-1?e:t}function p(t,e){e=e||{};var r=e.body;if(t instanceof p){if(t.bodyUsed)throw new TypeError(“Already read”);this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new i(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,r||null==t._bodyInit||(r=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||”same-origin”,!e.headers&&this.headers||(this.headers=new i(e.headers)),this.method=y(e.method||this.method||”GET”),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,(“GET”===this.method||”HEAD”===this.method)&&r)throw new TypeError(“Body not allowed for GET or HEAD requests”);this._initBody(r)}function l(t){var e=new FormData;return t.trim().split(“&”).forEach(function(t){if(t){var r=t.split(“=”),o=r.shift().replace(/\+/g,” “),n=r.join(“=”).replace(/\+/g,” “);e.append(decodeURIComponent(o),decodeURIComponent(n))}}),e}function b(t){var e=new i;return t.replace(/\r?\n[\t ]+/g,” “).split(/\r?\n/).forEach(function(t){var r=t.split(“:”),o=r.shift().trim();if(o){var n=r.join(“:”).trim();e.append(o,n)}}),e}function m(t,e){e||(e={}),this.type=”default”,this.status=e.status===undefined?200:e.status,this.ok=this.status>=200&&this.status-1};i.prototype.append=function(t,e){t=r(t),e=o(e);var n=this.map[t];this.map[t]=n?n+”, “+e:e},i.prototype[“delete”]=function(t){delete this.map[r(t)]},i.prototype.get=function(t){return t=r(t),this.has(t)?this.map[t]:null},i.prototype.has=function(t){return this.map.hasOwnProperty(r(t))},i.prototype.set=function(t,e){this.map[r(t)]=o(e)},i.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},i.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),n(t)},i.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),n(t)},i.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),n(t)},v.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);var _=[“DELETE”,”GET”,”HEAD”,”OPTIONS”,”POST”,”PUT”];p.prototype.clone=function(){return new p(this,{body:this._bodyInit})},c.call(p.prototype),c.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},m.error=function(){var t=new m(null,{status:0,statusText:””});return t.type=”error”,t};var x=[301,302,303,307,308];m.redirect=function(t,e){if(-1===x.indexOf(e))throw new RangeError(“Invalid status code”);return new m(null,{status:e,headers:{location:t}})},t.DOMException=self.DOMException;try{new t.DOMException}catch(g){t.DOMException=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}w.polyfill=!0,self.fetch=w,self.Headers=i,self.Request=p,self.Response=m,t.Headers=i,t.Request=p,t.Response=m,t.fetch=w,Object.defineProperty(t,”__esModule”,{value:!0})});}})(‘object’ === typeof window && window || ‘object’ === typeof self && self || ‘object’ === typeof global && global || {});
Star2Star Communications has a core purpose: to reshape the ways productive people collaborate and cooperate and to make each of us more powerfully enabled in our working lives. We are one of the fastest-growing Business Class Unified Communications firms in the world and Star2Star has built a sophisticated, OpenStack modular infrastructure of three primary tiers: a voice services platform, a set of business application services, and a front-end presentational layer. We have a fast-paced culture that rewards initiative, creativity, and your hard work with competitive compensation, health insurance, and 401K matching.
We are looking for an experienced Software Engineer who is motivated to mentor/lead a team in a fast paced environment to create scalable and enterprise grade web and mobile solutions. The successful candidate will collaborate actively with product management and UX design team to shape product vision and help translate them into actionable technical designs and complete solutions. Must be willing to travel to Sarasota at least 4 times a year. Ideal locations: Atlanta,Dallas, Charlotte,Tampa, Jacksonville, RTP, and Miami.
Your Role:
- Develop a strong understanding of current architecture and collaborate actively with product and executive team to help develop a vision for future evolution.
- Bring a balanced and pragmatic approach to problem solving.
- Identify & evaluate frameworks, libraries and strategies.
- Serve as a technical bridge with product management in matters impacting key product and engineering decisions. Work hand-in-hand with the product owner to refine backlog requirements and synthesize into actionable technical tasks.
- Prototype and build POCs, where appropriate, to ensure technical feasibility and understand complexity to assist with roadmap building.
- Design and develop frameworks, reusable libraries and front-end/ back-end components for web and mobile applications.
- Actively engage and participate in design and code reviews to ensure quality and technical integrity.
- Help with hiring, mentoring and training of new members.
- Provide subject matter expertise and technical guidance to supporting teams.
Your Background:
- A true problem solver with an engineering mindset. Ability to internalize solution vision, roadmap and extrapolate beyond immediate needs to synthesize flexible designs that anticipate and account for future needs.
- Mastery of responsive web and mobile application architecture, technologies, and methodologies used to deliver scalable and cloud based solutions.
- Proficient developing in HTML, CSS & JavaScript.
- Strong knowledge of web frameworks such as react, angular or vue.
- Strong analytical, technical and communication skills with demonstrable ability to independently evaluate technical options and make design decisions.
- A minimum of 5 years of design and hands-on development experience with complex web applications using Javascript.
- Strong understanding of application design patterns
- BS in Computer Science or relevant Engineering field.
What We Offer:
- Extensive Benefit Options (Health, Vision, Dental, Long & Short term Disability) effective after a short waiting period
- Flexible PTO plan & Company Holidays
- Subsidized onsite healthy food choices
- Culture Perks: Multiple Special Interest Groups, Activities Team, New Mom & Quiet Rooms, and Team Building Events
- Entrepreneurial work environment partnered with high growth career opportunities
You must be authorized to work in the United States on a full-time basis for any employer. No agencies, Please.
#IND