So, you want to know something about me? Here's some things you should know.
I Live on EarthMike Christian lives in the vicinity of Salt Lake City, Utah (USA). Most people ask one of the following questions, so here's the reply:
- Yes, Utah is in the USA.
- Utah is one of those square states, located in that area everyone forgets about, between the Mississippi River and California.
- No, I don't live on a farm, own a horse or tractor, and believe country and western music are sinfully awful. I'd rather listen to a band of banjos, accordions, harmonicas, and trombones.
- No, I don't own a boat. The high concentration amount of salt in the Great Salt Lake clogs boat motors, opening the lake only to sailboats.
- No, I don't go to the beach a lot. There is only one, man-made beach. The lake smells bad, and is surrounded by miles of deep mud.
I'm a Smart Guy
I thoroughly earned a Bachelor of Science in Information Systems and Technologies. This means I find technology solutions for business problems. This degree involves attending a few of EVERY type of business class, to understand how all types of business operate. This is a huge pain, enormously time-consuming, expensive, but incredibly useful. I am surprised by how often people over-complicate a technology solution, when a simple, often non-technology based solution works.
Almost all of my architecture, development, and design skills are self-taught. I have some Microsoft certifications; but, we all know the real learning comes through experience. Certifications set a level of performance expectations for employers.
My Development Philosophy
I have a few rules that guide my application development.
- The user experience (UX) makes or breaks an application; nobody will use an application that is confusing or frustrating
- The users create and QA application requirements, not the customer, managers, or developers
- Application interfaces should require no training
- Power users may have more complex, specialized interfaces; but, these should still be intuitive and require minimal training, of any
- Don't write untested code; a full contingent of tests must be available for regression testing, BEFORE promoting code out of the development environment
- Write code and documentation for "future you" that will forget everything you have done
- Automate all documentation generation that is not an end-user manual
I Have a Job
Although I do a lot of consulting and personal projects, I also have a day job. Bills must be paid, and I'd rather not land in the middle of some fresh hell of horrible code every 6 months; I'd rather suffer from my own past mistakes.
Here's what I have done on the professional front, from present to past:
- Senior Systems Analyst, Utah Retirement Systems
This company required modernization from mainframe systems, business processes, and management methodologies, all nicely preserved from 1976. I am the guy they hired to advise how to do this properly, and what should replace the old. A lot of very dusty philosophies and work ethics needed to be thrown out at all levels in the company. A lot of re-organization, enterprise development, and re-training are going on.
- Chief Technology Officer (CTO), MFOTS Inc.
I was a founding member of the popular, franchise based video gaming communities. I was an employee of MFOTS starting in my college days, and spanning three day jobs. I developed and maintained everything by myself, until we employed some developers. Our communities were an immediate success from the first day, and grew to be very popular. MFOTS sites appeared in magazine articles, we hosted international events, and had a lot of co-located hardware in Atlanta, GA. MFOTS was tremendous fun. Ultimately, we chose to sell all assets and close the company, in favor of our rapidly developing careers and growing families. I often wonder where we would be today; probably somewhere along the lines of Rooster Teeth, which started a couple of years after MFOTS. C'est la vie.
- Software Engineer III, Innovative Systems Architect
I worked as a contractor to the US Air Force, on two contracts:
- The first was to create line of business applications for a large wing that includes several tenant locations around the world. I also led the move of all file server content and Web sites for organizations in the wing to the central USAF portal, with plenty of time to spare before deadline. I also served on the USAF Material Command SharePoint committee, to discuss how to best employ a command-wide solution.
- Secondly, I worked with a RADAR Evaluation Squadron, by creating an application that catalogs LIDAR elevation surveys, and uses them to generate virtual geologic surveys. It is very important to know what is blocking RADAR signals and where coverage is. I am very proud so say my service is able to conduct a 360-degree, 0.1 degree increment, 25 mile radius coverage report in 0.1 degree increments, within 20 seconds, via WCF. This also allows survey teams to place a new, accurately shaped building or other obstacle on a 3D survey model, rather than travel to the (typically very remote) site for 3 days. The USAF had ever used the UTM coordinate system in this way, which meant I had to invent ways to determine if my WGS84 coordinate results were accurate or not in. This was a very fun job!
- Web Applications Developer, Lifetime Products
Lifetime needed help. Everything was saved to a single file server that had no meaningful directory structure past the top level. I worked with every level of management (mostly the VPs), to get everything neat and orderly. I created an intranet portal and document management system. As a Microsoft pilot company, we replaced that with a beta version of SharePoint 1.0, which was surprisingly similar to my own portal. (Quite a shameless statement, isn't it? True, nonetheless.) I later restructured and upgraded to SharePoint 2.0, complete with a home-made "recycle bin" feature. I created many Web applications including the public-facing site and e-commerce. As soon as .NET Framework 1.0 released, I was Microsoft certified in C#, ADO.NET, and ASP.NET. Ah, the old, frustrating days of 1.0...
- Web Applications Developer & Designer, World Net Services
This was my first professional job. I learned much about how business should (and should not) be run. Besides designing and managing static web sites, I was using that new-fangled Cold Fusion framework, to build e-commerce solutions. Self-provisioning Web sites and content management services did not yet exist -- we were inventing them.. sometimes in Simpletext and Notepad.