My base pay is currently $200K. This is not the highest base pay I know of. A friend just started at a certain company at a base of $225K.
I'm pretty senior (I'm about 50 years old). I've been doing this for ... a long time. In fact in some ways I think I'm underpaid (but there are other benefits, like stock, which help a lot). I'm very, very good at what I do. Why do I think I'm underpaid? Because products that I make bring in millions of dollars a year. Yeah, I know it doesn't quite work that way, but we devs control the means of production therefore we ought to share highly in the benefits. A topic for another time.
I live in the SF Bay Area; take home after 401k, taxes, health insurance, and other misc deductions runs around $9K/month. I put as much as possible into 401k, which I advise everyone reading this to do. I own a home, purchased a decade ago, which costs me maybe $3K a month (it's hard to estimate exactly because mortgage interest is tax deductible to an extent).
My title is something like Senior Software Engineer (but titles don't matter very much). I do mobile apps. I used to do desktop apps and server stuff but about 6 years ago, mobile seemed like a very big growth market, and I was right. Right now I work for one of the big companies, but I've gotten this pay rate or close to it at startups. There's the funny thing about startups -- they need you, but they don't want to pay what you're worth so they offer stock, but the stock is usually worthless, and then at the end of the day they really need you. So it's really about knowing yourself and your worth. In my experience, sites like glassdoor do not have accurate salary information for the top end. They are probably ok for average jobs, but at my level, they are completely off. The way you'll get the right info is by making friends with people like me and buying us a few beers... and on sites like this.
How long would it take to learn ... well, depends where you start. I'll assume nothing about you. Knowing all the fundamentals is really, really important -- data structures, algorithms, and at least a couple languages. I went to a top 10 university, but you could learn all of that stuff with a few books and some study.
Then pick some specialization. I happen to know a lot about graphics, I've done lots of UI, and so I focus on front-end stuff, and so I do mobile which is pretty specialized and very hot now. But there are plenty of other in-demand specializations that can serve you very well, so I'd advise picking something you enjoy, because you'll be doing it a lot. I learned mobile stacks by reading a lot (and it's all free, on the internet!), doing my own projects on the side, and once I knew enough, getting other people to pay me to learn more.
Then it'll take you anywhere from 1-10 years to practice that specialization enough to master it. Now, in programming, mastery doesn't necessarily mean what it does in say kung-fu. It means knowing enough of an API, and the available tools, to be really productive. It also means being able to prioritize work (e.g. use top down design) in order to deliver on time and with high quality/low defect rate.
If you were smart, learned fast, and didn't mess around too much, you could learn everything I know in a couple of years. If you did I'd be insanely jealous, but not really, I'd actually be very impressed and respectful, and I would want to hire you.
I am not scared of competition. I've worked with many really, really amazing and smart people over the years, and there is plenty of work out there. My own company is hiring, I know lots of companies are too, and it's a great time to be alive.
Thanks for sharing about you.
You said you are about 50 years old. Do you not worry about ageism in Bay area ?
I just turned 30 ( 4 months back ) and I feel that at some point people start seeing you differently.
Have you ever had chance to move into management role ? Did you accept ? If not, may I ask why ?
I am trying desperately to move into management role but my current company is very large and there is not much opportunity.
Any advice you could provide for this fellow developer on how do you see 25 yrs old making similar or at sometimes more than you ? How do you get younger ( or most ) people respect you ?
What is your reaction when someone act like they know all world?
I don't worry about ageism. What counts in tech is your ability to code. As long as you keep your skill set up, you'll be fine.
Now, it is true that there are some companies where they will discriminate because of gray hair. First of all, that's totally illegal. Second, I don't want to work for them anyway. Because there is more demand for devs than there are devs, we have a lot of mobility, which means in general we'll be treated very well, as long as we are willing to change jobs when warranted. Now, that hasn't always been the case, and it's entirely possible that a downturn in the economy will change that. But frankly I can't see that far ahead, so I don't worry about it. If you are getting crapped on because you're 30, that's absurd. So leave, or consider documenting it and sue the heck out of them (same if you're being harassed, discriminated because you're different in any way, etc).
I have held management positions. I chose to stay technical track because I love doing what I do and personally I think management is unnecessary overhead that contributes very little. I can build an entire app without someone telling me what to do. Now this isn't the common view and corporations like having managers, probably so they can hold someone responsible in case of problems, but shrug.
This should not dissuade you from management, if that is what you want. There are managers out there that I like. The best managers IMO are enthusiastic, charismatic, supportive, and trustworthy. I'm a bit surprised that you work for a large company and you don't see much opportunity for management. I am currently at a large company where people are encouraged to try management track. Well, that suggests that you might want to look for a company that can support your career growth aspirations better. Aside: how to get into management? Act like a leader. Speak up, make recommendations... if you act presidential, you stand a better chance of getting elected.
The way to earn respect? Treat others the way you want to be treated. There is a fine line between self confidence and hubris, and the best way to not cross it is to never get close to the line. In my case I know I am good at my job, but I am nice to everyone else regardless of skill level, I go out of my way to help people if they are asking questions, and if someone does something cool, I compliment them.
The fact that you ask suggests that you're currently experiencing some problems. If you work in an environment where people snipe or try to undercut each other... leave. It doesn't have to be that way, and life is too short to put up with BS. Now it occurs to me to say that it could be your opportunity to rise to the challenge and change that culture; get promoted to management and be the change you want to see. That is up to you of course.
I feel we devs are very well paid, compared to teachers, scientists, and basically anyone else out there, so sometimes I feel guilty about pulling a high salary. On the other hand, I'm not hurting anyone, there's plenty of money in the industry, and I'm really glad to be able to provide for my family. So about people making more than me? This industry is really weird. I know people who have made millions in stock. If things had gone slightly different for me, I'd own an island somewhere sunny. That's the luck of the draw. But I've done fine, and I have no regrets.... except I should have bought AAPL when it was $6/share lol.
> Have you ever had chance to move into management role ? Did you accept ? If not, may I ask why ?
I can answer that one. The answer is no for me. Many people don't know what management is. It is trying to get people to do what you want through any means at your disposal. It can be disreputable. It can involve lying to a lot of people. It can involve being exposed to crime or at least criminals. Even if you work at an above board company you have to deal with people that have all kinds of issues: alcoholism, drug use, bipolar disorder, violent tendencies, harassment. You have to fire people and try to get other people's people fired. Changing jobs is difficult and risky. Recruiters don't call you. You have to "know a guy" on your same ethical wavelength if you want a job. Worst of all developers probably are going to make more than you in terms of cash. Maybe you make it some day to an executive job, but not likely. You lose all the technical abilities you once had. You have no choice but to work for the company you probably hate, and to listen to your exec bosses yell at you 'fuck this' and 'fuck that' all day.
None of that has anything to do with creating new technology.
At a large enough company, there is an HR department, which provides all sorts of tools to help manage the issues you mention... and anyone displaying those behaviors really should be fired, because it makes the workplace unsafe for everyone else.
BTW, the best way to make it quickly to manager or executive fast is to go to a startup.
I'm pretty senior (I'm about 50 years old). I've been doing this for ... a long time. In fact in some ways I think I'm underpaid (but there are other benefits, like stock, which help a lot). I'm very, very good at what I do. Why do I think I'm underpaid? Because products that I make bring in millions of dollars a year. Yeah, I know it doesn't quite work that way, but we devs control the means of production therefore we ought to share highly in the benefits. A topic for another time.
I live in the SF Bay Area; take home after 401k, taxes, health insurance, and other misc deductions runs around $9K/month. I put as much as possible into 401k, which I advise everyone reading this to do. I own a home, purchased a decade ago, which costs me maybe $3K a month (it's hard to estimate exactly because mortgage interest is tax deductible to an extent).
My title is something like Senior Software Engineer (but titles don't matter very much). I do mobile apps. I used to do desktop apps and server stuff but about 6 years ago, mobile seemed like a very big growth market, and I was right. Right now I work for one of the big companies, but I've gotten this pay rate or close to it at startups. There's the funny thing about startups -- they need you, but they don't want to pay what you're worth so they offer stock, but the stock is usually worthless, and then at the end of the day they really need you. So it's really about knowing yourself and your worth. In my experience, sites like glassdoor do not have accurate salary information for the top end. They are probably ok for average jobs, but at my level, they are completely off. The way you'll get the right info is by making friends with people like me and buying us a few beers... and on sites like this.
How long would it take to learn ... well, depends where you start. I'll assume nothing about you. Knowing all the fundamentals is really, really important -- data structures, algorithms, and at least a couple languages. I went to a top 10 university, but you could learn all of that stuff with a few books and some study.
Then pick some specialization. I happen to know a lot about graphics, I've done lots of UI, and so I focus on front-end stuff, and so I do mobile which is pretty specialized and very hot now. But there are plenty of other in-demand specializations that can serve you very well, so I'd advise picking something you enjoy, because you'll be doing it a lot. I learned mobile stacks by reading a lot (and it's all free, on the internet!), doing my own projects on the side, and once I knew enough, getting other people to pay me to learn more.
Then it'll take you anywhere from 1-10 years to practice that specialization enough to master it. Now, in programming, mastery doesn't necessarily mean what it does in say kung-fu. It means knowing enough of an API, and the available tools, to be really productive. It also means being able to prioritize work (e.g. use top down design) in order to deliver on time and with high quality/low defect rate.
If you were smart, learned fast, and didn't mess around too much, you could learn everything I know in a couple of years. If you did I'd be insanely jealous, but not really, I'd actually be very impressed and respectful, and I would want to hire you.
I am not scared of competition. I've worked with many really, really amazing and smart people over the years, and there is plenty of work out there. My own company is hiring, I know lots of companies are too, and it's a great time to be alive.