Monday, May 26, 2008

New Beginnings Again

Alrighty then, it has been quite some time since I have written in my blog as you can see. My life has taken another turn in a new direction. I just recently moved again from Topeka, Kansas to California. The decision to move started sometime early this year when my wife informed me that she had spoken with her Grandmother in California who informed her that she wanted us to move back California. Now I was surprised and excited at the same time, because I have wanted to get back to California for quite some time. I loved the California weather and beaches, so I was more than willing. My wife’s Grandmother is over 70 years of age, but manages pretty well that you wouldn’t even think she was a day over 50. But we all know that there is a time when that all starts to change and things slow down quite a bit and I think that time is nearing. Her health is pretty good, besides the health issues she may have that she doesn’t tell anyone about. But, my wife feels like she really needs to be there for her and I am not in disagreement, so back to Cali we go.

I began the process of job searching again to see what was available in the California market for my skill set and man was I presently surprised. I decided to place my resume on Dice and Monster to see what responses I would get and my cell phone wouldn’t stop ringing. Recruiters were calling left and right and wondering when I was going to be available for an interview. I had to explain that I was still located in Topeka and would be relocating to California. Now this was in February and I informed them that I would be coming out to California for good in April and was preparing for my transition. This news confused several recruiters because they had never dealt with this type of situation before and most needed someone available ASAP. My only requirement was to have a 2 week notice and 1 week relocation time period, which most were okay with.

Several recruiters had procedures that required them to meet with me face to face before they would send a candidate out to a client. I could understand that, but I wasn’t in a position to work with that option at this time. I have been a consultant for nearly 8 years now and have gone to work for several large organizations with nothing but a phone interview with the client. I was confident in my abilities and from my previous engagements; I knew I wouldn’t have any problems. About 4 out of the 20 or so recruiters were on top of there game. I had informed them that I would be making a trip out to California for 2 to 3 days and would be available to meet with clients for interviews. Things turned out great and I was able to get interviews with Myspace, Countrywide, Kaiser Permanente, and Spark Networks.

Now, the interviews were quite interesting. I don’t think I had ever gone through such grueling interviews in my life, or that I can remember. I was applying for Senior .NET Developer positions since those are the positions I have been working in so far. I was interviewed by Senior .NET Developers, .NET Architects, and Managers. Out of all the interviews, Myspace and Kaiser were my hardest. I faced a lot of questions which were geared for book smarts which I certainly wasn’t good at. I have never done well with test and I have acknowledged that but don’t let that hold me back. I pride myself in understanding what I am learning and if I can’t understand it, I have no shame in saying I don’t know. I am more than willing to learn what I don’t know, but it has to make sense for me to retain it. I am thankful when I have difficult interviews because I learn quite a bit about my weaknesses and areas that I need improvement. My interview with Myspace was done by 2 Senior .NET Developers who hit me with a lot of difficult questions, but the challenge was when they went to the white board and asked me to solve some complex issues. Talk about make your sweat! I was drenched and almost brain dead by the end of that interview.

Now, Kaiser was very interesting for the simple fact that I was interviewed by 7 .NET Architects. You can say, I was a little intimidated at first, but I did quite well. So, well, that they extended an offer to me the next day, but feel quite short on salary expectations, so I turned them down. Myspace came back and turned me down later. I never did hear back from Spark Networks and Countrywide is on hold because they are going through some financial issues.

My trip to California was a little expensive and I wasn’t successful in acquiring employment. A little discouraging at first, but I just kept plugging away. I had several conversations with different recruiters who wanted me to come in for some face to face interviews. At this time, I was not really feeling face to face interviews at my expense, so I pushed back for some phone interviews. A lot of opportunities went by me, but I don’t regret this decision. I had one very interesting conversation with a recruiter who was looking to fill a contracting position with LA County Public Health. The contract hadn’t been won yet because it was contingent on the candidate and she thought I was the perfect fit for the job. She informed me that should I be selected, a face to face interview would be required. I wasn’t too excited about this possibility and informed her that I may have to pass on this opportunity because I really can’t afford to keep flying back and forth for interviews. She understood my situation convinced me to at least give it a try and see if I am even selected, so I gave it a try.

I spoke with the wife about this and she agreed with me that this was too expensive right now and that I should keep looking. That night, the same recruiter contacted me asking if she could also submit me for another position for that same client. I gave her the green light with some reservations, but wanted to see what might happen. Two days later, I received a call from the same recruiter informing me that I had been selected for the second position that she had submitted me for. I was excited and disappointed at the same time, because I knew I couldn’t afford to do this right now. I informed the recruiter that I would have to pass on this opportunity and appreciated all her efforts. Surprisingly she refused to give up and insisted that I take the weekend to discuss it with my wife and think about it. I informed the wife and we both still agreed that it wasn’t worth it.

Monday morning, I called the recruiter and informed her that I would have to let this opportunity go. She immediately countered and made an offer to pay half the travel cost if I get the position. Not really an impressive offer, but worth considering I guess. I called the wife and passed this new information on to her and she wasn’t impressed either. She immediately asked me, “Do you really want to go for this?” I was straddling the fence because I thought this would be a great opportunity should I get the job and at the same time a huge waste of money should I not get the job. My wife and her great wisdom responded saying that I will really regret it if I didn’t at least try. So, I called the recruiter back and told her that I would do it.

The interview was setup for a Wednesday, so I flew out Tuesday night with an expected return flight of Wednesday evening. I interviewed with the Director of Applications Development and the interview was awesome. I don’t think I have ever met such a knowledgeable Director of Applications Development. He was an old school programmer with modern thinking capabilities. He was looking for someone with my exact skill sets with an eagerness to learn new technologies. I was the perfect fit. He informed me that I would be the Lead .NET Developer helping to manage up to 14 other .NET Developers. I would be heading up a new project that used the ASP.NET MVC Framework on Visual Studio 2008. I was blown away and felt like a child on Christmas day. I would have never thought in a million years that I would be in this position. Most places I work are always behind 1 to 2 versions of the .NET Framework and I would be venturing into a new territory with .NET 3.5 and MVC. Wow!!!

I flew back to Topeka, Kansas completely mind boggled and ready to go to California ASAP. I told the wife what happened and she was blown away too. The next day, the recruiter called me to inform me that I got the job and they wanted me to start ASAP. That was an exciting day and I am glad that I took the chance and went for the interview.

I have been on the job for about 5 weeks now and have learned a ton of things about ASP.NET and MVC. The project I am working on is orchestrated by a .NET Architect who is showing me how the MVC Framework operates and what can be done with it that wasn’t possible with standard ASP.NET. I am amazed to say the least and confused at the same time, because this is such a new technology that there aren’t any books on this yet. That in it self is exciting because I am really on the leading edge of technology and one of the first early adopters. The framework is still a CTP Beta version. By the time it reaches release candidate stage, I should be an expert which puts me light years ahead of everyone else. This makes me more marketable than I ever was before. Knowing ASP.NET alone is awesome, but adding MVC to your skill sets is even better. My aim is to perfect this framework to the point where I can do it in my sleep. My business is going to grow by leaps and bounds. This is exciting and I am going to enjoy this ride as much as I can.

Happy coding!!!

Friday, February 1, 2008

Week Gone Wild

Here it is Friday and I am finally home after a fairly stressful day. This whole week has been quite stressful. I am working on a project with a company implementing SQL Server Reporting Services and man is this a difficult project at times. I have been working with reports for about 8 years now and it always amazes me how difficult they can become. When I used to work with Crystal Reports, it would sometimes drive me crazy and SQL Server Reporting Services is no different. Now, don't get me wrong, I am technically capable of designing and developing the reports, it is just the issues around end user specifications and data extraction. It is fairly common for me to be in situations where no one seems to know their data and I am tasked with figuring it all out while still performing my main tasks of report creation.

Now, I would like to clarify one fact here. I am by no means a DBA! I think I have stressed that fact in several projects and it never fails, I am thrown the awesome task of navigating my way through the database and creating complex queries that would drive an ape mad. I guess the worst part is that I love challenges too much and I haven't quite realized just how deep I am getting until after I am drowning. I keep telling myself that I can't let this keep going on, but I loose focus and fall right back into the pit and struggle each time to get out.

I am a programmer, think like a programmer and breathe programming! That is what I am. A .NET Programmer with a love for creating applications that provide solutions to problems that exist in the Enterprise. I like finding ways to code an application that can do what no other existing application can do. But, I find myself stuck administering band aides to wounds that need surgery. I guess the reason I enjoy reports is because of my creative nature, but there's a whole lot more to reports than creativity and those are the things that I guess I struggle with.

I chose Microsoft Technologies because Microsoft is very good at one thing and a lot of people don't like to give them credit for it. They create jobs! Microsoft's main purpose is to provide the tools for the populous which allows the populous to provide the solutions to their customer base. Prime example, I had an issue today that has just added to my already extensive list of future projects. I work in an environment that is tight on security and the systems I have to operate on use both SQL and Oracle. SQL Server Reporting Services is the tool of choice to extract data from these different systems.

Oracle is a complex data warehouse with about 15 different data stores housing terabytes of data. This makes for a very interesting day when attempting to create reports. I am tasked with creating queries that encompass about 5 to 10 table joins from potentially multiple data sources. To put the icing on the cake, I may at times have to extract data from a SQL Server data warehouse that is also several terabytes in size. This is where the pressure builds because these queries can take anywhere from 5 minutes to several hours depending on the tables I am joining to. Plus for some strange reason, security doesn't allow for oracle to use database links to SQL where I could run more efficient queries. So, I attempt to go the other way around by using a database link from SQL to oracle and find that utilizing any complex queries with OPENQUERY fails and when working is slower than running the queries in the oracle database. My time basically doubles.

Now, I see an opportunity here. How can I leverage my knowledge of both systems to provide a better solution then what is currently being used. There just has to be a better way than this. I attempted to formulate some plans today to attack this issue with little success. I figured if I could create some sort of middle component to allow me to perform this same process, things would be beautiful. What better technology to use than .NET, so I pull up a new project and started coding away. I had a great idea and had spec'd it out and started on the design and development. Then, the Business Analyst (BA) for reports shows up wanting the reports I have been working on yesterday. He has for some strange reason, promised his client some results by noon and needed to provide them with feedback. I informed him that I was having difficulties with getting data migrated over to oracle and I don't have enough permissions in SQL to migrate data from oracle and I didn't really want to do either since that would create duplicate data. So as far as I am concerned, those reports wouldn't be ready today. He of course didn't like that response and pressured me to provide some type of results today.

So, I had to put my ideas aside and return to the archaic process I have been using. That is pretty much the way things work everywhere I do contracts. Fixing problems for the long term aren't important. Preference is placed on temporary fixes. That of course saves them money short term, they think but they end up spending more money in the long term, because they will be calling me back next month to repair the same problem that I repaired last month.

Now, some tables have millions of rows that will potentially only supply me with a couple of records. So, my day is spent running queries and waiting for the results just to find out, there's no data. I make a change to the query and rerun to wait another 5 minutes to several hours. That isn't a problem for most people who don't mind milking the clock and getting their paycheck and going home. It just happens to be a problem for me since I want to get some work done sometime today.

Now, when I express this frustration to management and other associates, I seem to get the same response. This is the way stuff works around here and that just kills me. What can I do besides roll with the punches? So, I just develop an attitude of who cares, just come in and do your job and go home. Get your paycheck and be happy. Do enough to keep your contract and keep your client happy. Well, I must admit, today rubbed me the wrong way.

It is imperative that I work for myself. Every day I work on this project for this client, makes me more eager to finish developing my own software and do what I do best, provide software solutions.

walkins5

Wednesday, January 30, 2008

The Beginning

I often find myself searching Google for a lot of information related to different technologies surrounding the .NET Framework and AJAX. It wasn't always like that. There was a time when I barely knew what a computer was. I had been around technology for about 10 years before I found my passion. I have had various jobs outside of technology which have made me regret not finishing college and getting my degree. I have gone back to college several times since leaving the military in 1994. I have yet to finish college because of all my degree changes. I technically have enough credits to get some sort of degree, but no degree that exists will use all of my credit hours which pretty much sucks.

I have always been told since childhood, that education is the key to success and that I needed a degree to become successful. I found that the more I pursued education, the more I got confused as to what I really wanted to do. I tried Computer Science, Management Information Systems and Software Engineering. I even went for Microsoft Certified Systems Engineering (MCSE), Microsoft Certified Database Administrator (MCDBA) and Oracle Certified Professional certifications with no success. I was trying to find my niche and what it was that I loved to do for a career.

I found, that this wasn't it either. I gained a lot of insight into the workings of systems and databases, but this wasn't really something I wanted to do for my career. Things started to take a change in my life when I went to work for Compaq working with Servers and sales. It was exciting and I learned a lot, but there was something missing. I was quickly reaching a dead end with what could be done with hardware. Hardware is only so deep and seldom does it change quickly enough where your knowledge has to constantly be updated.

Basically, I was a quick study and quickly getting board. I decided that I needed a change and accepted a position as a Help Desk Technician for a software company. This is when life got interesting. I discovered a fire in me that I didn't realize was there. I had to learn how to support a software package from Frontrange Solutions Inc. that was used for helpdesks. How odd, that I would be working for Frontrange Solutions Inc., the developers of HEAT and having to support the product in a helpdesk environment.

It was a blast in the beginning and I quickly learned every product suite Frontrange had except Goldmine. I knew the product so well, that I could envision the entire interface in my mind. I knew each and every screen and what processes took place. I knew what errors would happen in different circumstances and when using different databases. I strived to perfect my knowledge of this software application. I became the go to guy when customers needed high priority issues addressed. I was challenged with handling serious issues with the customers and dealing with DBA's and System Administrators who wanted solutions quickly. It was a rush at times and very stressful. I found myself being the support for QA and Professional Services.

That was an experience that I wouldn't trade for the world, but I was glad when I resigned because it gave me an opportunity to become a consultant providing the same services to customers using HEAT. I tried initially working for a VAR and soon found some unethical practices that caused me to resign and become an independent consultant.

I had the opportunity to experience different technologies when I went to work for myself. I took a lot of what I learned on the helpdesk and applied it to my contract engagements. While working with different customers, I found that they all had something in common. They had lack of knowledge about the software package that had spent so much money on. Most of the customers could only tell you what the software package was called and what it was used for, but not many could really figure out how to configure and administer it. Thus they would be forced to call me or go get trained.

This was a fun time for me and I had the opportunity to learn new technologies like .NET 1.0. I learned about .NET while working a contract at a hospital when I was designing ASP classic webpage’s for the HEAT database. An article that I read on the web bit me like a bug and I was hooked. I immediately went to Barns and Noble and bought an ASP.NET for VB.NET book.

Yes, I was completely confused and could barely make heads and tails of what they were talking about in that book. I completely read through the over 800+ page book before I started experimenting with the content. I was amazed at what could be done and quickly took it on myself to rewrite some of my ASP classic pages using ASP.NET. I quickly became confident about what I had learned and was redoing the entire website. I had a network administrator who was a wiz with JavaScript who recommended that I learn C#. I resisted at first because I was okay with VB.NET. I didn't know about the darkside of the force and didn't know if I wanted to know. But, I read a couple of online blogs and other articles that swayed my thinking towards C#, so I ran down to the book store again and purchase a C# book and taught myself C# for .NET 1.1.

It was interesting to see the similarities between C# and JavaScript. This made it easier for me to pick it up. I started analyzing the differences between VB.NET and C# and trying to see which one was better and faster and found that it pretty much boiled down to individual preference. At the time, I looked at what was prevalent in the market and C# was the King, so I decided to focus on C# and used VB.NET where I saw fit, especially since I could use both interchangeably. Every since then, I haven't looked back and pushed myself farther and farther into the development world. I took every possible project I could get my hands on to improve my skills and increase my knowledge. I had the opportunity to work with some awesome developers and learned quite a bit. I continually pursue knowledge because technology is always changing. When I thought that I had gotten a handle on .NET 1.0 and 1.1, .NET 2.0 came out. I would then go out and buy my next book to learn what I needed to perfect this new framework and found that quite a bit had changed. Then, before I knew it, .NET 3.0 became available and then .NET 3.5. Enough to blow your mind. How much can I actually retain and how much will I actually use.

This is when I realized, I had found a gold mine. I have finally found what I had been searching for all these years and I didn't need to go to college to get it. Education is the key, but it doesn't necessarily call for a college degree. I consider myself blessed to have had this experience though. I am excited to see where life takes me from here.