Git Detached Head: What This Means and How to Recover

3,968
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 blog post written by Carlos Schults.

Newcomers to Git often get confused with some of the messages that the VCS tool throws at them. The “You are in ‘detached HEAD’ state” one is certainly one of the weirdest. After coming across this message, most people start furiously Googling “git detached HEAD,” “git detached HEAD fix,” or similar terms, looking for anything that might be of help. If that’s your case, you’ve come to the right place.

Here’s the first thing you should know: you haven’t done anything wrong. Your repo isn’t broken or anything like that. The expression “Detached HEAD” might sound somewhat bizarre, but it’s a perfectly valid repository state in Git. Sure, it’s not the normal state, which would be—you’ve guessed it!—when HEAD is attached. The second thing you need to know is that going back to normal is super easy. If you just want to do that and get on with your day, go to the “How Do I Fix a Detached Head in Git?” section of this post to see how it’s done.

But if you want to know more—and I guess you do—stick around and we’ll help you. What does HEAD mean in Git? What does it mean for it to be attached or detached? These are the kind of questions we’ll answer in this post. By the end of it, you’ll have a better understanding of Git’s fundamentals, and detached HEADs will never trouble you again. Let’s dig in.

Git Detached HEAD: Reproducing the “Problem”

Let’s start with a quick demo showing how to reach the detached HEAD state. We’ll create a repository and add some commits to it:

mkdir git-head-demo
cd git-head-demo
git init
touch file.txt
git add .
git commit -m "Create file"
echo "Hello World!" > file.txt
git commit -a -m "Add line to the file"
echo "Second file" > file2.txt
git add .
git commit -m "Create second file"

With the commands above, we’ve created a new folder with a new repository inside it. Then we created a new empty file and committed that with the message “Create file.” Next, we added a line to that file and committed the change, with the message “Add a line to the file.” Finally, we’ve created another file with one line of text and committed that as well. If you use the git log –oneline command, you’ll see something like this:

Let’s say that, for testing purposes, we need to see how things were at the time of the second commit. How would we do that? As it turns out, we can check out a commit the same way we’d check out branches. Remember, branches are just names for commits. So, based on the example output above, we’d run git checkout 87ec91d. Keep in mind that if you’re following along by executing these commands on your own system, the hash for your commits will be different from those in the example. Use the log command to find it.

After running the command, we get the “You are in ‘detached HEAD’ state[…]” message. Before we go on, make sure you keep this in mind: you get to the detached HEAD state by checking out a commit directly.

What Is a HEAD in Git?

What does HEAD mean in Git? To understand that, we have to take a step back and talk fundamentals.

A Git repository is a collection of objects and references. Objects have relationships with each other, and references point to objects and to other references. The main objects in a Git repository are commits, but other objects include blobs and trees. The most important references in Git are branches, which you can think of as labels you put on a commit.

HEAD is another important type of reference. The purpose of HEAD is to keep track of the current point in a Git repo. In other words, HEAD answers the question, “Where am I right now?”

For instance, when you use the log command, how does Git know which commit it should start displaying results from? HEAD provides the answer. When you create a new commit, its parent is indicated by where HEAD currently points to.

Are you in ‘detached HEAD’ state?

You’ve just seen that HEAD in Git is only the name of a reference that indicates the current point in a repository. So, what does it mean for it to be attached or detached?

Most of the time, HEAD points to a branch name. When you add a new commit, your branch reference is updated to point to it, but HEAD remains the same. When you change branches, HEAD is updated to point to the branch you’ve switched to. All of that means that, in these scenarios, HEAD is synonymous with “the last commit in the current branch.” This is the normal state, in which HEAD is attached to a branch.

A visual representation of our demo repository would look like this:

As you can see, HEAD points to the master branch, which points to the last commit. Everything looks perfect. After running git checkout 87ec91d, the repo looks like this:

This is the detached HEAD state; HEAD is pointing directly to a commit instead of a branch.

Benefits of a Git Detached HEAD

Are there good reasons for you to be in the detached HEAD state? You bet there are!

As you’ve seen, you detach the HEAD by checking out a commit. That’s already useful by itself since it allows you to go to a previous point in the project’s history. Let’s say you want to check if a given bug already existed last Tuesday. You can use the log command, filtering by date, to start the relevant commit hash. Then you can check out the commit and test the application, either by hand or by running your automated test suite.

What if you could not only take a look at the past, but also change it? That’s what a detached HEAD allows you to do. Let’s review how the detached message starts:

You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.

In this state, you can make experimental changes, effectively creating an alternate history. So, let’s create some additional commits in the detached HEAD state and see how our repo looks afterward:

echo "Welcome to the alternate timeline, Morty!" > new-file.txt
git add .
git commit -m "Create new file"
echo "Another line" >> new-file.txt
git commit -a -m "Add a new line to the file"

We now have two additional commits that descend from our second commit. Let’s run git log –oneline and see the result:

This is what the diagram looks like now:

What should you do if you want to keep those changes? And what should you do if you want to discard them? That’s what we’ll see next.

How Do I Fix a Detached HEAD in Git?

You can’t fix what isn’t broken. As I’ve said before, a detached HEAD is a valid state in Git. It’s not a problem. But you may still want to know how to get back to normal, and that depends on why you’re in this situation in the first place.

Scenario #1: I’m Here by Accident

If you’ve reached the detached HEAD state by accident—that is to say, you didn’t mean to check out a commit—going back is easy. Just check out the branch you were in before:

git checkout <branch-name>

If you’re using Git 2.23.0 or newer, you can also use switch instead of checkout:

git switch <branch-name>

Scenario #2: I’ve Made Experimental Changes and I Want to Discard Them

You’ve entered the detached HEAD state and made a few commits. The experiment went nowhere, and you’ll no longer work on it. What do you do? You just do the same as in the previous scenario: go back to your original branch. The changes you made while in the alternate timeline won’t have any impact on your current branch.

Scenario #3: I’ve Made Experimental Changes and I Want to Keep Them

If you want to keep changes made with a detached HEAD, just create a new branch and switch to it. You can create it right after arriving at a detached HEAD or after creating one or more commits. The result is the same. The only restriction is that you should do it before returning to your normal branch.

Let’s do it in our demo repo:

git branch alt-history
git checkout alt-history

Notice how the result of git log –oneline is exactly the same as before (the only difference being the name of the branch indicated in the last commit):

We could just run git branch alt-history, and we’d be all set. That’s the new—and final—version of our diagram:

Getting Rid of the “Git Detached HEAD” Message

Before wrapping up, let’s share a final quick tip. Now that you understand everything about detached HEAD in Git and know that it’s not that big of a deal, seeing that message every time you check out a commit might become tiring. Fortunately, there’s a way to not see the warning anymore. Just run the following command:

git config advice.detached head false

Easy, right? You can also use the –global modifier if you want the change to apply to every repository and not only the current one.

Git Detached HEAD: Less Scary Than It Sounds

A message talking about heads not being attached doesn’t sound like your routine software error message, right? Well, it’s not an error message.

As you’ve seen in this post, a detached HEAD doesn’t mean something is wrong with your repo. Detached HEAD is just a less usual state your repository can be in. Aside from not being an error, it can actually be quite useful, allowing you to run experiments that you can then choose to keep or discard.

Carlos Schults is a .NET software developer with experience in both desktop and web development, and he’s now trying his hand at mobile. He has a passion for writing clean and concise code, and he’s interested in practices that help you improve app health, such as code review, automated testing, and continuous build.

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
Senior Development Support Engineer (...
USA
<p><strong data-stringify-type="bold">Our Customers Develop Software at the Speed of Ideas</strong></p> <p><span style="font-weight: 400;">CloudBees, the enterprise software delivery company, provides the industry’s leading DevOps technology platform. CloudBees enables developers to focus on what they do best: Build stuff that matters while providing peace of mind to management with powerful risk mitigation, compliance, and governance tools. Used by many of the Fortune 100, CloudBees is helping thousands of companies harness the power of continuous everything and gets them on the fastest path from a great idea, to great software, to amazing customer experiences, to being a business that changes lives.</span></p> <p><span style="font-weight: 400;">Backed by Matrix Partners, Lightspeed Venture Partners, Verizon Ventures, Delta-v Capital, Golub Capital, and Unusual Ventures, CloudBees was founded in 2010 by former JBoss CTO Sacha Labourey and an elite team of continuous integration, continuous delivery, and DevOps professionals.</span></p> <h2><span style="font-weight: 400;">Team description</span></h2> <p><span style="font-weight: 400;">CloudBees customers rely on our Support team to help them be successful in the use of our products. Our team is uniquely positioned to help sustain the company’s growth by providing a customer support experience that surpasses expectations. These positive customer experiences help drive annual renewals and business expansion. A successful Development Support Engineer (DSE) will use their skills and experience to accurately diagnose customer issues and get them resolved in a timely way, to the customer’s satisfaction. In addition, motivated individuals who want to contribute in other ways will have opportunities to work on our collection of internal tools that automate the diagnosis of issues, making the entire team more efficient by reducing manual work.</span></p> <p><span style="font-weight: 400;">A typical day in our Support team starts with a scrum meeting where we review open and unassigned cases and help each other with issues we’re stuck on. Working on active cases, we answer basic questions and also troubleshoot problems that range from the mundane to the fiendishly complicated (it helps if you enjoy a good challenge). We collaborate with each other throughout the day, via Slack or video calls. During down time, we build technical knowledge through training and tools development.</span></p> <p><span style="font-weight: 400;">CloudBees has been a remote-work-first company since it was founded, and the majority of the DSE team works remotely. The existing team has a mix of backgrounds including system administrators, developers, support engineers, and devops engineers. We strive to provide everyone on the team with interesting challenges, opportunities for personal and professional growth, and a positive work/life balance.</span></p> <h2><span style="font-weight: 400;">What You'll Do&nbsp;</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Answer customer questions about product usage and best practices</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Diagnose complex technical issues and provide solutions or workarounds</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Communicate with customers through a ticketing system, with phone support sometimes required for complex or urgent issues</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate frequently with members of the Support and Engineering teams</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Contribute to documentation</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Contribute to internal software tools to automate diagnosis of customer issues</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work a weekend on-call rotation every 4-8 weeks (daytime hours only)</span></li> </ul> <h2><span style="font-weight: 400;">What The Role Requires&nbsp;</span></h2> <p><span style="font-weight: 400;">A successful candidate will have:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Basic Linux system administration knowledge</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Good communication skills (English language fluency required)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The ability to work independently</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The ability to build knowledge of new technologies easily</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">A sense of empathy with our customers</span></li> </ul> <p><span style="font-weight: 400;">As previously mentioned, members of our team have a variety of past work experience, and each bring a different mix of skills to our team. The following are some examples of these skills, but by no means do we expect candidates to have all of them. If any of these fit with your experience, we would love to hear from you!</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">System administration knowledge, especially Linux, storage, and/or networking</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Good working knowledge of popular DevOps tools and services such as: Jenkins, Docker, Artifactory/Nexus, Kubernetes, git &amp; GitHub</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of common enterprise environments &amp; technologies such as LDAP &amp; databases</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of common web application architectures, SSL, REST API concepts, etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Understanding of Continuous Integration and Continuous Deployment concepts and practices</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with cloud computing environments</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Programming experience, anything from shell scripting to Java development</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Open source community contributions, especially Jenkins</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Previous experience in customer-facing roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Computer Science / IT degree or equivalent work experience</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Certifications: Cloud computing providers, Kubernetes, etc.</span></li> </ul> <h2><span style="font-weight: 400;">What You'll Get&nbsp;</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Gain experience working with and troubleshooting a variety of tools used widely in the tech industry</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Enhance your career by completing industry-recognized technical certifications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Manage projects and initiatives within the team, contributing to team goals</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Potential future opportunities to grow into management, engineering, or other field roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Play a key role in maintaining and growing company revenue over time</span></li> </ul> <p><span style="font-weight: 400;">We have a culture of movers and shakers and are leading the way for everyone else with a vision to transform the industry. We are authentic in who we are. We believe in our abilities and strengths to change the world for the better. Being inclusive and working together is at the heart of everything we do. We are naturally curious. We ask the right questions, challenge what can be done differently and come up with intelligent solutions to the problems we find. If that’s you, get ready to bee impactful and join the hive.</span></p> <p>At CloudBees, we truly believe that the more diverse we are, the better we serve our customers. 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. 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.</p> <p>In the technology industry, diversity creates a competitive advantage. CloudBees customers demand technologies from us that solve their software development, and therefore their business problems, so that they can better serve their own customers. CloudBees attributes much of its success to its worldwide work force and commitment to global diversity, which opens our proprietary software to innovative ideas from anywhere. Along the way, we have witnessed firsthand how employees, partners, and customers with diverse perspectives and experiences contribute to creative problem solving and better solutions for our customers and their businesses.</p>
Associate Development Support Enginee...
USA
<p><span style="font-size: 12pt;"><strong>About CloudBees</strong></span></p> <p><span style="font-weight: 400; font-size: 12pt;">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-size: 12pt;"><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></span></p> <h2><span style="font-weight: 400; font-size: 12pt;">Team Description</span></h2> <p><span style="font-weight: 400; font-size: 12pt;">CloudBees customers rely on our Support team to help them be successful in the use of our products. Our team is uniquely positioned to help sustain the company’s growth by providing a customer support experience that surpasses expectations. These positive customer experiences help drive annual renewals and business expansion. A successful Development Support Engineer (DSE) will use their skills and experience to accurately diagnose customer issues and get them resolved in a timely way, to the customer’s satisfaction. In addition, motivated individuals who want to contribute in other ways will have opportunities to work on our collection of internal tools that automate the diagnosis of issues, making the entire team more efficient by reducing manual work.</span></p> <p><span style="font-weight: 400; font-size: 12pt;">A typical day in our Support team starts with a scrum meeting where we review open and unassigned cases and help each other with issues we’re stuck on. Working on active cases, we answer basic questions and also troubleshoot problems that range from the mundane to the fiendishly complicated (it helps if you enjoy a good challenge). We collaborate with each other throughout the day, via Slack or video calls. During down time, we build technical knowledge through training and tools development.</span></p> <p><span style="font-weight: 400; font-size: 12pt;">CloudBees has been a remote-work-first company since it was founded, and the majority of the DSE team works remotely. The existing team has a mix of backgrounds including system administrators, developers, support engineers, and devops engineers. We strive to provide everyone on the team with interesting challenges, opportunities for personal and professional growth, and a positive work/life balance.</span></p> <h2><span style="font-weight: 400; font-size: 12pt;">What You'll Do&nbsp;</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Answer customer questions about product usage and best practices</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Diagnose complex technical issues and provide solutions or workarounds</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Communicate with customers through a ticketing system, with phone support sometimes required for complex or urgent issues</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Collaborate frequently with members of the Support and Engineering teams</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Contribute to documentation</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Contribute to internal software tools to automate diagnosis of customer issues</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Work a weekend on-call rotation every 4-8 weeks (daytime hours only)</span></li> </ul> <h2><span style="font-weight: 400; font-size: 12pt;">What The Role Requires&nbsp;</span></h2> <p><span style="font-weight: 400; font-size: 12pt;">A successful candidate will have:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Basic Linux system administration knowledge</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Good communication skills (English language fluency required)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">The ability to work independently</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">The ability to build knowledge of new technologies easily</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">A sense of empathy with our customers</span></li> </ul> <p><span style="font-weight: 400; font-size: 12pt;">As previously mentioned, members of our team have a variety of past work experience, and each bring a different mix of skills to our team. The following are some examples of these skills, but by no means do we expect candidates to have all of them. If any of these fit with your experience, we would love to hear from you!</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">System administration knowledge, especially Linux, storage, and/or networking</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Good working knowledge of popular DevOps tools and services such as: Jenkins, Docker, Artifactory/Nexus, Kubernetes, git &amp; GitHub</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Knowledge of common enterprise environments &amp; technologies such as LDAP &amp; databases</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Knowledge of common web application architectures, SSL, REST API concepts, etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Understanding of Continuous Integration and Continuous Deployment concepts and practices</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Experience with cloud computing environments</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Programming experience, anything from shell scripting to Java development</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Open source community contributions, especially Jenkins</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Previous experience in customer-facing roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Computer Science / IT degree or equivalent work experience</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Certifications: Cloud computing providers, Kubernetes, etc.</span></li> </ul> <h2><span style="font-weight: 400; font-size: 12pt;">What You'll Get&nbsp;</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Gain experience working with and troubleshooting a variety of tools used widely in the tech industry</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Enhance your career by completing industry-recognized technical certifications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Manage projects and initiatives within the team, contributing to team goals</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Potential future opportunities to grow into management, engineering, or other field roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400; font-size: 12pt;">Play a key role in maintaining and growing company revenue over time</span></li> </ul> <p><span style="font-weight: 400; font-size: 12pt;">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; font-size: 12pt;">In the technology industry, diversity creates a competitive advantage.&nbsp; CloudBees customers demand technologies from us that solve their software development, and therefore their business problems, so that they can better serve their own customers.&nbsp; CloudBees attributes much of its success to its worldwide work force and commitment to global diversity, which opens our proprietary software to innovative ideas from anywhere. Along the way, we have witnessed firsthand how employees, partners, and customers with diverse perspectives and experiences contribute to creative problem solving and better solutions for our customers and their businesses.</span></p>
Principal Development Support Enginee...
- EMEA
<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><span style="font-weight: 400;">Team description</span></h2> <p><span style="font-weight: 400;">CloudBees customers rely on our Support team to help them be successful in the use of our products. Our team is uniquely positioned to help sustain the company’s growth by providing a customer support experience that surpasses expectations. These positive customer experiences help drive annual renewals and business expansion. A successful Development Support Engineer (DSE) will use their skills and experience to accurately diagnose customer issues and get them resolved in a timely way, to the customer’s satisfaction. In addition, motivated individuals who want to contribute in other ways will have opportunities to work on our collection of internal tools that automate the diagnosis of issues, making the entire team more efficient by reducing manual work.</span></p> <p><span style="font-weight: 400;">A typical day in our Support team starts with a scrum meeting where we review open and unassigned cases and help each other with issues we’re stuck on. Working on active cases, we answer basic questions and also troubleshoot problems that range from the mundane to the fiendishly complicated (it helps if you enjoy a good challenge). We collaborate with each other throughout the day, via Slack or video calls. During down time, we build technical knowledge through training and tools development.</span></p> <p><span style="font-weight: 400;">CloudBees has been a remote-work-first company since it was founded, and the majority of the DSE team works remotely. The existing team has a mix of backgrounds including system administrators, developers, support engineers, and devops engineers. We strive to provide everyone on the team with interesting challenges, opportunities for personal and professional growth, and a positive work/life balance.</span></p> <h2><span style="font-weight: 400;">What You'll Do&nbsp;</span></h2> <ul> <li data-stringify-indent="0" data-stringify-border="0">Answer customer questions about product usage and best practices</li> <li data-stringify-indent="0" data-stringify-border="0">Diagnose complex technical issues and provide solutions or workarounds</li> <li data-stringify-indent="0" data-stringify-border="0">Communicate with customers through a ticketing system, with phone support sometimes required for complex or urgent issues</li> <li data-stringify-indent="0" data-stringify-border="0">Collaborate frequently with members of the Support and Engineering teams</li> <li data-stringify-indent="0" data-stringify-border="0">Contribute to documentation</li> <li data-stringify-indent="0" data-stringify-border="0">Contribute to internal software tools to automate diagnosis of customer issues</li> <li data-stringify-indent="0" data-stringify-border="0">Work a weekend on-call rotation every 4-8 weeks (daytime hours only)</li> <li data-stringify-indent="0" data-stringify-border="0">Works on large impact and unique issues</li> <li data-stringify-indent="0" data-stringify-border="0">Exercises independent judgment in methods, techniques and evaluation criteria for obtaining results</li> <li data-stringify-indent="0" data-stringify-border="0">Independently develops new diagnostic techniques for novel issues to be used by wider team and/or customer use.</li> <li data-stringify-indent="0" data-stringify-border="0">Designs and implements sophisticated tools or product features.</li> <li data-stringify-indent="0" data-stringify-border="0">Acts independently to determine methods and procedures on new or special assignments</li> <li data-stringify-indent="0" data-stringify-border="0">May supervise the activities of others</li> <li data-stringify-indent="0" data-stringify-border="0">Accountable for an outcome or performance for a team of people.</li> <li data-stringify-indent="0" data-stringify-border="0">Able to handle the most critical long running escalations with ease and drive them to completion</li> <li data-stringify-indent="0" data-stringify-border="0">Resolves business need through strategic planning</li> <li data-stringify-indent="0" data-stringify-border="0">Acts independently to determine methods and procedures on new or special assignments.</li> <li data-stringify-indent="0" data-stringify-border="0">Proactively identifies company-wide systemic issues.</li> <li data-stringify-indent="0" data-stringify-border="0">Regularly interacts with and relied upon by senior leadership team across the company, including Customer Success, Sales, Engineering and Product.</li> </ul> <h2><span style="font-weight: 400;">What The Role Requires&nbsp;</span></h2> <p><span style="font-weight: 400;">A successful candidate will have:</span></p> <ul> <li data-stringify-indent="0" data-stringify-border="0">Basic Linux system administration knowledge</li> <li data-stringify-indent="0" data-stringify-border="0">Highly professional communication skills with customers, many times including C-level. (English)</li> <li data-stringify-indent="0" data-stringify-border="0">Able to deal with negative experiences with C-suite or senior director customer participants.</li> <li data-stringify-indent="0" data-stringify-border="0">The ability to work independently</li> <li data-stringify-indent="0" data-stringify-border="0">The ability to build knowledge of new technologies easily</li> <li data-stringify-indent="0" data-stringify-border="0">A sense of empathy with our customers</li> <li data-stringify-indent="0" data-stringify-border="0">Minimum of 12 years of related experience</li> <li data-stringify-indent="0" data-stringify-border="0">Certified Kubernetes Administrator</li> </ul> <p><span style="font-weight: 400;">As previously mentioned, members of our team have a variety of past work experience, and each bring a different mix of skills to our team. The following are some examples of these skills, but by no means do we expect candidates to have all of them. If any of these fit with your experience, we would love to hear from you!</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">System administration knowledge, especially Linux, storage, and/or networking</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Good working knowledge of popular DevOps tools and services such as: Jenkins, Docker, Artifactory/Nexus, Kubernetes, git &amp; GitHub</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of common enterprise environments &amp; technologies such as LDAP &amp; databases</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of common web application architectures, SSL, REST API concepts, etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Understanding of Continuous Integration and Continuous Deployment concepts and practices</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with cloud computing environments</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Programming experience, anything from shell scripting to Java development</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Open source community contributions, especially Jenkins</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Previous experience in customer-facing roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Computer Science / IT degree or equivalent work experience</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Certifications: Cloud computing providers, Kubernetes, etc.</span></li> </ul> <h2><span style="font-weight: 400;">What You'll Get&nbsp;</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Gain experience working with and troubleshooting a variety of tools used widely in the tech industry</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Enhance your career by completing industry-recognized technical certifications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Manage projects and initiatives within the team, contributing to team goals</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Potential future opportunities to grow into management, engineering, or other field roles</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Play a key role in maintaining and growing company revenue over time</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;">In the technology industry, diversity creates a competitive advantage.&nbsp; CloudBees customers demand technologies from us that solve their software development, and therefore their business problems, so that they can better serve their own customers.&nbsp; CloudBees attributes much of its success to its worldwide work force and commitment to global diversity, which opens our proprietary software to innovative ideas from anywhere. Along the way, we have witnessed firsthand how employees, partners, and customers with diverse perspectives and experiences contribute to creative problem solving and better solutions for our customers and their businesses.</span></p>
Sr Software Engineer (Backend / Java)
Spain
<h2><span style="font-weight: 400;">About CloudBees</span></h2> <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;"> </span><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;"> </span><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;"> </span><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;"> </span><span style="font-weight: 400;">Facebook</span></a></p> <h2><span style="font-weight: 400;">About the Role</span></h2> <p><span style="font-weight: 400;">Cloudbees, the leader in CI/CD (Continuous Integration and Delivery) and the company behind Jenkins, is seeking a Senior Software Engineer with a background in Java Microservices and experience in performance engineering, databases and Kubernetes, to join our industry leading </span><a href="https://www.cloudbees.com/products/cloudbees-flow/?utm_source=google&amp;gclid=EAIaIQobChMItov-2YiE5gIVOvfjBx2CaAlOEAAYASAAEgIiePD_BwE"><span style="font-weight: 400;">Cloudbees Software Delivery Automation</span></a><span style="font-weight: 400;"> team.</span></p> <h2><span style="font-weight: 400;">What You'll Do</span></h2> <p><span style="font-weight: 400;">You will collaborate with Product managers, UX designers, Backend engineers to design as well as implement UI software using React, write unit tests to automate the verification of their code, and provide mentorship to other team members via architecture, design and code reviews.</span></p> <p><span style="font-weight: 400;">The Cloudbees CD team places high value on software quality and you'll with Quality Engineers within the team to ensure that the software is tested end to end. The ideal candidate would be someone who is interested in learning varied technologies and be a quick learner.&nbsp;&nbsp;&nbsp;&nbsp;</span></p> <h2><span style="font-weight: 400;">Role Requirements</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Deep knowledge of Core Java</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Proven experience with Spring and Hibernate frameworks</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience developing backend components, services or APIs in Java or a similar language</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Strong skills writing high-performance, multi-threaded, efficient and maintainable code</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience crafting and implementing highly scalable and performant microservices based applications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Familiarity with HTTP, REST, HTML, JSON, and similar web-based development technologies, and with building complex multi-tier parallel distributed systems that communicate with them (such as the backend of complex websites)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of SQL and experience working with mainstream databases (one of MySQL, PostgreSQL, Oracle, MS SQL Server)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with building, maintaining and scaling large scale distributed systems.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You can identify trade-offs to various implementations and can make decisions about which solution would be best for a given situation.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Understanding of SaaS, PaaS, IaaS industry with hands-on experience with public cloud offerings (e.g., AWS, GCP, Azure).</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Bachelor's or Master's degree in computer science is highly preferred</span></li> </ul> <h2 style="padding-left: 40px;"><span style="font-weight: 400;">Desirable</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience using public (or private) cloud provider platforms like GCP, AWS or Azure, Kubernetes and Docker containers.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of continuous integration/continuous delivery (CI/CD) is a plus.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with analyzing thread safety and race conditions, parallelism, synchronization, and locking, including between threads, between machines in a cluster, and in the database, including optimistic and pessimistic locking.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">SQL, object-relational mapping (e.g. using Hibernate), and basic DBA skills in Oracle and writing transactional code</span></li> </ul> <h2><span style="font-weight: 400;">Role Requirements</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Be part of a 2 week sprint executing on the backlog&nbsp; in lockstep with other developers, writing code as part of an Agile team</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work as an independent contributor collaborating with a team of developers and test engineers</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with product management, support and engineering teams in order to establish priorities&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Mentoring Junior Developers &amp; code reviewing for a remote team setting best practices and policies, writing specs, wiki pages, Knowledge Base articles and other internal documentation</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with the Support team, and communicate with customer sysadmins, DBAs and developers for troubleshooting</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Provide technology recommendations and strategy to support CloudBees product requirements</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with product management, support and engineering teams in order to establish priorities, understand requirements, formulate test plans and execute them accordingly.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to work with customers directly on urgent issues</span></li> </ul> <h2><span style="font-weight: 400;">What You'll Get</span></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Highly competitive benefits and vacation package</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to work for one of the fastest growing companies with some of the most talented people in the industry</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Team outings</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Fun, Hardworking, and Casual Environment</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Endless Growth Opportunities</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;">In the technology industry, diversity creates a competitive advantage.&nbsp; CloudBees customers demand technologies from us that solve their software development, and therefore their business problems, so that they can better serve their own customers.&nbsp; CloudBees attributes much of its success to its worldwide work force and commitment to global diversity, which opens our proprietary software to innovative ideas from anywhere. Along the way, we have witnessed firsthand how employees, partners, and customers with diverse perspectives and experiences contribute to creative problem solving and better solutions for our customers and their businesses.</span></p>
Verified by
Technical Evangelist
Dir Growth Marketing
You may also like