Developers are a hot commodity on the tech job market right now, with far more open positions than qualified job candidates. Front-end developers, full stack developers, mobile developers, and back-end developers in particular are among the top 10 hardest to fill tech jobs, according to data from Indeed.

This market demand means that developers may have more leverage than other positions when it comes to negotiating salary and benefits.

“The landscape is pretty phenomenal,” said Sean Bave, general manager of Stack Overflow Talent, a tool that connects developers and employers. “You see very low unemployment for developers. It’s a ‘software’s eating the world’ kind of concept, which comes with needing developers to make sure your company is growing.”

SEE: IT Hiring Kit: Programmer (Tech Pro Research)

Here are five tips for developers to negotiate the highest possible salary package during an interview or after the job offer.

1. Know the market, and how you fit in

Understanding the market can help you negotiate pay during an interview, said Blake Angove, director of technology recruiting services at national recruiting firm LaSalle Network. Talk to other developers with similar skillsets, and find out how much money they make. You can also consult salary estimator tools, like those from Stack Overflow or Glassdoor. Use that research if the company approaches you with a lower salary, Angove said.

It’s also okay to let the employer know that you have other interviews or offers elsewhere if they ask, Angove said.

Knowing your market rate will help get a potential new job relationship off on a better foot, Bave said. “Understand what’s reasonable to ask for,” he added. “At the end of the day, you’re not negotiating for a car–you want to have a good relationship with a potential future employer.”

2. State salary expectations early in the process

State salary expectations early on in the process, whether it’s to HR, a recruiter or manager. Be clear what you’re targeting so there aren’t any surprises or low ball offers at the offer stage. However, don’t change that number. It will leave a bad taste in the company’s mouth if you state a salary at the beginning, and drastically change it at the end of the interview process. The employer will think you’re solely money motivated and not care about the company.

SEE: Job description: Java developer (Tech Pro Research)

3. Learn about the competition

If possible, find out how many people are interviewing for the role, Angove said. “If there are quite a few people, then your chances of a successful negotiation are more slim as opposed to if you were the only one, or against one to two people,” he added. “If you have a niche skillset, you have more leverage to drive up the salary.”

4. Show your ROI

Developers are in a better position to negotiate when they can show the ROI on applications they have built in previous roles, and how they either drove revenue for the company or helped save it money, Angove said.

5. Keep your skills up to date

To be offered a competitive salary, you have to keep your skillset competitive, too.

“The name of the game in today’s job market is data, sensors, and API development, which can integrate it all,” said Karen Panetta, IEEE fellow and dean of graduate engineering at Tufts University. “Proficiency in programming languages has always been a valuable skill and will always require constant retooling to remain current with the programming languages in vogue–this includes Python and Java. What will make an individual developer stand out is their command of data science and proficiency at visualizing the data analytics.”

SEE: Job description: iOS developer (Tech Pro Research)

Machine learning and artificial intelligence (AI) skills are also key for many developers to hone, Panetta said.

6. Know what you want

Developers should go into an interview or a salary negotiation with a solid sense of what they are looking for, beyond standard vacation time and healthcare packages, said Bave. For example, a Stack Overflow developer survey found that when it comes to assessing potential jobs, the top priorities for developers are compensation and benefits, the technologies and languages they would be working with, and opportunities for professional development, above factors like company culture and work from home options.

You should think about what you want from a potential workplace, and factor in salary with other perks, Bave said.