About half a year have passed since me and Vadim have left MySQL to do MySQL Consulting on our own. Bunch of people have been wondering about our experiences so I thought it would be worth to share it here.
Feels Good. I always liked to be my own boss and funny enough I always was very independent in my professional life. In SpyLOG I was second person in the company and completely managed technical department, later in MySQL I still kept a lot of independence with my boss Tom Basil supporting my creativity rather than forcing me to do stuff. This started to gradually change in Corporate MySQL thought. Now I’m finally my own boss without limits. I can do what makes sense for me both in technical and business areas. It feels great.
Feels Scary Sometimes it felt a bit scary of being responsible for your decisions and actions instead of having steady paycheck, but I guess I felt that for only couple of weeks. The thing which was harder for me is administrative part such as time billing invoicing etc. I’m not the great person for such routine operations so it was not always done well. Good enough we’ve find a great person to handle time tracking invoicing and book keeping for us so we’re getting better.
Market is Great The market is now great for MySQL Consulting. The number of MySQL users is growing rapidly thanks for MySQL Marketing and Sales departments and of course loyal community of millions of users. Due to so quick growth of the user base there is shortage of people with significant MySQL Experience and so MySQL Consultants is great way to solve problems for a lot of companies.
Marketing Diving into consulting venture of course we have number of plans how we can get a word out where and how to generate leads. In fact we did not have to use most of them yet, this Blog, some conference publicity and referrals seems to be doing enough lead generation for us to keep us very busy.
You can work remotely Before leaving MySQL I actually talk to MySQL Professional Services Director – Josh, to check if I should move to the role of MySQL Consultant. I however found out I would need to spend pretty much all the time traveling, which could not work for me. In our own practice we work most of the time remotely and in fact we can have most problems solved such way in efficient fashion. I only had to travel couple of times for week long consulting engagements with rather complicated applications and set of problem, but even these could be done remotely. In some cases onsite visits really great – to talk to the team and let them draw application structure on the whiteboard or to have mini training done about efficient MySQL usage, or simply when security is too tight or time is the most critical. In many others however onsite consulting is just better understandable by management or considered less risky, while remote consulting would work great. Interesting enough in many cases Remote Consulting turns more efficient than onsite – It happened many times for me to come onsite to figure out major pieces of documentations are missing and people to tell about it are not where or admin team is outsourced so it takes many hours or even days to get access info to the boxes. Other typical cases of wasting time is waiting for developers to implement fixes which you have advised or running benchmarks. If we work remotely we can make pauses as needed spending time on different things. If you need couple of weeks to implement homework which we’ve given to you after first few hours we can break and continue as you’re ready.
Georgaphy I expected we would have most of the work from Europe and UK due to our location, in fact United States is still leader in number of jobs we do and sales volume. So it is again similar to the time when I worked for MySQL from Russia – lazy morning and then a lot of work piles up when you would expect to start resting or go to bed. We have number of customers from Russian speaking Americans or Americans having outsourced development to Russian speaking country, when our Russian knowledge is a serious plus. Russians are however leaders in contacting us via email and ICQ asking for free help.
Small jobs are tough From the very beginning our focus was efficiency and value. In fact in the area of performance optimizations a lot can be done within very limited time, sometimes just one hour, especially if working with small project implemented by beginner. It may be as simple as adding few indexes and tuning MySQL Server settings. It is more the question of knowing there to change things rather than changing things ourselves. We love these small project which often lead by young active entrepreneurs and we try to help them even if it might not be too much business for us, we do not have minimal number of hours at all. Large number of such jobs of course is challenging to manage and add a lot of billing overhead. That could be easier to put minimum to couple of days but It will be overkill for many projects and we do not want to sell people more than they really need.
Technical Sales I’ve never done Sales before, while I acted a lot as Sales Engineer. It turns out however selling is not that hard at least in my position. We do not do aggressive sales now – people contact us we arrange a call and talk with them about their problems. If we can can simply answer the question in 15 minutes call we simply answer it for free as it would not be worth billing hassles anyway. We also answer a lot of questions on our forum – if you can share your question we will try to share our answer.
Long term relationships Large portion of our single time engagement tend to transfer in long term relationships. We tend to know people application and systems so if it is something like broken replication or any other issues we can login and fix it quick. This works especially well for smaller projects which do not have DBA so even basic things may cause a problems.
People are scarce We also seems to have the same problem as everybody else who does MySQL Related work – it is very hard to find people with good enough MySQL knowledge. MySQL themselves are searching for them, Google is searching for them, Yahoo is also on lookout not to mention many startups and smaller companies. In our case requirements are even higher than in most of these places as we have to deal with all kinds of problems and we may have very limited time to have them resolved. If you think you know MySQL well and would like to work in young and active company let us know.
Growth As a business we need to growth, however we find it hard to growth while keeping our core values of quality and efficiency. We need to find a great people and train them and this is not something you can do in masses. Being small and growing slowly is probably our plan for now. May be we’ll become greedy one day or take VC investment and start building multi level support systems to handle large volumes but that is surely not the plan for now.
Time managing is complicated. I already described benefits of Remote Consulting for customers, but these benefits cause a lot of troubles for us and sometimes may backfire. With Onsite consulting managing time is easy you marked couple of days in your calendar bought the tickets booked the Hotel and customers normally would stick to the plan and if they pull out they get into extra expenses. In case of remote consulting work can be delayed, postponed, shifted and all sorts of things but not to happen exactly on schedule. This all makes schedule very chaotic – we may have work piling or days becoming idle pretty quickly. With customers it means sometimes we might be having problems with meeting deadlines and sometimes there is simply customer impression things are taking long, even though we were waiting on customer a lot of time.
Time is slipping This is again one of results of working remotely. If you’re working onsite you get 8 billable hours per day, 40 billable hours per week, when you work remotely especially on small projects and keeping chaos of rescheduling in account you get far less time than you possibly can do, even though you’re working hard.
Remote consulting allows you to bill efficient hours rather than wall clock hours but it means you get less of them. Also we should be following MySQL and industry news and do a lot of other things which have to be on our own time.
How are we helping people ? Even though we’re saying we’re focusing on MySQL Performance the scope of our work proved to be much larger. We handle a lot of architecture design for MySQL and LAMP systems in general, LAMP performance optimization, replication and high availability, scaling, writing whitepapers, helping people with data recoveries, implement MySQL patches and do some general script coding. We also have been workings as part time DBAs for some projects helping to secure MySQL setting up backup policy and monitoring and make sure it is running healthy in general. Yet another area we’ve recently got quite a lot of work is designing implementing and performance optimization of full text search applications, especially after we brought Andrew Aksyonoff to the team.
Projects Leaving MySQL we wanted not only to work as consultants but also to work on our own Web projects. This is fun and it also makes us more capable of solving customer problems because we have experience not only advising how to do the things but also implementing things ourselves, which gives quite a different prospective in many cases. Some projects we’ve mentioned (with different level of involvement) are NNSEEK, BoardReader and some others which we rather would not disclose for now. In the Open Source area we work on Sphinx Search as well as bunch of MySQL related scripts.
As a summary we have 70+ hours of work per week but we’re enjoying what we do and see bright future ahead