Categories
Community

Cheat Sheet – Developers, unite! Have your voice heard.

This is a cheat sheet focusing on the Developer Nation 23rd survey wave, giving you all the key details to make the most out of your experience:

What
11+ years of surveying developers.
The Developer Nation survey has been measuring the preferences, needs and wants of developers for more than 11 years. It’s a dynamic survey where each participating survey taker will have a unique path, based on their own background and experience. 

When
The Developer Nation Community will be launching its 23rd survey wave on June 2 in English. On June 9, the survey will be available in all other languages: Spanish, Portuguese, Chinese Traditional + Simplified, Korean, Russian and Japanese.

Who is it for
Developer Nation is borderless! Everyone’s welcome! 
The Developer Nation survey is global and open to all. In the previous edition, more than 20,000 developers and creators of all levels – from students to hobbyists and seasoned professionals – from 160+ countries, shared their views. 

We want to hear your opinion if you see yourself as a developer, software engineer or tech creator involved in Web, Mobile, Desktop, Cloud, DevOps, Industrial IoT & Consumer Electronics, AR/VR, Apps/extensions for 3rd party ecosystems, Games, Machine Learning & AI, and Data Science.

If you nodded at any of the above areas or descriptions, this survey is for you. Keep reading for the benefits of participating or start now.

Why participate
There are several benefits for those who take the survey. Some of these are:

Prizes
By participating, developers can win amazing prizes and unlock more as they proceed, including a complimentary virtual goody bag packed with free resources. 

Premium access to information
Understanding the trends can be paramount to developers’ next career move. We share the results, data and ecosystem insights with the participants and tech organisations who use the data to improve their developer offerings. 

Giving back and helping others
For each qualified survey response, we will donate USD $0.10 to a charity of your choice. Our goal is to reach USD $1,800+ in donations. Take the survey, pick a charity to support, and help us make a difference.

What’s different this time
Every wave is a new opportunity to give developers what they want. Here’s the latest benefits we introduce in this 23rd wave:

  • Weekly prize draws, including everyone who signs up to take the survey.
  • Special Prizes to be drawn for everyone taking the survey in the first 48 hours (2 winners: Nintendo Switch & iPhone 13).
  • A new way to reward participants: the more questions you answer the more chances you get to win. A participant’s name will be included multiple times in draws depending on the number of questions answered. 
  • Prizes include: Nintendo Switch, iPhone 13, Xiaomi RedMi 11, Samsung Galaxy S22, Amazon Echo Dot 4th Gen, Premium Subscriptions and Licences, Vouchers for online courses and tutorials, Gift cards and vouchers for Amazon, Spotify, Apple Store, Google Play, cash to fund your development projects or towards the gear you need up to $1,000 USD and many more prizes drawn every week.
  • Everyone who completes the survey will receive a virtual goody bag filled with free subscriptions, discounts and vouchers. 

You read this far, which should mean you’re interested. Why not start the survey and share your views on key topics only developers can understand? If you’re short of time, you can save your progress and continue later (you’ll need to sign up to save). 

Are you creating for AR/VR?
There is an additional, exclusive, survey dedicated to Augmented, Virtual and Mixed Reality creators, with the same benefits. AR/VR creators can share their reality views using this link.

Categories
Tips

When the problem is: incomplete bug ?reports

Fall in love with the problem.

We love sharing stories of small teams or even groups of friends getting together and developing innovative products. What’s more interesting is the journey they take as well as the difficulties they face and the learnings they acquire.  Today we shed light on the story of a small product team who left their jobs to work on an idea that at first seemed simple but turned out to be quite an adventure! Here is the story of Adopto Bug Fixing – an automated bug reporting tool that helps tech teams receive fast and detailed bug reports.

Our adventure as a startup starts with a product team composed of a product manager, a tech lead, a full-stack developer, a UI designer, a QA tester, and a user researcher. We’ve always shared the desire to build something new to be proud of, so one day we decided to leave the previous company for which we were all working and follow the dream of building our own product-based startup.

“Fall in love with the problem” is the most popular recommendation shared among product people, and those founding a new startup. But here we’re talking about a startup whose 80% is made of builders, people who love to do one specific thing: build solutions. As Dan Olsen once said, “We live in the solution space”, and this is probably the truth when talking about a tech team. So we initially tried to use a shortcut: validating a solution without having validated the problem, as many did before us. We began this adventure with a solution in mind, a leftover from our previous experience, and we tried to look for a fitting problem, and for a market segment that could be interesting. A bit like when you are a child playing with geometric wooden shapes and you try to fit a circle where you should put a square. A true nightmare. 

Like many of you surely know, what you should be doing before developing a product, and even more during the very first months of a product-based startup, is NOT building and developing solutions. Your time and energy should be focused on a series of problem discovery activities, ranging from customer interviews, and market research, to competitor analyses. Luckily for us, after banging our heads against a few brick walls, we realized that the solution we were developing wasn’t going far because there was no problem-solution fit, so we hit the brakes and pivoted away.

We braced ourselves with patience and started our quest for a problem that was worth solving and could make us passionate about. “Since we are a product team”, we said, “let’s start exploring some product-team-specific processes”. We deep-dived into processes related to developing new features and those related to the resolution of bugs and technical incidents. Of course, fixing bugs appealed to us much more than developing new sexy features! 

We’ve spent the last four months doing customer discovery, interviewing potential customers, talking to them on LinkedIn and Reddit, on Discord channels, and in many product communities active on Slack (p.s. If you ever need feedback on any product you’re working on, I’d suggest getting in Mind The Product, The Product Folks, and The Product Coalition. Everybody is super generous with their feedback and ready to help out). As you can imagine, we had to work against the natural tendency to find shelter in the solution space, especially when at first we couldn’t get many people to talk to. But we managed, mostly because we were scared otherwise we would have to pivot again, and that’s a very painful process, as some of you can surely confirm. So after having chatted with hundreds of people among product managers, customer support reps, and account managers working for companies of various sizes, colors, and shapes, we validated that indeed there is a real problem with bug reporting.

Apart from some specific peculiarities that define every company, the current process that is followed in many places can be simplified like this: bugs (or presumed ones) found by end-users are reported to customer care or customer support, who are then responsible for the thankless task of manually collecting some technical information that is often hard to get -just imagine you need to ask an average user to share the screen and use the browser inspector to be able to check console logs. Then the customer support agent gets to open an issue to report that information in a ticketing system, following a more or less structured process.

This process creates a clear bottleneck: the team responsible for the resolution of the bug receives a report that is usually not very detailed. Not only doesn’t that help identify the steps to reproduce the error, but incomplete reports often lack the technical specs needed to distinguish between a real bug and a device/user-specific error, or even a bad design. This is why, once the ticket is opened, bug reporters and developers initiate a conversation that goes back and forth several times to request the missing details. Sometimes, customer support agents are even forced to reach out again to the end-user to find out more about the bug. This bottleneck is strongly felt by both parties involved: it is an eternal ping-pong that leads to a waste of time, without having any assurance that the bug will eventually be identified and fixed.   Here we’ve collected some of the most interesting learnings we gathered on the way. We’d love to share them with you: 

1. There is no need for a process…until you actually need one!

The very first thing we learned during our customer interviews is that there is a specific moment when you realize that your team won’t survive if you don’t put in place a somehow structured bug reporting process.  We noticed that teams usually move from receiving direct calls or Slack messages from colleagues finding bugs to having a dedicated space to collect all reports. You can have a basic version of this, like a shared spreadsheet, or an #issues Slack channel where the tech team manages to gather all complaints shared by colleagues. Those in need and the bravest, too, even go a step further and build a template to guide colleagues in what details they need to reproduce and triage the bug, so they can quickly define its priority in the backlog.  

What are the details that if present speed up the whole bug reporting process?

  • Where is the bug? – That is, all information that allows the team to exclude problems that are not widespread, but related to certain devices, OSs, browsers, app versions, or even user IDs.
  • Steps to reproduce – The actions that led the user to find the issue. The golden rule is “the more detailed, the better”. Usually, this information can be obtained only by directly asking the end-user to describe the process they follow that brought them to the bug. 
  • Expected behavior – Bugs are very often unfortunate design choices that produce some friction when using the product. To be able to spot these non-bugs, it’s important to ask the user to clarify what behavior they were otherwise expecting to see.
  • Technical details – In an ideal world, frontloading helps make the bug resolution process overall more efficient. This is why it is a good practice to immediately collect all those technical details which could later help testers and developers identify the issue, such as network requests, and console logs. When reproducing the bug is not straightforward, details like these come really in handy. Yet, collecting them is a real pain for non-technical colleagues who have to directly ask customers and users. Imagine asking a user to share their screen and activate the Browser inspector so that you can collect the logs. A bit of an extreme situation, especially when dealing with users with low digital literacy.  
  • Priority – The goal is to provide the tech team with an estimation of how quickly they should act on the bug and plan accordingly for the next sprint. This metric can be determined by different factors, such as the number of users that could experience the bug, or the importance of the feature that results affected, but also the impact of the reporting client on the company’s total revenue.  

Unfortunately, the truth is that all the effort put into providing colleagues with a template that guides them to report a bug doesn’t always pay off. There will always be someone who won’t follow the suggestions, who prefers to spontaneously make a phone call or send a Slack message directly to the product manager or a developer. And from here we move to the second learning.

2. Templates are useful, but never enough

At least once in our professional life, we’ve all witnessed a colleague who refused to adjust and use a new tool that would have facilitated and sped up not only their work but everybody else’s. This is because the adoption curve for an internal tool of this kind follows the sinusoidal shape of any other technological innovation introduced in the last two centuries (but have a look here to read how the pace is gradually speeding up).

What’s important to bear in mind is that for any new tool or process, there will be one or two colleagues out of ten who will enthusiastically try it out – the so-called innovators and early adopters. Of the remaining eight, though, seven will need to be convinced, pushed, and engaged even just to give it a try, and one-two will likely never accept change. This is the truth, it hurts, but the sooner we accept it, the better. 

Source: https://www.cblohm.com/blog/education-marketing-trends/adoption-curve-education-marketing-strategy/

3. Priority is not mathematics

Chatting with many product managers we identified another point that is very, very painful: even when you have some guidelines about how to estimate a bug priority, non-tech colleagues always report “High priority”.

“Consider, high priority is given even when they are talking about a typo or a misaligned button in the interface of an internal-use-only platform”, many confess with frustration.

This is truly one of those cases where you get nowhere: every team has its own KPIs and success metrics. If we ask a customer support rep, they will say their goal is closing support tickets as fast as possible. If we interrogate an account manager, it is high retention rates and an NPS equal to or higher than 9. And indeed, helping the unsatisfied user or client by making sure the problem is fastly and efficiently handled seems a very high priority for these roles, which are usually the most active in reporting bugs and technical issues in the first place.

Work chronicles

The only thing we can do is take this factor into consideration, and use some empathy –  yep, exactly the same empathy we try to use with our users! These colleagues have different goals and jobs to be done, so get ready with a bug triage process that is independent of the level of priority that they will mark. From here we move to the next learning: the (oftentimes unsatisfying) conversations between the tech team and non-tech colleagues.

4. “Yep, sure! I’ll let you know” doesn’t work

We’ve just mentioned that the product/tech team’s KPIs are quite different compared to those of colleagues working in sales and customer support. Let’s play a role game and get in our colleagues’ shoes -we have to apply that empathy we mentioned above: I’m a customer support agent and a client contacts me to report a technical issue, I bring this information to the tech team after collecting as many details as I can (although I’m sure the developer won’t be satisfied, as usual). It should go without saying that my need is to be able to check the status of my report so that I can show the client that I’ve not forgotten about them, I’ve paid attention and made sure their problems will be solved asap. Even when they contact me again the following days. It’s easy now to empathize with this colleague, isn’t it?

Then you should be surprised to hear that many of the customer care reps or account managers we talked to are not satisfied. The “Yep, sure! I’ll let you know” they receive from their tech colleagues doesn’t satisfy their simple needs. Most importantly, it doesn’t give them the chance to do their job at their best. Of course, we cannot expect the same colleague to then go the extra mile to gather all the details to make our job easier and less frustrating, am I not right?  

Companies that believe in a powerful alignment between product and sales/customer care invest a bit and provide non-tech colleagues access to the product’s task management platform (e.g., Jira, Trello, or ClickUp just to name the most mentioned). In this way, as a task progresses, the colleague receives a notification and can address the angry client who’ll get in touch again the following day.

5. QA testing is not sufficient 

The very last learning we want to share is about testing, and here we really collected mixed feelings. On paper, all product teams acknowledge how important it is to have a testing procedure in the pipeline before releasing changes to production. This procedure should guarantee that code is error-free, what’s known as Quality Assurance (QA) testing, but also that the user experience and the app usability are optimized, known as User Acceptance Testing (UAT). Everybody agrees this should happen.

Yet, about half of the people we interviewed confessed they don’t have dedicated resources for testing activities. In some cases it’s the product manager that carries out the task, testing the product and trying to imitate dummy user’s behaviors, such as clicking on the wrong buttons. In other cases, it’s the developers who test what they just built – and here we could (but won’t) start the huge debate on the validity of this practice (refer to this article to check popular arguments on the topic).

Nevertheless, there are several organizations where not only is QA testing done properly, but it is also automated to be very efficient and limit human errors. Nowadays many tools automatically notify you when they find code-specific errors, nothing new on this site. Yet, as many confirmed, the problem is that many bugs are not really bugs (strictly speaking, only code-specific errors are). Most of the time, the “bugs” are actually unfortunate UI/UX choices that the user perceives as technical issues. These cases represent the majority of the reports that tech teams receive, according to the product managers we interviewed, and there isn’t much we can do except bracing ourselves with patience and a desire to improve.

Adopto Bug Fix

You are probably wondering how our startup’s story ends now that we’ve finally learned to carry out a proper customer and problem discovery. After all the interviews, the individuation of the problem, of the job-to-be-done with the various pain points associated with it, we finally moved to the solution space. And here we started defining and building Adopto Bug Fix: an automated bug reporting tool that helps tech teams receive fast and detailed bug reports, without wasting time and precious resources in back-and-forth conversations with customer care and end-users.

Picture this: a user gets in touch with customer support to report a technical issue, the rep simply asks the user to press a keyboard shortcut, or click on a button on the app, and to reproduce the same steps that led to the error in the first place (this last one is a standard procedure that customer support usually carries out when receiving a report). That’s all!

Adopto Bug Fix works with a snippet of code that is pasted into the target platform’s code. It behaves like Siri: it’s quiet and invisible to the users’ eyes unless it’s activated. After the activation (with a keyboard shortcut or a click on a button), Adopto starts recording the session and collects a series of information. Among the information that it collects: there is a screen recording to check the user’s behavior on the app, the user clicks and text input, console logs, and network requests. But also specs about device and OS, screen resolution, and user ID. All these structured details are then conveyed in a report that the team can access from our platform. The report can be easily shared in any task management system. In this way, you can exploit the existing communication process you already follow to share updates with non-tech colleagues (we mentioned this at point 4).

As for today, we are in the Beta phase, meaning that we are improving the user experience and developing new functionalities thanks to the help of some product teams that have started using Adopto in their bug reporting workflows.
These teams are young (not talking about age, but about product maturity), have a WepApp currently under development, receive many incomplete bug reports from end-users and colleagues, and have tried to solve the problem with a solution that didn’t bring the expected results. If you see yourselves in this description and believe Adopto could make your team’s life easier, check out our webpage and sign up to become a member of our Beta program!

Sign up for free for our Beta program

Categories
Analysis Community

Spotlight on Developers in China & the Rest of East Asia

What are some of the key differences between developers in East Asia, including the Greater China region, and the rest of the world? In the 22nd edition of our Developer Nation Survey we collected insights from developers and software engineers in East Asia to try to answer this exact question. Here is what we found!

“A fifth of the global developer population is located in either the Greater China region or the rest of East Asia”

We split the Greater China area from the rest of East Asia to provide more regional granularity. In terms of relative size, we find that almost a fifth (18%) of the global developer population is located in either the Greater China region (9%) or the rest of East Asia (9%). Breaking down East Asia into countries, we see that more than half of the developers here are spread across two countries: Indonesia (32%) and Japan (21%). When comparing developers across regions, we can see that just over a third (34%) of developers in the Greater China region have six or more years of experience, which is notably less than developers globally (43%). Furthermore, the Greater China region has a much smaller concentration (4% vs 22% globally) of highly-experienced developers (16+ years). With generally lower levels of experience in the Greater China area, aspiring developers may find starting a career here less competitive than developers in regions with higher levels of experience.

“East Asian developers outside China have similar levels of experience to the rest of the global developer population”

Both groups have a little more than a third (34%) of their developers with 11+ years of software development experience. However, East Asia’s data are largely propped up by Japan. The developer community in Japan tends to be highly experienced, with almost six in ten developers (59%) having 16+ years of experience. No other country has a higher concentration of developers with this level of experience. 

Developers in the region are mostly either self-taught or have an undergraduate degree in computing

The journey to coding mastery lacks a clearly defined path. Developers typically state they’ve used more than two learning methods on average to learn how to code. In general, the self-taught method is the most popular among developers globally, with more than 60% using this method. However, our data shows that the proportion of self-taught developers fluctuates significantly across regions.

In the Greater China area, the most popular method for developers to learn how to code is via an undergraduate degree in computing, with 50% having used this method. This is significantly higher than developers in other regions (41% -42%). We generally see a higher concentration of professional developers in Greater China (83%) than we do in the rest of the world (70%). It could be that the job market in Greater China more often requires a degree in computing or engineering, which would also explain why self-teaching is used less often in this region.

Developers in the rest of East Asia, however, tend to follow the learning trends of developers in other regions. Here, we see the self-taught method is the most popular method (61%), followed by an undergraduate degree in software engineering (41%). Analysing the data at a country level, we see developers in Indonesia are more diverse learners. Developers in this country stated that they used three methods on average when learning to code. Indonesian developers are more likely to learn via self-teaching, online courses, and developer boot camps than any other developers in East Asia. This is quite different from their peers in Japan who are the least likely to use online courses and bootcamps to learn how to code. Instead, developers in Japan are most likely to use the self-taught (63%) and on-the-job training (45%) methods when learning to code.

“Less Stack Overflow, more Segmentfault.com and Teratail.com

Next, we explore how developers interact with the popular online community, Stack Overflow, to understand their engagement levels with programming support. Stack Overflow has become a standard support community for many developers, with more than eight in ten (85%) of the general developer population reporting they’ve used or visited this popular question and answer site.

Our focus on developers in East Asia and the Greater China area shows Stack Overflow’s popularity falls below the global average. Developers in these regions are around three times less likely to visit Stack Overflow than developers in other regions. Developers in the Greater China area are the least engaged, with only 19% having an account, and only 11% having earned at least one badge. Developers in this region have other home-grown Q&A site alternatives, such as segmentfault.com, which could be contributing to the lower adoption of Stack Overflow.
Developers in Japan are skewing the perception of this region. Developers in Japan have even less activity on Stack Overflow than developers in the Greater China area. Here, only a little more than a third (36%) stated they use Stack Overflow. Furthermore, only about 5% have an account. Like developers in the Greater China area, our data does show usage of Stack Overflow increases among Japanese developers who have gained experience in software development, indicating that less experienced developers are using other platforms for support. Like China, Japan has other home-grown options like teratail.com where developers can field programming support from their peers, which may be the place new Japanese programmers visit more often to get answers to their questions.

Categories
Community

Developer Nation Community, turning the page to a new chapter [New job opportunities included]

The Developer Nation Community is definitely not new. It goes back to a long time ago, when communities were not as much in the spotlight as they are today. Our mission has always been to keep its ears open to the voices of software creators and share back data and insights from our global surveys.

Over the years, we have worked on several initiatives to grow and engage our community and – no complaints – we have managed to win the hearts of thousands of software creators around the world.

This is why we are now very excited to be taking the Developer Nation Community to its next level.  And let us give you a quick tour of what we are working on currently. 

A value proposition that is closer to what software creators expect from us. 

We have always championed the importance of being data-driven when making decisions. And this is even more crucial when decisions are tied to one’s professional career and growth. To that effect, we have shaped our mission accordingly. Thus, we will focus on helping developers be their best and we will do that by helping them answer burning questions such as :

What software developer careers are out there? 

Which ones have the most demand? 

What skills or formal training should I acquire? 

How can I become more productive and efficient?

We are aiming to create a space where software creators can set the right foundations for their career,  learn how they stack up against emerging software development trends,  get tips and discover opportunities for professional growth as well as plan wisely their next moves.

Investing on people

To be able to support our community members and keep true to our mission we have decided to invest in a new Community Team and this is why we are currently recruiting for two roles. We are hoping that by bringing in more people we will be able to build on the value we can bring to our community while focusing on having an even more personalised relationship with them.  We would love it if these roles were to be filled by existing community members, so if you take a look at the job descriptions and you feel you are up for a new challenge, we would like to meet with you.

On the people front, we are also very excited to announce that Vanessa, our current Developer Advocate, will take up a new challenge as our Developer Success Executive. She will continue to listen to developer feedback, and work with the Developer Committee, and her mission will be to focus on prizes and benefits for software creators in our community.

Community Lead

As our first Community Lead you will have a significant impact on designing and executing the Developer Nation Community strategy – one of SlashData’s strategic priorities. You will grow, engage and motivate a global community of software engineers focusing on providing them with resources that will help them grow in their career journey and plan their next move.

We are looking for an avid communicator who loves engaging with developers, has excellent organisational skills, and has a solid tech background. They should have at least 1-2 years of experience in community building, growing, and/or engaging roles and will be very fluent in English – both written and spoken.

Apply here

Developer Advocate

As the Developer Advocate you will be a key part of the future of this global community of developers coming together to learn from each-other, share experiences, creating content with the aim to help developers grow in their careers, foster relationships between senior developer mentors and mentees, and connect developers globally with major technology platforms.

You will engage and motivate a global community of software engineers making sure to constantly provide them with content in various formats as well as engage in conversations to help them grow in their career journey and plan their next move.

Apply here 

  • A community-led approach

The next chapter of the Developer Nation community will come with a wide range of initiatives. Would you like to be among the first to get involved?

  • Content contribution

We are open to all types of formats (podcasts, blogs, videos, webinars, Twitter space discussions etc) as long as the topics resonate with our mission and comply with our values.

  • Events and meetups

We will soon go into the space of organising events for the Developer Nation community. If you have any ideas or would want to be part of them, please reach out and we can brainstorm together!

  • Mentorship

Are you in need of a mentor or perhaps you are a particularly skilled mentor? Or do you just want to help? In any case, this is a great opportunity to be part of a grassroots initiative where the community is actively engaged in peer support. 

For all of the above and also for anything else you wish to share with us please drop us a line at community[at] developernation.net

Categories
Tips

Git Internals Part 1- List of basic Concepts That Power your .git Directory

Git is the most popular and commonly used open-source version control system in the modern-day. However, we barely focus on the basic concepts that are the building blocks of this system. 

In this article, we will learn about the basic concepts that power your .git directory.

The .git directory

Whenever we initialize a git repository, a .git directory gets created in the project’s root. This is the place where Git stores all its information. Digging a bit deeper you can see the directory structure as below:

$ ls -C .git
COMMIT_EDITMSG  MERGE_RR    config      hooks       info        objects     rr-cache
HEAD        ORIG_HEAD   description index       logs        refs

The detailed structure looks like the following:
.
|-- COMMIT_EDITMSG
|-- FETCH_HEAD
|-- HEAD
|-- ORIG_HEAD
|-- branches
|-- config
|-- description
|-- hooks
|   |-- applypatch-msg
|   |-- commit-msg
|   |-- post-commit
|   |-- post-receive
|   |-- post-update
|   |-- pre-applypatch
|   |-- pre-commit
|   |-- pre-rebase
|   |-- prepare-commit-msg
|   `-- update
|-- index
|-- info
|   `-- exclude
|-- logs
|   |-- HEAD
|   `-- refs
|-- objects
`-- refs
    |-- heads
    |-- remotes
    |-- stash
    `-- tags

Directories inside the .git directory

The .git directory consists of the following directories:

hooks:
This directory contains scripts that are executed at certain times when working with Git, such as after a commit or before a rebase.

info:
You can use this file to ignore files for this project, however, it’s not versioned like a .gitignore file would be.

logs:
Contains the history of different branches. It is most commonly used with the git reflog command.

objects:
Git’s internal warehouse of blobs, all indexed by SHAs. You can see them as following:

$ ls -C .git/objects
09  24  28  45  59  6a  77  80  8c  97  af  c4  e7  info
11  27  43  56  69  6b  78  84  91  9c  b5  e4  fa  pack

These directory names are the first two letters of the SHA1 hash of the objects stored in git.

You can enquire a little further as following:

$ ls -C .git/objects/09
6b74c56bfc6b40e754fc0725b8c70b2038b91e  9fb6f9d3a104feb32fcac22354c4d0e8a182c1

These 38 character strings are the names of the files that contain objects stored in git. They are compressed and encrypted, so it’s impossible to view their contents directly. 

rebase-apply: 

The workbench for git rebase. It contains all the information related to the changes that have to be rebased.

refs:

The master copy of all refs that live in your repository, be they for stashes, tags, remote-tracking branches, or local branches. 

You can see the existing refs in your .git directory as below:

$ ls .git/refs
heads
tags
$ ls .git/refs/heads
master
$ ls .git/refs/tags
v1
v1-beta
$ cat .git/refs/tags/v1
fa3c1411aa09441695a9e645d4371e8d749da1dc

Now, having discussed the directories inside the .git directory, let’s explore the files that reside inside the .git directory and their uses.

Files in the .git directory

  1. COMMIT_EDITMSG:

This file contains the commit message of a commit in progress or the last commit. Any commit message provided by the user (e.g., in an editor session) will be available in this file. 

If the git commit exits due to an error before generating a commit, it will be overwritten by the next invocation of git commit.

It’s there for your reference once you have made the commit and is not actually used by Git.

2. config:

This configuration file contains the settings for this repository. Project-specific configuration variables can be dumped in here including aliases. 

$ cat .git/config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[user]
    name = Pragati Verma
    email = pragati.verma@gmail.com

This file is mostly used to define where the remote repository lives and some core settings, such as if your repository is bare or not.

3. description:

This description will appear when you see your repository or the list of all versioned repositories available while using Git web interfaces like gitweb or instaweb.

4. FETCH_HEAD:

FETCH_HEAD is a temporary ref that keeps track of what has recently been fetched from a remote repository. 

In most circumstances, git fetch is used first, which fetches a branch from the remote; FETCH_HEAD points to the branch’s tip (it stores the SHA1 of the commit, just as branches do). After that, git merge is used to merge FETCH_HEAD into the current branch.

5. HEAD:

HEAD is a symbolic reference pointing to wherever you are in your commit history. It’s the current ref that you’re looking at. 

HEAD can point to a commit, however, typically it points to a branch reference. It is attached to that branch, and when you do certain things (e.g., commit or reset), the attached branch will move along with HEAD. In most cases, it’s probably refs/heads/master. You can check it as follows:

$ cat .git/HEAD
ref: refs/heads/master

6. ORIG_HEAD:

When doing a merge, this is the SHA of the branch you’re merging into.

7. MERGE_HEAD:

When doing a merge, this is the SHA of the branch you’re merging from.

8. MERGE_MODE:

Used to communicate constraints that were originally given to git merge to git commit when merge conflicts and a separate git commit is needed to conclude it.

9. MERGE_MSG:

Enumerates conflicts that happen during your current merge.

10. index:

Git index refers to the “staging area” between the files you have on your filesystem and your commit history with meta-data such as timestamps, file names, and also SHAs of the files that are already wrapped up by Git. 

The files in your working directory are hashed and stored as objects in the index when you execute git add, making them “staged changes.”

11. packed-refs:

It solves the storage and performance issues by keeping the refs in a single file. When a ref is missing from the /refs directory hierarchy, it is searched for in this file and used if it is found.

Conclusion

In this article, we covered a brief overview of the basic concepts that make up your git directory. These are the fundamental components of Git as we know it today and use on a regular basis. We’ll be learning more about these Git internal concepts in the upcoming articles.

Keep reading. In case you want to connect with me, follow the links below:

LinkedIn | GitHub | Twitter | Dev

Bio 

Pragati Verma is a software developer and open-source enthusiast. She has also been an active writer on various platforms and has written for many organizations as a freelance writer. As a Junior Editor at Hackernoon, Pragati helps numerous writers every day to publish their content on Hackernoon.

In her spare time, Pragati loves to read books or watch movies.

Categories
Community

Developer Prize Winners

It’s time to announce the developer prize winners of our 22nd Developer Nation survey!

If you’re new to our prize draws: developers who take our surveys earn 100 points for every new survey completed, plus 10 points for providing their feedback about the survey. Benefits and rewards can be found here.

?General Prize Winners

$1,000 towards the desktop of your choice

$1,000 towards the desktop of your choice

Achmad Ka’bi. Indonesia

Suprise Draw! iPhone 13

Surprise Draw! iPhone 13

Mikhail P., Kazakhstan

$250 towards the desktop of your choice

$250 towards the desktop of your choice

Kevin, Nigeria

$500 towards your AWS certification

$50 towards your AWS certification

Vikas S., India

Nintendo Switch

Nintendo Switch

h*******.4**@g****.c**, India

$120 towards the tools license of your choice

$120 towards the tools license of your choice

Aaron K. South Africa

s***********@g****.c**, India

$100 gift card

$100 gift card

4*******@q*.c**, China

VIVO Black Height Adjustable 32 inch Standing Desk Converter

VIVO black height adjustable 32 inch standing desk converter

Илья, Russia

Blockchain Academy Course

d**********************@g****.c**, Venezuela

SitePoint Premium Licenses

SitePoint Premium license

Abdulazeez, Nigeria

s***********@h******.c**, Turkey

Joel. Jamaica

Marvellous, Nigeria

YuHang Zhang, China

$30 Gumroad ebooks

$30 Gumroad ebooks

Luis, Mexico

Jessa, Philippines

p.l*********@g****.c**, India

r*******@y****.c**, Russia

?Weekly Prize Winners

$500 Linode Vouchers

Gokul, India
g********@n****.c**, South Korea

$50 Winners

$50 gift cards

Akash, India
Akhilesh, India
Andresjs, Latvia
Carl , USA

d**********@g****.c**, India
Dhvani, India
Dmitriy, Russia
E., Bosnia & Herzegovina

Ken, Cameroo
Konstantin, Russia
m*****.b*******@g****.c**, Lebanon
Michael, Indonesia
o*******@g****.c**, Burkino Faso

Puspam, India
Raj, India
Ryne, USA
S., India

Sai, India
Surendra, India
t**************@g****.c**, South Africa
teawr9@mi.o, USA
V., India

V., USA
w.k@g.c, India
w@z.c**, Indonesia
H., Turkey

?State of AR/VR Survey Prize Draw

$500 towards your AR/VR project

$500 towards your AR/VR development project

j***.b*@g****.c**, Slovakia

$120 towards the tools license of your choice

$120 towards the developer tools license of your choice

m*****@m**.c**, USA

$100 gift card

$100 gift card

Patricia, UK
Eisenbruch, USA

$30 Gumroad ebook

$30 Gumroad ebook

JD, USA
a*************@g****.c**, India
h**********@g****.c**, USA
j**********@h******.c**, UK

$20 gift card

$20 gift card

p****.n****.2***@f*.u**.a*.i*, Indonesia
s*********@g****.c**, USA
F., Slovenia

?Exclusive Community Draws

Premium Prizes (for members with 801+ points)

iPhone 13

iPhone 13

Victor, Mexico

Samsung Galaxy Tab S7

Samsung Galaxy Tab S7

Massimo F., Italy

$50 Udemy / Gumroad ebook

$50 Udemy / Gumroad ebook

A, India
Adrian, Germany
Alex, Israel
Ashley, UK
Brian, USA
Damian, Hungary
Ivan D, Brazil
Jon, USA
Kirill, Russia
Mario, South Africa
Roberto, Spain
S., UK
Yohanes, South Africa

Swag

Surprise swag

Abdul H., Indonesia
Adam R., Sweden
Andy D.,Australia
Ankit, India

Antti K., Finland
C., Taiwan
C., USA
Cristian, Colombia

David F., Japan
Dominic, UK
E., Cyprus
Elijah, Uganda

G, Italy
Gideon, UK
James, Uganda
Karl F., Germany

Liliana I., Mexico
Lucas H., Argentina
Marc S., Germany
Mika L., Finland

Miroslav C., Slovakia
Niraj K., India
Patrica M., USA
Petermaria, Switzerland

R., Malaysia
R., UK
Shadi, Egypt
Shinzo S., Japan

Shubham, India
Steve H., UK
T., UK
Thassilo H., Germany

V., USA
Vince M., USA
z@g*.c, Russia

✨Extra Prize Draw winners

Skillshare subscription (3 months)

P., Russia

Amazon Echo 4th Generation

p****************@g****.c**
Bruna S., Brazil
Anubhav, India

Apple Air Tag

h***************@g****.c**, Vietnam
n**************@g****.c** India

Smart Plug

M., USA
d*********@1**.c**, China
Dustin, USA
l******@o******.c**, China

Tick Tick Premium License

m***************@g****.c**, Indonesia
d*********@1**.c**, China
Dustin, USA
l******@o******.c**, China

Ergonomic mouse pad and wrist rest

Basudev D., India

“Ten++ Ways to Make Money as a Developer” eBook

n*****@n********.n**.i*, Israel
Olusegun, Nigeria

$20 gift card

Jayanth, India
l************@s***.c**, China
Gabriel, Brazil
d*******@g****.c**, Nigeria
A., India
Reski, Indonesia
n*******@g****.c**, India
T., Turkey
M., Italy

$10 gift card

Andrew, USA
a*************@g****.c**, India
John, USA
l***********@g****.c**, Russia

We’ve reached out to winners directly by email. If you recognise your email address but believe you haven’t been contacted yet, you can contact us here.

Special thanks to our prize sponsors CertNexus, Florin Pop, Linode, and SitePoint for donating prizes to the survey! Also thanks to our goody bag sponsors Convox, Kentico, Manning Publications, The Blockchain Academy, and TinyMCE. Are you a company interested in giving away a prize to developers in our next survey? Get in touch!

We’re already on the hunt for prizes for our next global survey, so if you’re not a winner this time, there are more chances to win in our future surveys.

To ensure that you are notified when our next survey is live, sign up. Don’t forget to make sure the survey notification option is ticked.

Categories
Interviews

Meet the developer: Derick Alangi

As part of our Meet the Developer series, I spoke to Cameroon-based Derick Alangi who has turned his health challenges into an opportunity to help support fellow devs in the community. Read on to find out more about him and the positive impact he hopes to have on developers. 

Vanessa: Have you always wanted to be a developer?

Derick: No this came about just before I got to university. I was in high school, when I was young I wanted to be a priest, that dream died somewhere when I started tinkering with computers.

I still had the mindset of a priest but had a newfound passion for playing with computers, playing with video games, thinking, how can I create something like this? I wanted to do something like that, it spiked my curiosity. I then finally found myself as a dev, but that’s gradually fading away, maybe I will circle back to being a priest someday!

As a dev, I’ve had health challenges, which took me to the hospital. In childhood I had anorexia, my parents thought I  was sick but didn’t worry much as my doctor mentioned that it was a condition that could be resolved with time and as I grew. Now I eat well but not as much as other men do, but I eat regularly morning and evening. Try to be healthy, when my health challenge as an adult came in, leading my life as a dev, I was not taking care of myself, there were bad habits, and, if I had continued I wouldn’t be alive today. I have a whole new view of life, if I am doing this thing, others must be doing it too, especially those working remotely. Money is great, but if you have to lose yourself, it is not a good thing, there is beauty in life when you can enjoy the life in you with good health.

I tweet about health things, what devs can do to not get into the same scenario. I am sharing a community resource for the community, and in that resource, I explain how I got into my bad health, and how I got back to health. (You can view his Developers Health Guide here..)

Vanessa: What has been your biggest learning curve as a programmer?

Derick: Biggest challenge?

It’s my health, in the past it was my health, battling day in and day out, I couldn’t figure out what was wrong with me, the diagnosis was fine, everything is ok, you look sick, you can’t sleep after a while, but it was the lifestyle that was causing the stress and burnout. 

Another challenge is trying to make people see, especially developers, there is more to making money and writing programs than being a developer. I have seen software devs being exploited for their time.  I have worked for companies that have behaved very badly. We should work, but human beings should have time for his or her things, take care of the family, go to the beach, connect with nature, when there is that balance there is beauty in life. 

What I am seeing in the industry, people are being given more roles and responsibilities, paying well, but there is no time to do anything else. Hey, go spend some time doing something else!

With the adoption of remote work, people have time for themselves. I’m helping people discover that balance. I’m not just on Twitter, even locally I tell upcoming devs, “take at your own race, be consistent it will pay off, don’t forget the health aspect of life, or you will be miserable”, I’m battling that right now locally, the mindset in the West is slightly different than Africa, I’m making people understand the balance.

The big guys in the industry think it’s all about the money and building software, but the moment I go to the hospital I cannot code or make software. People don’t understand that going into a forest is more important than eating cookies. 

It’s hard when you are trying to break through a society that is not willing to listen. Being able to break through you have persevered for a long time, it’s a huge work, it’s something that is very much needed.

There is an Indian philosopher that has said – in tech we have come very far, in psychology we are very primitive.

Vanessa: What is your favourite non-tech hobby?

Derick: Meditation, I just sit with my eyes closed. It takes a while when you first get started, it takes consistent practice, it’s been three years now, I don’t have any specific mantras, just sit quietly in a dark room with my eyes closed. Regularly maybe morning and evenings, after six months there is no thought, a quiet mind.

Vanessa: What do you enjoy more: writing new code or debugging old code?

Derick: I think I enjoy working on existing code, the reason is that a lot of things have already been created, nothing is really new, it’s just recycling of energies, code is mental energy transferred to computing. There are so many different solutions to solve the same problem. Make existing code work better. I would rather spend and enjoy my time improving existing code, except if really broken code doesn’t pay off.

Vanessa: How do you benchmark yourself against other devs? 

Derick: To be very honest with you, this is something I usually don’t do, I do, I don’t compare myself to anybody anywhere, I think I was doing this in university to track my progress as to how far I’ve gone but when I graduated I realised doing that for me it creates an aspect of competition that I don’t like. I don’t like to strive for competition. If I’ve tried to compete, it’s not what I like to do.

I forget the aspect of me and what I want to become, for a while now, I don’t benchmark, I just code and kind of see it from the problems I solve. Go to an algorithms website, see some problems, if I can solve them relatively easy than before then I am getting better. I’m not trying to compare myself in the programming community. It’s not good to compare years of experience to others.

Vanessa: What is the one thing you hate about programming?

Derick: The fact that it is mentally very demanding and makes the programmers physically inactive, Mentally your thinking capacity is 100%, physically is zero, only your eyes and hands working. IT renders the programmers physically inactive. The outer body was not designed to be inactive. In the tweets I make, nobody takes it seriously, mental energy goes into solving issues and not taking care of mental wellbeing.

Vanessa: What do you love most about being a developer?

Derick: I think two main things

  1. Trying to solve the world’s problems with tech, economic, social problems, mathematical problems that can be solved with problems, assist humanity to solve issues.
  2. How to use the same technology from a standpoint of a developer, to make human beings more conscious of being. A lot of us think we are living, but we are not, it’s not a good thing, all our living is just mental, there is the whole aspect of consciousness, but putting into practice is hard as most of the time we think we are living but no we’re experiencing. Not sure how as a dev I will do this but looking forward to doing it. Being as a living.

Vanessa: What developer groups/communities are you a part of?

Derick: I’m part of an online tech community on Twitter, and a member of the Wikimedia movement community, a community of editors, readers, and devs that want to make knowledge accessible in different languages around the world. 

Closer to home, I’m part of a Google Developer Group community in Buea, working with devs locally to push google’s agenda, adopting their products and programs.

I’m also part of a Facebook developer circle with VR kits to play around with.

Early programmers club, we go into universities and code with students, solve problems with them, get them to understand engineering principles. 

Vanessa: What does community mean to you?

Derick: A group of people with diverse thinking but with a common end goal in mind.

Bloggers entrepreneurs, content creators, designers, spirituality – create a community that is tech-driven, to enhance the economy in the country. People that come together with different perspectives, and skillsets, but with a common goal to achieve economic growth, global breakthroughs, the bigger vision is the same. Learning from one another. 

Vanessa: Have you ever been involved in mentorship, either as a mentor or a mentoree?

Derick: Yes, people call me a mentor but really I am just a student that knows things that others don’t and they are learning from me and I’m learning from them. It’s just a name for convenience. I’m a long-life student, still see myself learning every day from kindergartens, students, even the animals. It’s not true that you need to learn from high academics.

Vanessa: Do you use GitHub?

Derick: Yes, I use GitHub, GitLab, Git itself, Bitbucket not sure if open source, use version control systems to collaborate with others online. 

Vanessa: Are there any particular repositories that stand out to you?

Derick: Yes, I would say that there are three people that I really admire, although it doesn’t mean that I want to be like them. One of them, Linus Torvalds, is doing a lot of work, sometimes I just like to see what he’s doing with others in the Linux community. Coming from a Linux background it gives me a sign of hope that something can be done by someone who can impact humanity.

Taylor Otwell JavaScript, MVC frameworks in PHP and web APIs, command-line apps, like to see his work, I align with as I use the framework too. Also, check out his conference talks, it’s inspiring what he’s doing with the community

Sebastian Bergmann, creator of PHPUnit, he’s doing a lot of work on GitHub, collaborating with the community, and doesn’t waste his energy on things that don’t matter, he doesn’t respond to those that are messing around.

There are so many others of whom I check their projects on GitHub and admire for what they do.

Vanessa: Do you have any best practices or tips that you would recommend to others?

Derick: Having a good background in using the Linux command line, most of the tools, except for GitHub and GitLab, are web-based services that Git does, technically if someone wants to learn those platforms they would have to be familiar with the Linux environment, to push code from the local machine to GitLab. They need to be familiar with Linux command line functions which are needed to get the code online, anyone who is familiar with Linux can easily pick up these and learn quickly.

People who face trouble, don’t have experience with the Linux environment. Eventually, they will pick up GitHub etc with relative ease.

Vanessa: What project are you most proud of?

Derick: I’m proud of so many, small, medium, and large projects, generally, I try not to do something that I don’t enjoy., if I like to do it, it becomes a success, I will meet challenges.

There are also some non-tech projects I want to do. I would like to plant tomatoes and I have a small garden, till the garden, use manure, planting to get some results, or maybe make a property purchase. 

Vanessa: What are some of your favourite blogs to visit?

Derick: There are three, Dev.to, Hashnode- I’m a big-time reader on there, and Reddit, which is obviously not a blog but accurate, like StackOverflow for questions and replies. I also enjoy reading from Quora. 

Vanessa: What kind of media websites do you visit for dev news?

Derick: Twitter. I follow people and organisations, turn on notifications, if there is something new, I grab the info and read more about it. Anything that is happening, I check it out on Twitter, I don’t watch TV, I follow the BBC and CNN on Twitter.

Vanessa: Where do you look for job opportunities?

Derick: Indeed.com and StackOverflow Jobs. Sometimes I look at LinkedIn, just use that for putting in my qualifications, if I want to check out jobs to recommend for people, I check out the two I mentioned.

Vanessa: What’s in your toolbox?

Derick: Linux or Mac OS

Editors IDEs – I write a lot of JavaScript

For the command line, I use Git,

Asana for project management

Fabricator for box working 

AWS a lot, doing work for my client on that. 

Lua

JavaScript

Python

PHP

IDEA

PyCharm

PHPStorm

WebStorm

Git

Github

Gerrit

Vanessa: What technology are you interested in learning more about in 2022?

Derick: Rust, I’ve started learning, and I want to get better at it. 

Vanessa: What tools do you think will still be in use in ten years’ time?

Derick: Internet will be here for a long time, computers for a while,  

C will be here for a long time

Rust that’s why I am learning it, low level, advancement of systems and fast-growing need of secure systems,

Security skills – I will spend some time learning,


Derick shares many tips via his Twitter account or you can connect with him via LinkedIn.

Categories
Tips

Developers influence technology decisions 

I once had the opportunity to work for a large digital company that was preparing to modernise its infrastructure by choosing a new cloud platform vendor. A small team of six developers was tasked with organising a proof-of-concept (POC) to demonstrate the feasibility of this endeavour. After six weeks of intensive work, some developers began expressing their dissatisfaction with the new platform’s cumbersome interface. Suddenly, a multimillion-dollar commitment hung in the balance, relying on the opinions of a few hands-on experts.

Over a span of three years, ending in Q1 2021, we conducted six surveys to track developers’ engagement with and adoption of various technologies. To assess engagement and adoption, we asked developers if they were working on, learning about, interested in, or uninterested in different emerging technologies. We continuously updated the list as new innovations emerged. Adoption was measured by the proportion of engaged developers actively working on a technology. To provide context, each technology was categorized based on whether its engagement and adoption rates were above or below the median, resulting in four quadrants:

1. High engagement/High adoption: These technologies captivate the imagination of numerous developers and have demonstrated commercial success.

2. High engagement/Low adoption: These technologies generate significant interest among developers but have yet to make a substantial commercial impact.

3. Low engagement/Low adoption: These fringe technologies do not attract much interest from developers, and their commercial value is yet to be proven.

4. Low engagement/High adoption: These technologies might not appeal to many developers, but for those interested, commercial adoption is high.

In our analysis, after excluding DevOps from our emerging technology tracker, robotics, mini apps (apps embedded within another app), and computer vision emerged as the most engaging technologies for developers. Approximately half of the developers expressed that they were working on, learning about, or interested in each of these technologies. While professional developers showed the highest adoption rate for mini apps, robotics piqued the interest of hobbyists and students. However, of the developers engaged with mini apps, nearly a quarter were actively working on the technology, whereas for computer vision, this figure dropped to 15%, and for robotics, it was only 10%. Despite similar levels of engagement, mini apps’ practical applications were widely recognized by developers, as adoption increased by four percentage points over the past year, representing one of the largest increases observed.

64% of developer team leads are influencing decision makers or making recommendations

Developers influence technology decisions

Cryptocurrencies garnered the highest engagement among developers, with almost three in ten engaged developers expressing interest in learning about them. Other blockchain applications closely followed at 26%. However, the academic interest in these technologies has yet to directly translate into adoption, as only 14% and 12% of engaged developers are actively working on projects involving cryptocurrencies and other blockchain applications, respectively. 

More than 40% of these developers are professionally involved in web apps/Software as a Service (SaaS), and a third are engaged in mobile development. Nevertheless, adoption increased for both cryptocurrencies (by 5 percentage points) and other blockchain applications (by 4 percentage points) in the past year, indicating ongoing exploration of practical applications. As demonstrated by companies like Maersk incorporating blockchain technology into their logistics management systems in recent years, broader adoption is inevitable.

Quantum computing and self-driving cars continue to have limited adoption rates but capture the imagination of some developers, with over two in five engaged with these technologies. However, fewer than one in ten of these engaged developers are actively working on each of these technologies. Although engagement decreased over the past year, adoption increased for both quantum computing (by 4 percentage points) and self-driving cars (by 2 percentage points). A similar pattern emerged with brain/body computer interfaces, anew technology added in the most recent survey, where many developers expressed engagement, but due to its cutting-edge nature, very few are actively working on it.

Recently, we added hearables, DNA computing/storage, and haptic feedback to our list of emerging technologies. Engagement with these technologies remains low, similar to fog/edge computing, with a quarter to a third of developers showing interest. Among the engaged developers, approximately one in ten are actively working on these nascent technologies, while two in ten are learning about them. 

For each of the discussed emerging technologies, there are various barriers preventing widespread adoption. Technological hurdles are prominent, as advances required for mainstream implementation of quantum or DNA computing are still several years away. Additionally, social, cultural, and even legislative barriers can impede progress. While developers play a crucial role, they are only one piece of the puzzle.

Categories
Analysis

Why do developers switch jobs?

During the 21st edition of our Developer Nation survey we asked professional developers what – if anything – would make them switch jobs. It turns out many developers know their worth. Just one in ten developers say that nothing would make them leave their current employer. You can also share your input and participate in our more recent survey to answer this and other interesting questions.

It looks like the majority of developers are financially motivated, either in the form of higher compensation and/or an improved benefits package. Half of developers would switch employers for higher compensation and a third would switch jobs for an improved benefits package. Nearly two-thirds selected either option. 

However, this means that just over a third of developers have motivations that extend beyond immediate financial reward. When we remove the two-thirds of developers who said that increased compensation or better benefits would incentivise them to move, career advancement and broadening skills take the top two spots. This shows that developers are hungry to learn and to progress – these are also important factors for developers who could be tempted by financial rewards. 

Money talks for half of developers

Around one in five developers state that a better company culture would be a tempting reason to switch employers. However, while you could negotiate better incentives and more perks and benefits, company culture is harder to influence. There are well documented issues with culture in software development. There have been several high profile cases of discriminatory working environments in the last few years, and many software developers are no strangers to long hours, especially as a project nears completion. 

Remote working 

Software development has historically been a pioneering industry for remote working. The pandemic has likely made this especially salient. Not surprisingly, around a quarter could be tempted to move by a remote position. Just over one in eight would move in order to relocate. 

Eastern European developers are the most concerned with compensation

Are you perhaps based in Eastern Europe? Developers there are the most concerned with increasing their salary. Nearly seven in ten say that this would make them switch employers. The close geographical proximity to richer Western European countries likely makes depressed salaries in this region feel particularly unfair. For these underpaid developers in Eastern Europe, an upgraded benefits package won’t cut the mustard; instead other factors are more important:

  • broadening skills (50%), 
  • taking a more challenging role (32%), or
  • relocation (22%). 

It seems that Eastern European developers are taking a longer-term look at their finances and possibly considering uprooting their lives for an increased chance of success.

Developers in North America seem the happiest at their current jobs

14% of devs in N.America said that nothing would make them switch. As with most regions, higher compensation is the most tempting option; half of developers here selected this. These developers are much less likely than average to select career advancement, broadening skills, or taking on a more challenging role as reasons for moving. By and large, North American developers appear to be satisfied with their professional lives. For those who would be tempted to move, higher compensation is mentioned as a reason by three in five. 

Culture also matters in China

For Chinese developers, compensation is also important. Three in five developers here selected this option, the second-highest of any region. In comparison with their Eastern European counterparts, however, Chinese developers were almost twice as likely to say that a better benefits package would tempt them to move. This said, although financial motivations are important for developers in Greater China, they are some of the most likely to select ‘softer’ benefits such as better company culture, working environments, or shorter commutes. Reports of the Chinese government taking steps to reduce the ‘996’ working culture prevalent in many tech organisations in the country may well make these factors less of an issue in the future.

Developers in Greater China are less likely to say that remote or flexible working would tempt them to switch employers. Such flexibility is more highly valued by developers in Eastern Europe or North America. It’s likely that the pandemic’s effect on working culture has affected different regions in different ways. For instance, developers in North America may well be used to working from home after more than a year of doing so, and with Eastern Europe already an established outsourcing destination, remote work is more likely to be salient for developers here. On the other hand, developers in regions that may have limited opportunities to offer are more likely to see remote working as a door opener to the global labour market. More than one in three developers in the Middle East and Africa and 30% of developers in South America, for example, would switch jobs for a remote role.

Eastern European developers feel underpaid

Experienced developers are the most content in their jobs 

Around one in six of those with 16 or more years of experience say that nothing would make them move. This group is also the most financially-motivated, with over half saying that higher compensation may tempt them to move. As developers gain experience, they know better which roles they want to take. With managerial positions often forming an artificial ceiling, some experienced developers will want to stay closer to the code. 

Here is something important to consider: Career advancement and taking on a more challenging role both peak for developers with three to five years under their belts. A well-timed change at this point in a developer’s career can have a large impact on their future earnings and professional success. At three to five years of experience, many developers are beginning to feel established and comfortable in their skills, so a challenging opportunity can often provide a catalyst for future success.    

There are many reasons why a developer may choose to switch jobs, and whilst it’s impossible to ignore the impact of compensation, other factors play an important role, especially as the role of work in our lives continues to evolve. We are capturing these and other interesting facts that make tech giants shift their strategies in our Developer Nation Surveys. Raise your voice and shape the future.

Compensation becomes more important as developers gain experience
Categories
Community

First Prize Winners of the 22nd Developer Nation Survey

We’ve been busy running our prize draws since the launch of our 22nd survey in December.

Some of the prizes have already reached their destinations:

“It was my first time winning a prize on the Developer Nation, and I received it before Christmas so it feels like a Christmas gift from someone special” – Akash, India.

“I just want to thank you, hopefully it can be used to support our lesson plans to develop applications for small entrepreneurs.”Michael, Indonesia

Here is the full list of the Developer Nation prize winners from weeks 1 to 4, including runner-ups. ?

Prize draw winner

Thanks to our friends at Linode for their generous gift of the $500 credit. We’ll continue to run weekly prize draws between now and the end of January 2022. Once our survey closes, within 30 days we’ll run the draws for premium prizes, cool accessories, exclusive community prizes, and more.

We’ve reached out to all winners directly via email. If you recognise your email address but believe you haven’t been contacted yet, get in touch here.

If you’ve not taken the survey yet, why not hop in for a chance to win a prize (all participants will get a virtual goody bag).

Take the survey!

Here’s one of our community members, Amulya, with his Developer Nation t-shirt and mug. Swag like this could be yours!