edoceo

Business Services | Edoceo's Blog

I’m Done with Google (Part 2)

A long while ago I wrote about being Done with Google. They have simply taken over too much for my taste. Frankly however, I went “all in” on Google around 2006 or so. I moved many domains into the Google Apps and enjoyed all the services they offered. But, as they grew these services suffered; my most critical issue then was that inbound messages were getting dropped (because of how Groups had changed for Businesses over time) – it negatively impacts my customer service. So I started the migration out.

First let me say that you cannot escape Google 100%; just not possible. If you want to have a business presence on the Internet you must engage with Google and other large players (Twitter, Facebook, etc). So, we still have to maintain a Google Account – but we are moving towards one, based on a Gmail address.

As I mentioned before I have/had a number of domain accounts with Google using Mail and, as it turns out, many other services. Some I could just drop and had so little content I didn’t care but for the Edoceo brand I had loads of stuff – from Blogger (migrated to WP); Apps on the Play Store, YouTube, Google+ Pages and all that jazz.

Using a single “unified” Google Account (already existing) I started with a spreadsheet tracking all domains I had moved into Google (>5, <10) and then all the Services in there; then all the Accounts.

Last entry on this topic was over a year ago. It’s taken that long to audit and build this list. It was quite shocking to see how much interaction/integration with Google one human (or one company) has.

Stay tuned for the longer stories of migration of various accounts & services.

Issues Migrating to CloudFlare

I’ve been working to migrate one of my systems over to CloudFlare which on it’s face appears to be a pretty good service. I created an account, entered my payment information and began evaluating their services. I was not impressed with help pages that had images fail to load (due to 404s). Pressing buttons that generated some vague error message (request failed #1053) and froze up pages were also a bit of a turn off. Then the real pain started.

Switching NS

The first thing that CloudFlare is forcing me to do is flip over to using their NS. It’s handy that they’ve crawled my existing DNS and imported a bunch of the necessary records. That is a good thing. However, I don’t want to migrate NS until I’m sure this is the right path. Switching NS takes about 24 hours, so if there is an issue I’ll have to wait another 24 hours to roll-back the changes. I’m not willing to risk my site availability for 48 hours.

Blocked on SSL

Even without switching the NS records we can see what IPs CloudFlare would resolve my host to (using dig $hostname @ns.cloudflare.com). I then tweaked my /etc/hosts file to reflect that and attempted some connections. CloudFlare assures me that SSL will work. However, CloudFlare SSL doesn’t work until the NS has been switched. And I cannot switch the NS until I’ve verified that SSL works – and I don’t like to wait 24-48 hours to determine if I just broke a web-application that generates revenue.

Support Fails

I asked for clarity on the situation from their support team and explained my risk-averse position. They basically told me just to flip the NS. I don’t think the understood the request.

Sales Support

I contact their sales team. I’ve signed up for a paid product; the marketing materials said that things would be possible – things that are not working. The sales guy reported that with CloudFlare the SSL and NS are tightly integrated – only after NS is switched and verified can the SSL be issued. It was not a joke. First switch NS and hope it works; after NS has been moved (and traffic is routed via CloudFlare) can the SSL be issued. This whole thing runs on SSL. So switching means that I’m exposed to risk that my NS/DNS stuff gets messed up and that while that is happening the SSL will be broken too.

Summary

CloudFlare is a reasonably good product and the protections they offer are good and priced well (at $200/mo). This onboarding process sucks however. It’s not even possible to evaluate the outcome of the work you will be attempting – to ensure that things will go smoothly. If there was a mistake it would cost me more than I pay CloudFlare in a year.

To actually evaluate this process I’ve had to start off with a new, throw away, domain; get it configured similar to my primary, purchase (and wait) for it’s SSL certificates then flip to the CloudFlare NS, wait to see what happens – all while monitoring for breakages on this test domain.

The lesson for other technology firms is: Don’t make the risk of switching cost more than the services provided; Allow customers to get a full evaluation rather than forcing them to take high-risk first steps – just on on-board with your product.

Getting Fucked by Stripe

At Edoceo we’ve been using Stripe for a very long time (2, maybe 3 years) without issue. Part of that may have been because our volume of CC payments was so very low. For our little spin-off projects we’ve mostly used PayPal and using Stripe for consulting invoicing was dumb – most clients there paid via wire.

A few months ago we started using Stripe as they payment gateway for our marijuana regulatory compliance software: WeedTraQR – which is sold as a SaaS model.  They have just kicked us off are giving us five days. You’ve seen this warning, Stripe has threatened other Start-Ups.  So we were sort of prepared.  Here is the message we got – it’s the same copy they send to everyone.

Hi David,

Thanks for signing up with Stripe!

Unfortunately, we will need to stop offering service for edoceo.com/. Stripe can only support users with a low risk of customer disputes–after reviewing your submitted information and website, it does seem like your site presents a higher level of risk than we can currently support.

That said, we understand that there may be some work involved with moving your business away from Stripe, and we’re happy to help out with this process by giving you 5 days to switch to a new provider. After that, you won’t be able to accept additional charges on your account, but we will continue making transfers to your bank account until you receive all of your funds[1].

We’re sorry that we can’t offer ongoing service, and we wish you the best of luck with your business.

Best,
Olivia

[1] https://dashboard.stripe.com/transfers/overview

Why were were booted from Stripe?  Is it because we are in the marijuana industry?  We don’t sell pot, we sell software. They made no mention of this. We have zero customer disputes over our entire history.  In point of fact this is not even a customer dispute!  We were only trying a partial refund.

We moved a customer from one subscription plan to a less expensive plan.  Internally Stripe handles all this magic, crediting the customers account and pro-rating the next subscription.  This doesn’t issue an actual refund to the customer – it’s just an accounting trick inside of Stripe – they keep the money the whole time.  Neither Edoceo (or WeedTraQR) not the Customer has access to these funds (about $600) until the next subscription cycle.  I had simply inquired about how to issue and ACTUAL REFUND for the difference rather than leave the funds un-allocated in Stripes pocket.

It’s pretty clear to me, if you use Stripe and then have ANY normal business issues they get ready to boot you.  If you want to issue an actual refund for the difference between two subscription plans and not use their pro-rated magic it’s also a red flag.  Even when it’s not a customer dispute.  Maybe Stripe makes money on the arbitrage and actually REFUNDING will threaten their business model.

Anyway, fuck Stripe.  They can shove the five day window up their ass; we’ll be moving on to providers. I’ll be encouraging the other start-ups I advise to make a contengency plan and/or begin migration process right now.

 

Crappy APIs – Asana

We currently use Asana for some task tracking; it’s a pretty good system. However, I like to do extra stuff with my data – visualise my workflow (kanban?). Asana has a view, ‘Tasks by Project’ which is close, we use these Projects (but they are really Sections) for stages (Icebox, Talk, Make, Test, Beta, Live, Done). One would think that it’s easy to query, via some API the same view of active tickets by these Project (section) groups. It’s actually pretty crap.

Query For Tasks

Well, first we get a list of tasks, like /tasks, from the REST style API.  That makes sense.  But all we get is an array of objects, with ID and Name only!  No additional details.  To find these Secton levels, we have to identify Tasks with names that end with a colon ‘:’ #FFS  This means that we then have to query each task for the details – 2500 additional queries.

Did I mention that we have to retrieve ALL tasks?  This is because the sorting happens in line with the result set.  That is Tasks that appear after a Task COLON item are in that Project (SECTION!).  If you run a query to only find the recently modified Tasks, these Task COLON names don’t appear, because those groups were created more than a year ago.

Identify the Project/Section

Once a list of all 2500+ tasks has been collected, iterate each to get the full details.  Also keep track of which Task COLON the current Task appears after. When you query for Task it has a property called projects.  Which is not related to these Task COLON style Projects (in the UI) but are actually Sections.

In the Asana world there are two things that are Projects.  One are the top level Projects that are created for your teams – Engineering, Marketing, Operations.  Then, once you have selected a Project you can view tasks by Project – but this Project means the task groupings.  For example, selecting the top-level Engineering Project then viewing my Task by Project only shows Tasks in Engineering – not my tasks in Operations or Finance.  It does show my tasks grouped by these Section: dividers.

Like I said, grab the full list of tasks, iterate each and keep track of NameCOLON stuff (/:$/), query each object (cache them too!) to check state, then show in the groups.

Keeping Updated

Not to bad here, I don’t have to requery each Task.  I still have to query/iterate the entire Task list to find the proper Section – but I don’t have to check each task this time, cause I’ve cached the first results.  I then make a second query to Tasks API for the items that have been updated in the last N hours.  Now I only have to re-query those N items.

Closing

It’s pretty bunk I have to maintain so much of the Asana state on my end for what could (should?) be a simple REST query.  For example, the Task listing API could include a little more Task details, or could provide a filter for only not-completed tasks.  The Task Object or even the Task list (when extended) could have an attribute like: “section”: { “id”: #, “name”: “Colon:” }.

There are a few mentions on Quora, StackExchange and even Asana’s own site that these will be addressed but so far the progress has been very slow.

Five Warning Signs about your Technology Person/Team

It’s almost unreal how much your business depends on technology. Computers, Internet, Mobile, Social even the old-school fax machine is technology. It is a critical component of your business.

Over the past decade we’ve seen numerous times where the technology needs of a business were not being met. Sadly, many business operators are yoked to the wrong fit for their technology providers. Are the consultants, developers, engineers, technicians you work with on a daily delivering the value you need? Are they contributing or cramping your business?

Here are five of the behaviours that, at least according to us, should be taken as warning signs. These actions, or in-action, could be costing you hundreds or even thousands of dollars.

Warning Signs

Solitary Knowledge


Do you have only one? Or perhaps one primary who handles 80% of your technology needs? What happens if your one go-to is not available?

This is a simple continuity issue. If your mission critical systems are in the hands of only one person there is a very large single point of failure. If this person is unavailable what happens? For many the work stops, or is delayed. Think about the difficulty (both time and cost) with finding a replacement.

It is business-critical to have more than one person to depend on for their mission critical systems – such as revenue generating web-sites or in-office desktops.

Captive Knowledge


How widely known are your systems? Where is the documentation? Network maps? Server information and change-logs? Code documentation? Wiki? Source control?

All to often this issue is tied directly to Solitary Knowledge – why document when the team is only one? Without documentation new team members have to scramble in the dark to "get their head around things". This is wasted time for new members. Some times the idea of this sunk-cost when brining them on-board prevents the expansion!

If these kinds of things are not available it becomes difficult to on-board new team members. It also makes comparing new members to existing members impossible. That unshared, internal knowledge that existing team members is being hoarded up. If fact, this prevents new team members from performing to their best ability.

Infallibility


Is your Tech-team "never wrong"? Is their way always the "best"? How do they respond to new ideas? How do they respond to outside review of their work?

Tech folks are known for their arrogance/confidence – and lets not confuse that with infallibility. If your tech-team responds with declination towards others work then look out. When asked about others work do they claim they can do better or faster? If they say yes 100% of the time be wary – nobody is that good.

Superiority/Condescending


How about their review of others work? Or their reactions to the new team members?

Perhaps you’re fortunate enough to bring another person to the team – how does your Alpha member behave? Is the new guys work "terrible"? Is there heated discussions where the Alpha raises their voice first? (Big warn!).

Too often we’ve seen these first members belittle, degrade and insult new members. A bit of hazing is expected but obvious animosity creates an unstable team. It’s a clear indicator that the Alpha is not the right person for the job.

Accountability

Are they missing deadlines? Are projects getting pushed later and later? Is working piling up behind them?

If the previous four conditions exist you won’t even be able to track this. But, if you were, how do they respond when asked "why was this project two weeks late". You know what responsibility sounds like and if you don’t hear it then look out.

Many times these Solitary, Captive, Infallible, Superior tech-types have zero accountability – with no basis of measurement. Which documentation and shared knowledge would demonstrate. Put these systems in place. Soon!

Bottom Line

Don’t be afraid to prove-out the people your business depends on. Ask them tough questions. Ensure that you are not critically dependent on one person or team member. Ensure their work stands-up under third party review. Look for positive attitude towards new ideas and team-members.

Here is a check-list of things to have that can help you build an accountable, dependable and reliable tech-team.

  • 2+ humans on the task.
  • Documentation System – Wiki or something.
  • Issue/Work Tracking System – track assignments, estimates and completion.
  • Outside Review – find another person/team to check things out.
  • Outside Assistance – bring in other helpers on some tasks and gauge response.
  • Manage their Workload and hold them accountable

http://blog.edoceo.com/

CapLinked Doesn’t Work Right, has No Value

CapLinked found our company, through the magic of the Internet on May 17th 2012.
Since that time they have been bombing our inbox on a weekly basis with worthless messages.

What is CapLinked

CapLinked claims to be a service that helps to make private investment easy and you find Investors and Advisors for your business.

But Edoceo Doesn’t Trust Them?

Nope, For a few simple reasons.

Contact via Generic Mail Address

We never contacted CapLinked, instead they contact us. Through a generic email address in our domain (info). Lame. A better demonstration of their legitimacy as an organisation would be to contact through less generic. And, of course our account was created without action on our part so our first order would be to reset the password on an account we never made.

We’ve had multiple contacts with investors, advisors, angels &c; not once has that contact come through a generically guessable address. Quite the opposite in fact, contact was made via telephone or LinkedIn.

Pre-Fab Account Creation

The initial email was because CapLinked had already created a profile for us! Unfortunately, the profile was incomplete which means any of the other CapLinked users looking at us would think we are lame due to the lack of information on our profile.

It is not cool to automatically create a public profile for a person/company with incomplete information and then ask them to claim it. CapLinked should have waited for us to come to them (eg: like CrunchBase does it).

Non-Functional Un-subscribe

Naturally we tried their un-subscribe option.
That did not work.

A sure sign of a poorly operated company is a non-functional un-subscribe system.

Claim Feature Broken

So, finally we tried to claim our company. We were sent a “Claim Edoceo on CapLinked” email with a simple hyper-link. We followed it (incognito window of course). The page showed our incomplete profile with a clearly defined “Claim this company” button – which I clicked.

Within a few seconds I was sent another “Claim Edoceo on CapLinked” email – exact same text, formatting and message – except the hyper-link hash was a bit different. So, naturally we followed that link again. That resulted in the error message: “This company has been claimed by another user.”.

Duplicated Companies to Claim

Once we finally get into their system it’s odd that there are two profiles for Edoceo – but both have the same stub. Lame.

Summary

First you make an incomplete profile of my company and notify our generic contact address it exists. Then both the Un-subscribe and Claim features of the system don’t work. Duplicated company profiles and the only way to get a verified account is to pay $40/mo. Edoceo will stick with traditional methods of engaging investors, advisors and clients.

Edoceo fixes problem like these; we build systems that work. Perhaps CapLinked should contact us to get their system operational?

http://blog.edoceo.com/

How Wells Fargo Cost my Business $5000

We’ve been banking with Wells Fargo since Edoceo started in 2001.
Some recent incompetence by Wells Fargo (“WF”) has caused us to re-evaluate that position.

Mis-Represented Fees

When we started there and opened the three standard accounts (Checking, Savings, Line of Credit) they were all linked together. We were told that if we had enough assets (or liabilities) with WF that fees for these accounts would be waived.
Naturally, this appealed to us.

So, the owners personal banking moved to WF, a second business interest also created accounts there.
The sum total of these accounts was well over their minimum threshold to waive the fees.
It met the requirements we were told about: the assets of this one natural-person exceeded the base-line set by WF.

However, the fees were not waived.
We had few in-branch visits, brought this to the attention of the tellers, who said it would be resolved.
They manually reversed fees; but next month they were back.
This process continued for a few months.

Then, on one visit we were told that we didn’t meet their minimum asset requirements;
It isn’t the sum-total of assets from one natural-person; it’s measured per account operator (Edoceo, the Owner and one other business interest).
So, despite meeting the requirements stated to us by in-person bankers we’re still charged fees.

We were told that if we did an automatic transfer that fees would be waived; so we set that up.
Guess what? Still charged fees.

Those account fees, bill-pay fees have a sum-total over $2000.
That number doesn’t include any penalties or other charges – it’s just account fees.

Failure to Auto-Pay

When our three business accounts were created we had them all tied together – as advised by the banking staff.
The Line of Credit; attached to our checking was subscribed to auto-pay (a very common practice).
That process worked properly for quite some time.
In about 2008 that stopped for some unknown reason.
As a result we missed two payments against that LoC; which caused the rates to sky-rocket and cost fees.

We went into a branch, spoke to a teller who apologised for their mistake.
Told me they were re-enabling the auto-pay feature and that all would be OK.
Auto-pay then worked properly for 2008 and 2009 but again magically stopped towards the end of 2010.

Talking to the bank about it again we were told it was never configured to auto-pay (but how did it for the previous nine years?).
We were asked to fill out and sign some form, in the branch, to re-enable auto-pay.
We’ve done that (twice now) and auto-pay is still not working properly.

The Address Debacle

This one has cost the most head-ache; Wells Fargo cannot seem to get our address correct.

When the office moved in 2008 we dutifully went to the on-line banking application and update our address in their system.
As of 2012 the old address is still floating around their system (and impacts us later).
In 2011 our statements and other forms suddenly reverted to the previous address, w/o warning.
And, oddly, a change of address was sent to notify us – but that notification also went to the pre-2008 address.
We missed statements and other necessary business information due to this error by WF.

Going back into the on-line banking system we again corrected our address.
Change notification was sent, and we thought all was well.
Until again in 2012 we noticed that WF was issue tax documents for our business that again had that four year old address.
It also contained the WRONG COMPANY NAME.

We’ve spent more than 10 hours in the branch or on the phone with WF to attempt to correct this issue.
Each time the representative from WF said it would be fixed once-and-for all.
Imagine our surprise when, just yesterday, we received forms from the bank – which again had the wrong company name and address.

This clearly demonstrates that Wells Fargo cannot even manage even the simplest set of data for their customers.

Unauthorised Account Creation

This was the biggest disaster (so far).
Towards the end of 2011 we received a call from a banker at Wells Fargo.
Paul told us there was a way that we could reduce our account fees if we simply switched our account package from A to B.
We told him we were interested.

A few days later we discovered that we had six, yes six, new accounts a Wells Fargo – two new checking, two new savings and two new LoC accounts.
What was really odd is that the account numbers for these new account were different by only five numbers.
As if this guy Paul created new accounts for us; then repeated the process.
I hope those six new accounts helped put him over his new account quota for the month.

We’ve had to cancel/close those accounts; but not before paying some fees for those accounts – which we never authorised in the first place. Not to mention the fact that it took three requests (one phone, two in branch) to get those accounts to properly close.

Bottom Line

Mis-representing their products and disabling the auto-pay has increased our fees and charges with the bank. Repeated mistakes with our address has cost us time & time & time. Expensive time; missing bank-statements because they went to the wrong address (again and again) costs a small business time and money they don’t have. And those unauthorised new accounts, cost again time and money to get resolved.

It’s not a stretch; by any measure to conclude that we’ve spent not only a good deal of cash-money dealing with their incompetence but also (and more importantly) we’ve had to use our valuable time to correct their mistakes. For a small business operator that time is valuable – every hour spent in branch or on the phone to fix what WF broke is time we cannot bill for.

So, yes, obviously, after reviewing our situation it’s unlikely that we’ll continue with WF; nor would we recommend their services to anyone. It appears that the small-local banks might be the better option for your small business.

http://blog.edoceo.com/