A sad time at Kachingle

(written by lawrence, however indented passages are often quotes)

Very sad. I was working part-time at Kachingle for a month. They have decided to not pay me for the work I did in October. I notice they have not updated their App.net account since I left. The last post is the one that I posted (see screenshots below). I find that surprising, since while I was there, the only interest they got from app developers (about using the Kachingle app store) was the handful of responses that I got by talking to indie developers on App.net. I think the devs on App.net are the core market that Kachingle needs to appeal to. I am very surprised that Kachingle would ignore the potential there.

Right now, all the posts I can see on the App.net account are by me. Cynthia Typaldos (founder and President of Kachingle) urged me to use App.net to reach out to people like Dalton, whom we all wanted to meet with. I think that investing time in App.net was a good strategy, though I think to make this strategy really work Kachingle will need to invest time steadily, for awhile, to reap the benefits. A community like App.net is one where relationships build up over time. I was active on App.net for 2 weeks, using the Kachingle account, but Kachingle will need to continue with the conversations I started, if they are develop those connections into real relationships.

The amount of money that Kachingle owed me was fairly small (just 2 weeks of part-time work) but I am surprised they would refuse to pay. A week after I left they sent me a severance agreement which I signed and sent back to them, and then 2 weeks after that they wrote to me and said they would not pay the money that was offered in the severance agreement. I think that was the biggest surprise of all.

My contract said I would work 4 days a week, which is 17 working days a month. At the end of September they paid me for the work I did in September. After I left in October, they sent me assurances that I should expect a payment soon, and even as late as November 8th they sent me an email saying I should expect a payment. But a few days later they wrote and they said they would not pay me. At that point, Fred Dewey, the CEO of Kachingle, included a list of complaints about my work, which I’ll talk about below. I have the feeling that the complaints were invented once they decided to not pay me, and I think they decided to not pay me because they felt hurt that I had left.

In the end, this is not a big deal. The amount of money is too small for me to bother with stuff like a lawsuit. Still, if any developer was going to sign up with Kachingle, you may wish to think about the details of my own experience. I personally find it very surprising that they would send me a severance agreement and then later break the severance agreement. Who does that? Is this a normal way to run a business?

I would guess that a lot of developers will be in the same situation that I am in: if you do have a dispute with Kachingle, the amount of money involved might be too small for you to bother pursuing them, if they were to break an agreement with you. I realize we all like to fantasize about creating an app that will make millions of dollars, but most apps only earn small amounts of money. If you are owed $500 or $1000 or $2000, and someone decides to not pay you, is it worth the trouble and expense of a lawsuit in some far away city? I think most indie developers will see this the same way I see it: pursuing this is not worth the trouble.

More so, if you are a developer, and you sign up to sell your app through the Kachingle store, what happens when there is a dispute between you and a customer? What if a customer feels that you have fraudulently promoted a feature that the customer feels your app doesn’t really have? Is Kachingle on your side, or is it on the customer’s side? Do you get the money, or not? My own experience is that the management team at Kachingle can be unpredictable. You would be wise to be careful.

I have the impression that Cynthia and Fred disagreed about what my role was. The confusion started with my title, which had 2 parts: “Senior developer and API Evangelist”. The first part implies programming and the second part implies marketing. I think Cynthia thought of my job as mostly a marketing job and Fred thought of my job as mostly a programming job. I think I got caught in the crossfire.

For most of the days that I worked in October, I was actually sitting at the dining room table at Cynthia’s house and we (she and I) spent a lot of those days talking about who to reach out to and when. The burning question was how to get the first few app developers to sign up and create the first bundle in the Kachingle app store.

Cynthia felt that I should go to a lot of tech conferences and thus, hopefully, meet a lot of developers (this was part of my role as API Evangelist). Of my few days working at Kachingle, Cynthia sent me to all-day conferences for 3 of those days, and I also spent parts of other days going to various Meetups. I had some interesting conversations at these conferences, which I summarized in several reports for the team. I also collected a dozen business cards from people, and these I scanned and sent via email to the Kachingle salesperson. Later, when Fred decided to not pay me, he said (among other things) that I had not gotten enough business cards. Of course, no quota had ever been specified. If I’d been told “You must get 20 business cards a day” then I would have run around asking people for their cards, so I could hit the quota. (But I doubt that would be an effective technique for getting developers to sign up for Kachingle.)

If you are working part-time for a month, and less than half your time goes to programming, then there isn’t much time for programming (especially given the volume of email, which was sometimes more than 100 in a day, which took a long time to read). All the same, I did some minor programming stuff, like upgrade the WordPress blog and fix some plugin issues. I also wrote one script that I was very proud of, a complete database import script that could import both data but also all of the changes that might have been made to the schema, and it even kept foreign key relationships up to date. So if you had a source database and a target database, the script would copy over the schema for any tables that were in the source database but not in the target database. Then the script would loop over each table and check all the columns, and if there was a column in a source table that was not in the target table, then that column had its schema definition copied over. Then the data was copied over. Finally, there was the foreign key look up, which depended on the naming convention that a field such as “user_id” referred to the “id” field in a table called “user”. So if, in the source database, there had been a “subscriptions” table and if in some particular row the “user_id” field had a value of 1290, but after the import this same user now had a user.id value of 89943, the script made sure that the “subscriptions” row for that user had the user_id value updated to 89943. I thought it was a clever script and I wish I had kept a copy because I could use it for a lot of my other freelance work. However, there were about a dozen fields or so that broke the naming convention and for which I would have had to hardcode some special logic. I was new and had no idea how Kachingle’s system worked, so I wrote to the other developer (who has been with Kachingle almost since the beginning) and asked him how I should handle the convention-breaking fields. He never responded to my questions, so I could not finish the script. This was then used against me when the time came for Kachingle to pay me.

There is at least one sense in which I agree with Fred Dewey: programming has deliverables that seem more concrete than marketing. On November 13th, when Fred wrote to me and said he would not pay me, he raised some questions which I think can be fairly summarized as “Where are the deliverables?” And if my job had been 100% about programming, I would have been able to point to the code that I wrote and say “These are the deliverables”. But what is the deliverable when your role is “API Evangelist”? I could, of course, point to the dozens of emails that I exchanged with developers, and I could point to the comments I posted on Hacker News and I could point to the conversations that I had on App.net and I could elaborate on the conversations that I had with people at various tech conferences, and yet all of this seems less concrete than if I’d simply been coding. However, while I was working for Kachingle, I was told to take my instructions from Cynthia, and Cynthia instructed me to spend most of my time on these activities (activities that are basically marketing activities). I think it is unfair that after I left they suddenly decided that the things they asked me to do are things which I should not have done.

I am 100% sympathetic to Fred’s point of view regarding the servers: Kachingle needs a staging server that mimics the production server, so that code can be properly QA tested before being deployed. But I was very surprised that Fred somehow felt the QA situation was my fault. When he wrote to say that he would not pay me he made the accusation that I had deployed the blogs and that this had broken the blogs. But I never had the power to deploy anything. I was never given root level privileges on the production server. It was the QA guy who handled all the deploys. In theory, the QA guy would test all code on the dev server, and then, if everything looked good, he would deploy it to the production server. However, there were some important differences between the dev server and the production server: in particular, the production server was running an older version of PHP than what ran on the dev server. It is true that I made some changes to the blog, and that these worked great on the dev server, but the whole thing broke when deployed, because the newest version of WordPress depended on a new version of PHP. If I had root level privileges on the production server I could have upgraded the PHP, but I didn’t have those privileges, so instead I rolled back the version of WordPress. Most startups, including my own, struggle along with imperfect dev environments. Had Fred simply said, “I wish we had a staging server that exactly imitates the production server in all ways” then I would have agreed 100%. This is something I want for my own websites: a true staging server that runs off the production database and allows me to see breaking changes before I deploy code changes. However, I was surprised to find this turned into an accusation in the email that Fred sent me. All of the decisions about the dev server, the production server, and the deployment process were made a long time before I ever showed up. If you want a new programmer to be able to join your team and commit code as part of a process that won’t impact the production server, then the right thing to do is to put some safety nets in place: a staging server that matches the production server is the most basic beginning.

I should add, when I worked at monkeyclaus, in the early days we were so desperate for cash that we could not afford a dev server, so any time I changed the code we deployed it directly to the production server. We simply accepted the fact that sometimes our deploys would break our sites. And I think that is fine when you are trying to bootstrap a business on a minimalist budget. If you don’t have the money to do things right, then you simply have to do the best you can and live with the results. And certainly I could respect the attitude at Kachingle if they simply said “We haven’t had time and/or money yet to setup the servers the way we want, so sometimes stuff breaks” then I would have said “I understand 100%, I have been in that situation myself before.” But the attitude they have expressed, where they want to put the blame on me, is very surprising and deeply unfair.

(I am curious where Fred got the impression that I deployed the blogs. Did anyone on his current team vet that email before he sent it to me?)

I am very, very happy to have gotten out of there quickly.

The original contract that Kachingle sent me, and which I signed, had these words in it: “Within ten (10) working days after receipt of the Deliverables, Kachingle will accept or reject the deliverables. … If Kachingle fails to notify Consultant within the specified time, Kachingle will be deemed to have accepted the Deliverables.” For 3 weeks after I left, Fred Dewey sent me assurances that I would soon be paid. When he finally wrote to me, and said that he would not pay me, I wrote back to him and reminded him of this 10 day limit that he himself had establish. He responded that I was “in breach of contract” and he implied that this freed him from the terms of the contract. But I could only be in breach of contract if I had done work that they did not accept, and by their own contract they had implicitly accepted all of the work that I had done. I have the impression that Fred is taking a very aggressive stand that he would have trouble defending in court. He may have estimated (correctly) that I would not bother going to court over such a small amount of money.

The greatest irony of all is the fact that the most trafficked page on my blog (this blog) is my post “Fred Dewey is misunderstood“, in which I argued that Fred Dewey had good intentions. But of course, now that I have worked with him, I have a very different view of him. Fred promotes what he calls “Love based leadership”, which arises from his spiritual beliefs. The rhetoric he uses to promote this ideal is very noble, but the reality is much darker.

By the way, if anyone from the Kachingle management team reads this, if you feel anything in this post is inaccurate, please let me know. If I can be shown that any sentence in this post is in any way incorrect, then I will fix it immediately.

I wrote some of this post on November 13th, and I almost posted it, but then I thought that if I simply waited a few weeks then surely Fred would calm down and I could talk about this with him in a reasonable way. So I waited 2 weeks and then reached out to him again. But he affirmed his position of the 13th. I figure life is too short for me to spend endless time focused on a bad experience like Kachingle, so I’m just going to post this and forsake any money from Kachingle. They can keep their money. I suspect that in their hearts they know that they have behaved badly. They will have to live with that.

Source