I am in my 5th year as a developer (3.5 years as junior/mid level and now a senior dev).

My current role is not going well (people issues). Anyway, I said to one of the managers I was thinking of looking for another job and he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

How do I know if he is right?

Unfortunately, I agree with him. I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use? I am regularly studying (2 - 3 hours per day) on PluralSight and by making my own projects, but I feel like a complete beginner in most aspects of software.

Update - November 2020.I have been working as a full-stack developer for almost 2 years now, have dramatically increased my expertise through self-learning and through my job, and recently got promoted to a lead developer. If you ever find yourself asking the above - don't give up, work & study hard and believe in yourself!

Update - July 2023. For the past 2.5 years, I have been a team leader, managing a team of 9 - 11, as well as doing lots of hands-on work. I mentor, teach, set coding standards and much more. I tell you this so that hopefully you can learn the lesson that perseverance and determination can overcome self-doubt and others' doubt as well. Oh and I've quadrupled my income since asking this question. Again, believe in yourself, thanks for the encouragement back when I asked this.

  • 111
    "he told me there is no way I could get the same salary or position in another organization" - how did you get your current salary and position?
    – MrWhite
    Commented Feb 15, 2019 at 3:10
  • 32
    The contradiction between "I'm now a senior dev" and "I only know the fundamentals" sums perfectly the whole problem with job titles in the software world. Commented Feb 20, 2019 at 10:15
  • 14
    As Uncle Bob points out, the population of developers doubles roughly every 5 years, so if you have 5 years of experience, you're more experienced than fully half of all developers out there. That being said, he's absolutely right about one thing, you probably couldn't get the same salary elsewhere. With 20 open positions for every developer with more than 2 years experience seeking work, supply and demand requires them to pay you quite a bit more. Commented Feb 20, 2019 at 12:34
  • 35
    Arguably imposter syndrome is a sign of being a real developer :)
    – Meg
    Commented Feb 20, 2019 at 18:58
  • 14
    SQL doesn't count .. SQL doesn't count????? Whoever said that is either not a real developer or far too junior to have worked in projects with lots of data. I'd love to see a Javascript developer create a data warehouse or fix a query. Or a manipulative boss trying to gaslight you. Run for the door Commented Feb 22, 2019 at 8:27

27 Answers 27


You are already a real developer. I'm guessing that your boss is belittling you in order to keep your morale down, so that you're less likely to look for another job or ask for a better salary. Five years of experience is more than enough to consider yourself a qualified developer.

Given that your current role is not going well, and you have an emotionally manipulative manager above you right now, I would definitely start looking for another job that gives you the respect that you've earned.

  • 240
    100% this--5 years is definitely enough to be a developer, and SQL absolutely does count! Run run run away from that place and don't undersell yourself!
    – bob
    Commented Feb 14, 2019 at 18:49
  • 164
    If you can SQL and regex, you win
    – Fattie
    Commented Feb 14, 2019 at 18:51
  • 25
    A real developer has a rounded understanding of the whole development process, it isn't about being an expert in a particular language. The manager is probably aware of how difficult your job is and knows your boots will be hard to fill Commented Feb 14, 2019 at 22:16
  • 25
    According to OP's self-described skill level, I want to add they are of course a real developer, but not necessarily a real senior, so there may be some truth about not getting the same position when looking for another job. But of course it all depends on how one defines senior level.
    – user94342
    Commented Feb 14, 2019 at 22:44
  • 31
    Unless you have a REALLY good relationship with your boss, disclosing the fact that you're looking for another job (or even thinking of doing this)... well, it's not good. The moment this happens management might as well start looking for a replacement while squeezing you out of everything you have (thus the emotional abuse on hand). Definitely seek a new job, but try to avoid doing the same thing in the future as well.
    – MBender
    Commented Feb 15, 2019 at 9:40

... he told me there is no way I could get the same salary or position in another organization

The person is an idiot.

If he was unhappy with your work, he would fire you.

What the person was actually saying is:

I'm desperate to keep you since you get stuff done. And there's an incredible shortage of programmers. But I'm going to belittle you and try to trick you psychologically to keep you working here, and not have to increase your salary.

BTW for anyone googling here once the comments have been cleaned up. The outcome was all good news!

Absolutely not! I changed jobs immediately after this question :)
– Cloud Nov 19 '20 at 10:05


  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Neo
    Commented Nov 16, 2020 at 14:44

You already are a developer. There is a meme doing the rounds on LinkedIn at the moment which is worth quoting here:

Your value does not decrease by somebody else's failure to see your worth

Developers are in huge demand. There have been recent articles stating that developers are more important to companies than gaining access to capital - and that value is rising all the time.

I suspect their ploy is to make you stay but if they're openly putting you down - why should you?

  • 35
    That's an excellent way to put it: for a product, division or new business, it is literally harder to get programmers than capital. Quite right. I can think of any number of startups, divisions, etc that have simply given up because they can't find programmers in the relevant speciality; on the other hand there are idiots handing out capital on every corner. An excellent observation. +100 !
    – Fattie
    Commented Feb 14, 2019 at 17:26
  • 3
    "Your value does not decrease by somebody else's failure to see your worth" Sadly, that's exactly what a market says is true - a good/service is only worth what people are willing to pay. The question is, is the market better than what you're getting.
    – UKMonkey
    Commented Feb 15, 2019 at 10:21
  • 3
    "Developers are in huge demand." That probably depends on the locale, and field. In some areas (both in the sense of geographically, and that of field of work), maybe, even quite possibly. In others? Not necessarily so much.
    – user
    Commented Feb 16, 2019 at 21:04
  • 3
    @UKMonkey I have learned: (1) to get market rate, you have to job hunt. some individual person's failure to see your worth does not imply the market does not see your worth; and (2) I have intrinsic value and do not need external validation.
    – emory
    Commented Feb 17, 2019 at 0:08
  • 2
    @UKMonkey The point is not to get stuck on some particular person's idea of your worth. If everyone on the job market thinks you suck, there's a good chance you suck (or present a large enough risk to warrant that low potential wage).
    – Luaan
    Commented Feb 18, 2019 at 16:28


I remember when I was working for a major NY based newspaper and our entire team was slapped with that "Not a real developer" moniker. (We were separate from the main group and handled everything from development to desktop support, back in the 1990s and early 2000's)

The "Real developers", in the main IT group insisted they do the work.

Management decided to let each of the two groups do half the work (it was feasible) and let the end users, who would be using the solution, decide which way to go.

After calling our work "sh*t code" to our faces, and delivering their "masterpiece" to the end users, the end users chose our work over theirs and we quickly redid the job the "Real developers" made a mess of.

You're doing development, you are a real developer. You may need to branch out, and given the attitude at your company, I strongly suggest it.

Don't listen to anyone who says "SQL doesn't count". It sure does, many people can't even write basic SQL, and the reversed order of processing can screw up programmers badly. Being able to do both is a rare, and valued skillset.

Trust yourself a bit more. Don't listen to your detractors. IF you are lacking in an area, do freelance work to strengthen yourself, but don't let anyone discourage you.

  • 15
    +1 to the SQL counting. I write in .NET stack and SQL and integrate both while using SSRS for effective output. Everyday I get calls from recruiters and companies who are looking for a full stack with SQL knowledge and they are offering good money. SQL is in demand especially in the healthcare sector. Commented Feb 14, 2019 at 20:03
  • 1
    @user87779 thank you. I edited to clarify. if that's still not clear enough, let me know. Thank you for your input. Commented Feb 14, 2019 at 21:12
  • 2
    @user87779 oh yeah, we threw that "Sht code" comment right back at them. "If ours is sht, and the users preferred it to yours, what does that make yours?" Commented Feb 14, 2019 at 21:18
  • 3
    +1, though most people can actually do a "basic SQL" order. That being said, when you begin to enter the join, coalesce area, there are not many of them remaining, which makes your answer true anyways.
    – gazzz0x2z
    Commented Feb 15, 2019 at 8:52
  • 2
    @RichardU To be fair, Users won't be able to distinguish between good and bad code. So your code might actually be shit while the users like the interface or whatever. A good looking house might still be rotting ;) Commented Feb 22, 2019 at 12:45

If you can write code that works, you are a developer.

Especially if you are in a senior role with five years of varied experience! Your manager, working for the biz, needs good devs for the jobs. If you are classed as a senior developer, you are most definitely fulfilling that need (along with your colleagues).
If your boss is pushing you around, making you feel worthless, or even worse, making you believe you are not good enough, then leave him. Find a job with someone who cares about the employees. Prove to him that you can find a high-paying job, with a senior role.
Your manager is saying two things here:

  • You are lucky to be where you are.
  • You can't leave

This boils down to:

You have to stay; out of need, not want

He has used some powerful wording.
He is being psychologically manipulative, or simply put, small minded.

You are in a senior role at a high-paying job. Whatever your boss says, you are doing something that he needs someone to do. You are clearly doing this well.
It looks to me like you are losing interest in the job, and he knows it. Don't let someone else upset you. Do what you need to do, and remember:

He is only one person, with one opinion, with as much significance as you give him.

  • 1
    Hi Benj. Would you say this about any other knowledge worker position? If you do medicine, are you a doctor? Are you an architect if you've architected something? I would hope not. I would hope that there were more to it than that.
    – Kevin Beal
    Commented Feb 20, 2019 at 15:11
  • 1
    @ManPersonson +1! You first have to accept that these titles and jobs: whether it be developer, doctor or architect, they are all labels. The original post was about whether someone can label themself as a developer. Does someone deserve to call themself a doctor if they have studied medicine? Well, are they qualified? Does someone get to call themself an architect if they have designed a building? Have they done the 7 years of training? It's about whether someone has deserved to earn a title, whether they want to, and whether they have tried to earn this privilege, this mark of experience.
    – Benj
    Commented Feb 20, 2019 at 15:41

Since you are a senior developer, I assume you have gone through several promotions to get there and weren't hired into the position as a fluke.

A senior developer should have a wealth of experience, and can perform most job tasks with little guidance. Your company should have a career matrix you can check to see what boxes you clearly checked off in order to get promoted to where you are.

You're a developer (that's what your job description says, doesn't it?). I think your mistake was telling your supervisor you were planning to look for another job. He might have made those comments out of bitterness. Just look for another job and let him know you're leaving after you have an offer somewhere else.

  • 26
    Indeed, telling someone you are thinking of leaving is madness.
    – Fattie
    Commented Feb 14, 2019 at 17:22
  • 5
    Agreed about telling him you're looking to leave. In the future never ever do that. But live and learn. Sounds like there were other problems though, perhaps this isn't boss' first foray into emotional abuse...
    – bob
    Commented Feb 14, 2019 at 18:51
  • 2
    hi @Wilson - it's a standard workplace practice that you never, ever, EVER, mention that you may be leaving, ever. I realize that is not a "why" answer to your question: but it is perhaps the most discussed topic on this site, so, one can easily read dozens of long QAs on the matter here (rather than me saying a few summary words).
    – Fattie
    Commented Feb 15, 2019 at 12:59
  • 2
    @Wilson, because when you tell your supervisor that you are thinking of leaving, they will immediately know that you are unhappy with your current position, that every day off you take is probably so you can go to an interview elsewhere, and that you may not be putting in your best effort anymore. It's like if you were dating someone, and rather than breaking up you let them know that you were looking for a new partner.
    – Catsunami
    Commented Feb 15, 2019 at 15:59

I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

You, like most of those who've written answers so far, are missing an important point. Being a 'real' developer isn't about knowing arcane features of a language, it's about being able to solve problems. If you can do that using only the fundamentals of whatever languages you work with, that makes you a BETTER developer than people who drag in those arcane features to show how smart they are, because your code is much more likely to be easily understood by others.

Indeed, I've found that about the only place where knowledge of such features is really beneficial is when you're stuck trying to decipher someone else's code.

  • 3
    I'd go further and say that as well as being able to solve problems, ideally being a ‘real developer’ is also about creating solutions that keep on working when conditions change, that are easy to read and understand, that are easy to maintain and enhance, that are relatively efficient (in space, time, and code), that fail gracefully, &c. None of these things is easy or clear-cut — and none of us ever fully achieves them. (I'm still trying, after 25 years…) All we can do is keep trying. And if you're trying for those things, then you're a real developer as much as anyone!
    – gidds
    Commented Feb 15, 2019 at 10:05
  • 1
    @gidd: True. And languages change, and the language developer Y has to work with may not have the arcane features that developer X used a couple of decades before. Perhaps I'm dating myself, but my first internship involved trying to update some (fairly important to the company) code written in IIRC Fortran IV, using assigned & computed GOTOs. en.wikipedia.org/wiki/Goto#Computed_GOTO_and_Assigned_GOTO
    – jamesqf
    Commented Feb 16, 2019 at 18:26
  • +1 From me as IT manager's perspective this is the best answer. A real developer solves problems. A real good developer doors it intelligently and produces as little maintenance overhead as possible (obviously, for that to work well, it helps much to have other roles up to par as well)
    – Gnudiff
    Commented Feb 18, 2019 at 7:52
  • People don't "drag in arcane features to show how smart they are." They use capabilities that were built into the language -- after careful consideration by people with way more experience than nearly all of us -- in order to make their code shorter and easier to maintain. Commented Feb 20, 2019 at 3:03
  • @Daniel McLaury: My experience says otherwise.
    – jamesqf
    Commented Feb 20, 2019 at 19:27

How do I know if he is right?

By applying to another position and seeing if you can get the same salary. Just to give you a background my last job had a manager who talked like yours. The area is spotty with tech jobs and as such, he's correct to some degree that finding a similar job for the same pay for the same length of time would not be possible. A lot of folks who quit, left the area completely and met great success.

With that said, his approach to employee retention failed. He was wrong as there were plenty of jobs in the area that offered more salary and better retention rates than the company. He was fired some time later as a lot of folks left and the web product was failing. It's easy to get discouraged when someone tell you that you're worthless and it's "confirmed" with the first failure. Consider this: if he considers you worthless and unable to find a job, why is he paying you?

You just have to be smart and apply, look, and talk to folks. Look at others who left the company. Where are they going? Are they leaving the area? Or are they still in the area?

  • 3
    This. You don't even have to apply to another position seriously. Just go for a few interviews and see where you are in terms of skills and salary, even if you are not intending to accept the position right now. You might actually run into something good, but at the very least you will be able to counter your manager's story with facts.
    – CompuChip
    Commented Feb 15, 2019 at 9:11
  • 2
    The only source of truth is empirical testing! Commented Feb 19, 2019 at 15:52
  • And arguably you should at least interview somewhere once a year - not because you're necessarily seeking the job, but just for the practice. Maybe it turns out to be an amazing job and they want to offer you twice what you're making now. I'm making 2x what I was making in my first job, 7 years ago. I'm quite certain that the devs I used to work with are not making 2x their original salary. Commented Feb 21, 2019 at 15:54

You should read the Wikipedia page on Impostor Syndrome. I've also questioned whether I'm a "real developer", especially while working with people who are much more accomplished than me, or who seem to do what I can do, only much, much faster.

But I still believe I'm a real developer, and the reason for that is because I can write code that does what my users need it to do. That's the baseline: can you get your application to do what your users need it to do? If the answer is yes, then you are a real developer.

Sure, there will be bugs, and sometimes it's because you did something dumb, but that doesn't mean you're not a real developer. If a tennis player misses a return, does that make them not a real tennis player?

Then only way you can know for sure whether you can get another role with the same (or higher) pay, and the same position, is to put yourself out there and interview for it. The interviewers will have steps in place to filter out the people who don't meet their requirements.

Unfortunately, I agree with him. I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

So, how will I know when I know enough to call myself a developer?

With regards to your question, being a developer isn't just about having X amounts of knowledge. A more important skill is to know how to find the knowledge you need to get the job done.

Lastly, don't discount the non-coding skills you've picked up over the years: being able to debug code, analyse requirements / use cases, come up with solution designs, etc.

  • 2
    Also read the book Learned Optimism, it goes over the underlying issues with Imposter Syndrome, but was written before that term was popular. Fantastic read! Commented Feb 15, 2019 at 2:00

How to know if I am a 'real developer'

You've been working in software development for five years, I am sure that your company isn't employing you just to be nice to you and they are getting something out of the deal.

It's not your current managers place to tell you whether or not you are up to the task of working elsewhere. It will be down to the people who interview you for other positions who will decide if you are up to the task.

I would suggest you get your CV together and apply at some other companies and maybe you'll see your worth then.

I've never walked into any job and known all the the company jargon and everything in their tech stack, there has always been something to learn and I don't know anybody different.

Believe in yourself, and I hope you find something you like where you are appreciated.

  • 2
    On side note, If you gave your last interview 5 years back, brace yourself for couple of "bad interviews". Some interviewers ask very basic questions at start and even after working for long, you tend to forget such stuff. So, if you go through some shitty interviews, You are still a real developer!!
    – Swanand
    Commented Feb 15, 2019 at 9:32

he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

And yet, here you are, getting paid by your current company.

There is no such thing as a "real developer". It's just how good you are at your job, and that is not a binary thing. It is a scale.

If as you say, you have identified holes in your knowledge, it's time to rectify them. However, you also need to realise that no developer worth their salt feels comfortable/knowledgeable every single day, as they are constantly stretching beyond their comfort zone and feeling like beginners everytime they learn something new. That is a good thing.

Lastly, being a developer is not just about programming knowledge. It's also learning to be a professional, and part of that is understanding what kinds of feedback to take in and what to ignore/push back. I'll leave you to decide which category this kind of feedback belongs in.

  • I take issue with "no developer worth their salt feels comfortable/knowledgeable every single day". Some people prefer bleeding edge style jobs where you have to keep up with the latest fad. Other people prefer to work in companies where stability is highly valued and have had time to specialise deeply in the languages, technologies, and business domain. Since they move jobs less often, they're probably more likely to be underpaid, which makes them the opposite of "not worth their salt". Commented Feb 18, 2019 at 13:33
  • If someone isn't feeling uncomfortable ever, chances are: they aren't expanding their skillset. If that results in them getting paid less than their peers who undertake new technologies, then I would argue that they aren't underpaid, they are simply paid less. Someone who knows language X at level 1 of 5 (let's say) being paid 20% of someone who knows the same language at level 5 of 5 isn't being underpaid. The former is just being paid less, because their skillset is worth less.
    – kolsyra
    Commented Feb 18, 2019 at 14:18
  • Received wisdom is that you only get paid what your skillset is worth if you move company every few years. A new person moving in to replace someone who's been in the same job for 10 years will probably be paid more, even though they won't have as much knowledge of the business domain and will start from no knowledge of the codebase. Commented Feb 18, 2019 at 14:40
  • I don't want this to be an extended discussion, but skillset and knowledge of business domain aren't the same. Someone who won't have as much knowledge of the business domain and will start from no knowledge of the codebase isn't necessarily worse than someone who has a lot of knowledge about the business domain either.
    – kolsyra
    Commented Feb 19, 2019 at 7:57
  • That's a red herring on a red herring, so I'll have one final try at rephrasing my original point and then I'll move on. What makes a developer worth their salt is being good at what they do, which doesn't necessarily require learning anything new. Commented Feb 19, 2019 at 10:15

These are all some very good answers; I really enjoyed the boyfriend/girlfriend comment above. And others have addressed that you have been employed for 5 years, so that proves that there is a legitimate business need for you and your services. I would add the caveat that that it proves you a a "real" professional, but not necessarily a "real" developer.

What makes you a "real" developer?

Don't let anybody tell you that SQL doesn't count. There is no language that doesn't count. If you understand HTML, or XML, at a very high, broad, and detailed level, you are developer. If you understand EDI files, or even MIDI files, at a very high, broad, and detailed level, you are a developer.

I think that what separates the "real" developers from mere coders, IT support, and technical interns is: understanding of systems, understanding of software-development life cycle, untaught aptitude, natural or practiced... and successful, deployed projects. If you are competent to provision your operating systems, IDEs, servers, and testing environments, from off-the-shelf hardware, software packages and cloud services, you are a developer. If you understand in theory and practice how to track down bugs, how to do feature-branching and unit testing, you are a developer. If you have tried, sometimes unsuccessfully, to teach and train others on what comes second-nature to you, are you a developer. If your stuff works, you are a developer.

Don't let anybody tell you that being a "real" developer is somehow a function of pay or professional advancement. It is good to have pay and professional advancement, but there are college students and even high school students who are very talented in building their fun open-source and hobby projects: retrocomputing, gaming, linux-from-scratch, amateur radio, crypto mining, screensavers, customized firmware, making art on graphing calculators, and whatnot. Even if those kids don't have the pay and advancement appropriate for their skill level, because of lack of formal qualifications, lack of professional maturity and "soft skills", or a lack of business need for their specific specialties, I would never dare say to their faces that they are not "real" developers.

Because their stuff works.

  • 3
    What boyfriend/girlfriend comment? I think it might have been moved to chat, could you put it in your answer please. Commented Feb 14, 2019 at 21:16
  • 1
    @reggaeguitar I think he means this comment workplace.stackexchange.com/questions/129099/… "It's like if you were dating someone, and rather than breaking up you let them know that you were looking for a new partner." from Catsunami. In reference of "never telling your company that you're thinking of leaving".
    – alexbt
    Commented Feb 16, 2019 at 22:15

Ignore the commentary and drama at your current job. Go apply for jobs elsewhere. If you don’t get the job, you’re out nothing. If you do get an offer, you’ll know what your skills are worth on the open market and can decide where you want to work.

It never hurts to look around.


Your manager is an idiot.
Either he's trying to scare you into staying at your job, or he's putting you down for ego reasons, or he actually believes this nonsense.
All three of those are reasons to just drop the job and move on as quickly as possible.

Being a developer is not about the specific languages, skills or tools you have.
Being a developer is about being able to produce products to spec. That's it.

You've been doing this for upwards of five years, I think you're probably fine.

If and when you opt to move on from this job though, remember that skilled scripting and particularly Advanced SQL are valuable and relatively rare capabilities.
Don't let anyone convince you otherwise.

  • I have seen suits belittling technicians as "they would not be able to do management" work. whilst the probability is high the OP is just being manipulated, in both cases, either manipulated or the manager really believes what he is saying, it is high time to dust off the CV. +1 Commented Feb 17, 2019 at 20:31

Considering the chosen answer does NOT answer the question:

So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use? I am regularly studying (2 - 3 hours per day) on PluralSight and by making my own projects, but I feel like a complete beginner in most aspects of software.

In general, you COULD go with a very baseline definition:

You're a dev if someone pays you to do development.

But that's not a helpful statement for your purposes.

I'm going to define "real developer" because in this context it needs defining.

A real developer is someone who builds software professionally.

Side note, this is likely a contentious definition, because this literally excludes hobby coders, whom I personally consider to be developers too. However, an argument can be made that they're not EXACTLY like professional developers, because they're not "squeezed" the same way.

So a "real developer" in general should be comfortable with:

  • Design modules or larger architecture (this depends on the org tbh)
  • Effectively be able to debug and "walk through" logic
  • Understand good code craftsmanship
  • Understand the process of building a piece of software for money (delivering a product)
  • Be able to work in a team and be autonomous
  • Be a self learner (which op clearly is)
  • Some deeper understanding of some coding paradigm (OOP is popular but there's a lot out there)
  • (this is just opinion) but some deep understanding of some language. Understanding the more granular aspect of it. (How it's compiled, generics...) Especially if you're in a lead / senior type position.

Many people will push back on this, because we're measuring a developer. But I'm answering the context of your question. You were talking about new opportunities elsewhere. Well, these things will be the things that potential employers will be looking for.

Also, good work on be being self directed enough to use Pluralsite, I use it too, I love it. I might suggest though that you might look at more theoretical computer science (videos tend to be extremely practical oriented). Learning things GRASP and SOLID and being able to apply them goes a long way. Which is why BOOKS are an excellent way to learn these things because they're far more in depth than videos. Ideally you would do both.

In short: You need to be able to go from idea to product. You don't need to be an expert but you need to at least be able to somewhat competently stumble through that process. Also, communication. Many devs underrate communication, it's important. (that last bit is a just a random tangent).

  • Thanks so much, this is actually a really useful answer :)
    – Cloud
    Commented Feb 20, 2019 at 10:39

I agree with all other answers, but there is a point you need to ensure before you go looking elsewhere : do you know to sell yourself as a software developer?

You already began by describing your current skills, but you need to work on your narrative; a job interview goes deeper than a Workplace stack entry. Rethink about everything you did the last 5 years, everything you did learn, everything you did make right, every hard lesson you did get, everything that makes you a real developper. If possible, practice with a friend(not in your current firm) speaking about you.

In the eyes of recruiters, you'll be a software developper as soon as you'll be able to tell them a narrative on how you became a developper. That's the real meaning of your boss's speech(even if it's not what he thinks).

Other answers already gave you great beginnings to your own storytelling. Work from that, show that you are a problem solver, remember that recruiters want people who remove them problems, show that in your story, and then you'll be a software developper in the eyes of the people who really count.

  • 1
    Exactly, how happy you are with your current skills, and how interviews with prospective employers will go are only loosely related! Commented Feb 20, 2019 at 11:34

I'd agree with all the comments above that you're probably a great developer already, but if you are looking for areas to improve, these are a few I can think of:


Why do bugs and rework happen in your environment? Can you change process (TDD, integration tests, better stories) to help this? Are tools or code structure at fault?


Why is the system slow or unscalable? How can we drill down and debug this? (clue, find the real answers, don't trot out received knowledge from the internet)


How can we work smarter? What is taking time, and does this relate to real business needs? Are we using appropriate toolsets and process?

Domain knowledge:

Do you understand the needs of customers? How can you improve on this, whether it's by visiting the shopfloor, reading a textbook or going on a course. Even if it isn't a direct part of your workflow, understanding the why and how of requirements makes you a better developer.

And if you aren't able to move in those directions because your works sets barriers, then it's definitely time to move on.


Sorry to post yet another answer, but it's too long for a comment and I don't see any of the many existing answers addressing this point.

there is no way I could get the same salary or position in another organization

This part may be true. We'll get back to that.

because I'm not a real developer

This part is demonstrably false. The other answers have covered this turf.

But let's dwell for a moment on the first part. The qualifications you listed do not necessarily scream "senior developer" to me. Although that has to be weighed against the fact that you are asking the question you asked here, which does kinda suggest impostor syndrome: you may be selling your actual skills short with that description you gave.

In any case, I look at it this way: I have a certain skillset as a developer. Some jobs* are "above me" in the sense that I could do them although I'm not technically qualified (for some definition thereof). Some are "beneath me" in the sense that you could probably get a less-skilled developer to do them with roughly equivalent performance for less money.

You may have lucked into a job above your nominal weight class. If so, congratulations! There's nothing wrong with being lucky, assuming you are adequately discharging the duties of the position you hold. But it may mean that it will be harder to recreate that same position elsewhere. You won't know unless you try.

But in terms of your current position, just remember, a lot of personal and professional growth comes from biting off more than you can chew, and then chewing as fast as you can.

* In my area of expertise. I'm not suggesting that John Q. Developer (including me) could just immediately be productive in a completely unfamiliar arena. No one will be paying me to hack on the linux kernel anytime ever, just to name one example.

  • 1
    Seriously? This is very common to underrate salary at current job. People almost ALWAYS get decent raise when they switch jobs. This is a red flag for me on part of manager to have said that.
    – Zeb
    Commented Feb 20, 2019 at 17:27
  • 1
    @Zeb I'm not sure we're disagreeing here. The fact that they have ulterior motives for saying that doesn't make it untrue. The fact that it's generally true for most people does not make it true for everybody. I agree that's its a red flag, classic PHB move, but that also doesn't make it untrue. The fact that the OP is clearly a "real developer" for any reasonable definition doesn't make it untrue. I wrote this answer in the context of ~15 existing answers of unbridled optimism, and all I'm suggesting is a little empirical testing (i.e. OP should go interview for other jobs). Commented Feb 20, 2019 at 18:57

What you are feeling is known as "impostor syndrome", the thought that you don't really know what you are doing and people assume you are better than you are.

Here's a secret: Everyone feels that way, and it's rarely the case. Ask yourself, if I am given a new task that I need to learn some specific tech for, am I capable of doing it? Because few people are experts in multiple languages and never come across anything they don't understand immediately.

Your boss is "negging" you, saying you are not a real developer because they don't want you to quit. That tells you that you are actually a valuable asset for the company and worth more than you think.


Your manager is only providing opinion on what you are worth to him and his company, which may be biased by bullying you into staying. You have to take it on yourself to do your own research on what your salary would be based on open positions else where. I have a feeling you'd find lots of developer positions based on your level of experience.


I am in my 5th year as a developer.

That's how you know you are a real developer, e.g. if your current employer is not hiring a real developer to replace you, shows that you are a real developer. Period!

I have been in a similar situation just a few months ago,

  • Getting paid higher than market rate
  • People issues (suffering due to petty politics)
  • Working hard on improving my skills through Pluralsight, Edx, Youtube
  • Feeling like a beginner in some respects
  • ...I even worked with C#, Javascript and SQL

The truth is, your current manager is trying to demoralize you, so that you wouldn't leave. You have people issues because your manager is incompetent in his job, i.e. managing people. You are getting paid higher because your company isn't being able to find other equally competent people who would be ready to work there.

So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use?

I would say the ideal first step would be to start looking for a job on the side. Don't put in your resignation, but start interviewing to decent companies. If you get relatively good offers, that should give you some confidence, and you might even consider switching.

Second, you can look for professional certifications. Microsoft's 70-480, 70-483 and 70-761 may apply to your work. Having such a certification should not only boost your confidence but also help you demonstrate your skills whenever questioned by your manager or other superiors.

Bottom line, stop doubting yourself. See how other employers perceive your skills. Find a way to validate your skills through suitable of certifications.


My current role is not going well (people issues). Anyway, I said to one of the managers I was thinking of looking for another job

A few points here... First, unless this guy is of high moral fiber, it is never a good idea to notify your current workplace that you are looking for a new position. And the reason why:

...he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

is because now he is trying to control the situation, but not in a moral way. I'd guess he is already planning his next move after you because he assumes you are on your way out, but he isn't quite ready for that yet. Not that he is completely in the wrong here if he is planning his next move because why wouldn't you move on if someone has verbally told you, in person, that they are thinking of looking for a new position? Be the manager and look at the cards on the table...

I learned the hard way about trying to be upfront. As much as it seems like the right thing, there are very, very few workplaces where it is. It's best to just stick to giving ample notice when you have secured a new position (again, unless you are certain that you are working for someone that you know won't pull this kind of stuff; they do exist, but rare...)

As far as whether or not that is true... First frank question is "ok, then why are you paying me in this position?" This honestly sounds like a reverse martyr position IE "This place would never survive without me!" but instead "You'll never survive without this place!" which is rarely ever true. You survived before, you'll survive after, same goes for the workplace.


If you can successfully complete development tasks, you are a real developer.

That said, there are good developers - those whose code is consistently of high quality. But, what makes code high quality? Code that does the intended job reliably and efficiently - solves the right problem, has minimal or no bugs, and does not waste resources; code that conforms to best practice and is readable and maintainable. What also separates good developers from the rest are skills beyond simply writing code - written and verbal communication, organization, analysis, problem solving, estimation. These are necessary for a good developer to gain the correct understanding of the job to be done, break a problem down into actionable pieces, plan out tasks, communicate requirements for time and resources, and report progress.

There are far more bad programmers than good. No matter how good you are, there is probably room for improvement in some respect. What matters is not where you are on some scale but whether you are striving to improve. If you are actively working to become a better developer then you are a real developer.

As already said in other answers, saying you are not a real developer is a put-down intended to manipulate you in some way. You would be better off not working for someone who would do that to you.


This is very close to many other questions - amI a True Believer? Am I a real activist? Am I a real man/woman or do I meet criteria for being a real transgender person? Am I a real Jew,real Muslim, real Hindu, real expert, real authority, real Lesbian, true believer in Christ, true follower of the Prophet, true leader, real vegan,true whatever?

You are what you are, someone who has learned, and will always learn more. Labels can help sometimes, but the label isn't helping here, it's strangling you. Read up on "imposter syndrome".

You are you. You are good enough to justify your right to existence (philosophically or in the workplace), and you are always able to choose to learn more.

End of.


There are a lot of supportive answers. My answer will try to objectively address your question but might not be very supportive.

The ugly truths:

  • 5 years may or may not mean anything
  • SQL expert knowledge may or may not mean anything
  • You seem to be in a toxic environment and you should plan on leaving. Any work environment that allows/tolerates a manager telling you something like that is an environment you don't want to work in.

How to know if you are a real developer?

Short answer:

When you can take on a medium-large project alone and program them from the ground up.

It's not about how many programming languages or frameworks you know. It's about solving problems and achieving a result through the best practices.

Long answer:

I used to work in a company that had a base code developed by a team that is treated as a first class citizen of the company. Then this base code is customized and sold to the clients by another team that is considered second class citizen and are generally treated as useless parasites by the first team. The whole work environment is very confined and restricted in terms of access and tools you use. The job boils down to filling the blanks in that base code and do minor styling changes. I was on that second team and I didn't consider my work there a real developer work, simply because the amount and magnitude of problems I face are very limited due to the fact that most of the work is already done in the base code. Architecture is already decided on and all libraries are developed and you just consume it and extend the existing functionality. If that sounds familiar to you, I recommend you invest some of your time into building applications from the ground up all the way to publishing them into the web.


First things first : Nobody gives money away for free.

If your current employer is paying you the salary for a senior developer role then by every definition of the word, you are a senior developer and not just a developer.

Other members have given very useful information on your proficiency.

I will explain what your manager is doing to you psychologically, where you messed up and what you can do now.

Your current manager is psychologically manipulating you. Let me give you the rundown of what is going to happen, first of all they will berate you and make you feel worthless (clearly this has caused you to doubt yourself) then they will say something like, "we are treating you the best you deserve since you are not a real developer; we are giving you this position as a gift and you don't deserve it". Clearly they did exactly that. Now you are wounded and you are doubting yourself, which inevitably will cause you anxiety in the interviews that you will be giving for a new job. If you fail the interview then it's a win for your manager. Now comes the third and most interesting part, they will give you a small raise or bonus and "allow" you to keep the job, to signify that they are quite generous even though you don't deserve it.

After this three step abuse, your self esteem will be crushed and you will be almost "happy" to work for them. This is an abusive relationship and can be identified from miles away. For ex : An abusive boyfriend will first hurt his partner then berate them then proceed to give gifts such as flowers to somehow make up for the abuse. Here, your manager is the abusive one in this professional relationship.

You deserve better

What to do ?

--Evil smirk-- : Let's give your manager a dose of their own medicine!

First things first : Say to your manager that you will not leave the job and you are extremely happy for this opportunity of a lifetime. Try to say that you researched the market and no other company is offering anything near what they are currently giving you. This will inflate your manager's ego for now and allow you some breathing room. Obviously what you told is a blatant lie and this will help you.

You made a serious mistake of informing your manager that you will be leaving the company. Your manager would have surely made your life miserable and which may lead to you not performing well in your interviews for the new job. Now that after inflating the ego, you will have some breathing room to conduct your job search peacefully.

After you get a new job and you will with your amazing experience, just stroll into your manager's office and turn in your notice of leave.

Now things get serious and you should be careful

  • Don't give a reason, on why you are leaving. Never fight with anyone. Just smile.
  • Never tell anyone of your co-workers or your manager which company you are joining.
  • Never tell anyone how much salary you will be getting.
  • Never tell anyone from where you got this new job.
  • Never ever ever agree to attend an exit interview.
  • Clear out all your personal files and items from workplace.
  • They will try to offer you a hike or even a promotion : Never accept it!
  • Never ever ever agree to attend an exit interview. - I'm curious as to why? Otherwise, great answer!
    – Cloud
    Commented Jul 29, 2019 at 16:00

"Nearly forty (wheeze!) years later, I'm still wondering!"

Hope I never find out.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .