Kuanysh.com By Kuanysh Bayandinov https://kuanysh.com/feeds/feed.rss 2019-04-01T18:59:31.000Z Copyright © 2019, Kuanysh Bayandinov Put out a fire or slow it down? tag:kuanysh.com,2019:/linked//3de381c3-bdd3-4b09-8dd9-22a89d6ca024 2019-04-01T18:59:31.000Z 2019-04-01T20:21:40.000Z Kuanysh Bayandinov https://kuanysh.com More likely than not you focus on the product you sell to the client rather than on the product that the client is buying from you.

You need to reverse your model and sell what they buy from you. It’ll lead you to make better decisions by forcing customer satisfaction onto you without you even noticing it.

By healing the pain your product gets keys to the holy grail — a market fit. Granted, the product that heals the pain, not the one that mitigates it.

There’s a difference.

No one wants an extinguisher that only slows down the fire, or do you?

]]>
Value first, not minutes tag:kuanysh.com,2019:/linked//82e2de40-bc15-4219-9180-eee03840cff2 2019-03-30T15:06:00.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com This post lays out the principles behind value-based pricing.

Its premise is to charge for your head, not your hands. In other words, expertise is over labor and results are over deliverables.

As you understand, it’s a general approach. The industry doesn’t matter here. What matters is the ability to understand the value your services have.

It’s no easy task as no paradigm shift is. Especially for those who have been charging on an hourly/daily/weekly basis a decent amount of time.

Good news is that there’s a way to reason about it.

Let’s reason

First, you have to admit that the time-based approach punishes the expertise you have. That expertise you acquired over the years and spent sleepless nights for.

When I start to think about this topic like this I always come back to one example. It’s the story of a woman approaching Picasso in some restaurant. She asked him to draw something on a napkin and agreed to pay whatever he thought it was worth. He complied. The conversation then went like this:

That will be $10,000. — Picasso

But you did that in thirty seconds. — Astonished woman

Madame, it has taken me forty years to do that. — Picasso

I’m sure you agree it is the correct answer. What would you do in Picasso’s place? Of course, it doesn’t even matter if the story is even authentic. What matters is charging for the time spent is not the best way for the service provider. That’s why it’s so omnipresent probably.

Other than being a non-lucrative method for the service provider it’s also a method leading to the highest amount of stress for the client. It puts them in a seat where every minute you spend on a project is considered an expense. Therefore it must be accounted for and reported. Imagine thinking in such a manner on a day-to-day basis. Then let’s add worries about the limited budget. No doubt, it’s an easy way to alienate the client and get annoyed with the whole collaboration pretty quickly.

Yet most of us continue doing that.

It’s a trap

Once you start working with a time-based approach, it’s hard to switch to value-based pricing with the same client. Why? Because once you charge $100 an hour, no project made in 6 hours is worth $10k. It’s worth $600 in the client’s mind, not a penny more. That would be correct, wouldn’t it? It’s rational to think that. You gave a client a reason to do so after all.

How to fix that? By replacing the context of a conversation. It allows you to replace everything including the price you charge.

Now, approaches vary because not every industry is the same but I do have an approach to reason about it on a general level.

First, we have to understand that the time-based approach doesn’t make sense.

Once that’s done, let’s use the template:

I believe that people want to $ability so they can $outcome, and they would pay a lot for that because of $value.

Hmm, that’s it? Yes! Let’s take a real example for a system administrator at Some Inc.:

I believe that people want to have servers running without crashes so they can reliably run applications for internal and external use, and they would pay a lot for that because those bring revenue and increase the productivity of the staff.

Pretty easy, right? Let’s see how to build a proposal out of that. We’ll just reverse the statement using the template:

If you $value, you can $ability with the $company so that you can $outcome.

With the same example of a system administrator it would look like this:

If you want to bring revenue and increase the productivity of your staff, you can have servers running without crashes with Some Inc. so that you can reliably run applications for internal and external use.

That’s pretty valueable, isn’t it? What did we just do? We now have a business proposal statement that can be used anywhere. The trick is that one system administrator has tens or even hundreds of proposals like this. Various industries, various niches require specific value-based statements. The task is to dig through them all and find those nuggets of gold.

Remember, you are as only as good as the material you have.

]]>
Testimonial is king tag:kuanysh.com,2019:/linked//6ff8a9b0-013d-4940-8161-22f7c1f94b48 2019-03-29T17:14:01.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Always ask for feedback

It must be a part of your process. You need to gain those artifacts lost in-between tasks and milestones. You’ll find it in any activity between you and the client.

Determine concerns early

No wind blows in favor of a ship without direction. — Seneca

You must know the concerns you’re there to solve. As in old quote by Seneca, you must know what direction you’re helping to move towards.

Make a list, create a Kanban board, set a wallpaper, whatever. Make it clear to yourself of the whats and whys of your day-to-day doing.

A need for testimonials

Testimonials are your bread and butter. Do you love specialty coffee with a good croissant? Good. It’s yet another reason to ask for a testimonial. It’s a law in the business of being an independent contractor, a freelancer or whatever you call yourself.

Feedback loop helps you to run faster and longer. It serves your customers and the customers of your customers much better.

It’s important.

Understand that you don’t need to post it or showcase it from the get-go. A testimonial is raw feedback of your activity from a client’s point-of-view. It’s the number one source to use when laying out new documents and introducing updates for the website. You can even use them to come up with those new sales pitches you think about.

By asking for feedback you are asking for access to the world which shows you the other side of your work. The side where you can see valuable patterns. They will allow you to better understand the value you’re providing.

Learn one thing. There are side effects. There’s a decent chance a simple direction of yours to a new corner might result in millions of lost value. Your words can help a C-level executive to look in a corner they have before overlooked. How can you put a value on that? It‘s huge, isn’t it?

And finally, most of us who are in the creative field have a lot of personal issues with imposter syndrome. Especially those who have started as a solo play. A great testimonial of a satisfied client speaks volumes. That satisfaction might help you swim towards that shore of utter confidence.

The lesson here is to restore that lost value. In the case of service providers, testimonials are an obvious rock to look under.


Here are a few questions to ask as an example:

  • What has surprised you about working with me?
  • What different would you want to do given the chance?
  • Would you recommend me to your network? Why? Why not?
  • Edit client testimonials only if you have permission. In case you do, keep the client’s sentiments intact.
]]>
You’re a designer tag:kuanysh.com,2019:/linked//5c4f4f3d-a99c-4dae-951b-00a647792e8d 2019-03-28T05:11:01.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Every one of us goes through motions of life and leaves traces of activity. Other people see, touch or interact with those artifacts. Their experience of that depends on you because you’re a designer. It can be good or bad but it must be. There is something every one of us leaves along with the artifact itself. It can be an additional bit of care, attention, and precision or ignorance and roughness.

The first step of becoming competent is to understand its existence. In essence, a design is a language of things. If it’s a language, it can be learned. A decision not to do so is equal to a decision not to learn how to speak and write.

If your artifacts are non-functional, ugly or hard to comprehend you’re a bad designer. You can’t avoid being one. Therefore, you must become a better one.

I would recommend starting with typography. It’s omnipresent and useful. I find this short yet valuable guide a good introduction.

]]>
Advice for non-tech founders tag:kuanysh.com,2019:/linked//9e3430e5-dbd6-49df-a0b2-1c5ee9fa523a 2019-03-27T07:54:05.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Over the years, I have noticed the assumptions of founders and management that are questionable from a developer’s point-of-view. It’s likely not all of it rings a bell but here are a few things I’d recommend to anyone building an app, hiring a developer or joining a technology company:

  • It’s likely you underestimate the cost of development, maintenance, and the complexity of features you want to have.
  • There’s no such thing as a guarantee for the functionality if the developer charged on an hourly/daily basis. Bug fixes are a part of the process. You’ll have to account for that beforehand.
  • You don’t need an NDA if you’re a startup. Not if you’re building a CRUD application like 90% of the market. It’s likely most developers will stop the conversation once you ask to sign an NDA.
  • There are good developers who don’t charge a lot. Chances are though, they lack the experience to understand the value they provide. As such, by hiring them you signal that you either don’t understand the value of great developers nor understand the consequences of mediocre developers.
  • Don’t discount ideas. Excellence comes from every corner.
  • Chances are it’s easy to impress you. Do not be fooled by soft skills. The success of your technological company determined by the technological force underneath it. Look for hard skills, they come first.
  • It’s easy to listen to the wrong people and the noise they generate. Have a hard filter in-place for those who speak a lot without anything to show.
  • There are plenty of developers who lack a computer science degree but are amazing at building products. Look for them. They’ll have more loyalty and will put in work required.
  • Developers are developers. Not every one of them has an ability nor experience to ship real products that bring a difference to the bottom line. It’s not what they were trained for. Do account for that while hiring.
  • There’s no perfect programming language or framework. Choose those technologies that can impact the speed of development and ease the maintenance down the line. In short, strive for a solid ratio between speed and developers’ abundance. Chances are, it won’t be a strictly typed language. Not at first, at least.
  • It doesn’t matter if a developer knows technology or not. If she’s shipped product written in any language, it means she can ship product in any language. It’s a matter of weeks. Yes, it’s that simple.
  • Great developers do thrice the work in the same time period.
  • Technical problems are trivial. Getting product in users’ hands is much trickier.
  • Be good at asking questions. Miscommunication is your arch-enemy.
  • Write down everything.
  • You need to have a bug tracking system to consolidate everything that is going with the product. It’s a requirement.
  • You might not need a technical solution. Understand why you need it before building.
  • Strive to do one thing at a time.
  • Avoid calls, meetings, and conferences. Write things down. Send an email or DM. Or better yet, create a Github issue with the most verbose description. Yes, you need to learn to use Github.
  • Reading and doing is of higher priority than listening and thinking.

Building software is hard. It’s even harder making sure it helps the bottom line of your business. It can be the most important asset of your business though with the highest ROI there is.

It requires attention. Give it.

]]>
On procrastination tag:kuanysh.com,2019:/linked//bdae8c8d-0e73-4aef-a871-6609ba0a064c 2018-10-02T06:25:00.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Inaction is action

Procrastination is a lack of decision. Lack of decision is inaction.

One chooses whether to act or not to act. Therefore one simple decision to act paves the way to progress.

It’s not so long ago that I found myself in the abyss of inaction. Bootstrapping is hard, especially if you’re solo founder. I’ve spent almost 6 months on doing things that had not had the outcome I expected. Now I can see my own mistake. I let my expectations exceed the threshold of my reality. That led me to self-doubt, which in turn led me to inaction.

Now, after changing my environment and looking back I can see that I need proper focus and time to calibrate my inner voice and thoughts. After all, it’s the thoughts we have, which determine the actions we take.

If you’re in a situation where you struggle to attach your success to reality, I’d recommend to take a step back and ask yourself the following:

  1. What decisions have I left undecided?
  2. What promises haven’t I kept to myself?

And then, after finding a few decisions and promises that are uniquely yours, I’d ask:

  1. What actions do I need to take in the next week to fix it?
  2. What system should I have in-place so that it won’t occur again?

All of these are not simple. They require one to look into oneself hard enough to see the missing pieces.

I’d say do it. Nobody promises us tomorrow.

The solution, the system

A good plan violently executed right now is far better than a perfect plan executed next week. — George S. Patton, General of the United States Army

Anything that happened to me in my adult life is an outcome of the system I have. It might be bad, it might be not. The point is that I have one. You do too.

In absence of clearly-defined goals become strangely loyal to performing daily trivia, until you ultimately become enslaved by it. — Robert A. Heinlein, writer

The routine, daily activities or rituals. No matter how I call it, it’s there. It’s what my life consists of. Day in, day out.

If I want to achieve things I haven’t achieved before or if I want to experience life I haven’t experienced — I need to change my routine.

And this is what I’ll be leaving you with today.

Think deep about your activities, your daily trivia. We get so carried away by the minutiae of everyday life. We need to take care of our priorities.

There’s no answer outside. It’s within us.

]]>
Insights of August 2018 tag:kuanysh.com,2019:/linked//15226edc-d07b-409f-93db-b1c35c0c8dc6 2018-09-09T08:00:01.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com

To an entrepreneur, every day is a crisis. — Phillip Knight, Nike

Principles I’ve thought about during the last month, all in consideration:

  1. I cannot change things that I tolerate, in both business and personal lives.
  2. Certain things in life cannot be taught, they can only be learned.
  3. Fear is a gift. It’s nature’s way of keeping me alert.
  4. Fear is an acronym of FALSE EVIDENCE APPEARING REAL.
  5. When in fear, I must find out if others have experienced similar fear and what they did to overcome them.
  6. There is no trust or safety where there are unanswered questions.
  7. I have nothing to lose and everything to gain by educating myself.
  8. I have to dig the well before I’m thirsty.
  9. I must give without the expectation or attachment of getting anything in return.
  10. I must not keep the score.
  11. When feeling down, work is the ultimate distraction.
  12. Detachment is not that I own nothing, detachment is that nothing owns me.
  13. I get what I put in.
  14. Marketplace always pays for valuable skill.

Further question to ask myself:

  1. Do I want that process or do I want the result?
  2. Do I live in the perception of a perception of myself?
]]>
Showcase yourself tag:kuanysh.com,2019:/linked//679979f0-b10e-4d83-a015-0c2270bb64c8 2018-09-08T17:01:01.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com

If your business is not on the internet, then your business will be out of business. — Bill Gates

There are plethora of reasons to have a personal page. I won’t even list them. It’s obvious. I’ll just show you a few services to get one going in under 10 minutes.

  1. Carrd
  2. Squarespace
  3. Readymag
  4. About.me

Personally I think About.me is super simple and quick to create. I have a page there is well even though I have a website.

Never hurts, you know.

]]>
Questions to ask your next employer tag:kuanysh.com,2019:/linked//1371c5bd-190c-43fb-a17e-a5492f2a01c5 2018-08-30T10:59:31.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Questions listed below are for various situations. You’ll have to choose the ones that fit your situation the most. The goal is to understand what experience is awaiting you on the other side.

You only have one first impression. Keep it friendly and open-minded.

Company representers will ask you questions that prove your value. Employer’s aim is to get the most value for the resources they have. Thus, a good candidate is the one who brings more than he takes out. Keep that in mind.

HR

Human Resources staff represents the company, its objectives, and interests. They are not there to care about you as a person but as a professional, a colleague. So, you should ask her/him:

  1. From an employee perspective, what makes your company a good place to work?
  2. What top two values do you believe are the most crucial for a new hire to have?
  3. What is the company’s method for recognizing achievements?
  4. How does a company check if profession you’re there for is good at their job?
  5. What is the best way to grow in your company?

And then once the conversation is there and rapport is set it’s a great idea to ask:

Does the company operate on business revenue or running off funding?

And the trickiest question with the most value is:

Let’s imagine I found a tool that can improve my productivity. What process do I go through to buy it? What if it costs $150? Or $450?

The answer will allow you to understand the inner processes of a company. You’ll see the value it puts on productivity and the way it handles bureaucracy.

Founders & C-level executives

It’s a great place to get an understanding of a company’s direction and showcase the value you have.

It’s better to start off with something simple yet fruitful to understand the person.

  1. Why have you decided to pursue this product/market?
  2. What do you believe motivates your employees/colleagues?
  3. From an employee perspective, what makes your company a good place to work?
  4. Is anyone in the sales technology-driven? Are they technical?
  5. What is your preference, a large number of small customers or a small number of large customers? Why?
  6. What is the best way to grow in your company?

These questions are quite open yet informative enough to provide a solid bird’s eye view of a company.

If you think the conversation is flowing, it’s a good time to expand and ask deeper questions.

  1. Since you came on as CEO/CTO, has your vision changed? Why?
  2. What know-how do you expect from the position you’re there for? How should one help the company achieve its objectives?
  3. When was the last time your missed payroll?
  4. Who is your main competitor? 4.1. In what ways your product is better? 4.2. What separates you from your competitors?
  5. Do you share board meeting slides with employees?
  6. Are your company's strategy and development team close?
  7. How do you adapt the culture to achieve the company’s objectives?
  8. What is lacking in the workplace? Those reasons that would make some quit and others join? I’ll get to know either way.

It’s likely you won’t be able to ask everything from the list above. So, select those questions that you think are the most relevant. Every position is unique. Companies vary in size, market, and industry.

Questions below will be great if you’re aiming for a position where you have leverage. These questions will provide an extra set of insights:

  1. What is your burn rate? How much capital is left?
  2. What’s the exit plan? IPO, private forever or to get acquired? How long until then given the metrics?
  3. How did your pricing model change? What were the reasons?

Sales

It’s crucial to understand the culture of the main component of any business. By asking questions below, you might get an answer based on a client pitch. Nonetheless, you’ll get a chance to get a feel of the company’s care for customer problems. You’ll see the approach, and moral stance as well as the market opportunity. No doubt, you’ll understand the company a tad better.

  1. Who’s responsible for the sales?
  2. How many people are in the sales team?
  3. What’s your user/customer acquisition model?
  4. Is the sales team technical?
  5. How do you manage the funnel?

Colleagues

It’s common to have a conversation with the potential teammates as well. The goal is to understand the fit, your expertise, and quality of a workplace.

Remember, potential colleagues can provide insight into your future at the company. Listen to your gut feeling. Track how conversation flows. If hired, you’ll be spending a lot of time talking with them. You better make sure it’s enjoyable or at least professional. A decent rule is not to join a company where teammates are not those people whom you would socialize with.

  1. What is the best way to grow in your company?
  2. What is the one thing a position you’re there for could do to help achieve the company’s objectives?
  3. How distractive is the work environment? Read stressful.

I hope you find this helpful and find the role you’re looking for. There’s always an opportunity, don’t let one bad apple spoil the box.

]]>
On being fired tag:kuanysh.com,2019:/linked//e4a2d499-e7f5-4008-85b9-a59786c58414 2018-08-29T11:37:11.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com A few years ago I came upon this comment on some website I don’t even remember now.

“Hate, take heart! The good news is that through those struggles, you are gaining valuable strengths that you will actually appreciate later on. You are building character, self-esteem, wisdom, patience, all of which will serve you well in life. Every time you are uncomfortable, you are learning! You are equipped with a clever ability that many people don’t bother to utilise: you are free to use your heart and mind to decide how you will respond to whatever good, and bad, comes your way. So if you’re still waiting for the chance to enjoy the good life, make sure you are eagerly soaking up all the lessons there are to learn in your current situation. Find the good. Be positive. Be a good example. Gain experience and maturity. Perseverance pays off. Look at trials not as a bad thing — rather view trials as preparation for your dream life! What if the opportunity for your dream job or dream life came your way and you didn’t recognise it? A smooth sea does not a good sailor make. Embrace the rough seas now, my friend, and you will not miss the boat when your cruise ship of life sets sail!”

I find it helpful at times. I thought you would too.

]]>
Terminating idle connections in PostgreSQL9.2+ tag:kuanysh.com,2019:/linked//df5e8fb4-d485-4d2c-99b2-989b90ed1bba 2018-08-19T13:02:11.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com A few days ago I found myself in a situation where Uptime Robot was emailing me every hour of the night to let me know that Xevol is down. As anyone else would I jumped on the issue the very moment I was up. The issue was in the fact that API could not resolve the endpoints. Since it’s deployed with pm2 I was able quickly pull up the logs with:

ssh -t deploy@api.xevol.com "pm2 logs"

the error message I saw was saying "remaining connection slots are reserved for non-replication superuser connections". It was the first time I stumbled upon an issue of this kind.

After some Google-fu I found the similar issue on SO (of course) under subject of Is there a timeout for idle PostgreSQL connections?. Turns out that AWS RDS, the managed hosting from Bezos’ eggs basket was failing to terminate idle connections with my API’s Knex.js configuration.

I decided not to purse the issue in the code of the Knex dependencies like generic-pool but instead resolve the issue the time-efficient way. So I used the psql where I entered:

SELECT state, COUNT(*)
FROM pg_stat_activity
GROUP BY state;

which let me know how many idle connections were present. In my case there were 180 idle connections that were maxing-out the instance limits.

After going through Client Connection Defaults list I found the idle_in_transaction_session_timeout field which was exactly what I needed in my situation. So I went and changed the value in AWS RDS’ Parameter Groups section…

to no avail. The issue’d persisted. That was the moment I stopped doing things the logical way and opted for the simple cron job on one of the available VPSes with:

crontab -e

to update the cron job list with the added line:

*/5 *  * * *  psql $DB_URL < $APP_PATH/psql_idle_connections.sql

which runs every 5 minutes the psql_idle_connections.sql which contains:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'DATABASE_NAME'
AND pid <> pg_backend_pid();

and voila, no issues. No idle connections are kept open.


Since not enough traffic goes through the instance I’ve also downgraded its size to micro size which is eligible for free tier.

]]>
Async non-blocking Stripe.js in React tag:kuanysh.com,2019:/linked//9f0c0185-9244-4813-8f7c-ed1a9aa36140 2018-08-15T08:12:11.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Loading Stripe.js with the usual

<script src="https://js.stripe.com/v3" />

doesn’t work in the context of React. Instead we need to use the StripeProvider HOC from Stripe’s react-stripe-elements.

Loading Stripe.js in server-side rendered mode ended up looking like this:

import React from 'react'

// additional check for document.body in case of server-side rendering
import { StripeProvider, Elements, CardElement } from 'react-stripe-elements'

// the stripe key you get from the dashboard
const STRIPE_PUBLISHABLE_KEY = 'pk_xxxxxxxxxxxxxxxx'

class BillingPage extends React.Component {
  state = {
    stripe: null
  }

  componentDidMount() {
    if (window.Stripe) {
      this.setStripe()
    }
    else {
      const stripe = document.createElement('script')
      stripe.type = 'text/javascript'
      stripe.src = 'https://js.stripe.com/v3/'
      stripe.async = true
      stripe.onload = () => {
        setTimeout(this.setStripe, 500)
      }

      // additional check for document.body in case of server-side rendering
      document.body && document.body.appendChild(stripe)
    }
  }

  setStripe = () => this.setState({
    stripe: window.Stripe(STRIPE_PUBLISHABLE_KEY)
  })

  render() {
    return (
      <StripeProvider stripe={this.state.stripe}>
        <Elements>
          <CardElement />
        </Elements>
      </StripeProvider>
    )
  }
}

export default BillingPage
]]>
Software’s Nature tag:kuanysh.com,2019:/linked//063cce45-873b-431a-b6f3-d4d0387ba870 2017-12-25T09:27:11.000Z 2019-03-31T18:42:44.000Z Kuanysh Bayandinov https://kuanysh.com Software is one of the few industries where creators should release raw, most unaesthetic version of an idea to later find a way to make it better. Pick any unicorn (Uber, Twitter, Tumblr) for example. They’ve looked way worse than they do now and are likely to work even better in a few weeks.

That’s the nature of software. Looping through cycles of iteration.

No musician, director, writer or artist can release their work and fix it hours/days later as it’s already out there in the hands and minds of people. Developers, on the other hand, can release several updates an hour if there is a need to do so.

As with any other nature, one should remember not to go against it.

]]>