Will Bridges

Unconditional Wisdom

Archive for the 'Programming' Category

2.0 State of Mind

The web can host applications that are platform independent and ultimately scalable. That’s what we are working on at Bluepaw. We are working on a set of applications that we can deliver to manage businesses and manage their interaction with the internet. We call this the ‘Paw’ line of centralized software. All software uses Web 2.0 concepts and each piece of software in the line will be built for a type of business.

Each client that has an instance of the software will have the same code that will be a core engine driving the software. There may be modifications for that particular client. Those modifications will enhance the quality of the overall application and will be merged to the core software when they have been tested and we believe there is a possibility other clients will use the modifications. Each client will pay a subscription and hosting fee for the software as well as for the installation and any custom programming for their business. The subscription fee will allow us to bring in future upgrades as the software package improves. We will also take 25% of all income from the software and put it back in to the development of that particular software package.

We will follow a modular style of adding features to the software. Anything that changes the functionality of a the core code would not be merged to the core software as it could break other sites. That is, unless it was a fix to the core code. In that case it would be merged to the core in a very delicate manner.

The first part of doing something like this is a very flexible data model for each business and researching the business in question. In many cases before you start programming you should know the business better than the people or as well as the people in that particular business. Luckily I know a couple industries where I actually know people in the business to launch test sites with and create a buzz. My first intention is to go really cheap or free with a client in the industry we are working with to build the software and in return we get insight in to the business and build a base software package. From that we create a client base and a buzz around the software. Many times people want to know who uses a software package before they buy in to it. So, it’s good to have a client list that use software even if you have to give cutthroat rates. As more people use the software you can raise the value of the software and thus raise the price. Eventually you reach a point where you are making several times the cost of development for the software.

Another strategy we are using to get our development costs low for this ‘Paw’ line of software is to hire outsourced resources as trainees who are good programmers but aren’t familiar with Ruby on Rails or want more experience. We pay them very cheap as they learn and review their work as they go. This way we are training future resources and getting something of great value out of it while we are doing it.

I know you business minded folks are out there reading this. Don’t get any bright ideas! Just kidding. There’s enough room for us all to make money.

Oh Yeah, I Have A Blog

I’ve been so extremely busy lately I haven’t talked to my good friend, the blog. Sorry to all the people who are interested in my life and ramblings. I just have been very busy.

Anyways, what’s been happening? Derek, the new CTO for Bluepaw Enterprises has been working hard. He is having some difficulty balancing managing and programming. But, since he is new to the position I figured it would take him some adjustment. However, he is doing an excellent job of understanding the business of web development contracting.

My son, Juhlyun is almost 7 months old. He has to be sat up but he can stay sitting once you put him on his butt. So, he’s getting to the point where he can sit on his own, soon. We started him on stage 2 foods, which I thought was pretty cool. I went crazy yesterday and bought like $100 worth of food and such. He’s eating meats, vegetables, and fruits. Some of the food sounds pretty tasty but I haven’t ventured to tasting any of his food yet.

We got a large new contract with a medical transcription software development firm here in Nashville, Base Systems Inc. We will be helping them finish the development of their product over the next 3-6 months. We are pretty excited about it.

I’m going to Atlanta this weekend to celebrate a long time friend’s birthday. That should be very interesting. She rented out a club and Yendis and I got a hotel room right across the street from the club. I’m supposed to be really busy working this weekend but I couldn’t pass up going to her 25th birthday party. She’s actually Yendis’s cousin as well so Yendis really wanted to go too. I haven’t been to Atlanta in a couple years but I always had a pretty good time in Atlanta.

Oh yeah, after months of being in business I think we are finally going to get health insurance at the end of the month. With Derek coming on board we have been able to near completion on several contracts, accepted some new contracts and have a good influx of money coming in. We will be getting the best available because I consider health insurance pretty important.

On another note of finances this month I will finally finish building my computer. This is no average computer. It’s a beast of a computer. I will detail the specs in another post at the end of the month. But, I tell you it’s beautiful. Brings a tear to my eye.

My best friend moved his wedding back to the fall so looks like I won’t be putting together a bachelor party till the end of the year. I was so looking forward to it but it looks like that will give me some more time to save money for it. I want it to be an enormous bash. The kind I want to have when it comes to my bachelor party.

That’s all I have now. I’ll post again next week. I swear. No, for real this time…

Bluepaw Enterprises: New CTO

I finally brought on a person full time to help me with work today. I hired a friend and former co-worker as my Chief Technical Officer (CTO). At this point in my business it was absolutely mandatory that I do this. I have far too much on my plate and haven’t been able to dedicate myself to the things I do best, such as bringing on new clients, managing client relationships, and business planning. We have enough work to sustain someone right now but from the point of view of that person it would still take some faith because we can’t promise much and don’t look incredible on paper. This person had the right amount of faith to come on board. But now I can go balls to the wall with client development which brings me out of my ‘catch twenty-two’ of needing someone to help me program so I can get more work on board.

I was lucky enough to catch this person on the way out of a terrible job to bring them in to the fold. Now, it’s in my hands to lay out the work and adjust. I’m not at all worried about hiring my first official employee besides myself. I have been using contractors thus far and have had certain limitations because of that. Plus, I had to manage those contractors, which is a job within itself sometimes. But, now with someone else in the fold who has a permanent interest in the company I think we will move much faster to our ultimate goals.

Delicate Procedure

In the search for a partner I have one person I am interested in and 3 backup people I will feel out given the first one decides not to come aboard. My strategy in business has always been to never put all your eggs in one basket. Make sure you have a backup and a backup backup and a backup backup backup if you can help it. One of my 3 backup people I find very unlikely to come aboard because I don’t think he takes me seriously. However, I still went ahead and told him that I was interested and told him I would make an offer to him at some point. Now, I probably should have waited till I was sure the first person didn’t accept but I feel that all of these people will come available pretty soon and I wanted to make my intentions known.

Really, I am loyal and also I feel my first choice for a partner is the best choice but I don’t really know if he’s going to accept. I have a feeling his spouse doesn’t think I’m for real or something of that nature. Oh, but I am so for real. Why some people don’t take me seriously I’ll never figure out. Maybe I don’t seem like the type of person that succeeds because I’m laid back and seem ‘aloof’ at times. Every goal I have set my mind to I have achieved in some way or fashion even if I didn’t hit it right on the nose. I’ve helped bring my friends up many times. I’ll admit to dragging my feet from time to time or appearing to be stubborn but these traits don’t define me. I truly am blessed and want to bless others as a result.

Finding a great programmer that is willing to be a partner is a hefty endeavor when people don’t really take you seriously. What’s funny is this is the only time in my life I have had people not take me seriously and this is the time I’m most serious. I guess I have to remember that most of the people I’m talking to don’t know me very well. I’m going to provide a good life for my new family and I don’t see anything that will stop me from achieving that goal. However, I do believe that everything falls in to place given you have enough ambition to set up the right pieces in life. So, I’m sure the right person will come forward at some point and make a commitment and that’s all I’ll need to drive my business to the next stage.

Bluepaw Enterprises Inc

I said in my last article that I incorporated my business but I was so busy I didn’t say much about this. Really, I’m very happy to create a new responsible corporate citizen. I have had so much business that I have had to slow down and almost stop accepting new projects. Though I haven’t completely cut off the amount of work I accept I have decided to not advertise for a couple weeks while I catch up. I have 5 other people helping me get some projects completed. Each person has a varying amount of time to give me. Most only have about 10-20 hours a week to provide. This may seem like a lot but it’s really not that much. Putting more people on a project doesn’t always make it go faster. So, I have to be very careful how I place my resources.

I subscribed to Quickbooks Online to manage finances. I also signed my business up to accept credit cards. Got a business account… did all the things I needed to do to have payroll. This was all very entertaining but tiresome. I started looking for a partner to lean more twords the programming end of the business so I can lean more to the business end of it. The hunt is still on to find someone to do that. It seems no matter how much business I have coming in it’s hard to get someone capable to make that move with me. But, I have high hopes for a couple options.

I’ve separated all my personal finances and corporate finances. This was strange because I’m used to having both in the same pool. Now, I have to think about my corporation as a separate person I am responsible for. I find myself asking questions like ‘If I were my corporation would I pay myself for what I just did and if so, how much, and when?’. Anyways, this is all going pretty well and it hasn’t been that painfull thus far. Just building away at my legacy.

Human Resources

I finally found a programmer who I think I’m going to be able to use for some of my overload of work. He’ll work for about half of what my other programmers will. I’m not going to stop using my other American programmers but I’m going to use him to be able to be able to take on more projects and provide more profit.

I’m going to give him one of the projects I’ve been sitting on for a while and needs to be done in February. I have 3 projects that are due in February and I’ve been desperately looking for help. I have some friends locally that are helping but I wish to expand my resources beyond that.

So, wish me luck on my first outsourcing venture!

Steady Expansion

I’ve been expanding business slowly to try to get clients in foreign English speaking countries such as the United Kingdom, Australia, and New Zealand. I finally found Skype for Linux so this helps communication difficulties ease up a bit. I primarily use Ubuntu Linux for my desktop environment and I love it. Sometimes it’s annoying when someone has some windows program that I can’t use but that rarely happens. The only time I boot in to Windows is when I want to play a game that won’t run on Linux.

Back to expansion. There are several reasons I like foreign compensation. I still ‘voluntarily comply’ with the IRS codes saying some persons have to report ‘income’. But, once again, it expands my client base. If the US dollar is obliterated by a crash (even though world economy would be effected) I would still be able to work and not solely have to depend on the dollar.

Expansion is hard to deal with because I only have a limited number of hours to barter with. I do have help from a colleague that gives me about 10-20 hours a week. But, I’m going to need a lot more than that soon and I wonder if I will be able to find someone to fill those hours at the rate I’m quoting clients. Most likely I will find someone some where. But, finding someone I trust and don’t have to micromanage is the hard part. I did have someone who was willing to give me a lot more in the way of hours (up to 40) but that fell through because I couldn’t provide the work fast enough. He thought I was full of shit. Soon after he decided I was full of shit an influx of work came in. So, I did find someone to help with that burst. But, I’m about to go through another burst and I need to find someone to help me deal with it. However, long term, I am really looking for partner. My search so far has been difficult because I’m really picky but I’ll find one in the next couple months I’m sure.

It’s interesting to see that ruby on rails is a world wide phenomenon as fast as it has become one. But, it goes to show the true power of ruby on rails when a world wide community starts to endorse it. Ruby on Rails is growing up… awwww…

Rails Programmers

It’s great being a Ruby on Rails programmer. But, really you should learn more about Rails before you go professional if you don’t know about testing, migrations, or plugins. It would save other programmers a great deal of time and pain going down the rabbit hole when we inherit your poor code. I’ve run in to projects where testing would be a great idea but it’s hard to tell your non-technical client that we need to spend x amount of hours on the clock adding testing and putting in valid migrations because your former programmer didn’t follow these practices. Unfortunately, I’m guilty of sucking it up and telling the people that do work with me ‘if there are no tests only build tests where it helps you in the process’. But, it’s a hard sell with a new client to spend time on building infrastructure they may never notice. So, Rails programmers and aspiring Rails programmers, let’s learn:

  • What a rails migration is and why it should be essential.
  • What is testing and why it is important.
  • What the differences are between unit, functional, and integration tests are.
  • What plugins are available and why you shouldn’t re-invent the wheel by ‘rolling your own’.
  • What engines should be used for and what they should not be used for.
  • What a helper is and what they are used for.
  • Separation of concerns and strict use of the Model/View/Controller methods.
  • What a library is used for in rails, where it goes, and why it goes there.
  • Most of all, DON’T REPEAT YOURSELF! (DRY). Do not copy and paste code. If you do, it can probably be turned in to a method.

If you learn these lessons or are researching these lessons you can become a great Ruby on Rails programmer. If you scoff at any of it, please go back to your native language and leave Agile programming for the professionals.

BluePaw Software Website

I finally got my business website re-designed. Here’s a link to it BluePaw Software. It actually turned out real great. My friend over at Olio Creative traded me some design work for some programming and redesigned the site for me. He did an incredible job on both my website and my business cards.

You’re probably asking why ‘BluePaw’ software. The story really isn’t that interesting. It comes from very early in my career when I created some relational database software from scratch called ‘Blue Tiger Database’. I came up with the name from that because it’s a way for me to remember to never waste time re-inventing the wheel and pound those agile concepts that drive my company now. A paw makes a great logo as well. I was thinking about a lot of things when I decided on BluePaw Software. Anyways, check out the website.

International Business

I find it very appealing that now I have clients in other markets beside the US market. Diversification is survival. As soon as I learn Spanish I can start taking on Spanish speaking clients. It is however, very difficult to speak on the phone when you have clients in a far off land. This is a potential drawback for some potential clients who want to work with people not in thier own country. Such as right now. I’m actually waiting till 6pm so I can call someone in Austrailia at 11am their time. But, international money is just as good as any money and helps create a global client network. This is something that every programmer should have these days. You’re only as good as your network. The larger and more diverse that network the more able you will be to thrive.

« Previous PageNext Page »