How to Disable Code: The Developer’s Production Kill Switch

794
CloudBees
CloudBees is the Enterprise Software Delivery Leader. We provide the leading DevOps solutions for large and compliance-first organizations. We enable developers to focus on delivering great software, while providing management with powerful risk mitigation, compliance and governance capabilities. You develop great software, we’ll take care of the rest!

The following is a guest post written by Carlos Schults.

Being able to disable code in production is a power that many developers aren’t aware of. And that’s a shame. The ability to switch off some portions—or even complete features—of the codebase can dramatically improve the software development process by allowing best practices that can shorten feedback cycles and increase the overall quality.

So, that’s what this post will cover: the mechanisms you can use to perform this switching off, why they’re useful and how to get started. Let’s dig in.

Why Would You Want to Disable Code?

Before we take a deep dive into feature flags, explaining what they are and how they’re implemented, you might be asking: Why would people want to switch off some parts of their codebase? What’s the benefit of doing that?

To answer these questions, we need to go back in time to take a look at how software was developed a couple of decades ago. Time for a history lesson!

The Dark Ages: Integration Hell

Historically, integration has been one of the toughest challenges for teams trying to develop software together.

Picture several teams inside an organization, working separately for several months, each one developing its own feature. While the teams were working in complete isolation, their versions of the application were evolving in different directions. Now they need to converge again into a single, non conflicting version. This is a Herculean task.

That’s what “integration hell” means: the struggle to merge versions of the same application that have been allowed to diverge for too long.

Enter the Solution: Continuous Integration

“If it hurts, do it more often.” What this saying means is that there are problems we postpone solving because doing so is hard. What you often find with these kinds of problems is that solving them more frequently, before they accumulate, is way less painful—or even trivial.

So, how can you make integrations less painful? Integrate more often.

That’s continuous integration (CI) in a nutshell: Have your developers integrate their work with a public shared repository, at the very least once a day. Have a server trigger a build and run the automated test suite every time someone integrates their work. That way, if there are problems, they’re exposed sooner rather than later.

How to Handle Partially Completed Features

One challenge that many teams struggle with in CI is how to deal with features that aren’t complete. If developers are merging their code to the mainline, that means that any developments that take more than one day to complete will have to be split into several parts.

How can you avoid the customer accessing unfinished functionality? There are some trivial scenarios with similarly trivial solutions, but harder scenarios call for a different approach: the ability to switch off a part of the code completely.

Feature Flags to the Rescue

Defining Feature Flags

There are many names for the mechanisms that allow developers to switch a portion of their code off and on. Some call them “feature toggles” or “kill switches.” But “feature flags” is the most popular name, so that’s what we’ll use for the remainder of this post. So, what are feature flags?

Put simply, feature flags are techniques that allow teams to change the behavior of an application without modifying the code. In general, flags are used to prevent users from accessing and using the changes introduced by some piece of code, because they’re not adequate for production yet for a number of reasons.

Disable Code: What Are the Use Cases?

We’ll now cover some of the most common use cases for disabling code in production.

Switching Off Unfinished Features

As you’ve seen, one of the main use cases for feature flags is preventing users from accessing features that aren’t ready for use yet.

That way, programmers developing features that are more complex and take a longer time to complete aren’t prevented from integrating their work often and benefiting from it.

Enabling A/B Testing

The adoption of feature flags enables the use of several valuable practices in the software development process, one of which is A/B testing.

A/B testing is a user experience research technique that consists of comparing two versions of a website or application to decide which one to keep. It entails randomly splitting users into two groups, A and B, and then delivering a different version of the application to each group. One group might receive the current production version, which we call the “control,” whereas the second group would receive the candidate for the new version, called the “treatment.”

The testers then monitor the behavior of both groups and determine which of the versions achieved better results.

Feature flags are a practical way to enable A/B testing because they allow you to quickly and conveniently change between the control and treatment versions of your application.

Enabling Canary Releases

If you deliver the new version of your app to your entire userbase at once, 100 percent of your users will be impacted if the release is bad in some way. What if you could gradually roll out the new version instead? You’d first deploy to a small subset of users, monitoring that group to detect issues. If something went wrong, you could roll it back. If everything looked fine, you could then gradually release the version for larger groups. That’s a canary release in a nutshell. It’s another powerful technique that feature flags might help with.

Customizing Features According to Users’ Preferences

It’s not uncommon to have to customize your application according to the needs of specific users, and there are several ways in which software teams can accomplish that—some more efficient, and others less so (companies that create separate branches or entire repositories for each client come to mind).

This is another area where feature flags could help, allowing teams to dynamically switch between different versions of the same functionality.

Disable Code in Production 101

How do you go about disabling code? That’s what we’re going to see now, in three increasingly sophisticated phases.

First Stage: The Most Basic Approach

We start with an approach that’s so primitive, it maybe shouldn’t be considered a feature flag at all. Consider the pseudocode below:

calculateAdditionalWorkHours(Employee employee, Date start, Date end) {     
    // return calculateAdditionalWorkHoursSameOldWay(employee, start, end);
    return calculateAdditionalWorkHoursImproved(employee, start, end); 
    }

In the code above, we're just commenting out the old version of some method and replacing it with a new version. When we want the older version to be used, we just do the opposite. (Well, I said it was primitive.) This approach lacks one of the most fundamental properties of a feature flag—the ability to change how the application behaves without changing its code.

However, it plants the seed for more sophisticated approaches.

Second Stage: Taking the Decision Out of the Code

The previous approach didn't allow developers to select the desired version of the feature without changing the code. Fortunately, that's not so hard to do. First, we introduce a logical variable to determine which version we're going to use:

calculateAdditionalWorkHours(Employee employee, Date start, Date end) {

    var result = useNewCalculation
        ? calculateAdditionalWorkHoursImproved(employee, start, end)
        : calculateAdditionalWorkHoursSameOldWay(employee, start, end);

    return result;
}

Then, we use some mechanism to be able to assign the value to the variable from an external source. We could use a configuration file:

var useNewCalculation = config[newCalculation];

Passing arguments to the application might be another option. What matters is that we now have the ability to modify how the app behaves from the outside, which is a great step toward "true" feature flagging.

Keep in mind that the code examples you see are all pseudocode. Using your favorite programming language, there's nothing stopping you from starting with this approach and taking it up a notch. You could, for instance, use classes to represent the features and design patterns (e.g., factories) to avoid if statements.

Stage 3: Full-Fledged Feature Flag Management

The previous approach might be enough when your application has only a small number of flags. But as that number grows, things start to become messy.

First, you have the issue of technical debt. Manually implemented feature flags can create terribly confusing conditional flows in your codebase. That only grows worse with new flags being introduced each day. Additionally, they might make the code harder to understand and navigate, especially for more junior developers, which is an invitation for bugs.

Another problem is that as the number of flags grows, it becomes more and more common to forget to delete old, obsolete ones.

The main problem of a homegrown approach is that it doesn't give you an easy way to see and manage all of your flags at once. That's why our third and final stage is a single piece of advice: Instead of rolling out your own feature flags approach, adopt a third-party feature flag management system.

Feature Flags Are a CI/CD Enabler

We've covered the mechanisms developers can use to disable portions of their codebase in production without having to touch the code. This capability is powerful and enables techniques such as A/B testing and canary releases, which are all hallmarks of a modern, agile-based software development process.

The names for the techniques might vary—feature flags, feature toggles, feature flipper, and so on. The way in which the techniques are implemented can also vary—from a humble if statement to sophisticated cloud-based solutions.

But no matter what you call them, you can't overstate the benefit these mechanisms offer. They're an enabler of Continuous Integration, which is essential for any modern software organization that wants to stay afloat.

CloudBees
CloudBees is the Enterprise Software Delivery Leader. We provide the leading DevOps solutions for large and compliance-first organizations. We enable developers to focus on delivering great software, while providing management with powerful risk mitigation, compliance and governance capabilities. You develop great software, we’ll take care of the rest!
Tools mentioned in article
Open jobs at CloudBees
Engineering Operations Manager (1492)
London, England, United Kingdom
<p><strong>About CloudBees</strong></p> <p><span style="font-weight: 400;">CloudBees provides the leading software delivery platform for enterprises, enabling them to continuously innovate, compete, and win in a world powered by the digital experience. Designed for the world's largest organizations with the most complex requirements, CloudBees enables software development organizations to deliver scalable, compliant, governed, and secure software from the code a developer writes to the people who use it. The platform connects with other best-of-breed tools, improves the developer experience, and enables organizations to bring digital innovation to life continuously, adapt quickly, and unlock business outcomes that create market leaders and disruptors.</span></p> <p><span style="font-weight: 400;">CloudBees was founded in 2010 and is backed by Goldman Sachs, Morgan Stanley, Bridgepoint Credit, HSBC, Golub Capital, Delta-v Capital, Matrix Partners, and Lightspeed Venture Partners. Visit </span><a href="http://www.cloudbees.com/"><span style="font-weight: 400;">www.cloudbees.com</span></a><span style="font-weight: 400;"> and follow us on </span><a href="https://twitter.com/CloudBees?s=20"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;">, </span><a href="http://www.linkedin.com/company/cloudbees"><span style="font-weight: 400;">LinkedIn</span></a><span style="font-weight: 400;">, and </span><a href="https://www.facebook.com/CloudBees"><span style="font-weight: 400;">Facebook</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>Why this role</strong></h2> <p><span style="font-weight: 400;">CloudBees is hiring an Operations Engineering Manager to help develop our next-generation solutions!</span></p> <p><span style="font-weight: 400;">This is an excellent opportunity to join CloudBees product development team, working with some of the best and brightest engineers and technical product managers while also developing your skills and furthering your career within an innovative and progressive technology company.</span></p> <p><span style="font-weight: 400;">In this role, you will lead a team of highly talented individuals in creating the engineering backbone for delivering CloudBees product offerings. This is a great opportunity to develop systems that provide for rapid innovation across all CloudBees product teams, while having a huge impact.</span></p> <p><span style="font-weight: 400;">As an Engineering Manager you will be the functional management point of contact for your assigned staff of 6-10 engineers.</span></p> <h3><strong>THE IDEAL CANDIDATE IS:</strong></h3> <p><strong>…a good people manager.</strong><span style="font-weight: 400;"> Building, motivating and mentoring a world-class software engineering team is the most important part of this role. You should have a proven track record in attracting, hiring, and retaining top talent and excel in day-to-day people and performance management tasks.</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">You will manage and lead an engineering team comprising front-end, back-end, and full-stack software engineers.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will serve as an escalation point for issues, concerns, conflicts.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will continuously promote the efficiency, effectiveness, and happiness of engineers.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will ensure engineering team goals are accomplished effectively and in accordance with all necessary guidelines.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will coach, mentor, guide, and develop team members to motivate, retain, and grow them within the organization.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will participate in leadership meetings and work cross-functionally; build strong relationships with stakeholders.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will regularly meet with your staff for career development, employee engagement, and mentoring and coaching discussions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will assist employees in preparing performance goals, provide career mentorship to employees and counsel employees on their performance as needed.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will coordinate with talent acquisition, human resources, and senior Engineering functional staff on staffing, recruiting, training, preparing and delivering performance evaluations to employees, evaluating/recommending employees for promotions, evaluating salaries and coordinating on potential adjustments.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You may be required to work with senior Engineering functional staff and Human Resources Business Partners to mediate and resolve personnel issues.</span></li> </ul> <p>&nbsp;</p> <p><strong>…technically and operationally credible.</strong><span style="font-weight: 400;"> You will regularly take part in deep-dive troubleshooting exercises and drive technical post-mortem discussions to identify the root cause of complex issues. The ideal candidate has experience as a software or systems engineer.</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">You will mentor the teams on technical decision making.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will advocate for technical best practices while designing innovative, evolutionary architectures.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will stay abreast and encourage the use of relevant tools, technologies, and development practices.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will participate in product issue testing, failure root cause, and resolution.</span></li> </ul> <p>&nbsp;</p> <p><strong>.. a strong project manager. </strong><span style="font-weight: 400;">The successful candidate will assist in creating cross-team roadmaps to drive organizational efficiency. Experience with Agile methodologies is an advantage.</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">You will define a team composition to enable the team to solve its own problems and deliver.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will perform future software, staffing, &amp; tool planning.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will work with multiple CloudBees engineering teams and product managers in order to drive efficiency and collaboration.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will mentor and assist the teams to plan, prioritize, and manage workloads to ensure optimum delivery/service level to customers &amp; stakeholders.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will mentor team members how best to collaborate and drive execution with our product managers with a focus on user value.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will collaborate with Product Managers on interface and planning process.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You will interact frequently with our leadership team and act as a leader/liaison for your team.</span></li> </ul> <p><span style="font-weight: 400;">This position reports to the Director of Platform Engineering and will play a key role in delivering our next-generation solution for DevOps to our customers.</span></p> <p><span style="font-weight: 400;">This position requires a dedication to ethics and integrity, and the capability to innovate in a fast-paced industry.</span></p> <h2><strong>WHAT THE ROLE REQUIRES</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">2+ years of experience as a manager for software engineering teams with proven people leadership skills and the ability to work effectively in a team environment</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">3+ years of hands-on experience in working on SaaS products</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">4+ years of hands-on experience in software engineering with high proficiency in problem solving</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">4+ years of experience building complex software systems that have been successfully delivered to production</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excellent understanding of all aspects of software development, project management, quality assurance, and customer advocacy</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Advocate for modern software development practices, Lean and Agile thinking.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Inspire an atmosphere of feedback, continuous improvement and knowledge sharing.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">BA/BS degree in Computer Science or related field</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Strong English verbal and written communication skills and demonstrated technical leadership</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Meets/exceeds CloudBees leadership principles requirements for this role</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Meets/exceeds CloudBees functional/technical depth and complexity for this role</span></li> </ul> <p><span style="font-weight: 400;">At CloudBees, we truly believe that the more diverse we are, the better we serve our customers.&nbsp; A global community like Jenkins demands a global focus from CloudBees. Organizations with greater diversity—gender, racial, ethnic, and global—are stronger partners to their customers.&nbsp; Whether by creating more innovative products, or better understanding our worldwide customers, or establishing a stronger cross-section of cultural leadership skills, diversity strengthens all aspects of the CloudBees organization.</span></p>
Operations Engineer (1493)
<p><strong>About CloudBees</strong></p> <p><span style="font-weight: 400;">CloudBees provides the leading software delivery platform for enterprises, enabling them to continuously innovate, compete, and win in a world powered by the digital experience. Designed for the world's largest organizations with the most complex requirements, CloudBees enables software development organizations to deliver scalable, compliant, governed, and secure software from the code a developer writes to the people who use it. The platform connects with other best-of-breed tools, improves the developer experience, and enables organizations to bring digital innovation to life continuously, adapt quickly, and unlock business outcomes that create market leaders and disruptors.</span></p> <p><span style="font-weight: 400;">CloudBees was founded in 2010 and is backed by Goldman Sachs, Morgan Stanley, Bridgepoint Credit, HSBC, Golub Capital, Delta-v Capital, Matrix Partners, and Lightspeed Venture Partners. Visit </span><a href="http://www.cloudbees.com/"><span style="font-weight: 400;">www.cloudbees.com</span></a><span style="font-weight: 400;"> and follow us on </span><a href="https://twitter.com/CloudBees?s=20"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;">, </span><a href="http://www.linkedin.com/company/cloudbees"><span style="font-weight: 400;">LinkedIn</span></a><span style="font-weight: 400;">, and </span><a href="https://www.facebook.com/CloudBees"><span style="font-weight: 400;">Facebook</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>Why this role</strong></h2> <p><span style="font-weight: 400;">We are looking for an experienced and highly motivated Engineering Manager to join the CloudBees Product organization. The role will be responsible for driving the efficiency, effectiveness, and delivery of a team of geographically distributed engineers focusing on the operations and reliability of various internal and external systems. Relying on continuous feedback, you will foster adaptive design, and engineering practices, and drive programs and teams to rally around a shared operational vision that powers engineering at CloudBees.</span></p> <p><span style="font-weight: 400;">This position is suitable for an experienced operations engineering manager making decisions that impact the infrastructure used by the CloudBees Product organization - and more directly the engineering teams in that organization.</span></p> <p><strong>What You’ll Do</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Manage all operations activities for in-scope systems including design, testing, performance, development, release, monitoring</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Foster agile delivery</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Implement and maintain overall engineering objectives and initiatives</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Confront and solve performance and operational issues to improve development efficiency</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Provide input to strategic decisions that affect the functional area of responsibility</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Provide leadership to enable a highly effective engineering team including</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Hire and retain the best talent for your team by managing the full lifecycle of team member development.</span></li> </ul> <p><strong>What The Role Requires</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Demonstrated success in leading/managing engineering teams and software development projects&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">4+ years of software development in a technical leadership capacity</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">2+ years of SRE / Operations / DevOps experience</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with our tech stack or equivalent: Kubernetes, helm, Java, Docker, AWS, GCP, Jenkins.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">DevOps enthusiasm with a passion for modern software development practices including agile, continuous integration and continuous delivery, containerization, outcome driven development, iterative development</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Capable of resolving escalated issues arising from support or operations and requiring coordination with other departments</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Incredible problem solving abilities and facilitation skills</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability and willingness to grow alongside our organization by learning new technologies and languages.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to work autonomously and asynchronously</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Adaptable schedule to handle a distributed team</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Superior written and verbal communication skills</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Talent for leading through influence and inspiring high achievement</span></li> </ul> <p><span style="font-weight: 400;">At CloudBees, we truly believe that the more diverse we are, the better we serve our customers.&nbsp; A global community like Jenkins demands a global focus from CloudBees. Organizations with greater diversity—gender, racial, ethnic, and global—are stronger partners to their customers.&nbsp; Whether by creating more innovative products, or better understanding our worldwide customers, or establishing a stronger cross-section of cultural leadership skills, diversity strengthens all aspects of the CloudBees organization.</span></p> <p><span style="font-weight: 400;">For California residents, CCPA Notice Disclosure here.</span></p>
Senior Software Engineer-Front End (#...
<p><strong>About CloudBees</strong></p> <p><span style="font-weight: 400;">CloudBees provides the leading software delivery platform for enterprises, enabling them to continuously innovate, compete, and win in a world powered by the digital experience. Designed for the world's largest organizations with the most complex requirements, CloudBees enables software development organizations to deliver scalable, compliant, governed, and secure software from the code a developer writes to the people who use it. The platform connects with other best-of-breed tools, improves the developer experience, and enables organizations to bring digital innovation to life continuously, adapt quickly, and unlock business outcomes that create market leaders and disruptors.</span></p> <p><span style="font-weight: 400;">CloudBees was founded in 2010 and is backed by Goldman Sachs, Morgan Stanley, Bridgepoint Credit, HSBC, Golub Capital, Delta-v Capital, Matrix Partners, and Lightspeed Venture Partners. Visit </span><a href="http://www.cloudbees.com/"><span style="font-weight: 400;">www.cloudbees.com</span></a><span style="font-weight: 400;"> and follow us on </span><a href="https://twitter.com/CloudBees?s=20"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;">, </span><a href="http://www.linkedin.com/company/cloudbees"><span style="font-weight: 400;">LinkedIn</span></a><span style="font-weight: 400;">, and </span><a href="https://www.facebook.com/CloudBees"><span style="font-weight: 400;">Facebook</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>Why this role</strong></h2> <p>The CloudBees Marketing Operations Team is seeking a Front End Engineer to join our growing team. You will work closely with the marketing operations and digital marketing teams to improve and expand on the CloudBees.com site to support marketing programs and our products.</p> <p><strong>What You’ll Do</strong></p> <ul> <li> <p data-renderer-start-pos="3">Translate wireframes and designs into functional components and features using HTML5, CSS, and JavaScript</p> </li> <li> <p data-renderer-start-pos="112">Write components that improve and expanse the CloudBees.com site</p> </li> <li> <p data-renderer-start-pos="180">Collaborate with designers as well as engineers on other teams to continuously evolve and improve our internal component library</p> </li> <li> <p data-renderer-start-pos="312">Develop end-to-end tests for new and existing components</p> </li> <li> <p data-renderer-start-pos="372">Work closely with team members to define technical requirements</p> </li> <li> <p data-renderer-start-pos="439">Provide end-users with technical support</p> </li> <li> <p data-renderer-start-pos="483">Documenting application development processes, procedures, and standards</p> </li> </ul> <p><strong>What The Role Requires</strong></p> <ul> <li> <p data-renderer-start-pos="3">5+ years of experience with front end technologies.</p> </li> <li> <p data-renderer-start-pos="58">Experience with modern HTML and CSS best practices</p> </li> <li> <p data-renderer-start-pos="112">Experience with design frameworks, such as Bootstrap</p> </li> <li> <p data-renderer-start-pos="168">Well versed with Responsive Design across all display types</p> </li> <li> <p data-renderer-start-pos="231">Experience working with design teams</p> </li> <li> <p data-renderer-start-pos="271">UX design and development experience a plus</p> </li> <li> <p data-renderer-start-pos="318">Experience with JavaScript</p> </li> <li> <p data-renderer-start-pos="348">Typescript experience is a plus</p> </li> <li> <p data-renderer-start-pos="383">Experience with React front end development</p> </li> <li> <p data-renderer-start-pos="430">Familiarity with next.js is a plus</p> </li> <li> <p data-renderer-start-pos="468">Familiarity with browser testing and debugging</p> </li> <li> <p data-renderer-start-pos="518">Knowledge of Headless CMS</p> </li> <li> <p data-renderer-start-pos="547">Contentful experience a plus</p> </li> <li> <p data-renderer-start-pos="579">Self-motivated and driven personality. Experience working in a remote environment is a plus.</p> </li> <li>&nbsp;</li> </ul> <p><span style="font-weight: 400;">At CloudBees, we truly believe that the more diverse we are, the better we serve our customers.&nbsp; A global community like Jenkins demands a global focus from CloudBees. Organizations with greater diversity—gender, racial, ethnic, and global—are stronger partners to their customers.&nbsp; Whether by creating more innovative products, or better understanding our worldwide customers, or establishing a stronger cross-section of cultural leadership skills, diversity strengthens all aspects of the CloudBees organization.</span></p> <p>&nbsp;</p>
Senior Solution Architect (1506)
Madrid, Madrid, Spain
<p><strong>About CloudBees</strong></p> <p><span style="font-weight: 400;">CloudBees provides the leading software delivery platform for enterprises, enabling them to continuously innovate, compete, and win in a world powered by the digital experience. Designed for the world's largest organizations with the most complex requirements, CloudBees enables software development organizations to deliver scalable, compliant, governed, and secure software from the code a developer writes to the people who use it. The platform connects with other best-of-breed tools, improves the developer experience, and enables organizations to bring digital innovation to life continuously, adapt quickly, and unlock business outcomes that create market leaders and disruptors.</span></p> <p><span style="font-weight: 400;">CloudBees was founded in 2010 and is backed by Goldman Sachs, Morgan Stanley, Bridgepoint Credit, HSBC, Golub Capital, Delta-v Capital, Matrix Partners, and Lightspeed Venture Partners. Visit </span><a href="http://www.cloudbees.com/"><span style="font-weight: 400;">www.cloudbees.com</span></a><span style="font-weight: 400;"> and follow us on </span><a href="https://twitter.com/CloudBees?s=20"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;">, </span><a href="http://www.linkedin.com/company/cloudbees"><span style="font-weight: 400;">LinkedIn</span></a><span style="font-weight: 400;">, and </span><a href="https://www.facebook.com/CloudBees"><span style="font-weight: 400;">Facebook</span></a><span style="font-weight: 400;">.</span></p> <div class="sc-fkyLDJ bKvQzr"><strong>About the role</strong></div> <div class="sc-fkyLDJ bKvQzr">&nbsp;</div> <div class="sc-jUpvKA gBoIOG"> <div class="ak-renderer-wrapper sc-jRuhRL dinRUI"> <div>CloudBees is looking for a Senior Solution Architect to join the CloudBees technical sales organization supporting our partner ecosystem in Spain/Southern Europe This role is meaningful for our sales organization. The position involves working side-by-side with the sales teams, uncovering and developing opportunities by articulating the technical options for potential customers. While this role requires technology depth and awareness, this is a sales position. The role carries a quota and directly impacts the revenue of the company. The ideal candidate will have been involved in the DevOps, continuous integration, continuous delivery, or feature flag space with strong listening skills. Prior technical sales positions or working in the field experience would be useful.</div> <div class="sc-RbTVP cEbXNi"> <div class="ak-renderer-document"> <p data-renderer-start-pos="1">This role is an outstanding opportunity for a Sales Engineer to become a specialist in what’s soon to become the future of software delivery and to work closely with recognized professionals in the continuous integration, continuous delivery, feature flag, and DevOps markets.<br>This will be a REMOTE position with some travel required (depending on the current global COVID situation).</p> </div> </div> </div> </div> <div class="sc-fkyLDJ bKvQzr"><strong>What You’ll Do</strong></div> <div class="sc-jUpvKA gBoIOG"> <div class="ak-renderer-wrapper sc-jRuhRL dinRUI"> <div>● Become an authority on all things related to Continuous Integration, Continuous Delivery, Feature Flags, and DevOps.</div> <div>● Understand our products, competitors, value proposition, and positioning</div> <div>● Connect and work with our customers directly and become a technical advisor showcasing the capabilities of our products (presentations, demos, workshops, technical validations)</div> <div>● Discover and understand the customer's digital transformation journey and the impact of our products and services</div> <div>● Work with our product team to identify product priorities discovered in field engagements</div> <div>● Attend trade shows, when appropriate</div> <div>● Act as a trusted advisor, understand our customer's business pain, and showcase the positive business outcome delivered by our products</div> <div>● Be an active part of the team, give opportunity reviews, build technical champions, and have a clear understanding of the sales cycle</div> <div>● Deliver outstanding presentations while handling objections</div> </div> </div> <div class="sc-fkyLDJ bKvQzr">&nbsp;</div> <div class="sc-fkyLDJ bKvQzr"><strong>Role Requirements</strong></div> <div class="sc-jUpvKA gBoIOG"> <div class="ak-renderer-wrapper sc-jRuhRL dinRUI"> <div class="sc-RbTVP cEbXNi"> <div class="ak-renderer-document"> <p data-renderer-start-pos="1">● You enjoy working in the field, working with people, and solving technical challenges while understanding the business impact<br>● You have a confirmed technical background with the motivation to improve your sales engineering skills constantly<br>● You are hard-working, enjoy working with people and crafting relationships<br>● You are familiar with software development, delivery, or operations<br>● You have hands-on experience with Continuous Integration / Continuous Delivery / Feature Flagging or other DevOps standard methodologies<br>● Knowing Jenkins, and having used it in your past, is an excellent plus (we are the main contributor to this excellent open source project)</p> </div> </div> </div> </div> <p><span style="font-weight: 400;">At CloudBees, we truly believe that the more diverse we are, the better we serve our customers.&nbsp; A global community like Jenkins demands a global focus from CloudBees. Organizations with greater diversity—gender, racial, ethnic, and global—are stronger partners to their customers.&nbsp; Whether by creating more innovative products, or better understanding our worldwide customers, or establishing a stronger cross-section of cultural leadership skills, diversity strengthens all aspects of the CloudBees organization.</span></p>
Verified by
Technical Evangelist
Dir Growth Marketing
You may also like