Categories
All Consulting CTO/CIO

How not to handle “we’re not paying” emails…

via GIPHY

I saw this thread recently posted on Hacker News. “We’re not paying invoices due to the pandemic” – How to handle these.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

What shocked me is what Patrick McKenzie (@patio11) suggested:

“The right response is probably ‘I have received your letter. The invoice is good. I demand payment by the date on the invoice, under the terms of our contract'”

Wow. Powerful words. Mildly threatenting.

Here’s what I would suggest…

1. I demand payment under the terms of our agreement

I really don’t want to ever receive letter demanding anything. It’s unpleasant. It feels threatening. Why would you send such a missive to your client or customer?

As a consultant or freelancer, you should understand that you are *NOT* an employee. As such you are not protected by the law in the way payroll employees are. You should understand that the first ones who get paid are payroll, next would be rent & utilities, and lastly would be contractors or vendors.

What’s a better alternative. First keep good communication. Let your client know we are all struggling, and we can work through this together.

I typically send a message with subject “a gentle reminder: invoice xyz due on date abc”. Encourage any kind of communication, and keep it open. Don’t be afraid to remind your customer again in two weeks. If you don’t hear back, ask again just to make sure the messages are getting through.

Patience wins the day.

Read: How to avoid legal problems in consulting?

2. I’ve got bills to pay, this is serious

Talking from your own point of view, is not helpful. What’s more it encourages your customer to also see things from a selfish vantage point. Instead speak from their point of view. Explain that you understand where they are coming from, and let’s work together to get a portion of the bill paid. 50%, 25%, 10%. Any amount is good because it means an action has been taken. It confirms the invoice is valid.

As far as those bills go. If you’re a freelancer, and running out of money, you’re doing it wrong. When you freelance there is overhead, for health insurance, vacation & sick leave etc. If you are not making the rates that cover these costs, it doesn’t make sense to be freelance in the first place. In fact it means you’re not billing right, packaging right and selling right.

Related: When clients don’t pay

3. Remember this is a test for everyone

The current pandemic is a challenge for everyone. Small and large businesses, freelancers, deli, laundry owners, restaurants & music venues. I can go one. Please keep this in mind before you go off and send some email to your non-paying client, that you will later regret.

Keep your perspective, take a deep breath, and be the bigger man. Take the high road, and keep your center. We will all get through this together.

Related: Why do people leave consulting?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Cloud Computing CTO/CIO

Why is there a company whose only purpose is to help me with my AWS bill?

via GIPHY

I know everyone is talking about the pandemic at the moment, I thought I would sidestep the topic, and continue to discuss what I know best. Which is public cloud!

Join 35,000 others and follow Sean Hull on twitter @hullsean.

Of late, I see more and more discussions on CTO forums, and in the news on surprise AWS bills. Did you hear what happened NASA’s cloud deployment fail?

So I thought I’d provide some history, and a few ideas…

1. Oracle days

Believe it or not this has happened before. In the days when I did a lot of Oracle work, I remember it was terrible how tough their licensing was. And companies were pretty much hamstrung because they needed the technology to run their business.

Given the demand, new firms like Miro Consulting stepped in to help. Their business is specifically built to help customers with out-of-control Oracle bills.

Read: How to hire a developer that doesn’t suck

2. Repeating refrain

What’s this got to do with Amazon Web Services you say?

Just today I discovered a firm that promises to help you lower your aws bill by 20-40%.

Promises aside, if there is a business doing this, there must be money to be made in it. So that speaks to a sizeable market opportunity.

Related: When you have to take the fall

3. AWS has a webinar on the topic

Hey if you’re thinking you can manage it yourself, why not look to AWS for assistance on lowering your bill.

Something tells me there’s a conflict of interest there, but I digress.

Point is with this topic becoming of growing interest, I think you’ll see more businesses stepping into this niche.

Related: How do I migrate my skills to the cloud?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Consulting CTO/CIO Devops Startups

I’m building a startup. What should I watch out for?

via GIPHY

I’ve worked with close to 200 startups over the years. So I’ve seen a lot of stuff. Some of the get-rich-quick managed to get broke even quicker. And others saw great engineers leave behind a clunky maze of an architecture with little or no documtation.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

Here are some thoughts on what to be mindful of…

1. Keep the stack simple

Are you asking yourself questions like these:

o if we build x,y,z it will save us time later
o we need kubernetes because everyone is using it
o let’s deploy on Amazon’s Cloud, everyone is there

If so you may have sidestepped keeping the stack simple. If you are building a proof of concept, mvp, chances are you do not need to build all the bells and whistles.

Relentlessly apply the discipline to keep things simple.

Read: Are pioneers and process people different breeds?

2. Use boring technology

You may be tempted to use some exotic new language. I know this new framework solves all the problems that have come before. No!

Let someone else live on the bleeding edge. I’m not suggesting to use COBOL, though there is still a surprising amount of that still around. What I’m saying is 5 year old tech is *not* legacy.

Not sure? Do a quick search on a job site for the language or technology. How many candidates do you get? If they are rarer you will pay more. And replacing your genius developer will be even harder.

But boring technology is not just about finding talent. It means many of the problems have already been solved. This is huge. There are proven ways to implement with the tried and true.

Related: Why is Martin Weiner special?

3. Beware of sharks in the water

Sharks can come in many forms. Investors that want to take 50%, a google or an Amazon that could rearchitect your solution in a week. These are real and present dangers.

Let’s not forget overspending on co-working spaces, and hidden costs around benefits, and surprising fees on your data or aws bill.

Related: How can 1% of something equal nothing?

4. Outsourcing – trust but verify

You may be able to hire one or two devs locally in new york, but if you need a larger team, you’ll likely look to outsourcing. There are tons of talented and brilliant engineers worldwide. So it makes sense to leverage this.

Beware though of handing all control to a team outside our shores. That’s because if you stumble into a legal trouble, you cannot use legal methods to resolve them. Some examples…

o what if you lost your aws keys and the outsource team holds you hostage?
o what if you are hacked, and the outsource team abandons the project?
o what if the outsource team tries to steal your IP?

I’m not suggesting here that outsource teams are any more likely to do these things than some firm locally. I think these events are rare in business. But if they happen local you can use the levers of the justice system to resolve. Remote may not lend to that.

Related: The art of resistance – when you have to be the bad guy

5. Relentlessly manage time

Your time is going to be short, and you’re trying to do the impossible. Use the tech wisely:

o use monitoring systems to alert you – no need to manually check things
o beware of slack and email – as they can destroy productivity
o automate where you can see real benefits
o keep the architecture simple!
o network for hiring people

Related: Is maintenance a forgotten art?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Cloud Computing Cloud Migrations Consulting CTO/CIO

What can we learn from NASA’s AWS fail?

via GIPHY

I was just reading the Register, which is sort of the UK’s version of Slashdot, and they had a jaw dropping title. NASA moved 247 petabytes into AWS and then later learned about EGRESS costs

OMG! Face palm. Wow.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

To say this is a disaster is an understatement. Could it have been prevented? Not likely by 100% strategic thinking. I believe a certain amount of real-world testing & prototyping is the only way.

Here are my thoughts…

1. Expect hidden costs

Everytime I check there are more AWS services. Just now I did some googling, and the number stands at 170. Not only is it tough to keep up with all of those, but the offerings are constantly evolving, getting new features and so forth. That means the pricing and costs are evolving too.

All this means an infinitely complex web of interconnecting pieces, so it is near impossible to predict prices in advance. The solution? Prototype.

And this would have helped save NASA. Because you would build, feature test and load test too. In all of that would have come a small estimate of cost which would include EGRESS costs.

There are no guarantees in this game, but it is surely getting complicated.

Read: How can 1% of something equal nothing?

2. Vendor lock-in is not dead

With the receding of some of the big old world vendors like Oracle, many have forgotten the shark like tactics they used with startup companies.

The model was something like this. Send in the big guns, nicely dressed to get you on board. Finesse the sale. Offer deep discounts, and get the customer on Oracle. After a year, maybe too, start squeezing. You’d be surprised how much blood comes out of diamonds.

These days we feel more free to port our applications to different cloud vendors. Even if mostly everybody is on Amazon already. But this NASA story really highlights the great organizational cost to migrate to the cloud. You architect your application, you do cost planning, and so on. So once you’re there, it’s hard to unravel.

Related: Is Fred Wilson right about dealing in an honest, direct and transparent way?

3. New possible hacking vector

Since costs are tied to usage in the public cloud, this could have implications for hacking. If a bad actor wants to cause you harm, then can now just use your service more.

Don’t like company A? Write some bots to access them from obscure locations, and ramp up those egress costs. With all the complexity of the cloud, are most firms monitoring for this sort of thing? I don’t see it in my engagements.

Something similar happened to me. I wrote: when mailchimp fraudulently charged my credit card. It really happened. Do I think it was intentional? You’ll have to read the article to get my 360 degree take on it.

Related: What mistakes did you make when starting as a consultant?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Devops Disaster Recovery Scalability

Do simpler systems fail better?

via GIPHY

I was recently reading Greg Kogan’s blog Simple Systems have less downtime.

It really caught my attention.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

As a professional services consultant over the years, I’ve worked with almost 200 firms. And many of those required unraveling of complex systems. And systems that were no longer well understood after the first wave of builders have long since gone.

So this topic resonates strongly for me.

I believe if firms adopted these advice, I would have a lot less work over the years. Seriously.

1. Redundancy

Redundancy means backup systems. If your laptop fails, do you have a second one with all your up-to-date data? If us-east-1 fails, do you have a backup or live copy of your database in another region?

Redundancy isn’t just backup systems, it is backup people. If Jane who manages Salesforce gets in an accident, what will the business do to support the sales teams? If a system gets hacked and compromised, how can you restore the most recent data?

Complex systems fail in surprising ways. Having a plan B, and plan C, and for really essential services and plan D will save the day.

Take Greg’s example of a container ship:
o if the automatic system fails you can steer the thing manually. Wow!
o if other electronics fail, you can control the damn rudder by hand!

Incredible to think a ship that big is basically a giant sailboat when you disengaged the powered systems. That is truly a lesson for all of us startup engineers.

Read: How can 1% of something equal nothing?

2. Overlapping skillsets

If you only have one guy who knows how to use the database platform, that’s a problem. If you have only one woman who knows how to program in Rust, that’s a problem. If there’s only one person who knows how the reporting system works, and can make changes, that’s a problem.

Better to have overlapping job roles and skillsets. If you have a chance to adopt a new technology, make sure it’s rock solid one that is mainstream, and easy to hire for.

Related: Is Fred Wilson right about dealing in an honest, direct and transparent way?

3. Beware of technical debt

We’ve all heard the reasons.


o We don’t have the luxury to fix that now.

o We can’t afford the downtime.

o We have pressing features to ship.

But as technical debt piles on, so does complexity. And you’ll quickly end up end up carrying a larger burden than you realized.

As advocated by Kogan, rip and replace is often a more serious solution, and better for the firm. Yes you’ll have some downtime. Yes you’ll redirect team members temporarily. But you’ll solve the real problem, and will bring more simplicity to your architecture.

What’s more the pain of paying down the debt will make you think twice about borrowing in the future!

Related: What mistakes did you make when starting as a consultant?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Blogging

What are the top posts of the past year?

via GIPHY

I dug through google analytics to see which posts have been the most popular.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

In the past year, the following posts stuck out…

1. Tech

Bye Bye Kubernetes

How can we keep cloud architectures simple?

Are shared databases back in vogue?

What Matt Ranney learned scaling Uber

What does Devops mean?

How crazy can Kubernetes get?

When should I use ansible vs packer vs terraform?

Read: Are pioneers and process people different breeds?

2. Process

How I use 5 daily habits to stay on track

What happens when you offer consulting advice outside your pay grade?

What do senior engineers do differently?

What tools are devops engineers using today?

Do you fear you are an imposter?

What dothe best engineers do better?

Related: What happens when a bartender doesn’t get the job and files a lawsuit instead?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All CTO/CIO Startups

Are pioneers & process people different breeds?

via GIPHY

I was just reading Oliver Eidel’s blog. He had a great post, with some provocative ideas. Pioneers versus Process people.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

Now since I love to play devils advocate, after reading this thought provoking article, I thought I would write a bit of my take.

1. Are pioneers and process really characteristics of two different people?

As Oliver describes it, there are two completely different humans. Are they different breeds? Different species perhaps? Whatever the case, he argues that people either have one characteristic or the other.

To me the pioneer, is the engineering expression of creativity. They want to create new things, run with an idea, and see if they can make something happen. But even the most stodgy people have a bit of creativity in them, even if they don’t always express it. Yes I believe everyone has a tiny pioneer buried inside.

And so too, the pioneer, can should the need arise, buckle down and get tasks done. Yes they can be disciplined too, if you want to apply a different word.

Read: How can 1% of something equal nothing?

2. Do pioneer stage startups need more discipline?

I’ve worked at many a startup. I love them. Riding skateboards to work, and having dogs around the office is certainly a laid back downtown atmosphere, that appeals a lot more that the financial district buttoned up scene.

Also pioneer startups, often have a lot of leeway, to, as Oliver says “walking off in random directions, developing other great products”. This is how new ideas are hatched.

That said, many of these startups will one day fail. And it’s not for lack of idea, or market need. It’s often team related. That’s right, some of the best and coolest startups fail for lack of discipline. They’re too pioneering!

Related: Is Fred Wilson right about dealing in an honest, direct and transparent way?

3. Do process stage companies need more pioneering spirit?

I’ve also worked at quite a few larger, somewhat stodgy firms. These are so process heavy, that simple things can take forever. Everything requires a signoff. Deploying code can take weeks. Yes indeed they do things the old fashioned way, and that’s because they always have done that.

Could they use a pioneer or two to shake things up? Totally! Creative energy, drive and spirit could help them find faster ways to do things, and become unstuck when their old school process mentality is limiting their growth.

Related: What mistakes did you make when starting as a consultant?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Consulting

What happens when a bartender doesn’t get the job, but files a lawsuit?

via GIPHY

I stumbled on this interesting article, and thought I’d share it. Bartender doesn’t get job, but wins suit for consulting fees

Now some of you may have already made some prejudgements. But I ask that you hold your conclusions, and take a listen.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

Now let’s for a moment, distinguish big firm consultants, with independent consultants. I’m speaking about the latter, the freelancers of the world.

1. Time spent evaluating a consultant

If you’ve hired a consultant or freelancer before, you know you’ll spend time evaluating. You’ll talk about your business problem, and they’ll share how they can help. They may even start brainstorming with you. This alone can be valuable to a firm, as it can give them new ideas and new perspectives to dig into their problem.

Notice too, that while you are a fulltime employee, all that time on the phone, and at your desk, you are getting paid. While that freelancer, is *not* getting paid.

My point is not to complain here. Just merely to point out that there is a lot of work that happens before you are paying your consultant. Before they are even billing. Whether it is preparation, leveling up on knowledge, networking, business dinners, or prospecting.

So when you consider the cost of consulting, figure that there is 25-30% more time that they are *working* though it doesn’t show up on the invoice.

Related: A CTO must never do this

2. Straightforward or naive?

In the case of the bartender story, he did indeed spend time researching for the propsect. Whatever that may entail. There is a point where the consultant goes out on a limb. Some saavy is required to avoid misunderstandings, but ultimately both parties also need to be fair.

Although we all want to make an effort to be straightforward, despite what Fred Wilson says, parties are not always transparent. I would argue if you were too naive in this regard, you would not succeed in business.

Related: What mistakes did you make when starting as a consultant?

3. Avoid the legal route at all costs

Unlike the bartender, I personally would never choose legal arbitration. Is it ever really worth it? In the case of the bartender, he says $35/hr and 5.5 hours work, so $192.50. But how much time did he spend filing the suit? Paperwork, phone calls, emails, whatever. And then driving to the courthouse, cost of gas etc. No way this could come out cost-effective. To my mind many legal cases come down to ego. One party wanting to SHOW the other party they are wrong. Not worth it!

My feeling is always take the high road. Talk with them, and explain where you’re coming from. Also listen to them, and try to understand their perspective. There is always a middle ground that can be found.

Read: How to avoid legal problems in consulting

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Data

Is banning facial recognition missing the point?

via GIPHY

I thought I would step out of my usual shoes this month and talk about something besides cloud computing. People sometimes ask my opinion on technology, as I know a thing or two about it.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

What are your thoughts on facial recognition? Will banning it solve the problem?

If you are not already familiar with Bruce Schneier you should be. He has been the single smartest person talking about data collection for the past twenty years. He wrote Database Nation, Secrets and Lies, and Beyond Fear. His thinking is non-obvious, insightful, deep and almost always spot on.

Here’s what Bruce Schneier has to say about banning facial recognition.

1. There are many ways to skin a cat

If you want to prevent what facial recognition can do, ban it, right? Well, turns out there are many other ways to do the same thing. You can identify people by their heart beat (think fitbit or apple watch), the way they walk, and of course good old fashioned fingerprints. And we leave those everywhere. What else?

Every phone broadcasts it’s ID which is the MAC address of it’s network interface. And if you have cameras without facial recognition, they can still identify using Iris scanning. Yep really.

Read: How do i migrate my skills to the cloud

2. Surveillance as a norm

When we say we don’t want facial recognition, we mean among other things that we don’t want anonymous identifying of people. But it also means we don’t want the later collection and identifying of people either.

Imagine you have a shoebox full of old photos. Photos at a beach, at a wedding, at tourist sites. Now you scan those into your computer, and you can identify all the people in the background. What a strange world we’ve built.

As Schneier points out, the larger question is what surveillance is okay and what is not? We as a society need to design rules and laws to outline how these technologies can and should be used for good, and to prevent their misuse and harm to people.

Related: 5 things toxic to scalability

3. The darkness of data brokering

The further collection of data by these large entities like facebook & google is more frightening still. Not for the data itself, but for it remaining completely unregulated. Government is still very behind what is happening at these giant companies.

Google knows things about your wife & husband that you don’t know. Google knows what the CEO of your competitor company is thinking and doing. Google knows your weaknesses, how and when you break the law. It’s hard to really grasp the scope. Every part of our online lives touches one of these companies. Even if you don’t use their services, you email people who do, and therefore are still known by them.

The laws we’ve built for the last century to prevent these types of abuses are mostly irrelevant to modern internet data companies. And as unregulated entities, they remain adversarial to citizens. We remain the product, not the customer.

Related: Did Disney have to fail?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Categories
All Cloud Computing CTO/CIO Devops

When should I use Ansible versus packer or Terraform?

via GIPHY

I was having a conversation with a colleague recently. We wee discussing devops, and the topic of Ansible came up as I was advocating it as a great too to get things done.

Join 35,000 others and follow Sean Hull on twitter @hullsean.

Here’s what he had to say…

— quote —
I’ve tried using ansible a few times and this is what I found with it.

It is great for what it does. It’s wonderful to be able to spin up a new app or web server automatically. However what I have found for my needs is …

It is easier to build a piece of furniture than it is to explain all the steps required for someone else to build it. Or in order to replicated the steps automatically.

With cloud servers, it’s enough, for me that I’ve built it once. When I need to spin up another, I simply clone the working copy.

— unquote —

My thoughts below.

1. When is Terraform good

Terraform is a coss-platform infrastructure building tool. If you need an IAM user or S3 bucket, Terraform can create it. Need an ec2 instance of a particular type, deployed with an autoscaling group TF is a great tool for that.

With Terraform you can capture in code, everything about your application stack, so that you can standup a complete copy in another region, that’s powerful!

Read: How can 1% of something equal nothing?

2. When is packer right?

Packer is another useful tool that Devops can use to automate. Like AWS own EC2 Image Builder, it allows you to create the images that you boot your instances off of. Think of them as docker images for the server itself.

For example there are lots of dependencies your application requires, and you’ll install with your package manager. And there are services you want to start. You *could* use an ansible playbook to get these going, but better to build a new image that contains all the software you need on the box.

Packer easily sits into your CI pipeline, so you can have new software deployed and ready anytime.

The principal difference is that a new AMI requires you to spinup a new server. You can’t take action on a running server with this tool.

Related: Is Fred Wilson right about dealing in an honest, direct and transparent way?

3. When does Ansible make sense?

In particular here’s what my response was about Ansible itself.

— quote —

Absolutely. It’s an interesting balance to strike.

Because of course packer or EC2 image builder are very powerful and fit neatly into a CI pipeline. That said there are things ansible is nicely suited for too.

For example I want to distribute public keys onto specific servers. I have a yml file with the keys. I have a new developer starting, I have him or her git checkout branch, edit keys.yml, commit, push changes, then make a pull request. When the new keys.yml file gets merged, an ansible playbook kicks off to distribute the new set of keys to the relavant servers.

— unquote —

If you want to take actions on running servers, like deploying keys or other ongoing tweaks, that is where Ansible really shines.

Related: What mistakes did you make when starting as a consultant?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters