Submit Your Resume

Upload File

Drop files here Or click here to upload the files

Is this not the right job for you? Create a job alert to be notified when a job that matches your criteria is posted.

About Company:

Company offers the most-trusted app building platform for anyone looking for a better way to work. Company gives businesspeople and IT experts the ability to easily build and integrate apps to track, manage, and automate processes in days, not weeks. Our customers make lasting and substantial improvements to their business using Company’s bullet-proof cloud-based technology — and they love getting the industry’s best customer experience every step of the way.

As a systems engineer at Company, your mission will be to build and maintain scalable, robust platform SDKs, connectors, microservices and integrations used by Company citizen developers and internal implementation engineers. You will champion developer.Company.com and deliver new features and updates to the software offerings and API documentation.

The API Engineer reports to the Vice President of Engineering.  The position is fully remote with occasional travel to corporate HQ in Denver, CO.

What You’ll Do

  • Partner in a highly-collaborative environment across product, engineering, and implementation teams to define, design, develop, test, analyze, and deploy software used to integrate with the Company Platform.
  • Design, develop, and maintain Company’s public API, SDKs, and integration platform connectors with supporting published documentation.
  • Manage marketplace lifecycle for SDKs and integrations in well-known services such as Node Package Manager, Python Package Index, Workato, Zapier, Mulesoft, Boomi, etc.
  • Support Company Implementation Engineers as they use your software to build complex integrations and use cases for customers.
  • Leverage knowledge of best coding practices and design patterns to write elegant and readable code.
  • Communicate technical or architectural designs verbally and in writing for both internal and external audiences.
  • Seek opportunities to regularly identify code refactors and performance optimizations and champion initiatives to completion within the team.

What You’ll Need

  • 5+ years of professional experience building APIs or platform/SDK/developer tools.
  • Bachelor’s degree in Computer Science or related technical field or equivalent practical experience
  • Expert experience in JavaScript/Node
  • Novice experience in Java/Groovy, Python, Swift, Kotlin, or other compiled languages
  • Proficient experience writing interactive API documentation in Swagger or similar technology
  • Experience and knowledge with the challenges of building data-intensive, highly responsive, and fault-tolerant software
  • Expert communication skills: ability to clearly and concisely communicate complex technical problems and regularly achieve consensus with peers
  • Novice experience writing automated unit, integration and end-to-end tests
  • Experience integrating and developing CI/CD systems as a key aspect of the software development lifecycle
  • Proficient experience using MySQL, Oracle, or other RDBMS
  • Expert experience working in a highly-iterative software development process
  • Proficient skills in self-motivation, self-management, and self-organization
  • Knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations

Bonus Points

  • Experience developing in Java technologies (J2EE, Spring, Hibernate, JPA, JMS, Spring MVC, Spring Security)
  • Driven large-scale initiatives that span multiple projects, teams, or groups of engineers
  • Recognize, validate, and evangelize technologies and architectures that align with business objectives
  • Professional experience working in an enterprise or SaaS environment
  • Experience contributing significant features, enhancements or bug fixes including unit tests without guidance and without causing regressions
  • Understanding of application security threats and remediation techniques

Salary & Benefits

  • We cover 100% medical, dental, and vision benefits
  • We understand you have a life outside of work and have an unlimited, flexible time-off policy
  • We provide competitive paid parental leave for all new parents after 6 months
  • We made Built in Colorado’s Best Small Companies to Work For list, Denver Business Journal’s Largest Denver-area Tech Employers list, and Outside Magazine’s 50 Best Places to Work list
  • You will have the opportunity to challenge yourself and have a high degree of responsibility and impact
  • Your daily tasks will change often and give you many opportunities to grow your professional and technical skillset and advance your career

Work location is flexible if approved by Company except that position may not be performed remotely from California.

All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or status as a protected veteran. 

 

FacebookTwitter
[gravityform id="7" title="false" description="false"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_7' ><form method='post' enctype='multipart/form-data' id='gform_7' action='/surf_jobs/senior-api-software-engineer-denver-co-2ee4eb8c/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_7' class='gform_fields top_label form_sublabel_below description_below'><li id="field_7_7" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_7"><label class='gfield_label' for='input_7_7' >First name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_7' id='input_7_7' type='text' value='' class='large' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_8" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_8"><label class='gfield_label' for='input_7_8' >Last name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_8' id='input_7_8' type='text' value='' class='large' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_1"><label class='gfield_label' for='input_7_1' >Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_7_1' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_10" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_10"><label class='gfield_label' for='input_7_10' >Phone number<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_10' id='input_7_10' type='tel' value='' class='large' aria-required="true" aria-invalid="false" /></div></li><li id="field_7_11" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_11"><label class='gfield_label' for='input_7_11' >Which industry do you work in?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_11' id='input_7_11' type='text' value='' class='large' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_12" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_12"><label class='gfield_label' for='input_7_12' >Upload my resume<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_fileupload'><input type='hidden' name='MAX_FILE_SIZE' value='838860800' /><input name='input_12' id='input_7_12' type='file' class='large' aria-describedby="gfield_upload_rules_7_12" onchange='javascript:gformValidateFileSize( this, 838860800 );' /><span class='gform_fileupload_rules' id='gfield_upload_rules_7_12'>Max. file size: 800 MB.</span><div class='validation_message validation_message--hidden-on-empty' id='live_validation_message_7_12'></div></div></li><li id="field_7_13" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_13"><label class='gfield_label' for='input_7_13' >Comments</label><div class='ginput_container'><input name='input_13' id='input_7_13' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_7_13'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type="submit" id="gform_submit_button_7" class="gform_button button om-trigger-conversion" value="Submit" onclick='if(window["gf_submitting_7"]){return false;} if( !jQuery("#gform_7")[0].checkValidity || jQuery("#gform_7")[0].checkValidity()){window["gf_submitting_7"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_7"]){return false;} if( !jQuery("#gform_7")[0].checkValidity || jQuery("#gform_7")[0].checkValidity()){window["gf_submitting_7"]=true;} jQuery("#gform_7").trigger("submit",[true]); }'> <input type='hidden' class='gform_hidden' name='is_submit_7' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='7' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_7' value='WyJbXSIsIjYzZTkzNzhkY2Y1YmUzYzkyOTg0MmI4YmYyZWI5OGVkIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_7' id='gform_target_page_number_7' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_7' id='gform_source_page_number_7' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div>
["gf_submitting_3"]
["gf_submitting_3"]
[true]
[true]
[3, 1]
[3, 1]
[2, 1]
[2, 1]
["gf_submitting_3"]
["gf_submitting_3"]
[true]
[true]
[3, 1]
[3, 1]
["gf_submitting_3"]
["gf_submitting_3"]
[true]
[true]
[3, 1]
[3, 1]
["gf_submitting_3"]
["gf_submitting_3"]
[true]
[true]
[3, 1]
[3, 1]
["gf_submitting_3"]
["gf_submitting_3"]
[true]
[true]
[3, 1]
[3, 1]