Tips on Getting That Raise

You want a raise at your company. The biggest obstacle to overcome is that you need to actually go ask for one. Now there are some other factors that may increase success.

Work on some challenging tasks. It is best if they bring in a bunch of revenue. Make sure you take credit for the results. Emphasize the benefit to the company (this is easy if the benefit is that the company made a boatload of cash).

When you ask for more money, don't tie the request for the great job you already did. Talk about what further great deeds you will do. Couple this with a plan to increase your duties.

Before you head in for that raise, have a plan for what you will do if you get denied. Read up on a lot of books on successful negotiation. They will tell you about this. Finally be prepared to switch companies, and maybe even move to a new city.

Use the Logs

I am helping out my old team, researching bugs reported by the customer. Recently one was opened that was going to be a big deal unless it got fixed pronto. The customer put this fact in the bug description. I worked with my team lead on this problem since he had some access issues on his computer.

First thing I did was get an agreement on how the application was supposed to act in the normal flow. Then I reviewed some abnormal flows. Finally we looked at the production data for the examples provided by the customer. I have been doing this for many years. So I knew how to mine our audit tables for the history of how objects flowed through the system.

My team lead was amazed by this. He apparently had never queried the database to get this information. We got a bunch of triggers which store off state changes of interest. This comes in really handy when you are debugging tough problems. I spotted the pattern. The software was actually behaving as designed. These were just some boundary cases which do not behave like the normal flow. As soon as I briefed the main customers on our findings, the trouble ticket was closed with a reason of no trouble found.

How to Get a Job

Just skimmed a book on how to get a programming job. It was packed full of info. Here are some highlights.

You need to possess some key traits such a being smart, able to get things done, and being passionate. Learn on your own.

Don't wait for your company to send you to training. You should especially research technology that you know your company is moving towards. To be efficient, get in the habit of writing the minimal set of code to get the job done.

Hit up the normal suspects on the web for your job search. This includes Dice, Monster, and Career Builder. You should also check out USA Jobs if you are willing to work for the government. Forget about the freelance sites unless you are willing to work on projects that pay fifty bucks for the entire project.

Sending resumes if a low probability game. You are lucky if 10% of the resumes you send out even get read. You can up your success if you also email the resume to the person you will actually be working for.

Bring multiple copies of your resume to any interviews you go to. Do not seem desperate for a job. Know test driven development (TDD). And if you are going for a JavaScript job, make sure you know the DOM, events, JSON, and jQuery.

SharePoint Development is Hard

SharePoint is not like other development platforms. You need to learn many skills to be proficient at SharePoint. Unit testing is very difficult on this platform. You must know your markup languages such as XML. To deploy you need to know something like PowerShell.

That is not all. You had better know web services to be a good SharePoint developer. Let's face it. You might be learning all your life to be a good SharePoint developer. That might not be a bad thing.

I don't know. This sounds too complex for me. Maybe if I got in early I would be interested in SharePoint development.

Programming Languages

What are the hot programmings languages developers need to know? The real question should be what will be the hot programming languages in the future. Web programming has involved Ruby, Python, and PHP. However they are being eclipsed by JavaScript.

The enterprise uses Java. You don't see your main apps being rewritten with Ruby. Ruby is used for some smaller non-critical apps. Yet Ruby developers are currently commanding the big bucks.

So Ruby has some gas. But in the end it will probably be JavaScript that rules. Python, Perl, and PHP will most likely fade. You got to invest in the right language to pay off in the future.

Stack Overflow

Yesterday I read a rant about Stack Overflow. The author explained how things actually work with Stack Overflow. You start with a reputation score of 1. If you get downvoted, you lose rep. You get more rep by answering questions.

Unfortunately most questions have 10 or more answers. You need to try to answer new questions quickly. But everyone else is doing this too. It is hard to get an answer in there quickly enough.

One thing the author did not take into account is that you can also gain rep by asking questions. There are some techniques to game the system. For example, you can find new questions and put a placeholder answer in there. Later you can go back and edit your answer with a solid one.

Personally I don't support Stack Overflow. I used to like the Joel on Software discussion boards. However Joel seems to have let these languish. Instead he is concentrating on his new Stack Overflow startup. So I am on a sort of boycott of that system. There might be good information on there. But I figure the Internet has answers our there as well.