Every week our project sends a status report to our customer. This is a contractual requirement. The way status gets collected is that it is rolled up by team leads to managers to the status person. I am on the bottom of the totem pole. So I give my status to my team lead. It is actually quite simple. I send an email outlining what I did in the past week, and list percentage complete on long term scheduled tasks. This is simple right?Here is what happens. Each week our team is stressed out with the emergency of the week. As a result, I don’t think anybody sends our team lead status. He then needs to make something up to send to his boss (the manager). Do this enough times and you get inaccurate status. Sooner or later you will get found out.
I make sure I am not part of this cycle. It does not matter the circumstances. I always send that status email on time every single week. Am I off for half the week? My team lead still gets my status. Is my e-mail broke down? I go home to my personal email and send off my status. It gets done. Why am I so adamant about this? I have been a team lead before who had to compile status. And it is such a simple and short task that gets a lot of bang for the buck. There is no excuse to not send status.
Now there are some tools I use to help me compile my status easily. Whenever I work on anything, I make a note in my “work done” system. Each day is a separate text file. To compile status, I look through the files from the last week. It is almost a copy and paste of the highlights. A good process makes status reporting a breeze instead of a chore. I highly recommend it.

For the second week in a row, my team lead decided we would work into the weekend to fix a lot of bugs. I decided it was time to make sure I got something out of this effort. So I requested my manager approve some days off next week since I have already put in a lot of extra time this month.







Somebody asked me for some source code from our system. Luckily I no longer had access to the back end code. Therefore another developer on the e-mail responded with a copy. This caused the
Yesterday as I was leaving work my team lead called me. He directed me to focus on a certain customer problem that was about to be our project's high priority. I made a note and left anyway. That night two of our top guys started looking into the problem.

Today I got a call from my team lead. He needed help. We have functionality in one of our apps to filter out spreadsheet rows based on values in the columns. He added a new column. But he could not get the filter working.
We are a little behind schedule on our latest software delivery at work. I told the management that we will not make the dates unless we get more help. It took a while for that to sink in. The managers kept coming back asking me how we could make the dates. I kept repeating that we needed more people or it was absolutely impossible. Finally we got another resource.

This time I wrap up the lessons learned by reading Programming Interviews Exposed. Although I have never personally be asked any drawing questions in an interview, I suppose you might get some if you are trying to get a game developer position. I can't go into a lot of details of computer drawing. But it is good to know that high performance drawing relies on using integer math.
When I applied to graduate school in Computer Science, I was told to learn data structures and give them a call back. Ouch. I did eventually pick up a whole class on data structures. It was actually quite fun. This knowledge can help you through a question during an interview which centers around common data structures.
When you are in an interview, you might be asked how efficient an algorithm is. This is a case for Big-O analysis. An algorithm whose run time grows linearly with the number of records it processes is said to be on the order of O(n). That is good efficiency.

The national unemployment rate in the US is 9.8%. In a neighboring state, the local rate is over 11%. You are going to need every competitive advantage to get a job in this economy. Let's start with the in-person interview.


The customer on our project has their own software acceptance team. Recently they have been finding a lot of problems with our applications. A few recent problems got a lot of visibility. Some VIP from our company said we needed to fix these problems. My team lead called me up and asked if I had any extra time in my schedule. I just laughed.
A buddy of mine may be looking for work pretty soon. Things move fast in the world of 


A company that make open source tools did a survey of open source code. The result was amazing. The majority of code in open source projects is written in C. This was very strange indeed.
Today my manager pitched a solution to my scheduling problem. He said we could add the new task after my current task is complete. There were a few loose ends that I needed clarified.
Me and the guys scheduled a meeting with another contracting team. We had to lay down the common design for the new stuff both our teams shall be implementing. We decided to meet at our customer's big facility. The customer has a lot of rooms. But there is minimal parking. I was worried that I would not get there in time for a parking place. Luckily there must be a lot of people on summer vacation. I got a parking spot even though it was late.

Today we met with our customer and pitched the design for the new changes. This is an opportunity to help them see how the system will look with new functionality built in. It also let's them validate that we got the ideas right.


The guy who leads my team called me up today. He read a requirements document and could not figure out what the heck our software was supposed to do. Luckily I am a domain expert on our system. I kept answering his questions, correcting his model of the work, until he finally got it.
Today our customer discovered a big problem in our production system. As usual I got called into a conference call to discuss the plan of attack. Our manager had drawn up a 6 phase plan, ranked in order of importance.