Its been a month now since I announced I was going independent, and I've now actually been working two weeks with my new client. First, although I'm certainly very busy learning a new business, I can also report that I really like this client. Why? Unlike previous employers / clients, they are actually showing me the current business process and actively engaging me in it. I know that seems like a no-brainer, but I've found that most companies don't work this way, usually to the detriment of all. I'm also really getting to brush up on my sql skills -- yea, I thought they were pretty good too, afterall I wrote an O/R mapper. :) The reason I say this is because this client has a lot of one-time tasks which are not your typical CRUD persistence. Some of these are also very large with quite a few joins, so I'm learning some other tricks to, like using NOLOCK and other hints. None of this is really new to me, but its certainly not been something I've had to do this much of, so its definitely polishing my sql.
The next thing I like about this client is that they actually want my architectural input, and before I develop it all no less. Again I agree that seems like common-sense, but its not the status quo that I've found in many businesses out there. I'm slowly (but not too slowly) designing and building a set of applications that incorporates all the best practices that I know. We're using my O/R mapper for many things, and having a truly distinct business layer that will allow us to have windows or web GUIs. We're also doing security right, with salted hashed passwords, and roles -- again something obvious but amazingly not very common! Our web application is of course using Master Pages and stylesheets to get the most out of reusability -- again rather rare. None of this is rocket science, in fact its just commonly known best practices as I said earlier, but we're actually doing it. It takes a little while to set it up right, but then things proceed much faster, so I've never understood not doing it right.
I'm also getting rather spoiled working at home, with dual monitors unlike anywhere I've ever worked before. We also use MSN for audio / video conferencing and application sharing -- very easy and convenient, and much cheaper than the alternatives. Working from home is really cool in this type of environment since I will have a lot of flexibility as I learn the business. Of course this also means that I really need a dedicated home office, and coincidentally the lot we were waiting for opened up. So we are now trying to sell our existing house, while building a new bigger house, as if I wasn't busy enough already. By the way, the dual effect of a new job and the house explains why I haven't finished the next release of my O/R mapper. Its supposed to clean up a few things, while I was also targetting have some NUnit tests included since I really need that best practice also. So that's what's been happening with me -- along with all the usual things that everyone else has with small kids in school.