Posts

Startupville: What's it like running a startup?

Running a startup is hard. Soul crushingly hard.  I suspect if you haven't done it before, you can't understand it, but I'll try to explain it with an analogy: Imagine you decide to row across the Atlantic  alone. You don't get a GPS, you don't get a map, you don't even get a compass, all you can do is navigate by the stars.    Oh yeah, you do get a one way radio you can't turn off. At first, as you leave your home filled with confidence. You know you're a strong rower,  you think you know where you're going, and you  you feel great! But then it gets dark and cloudy,  you can't see the stars, you have no idea where you are, you have no idea if you're going in a circle or heading back to where yous started, and you're tired, rowing is hard work.  You become filled with fear and doubt.  Even if you wanted to go back to a place you thought was safe, you don't know how to get back. And did I mention rowing is hard work, and you'...

Startupville: Why is no one referring my project?

TL;DR - Your customers don't provide referrals because it's a risk to their credibility. Remove the credibility risk, and your referrals will follow. As an entrepreneur I imagined  my user count would grow by leaps and bounds as soon as my happy customers started providing referrals. However, when it came time to start providing referrals, my customers kept saying they would, but didn't follow through. At first, I assumed my customers weren't providing referrals because they were lazy.  Thus I spent a bunch of time nagging my customers. Guess what? No referrals. Then I assumed the problem was that my customers had no idea what to say for the referral.  So I spent a bunch of time creating a referral message my customers could use. Guess what? Still no referrals. Then I got wise and asked one of my favorite customers why he wouldn't refer me -  and he told me the answer. "Igor, I won't refer you because when I refer you it's my credibilit...

Cool Tools: World Time Buddy

Disclaimer:  I know the CEO, I know this sounds like spam, but it's still awesome. Keeping multiple time zones strait is a pain.  Missing a meeting because you came 3 hours too late is worse.  World Time Buddy makes it easy to keep track of time zones. Check it out. https://worldtimebuddy.com

Soft Skills: Your three selves

A week ago, I was at a gala, and I ate a few chocolate truffles because they made me happy. I suspect it was wonderful, but honestly I don't remember if that was the case. Even worse, as I try to button up my pants and the pants are too tight, I'm feeling quite unhappy about eating the truffles. In the above paragraph there were three "I"'s or "selves" being referenced. The present experiencing self, the future remembering self, and the future experiencing self. To concisely refer to these three selves we'll call them the experiencing self, the remembering self, and the future self. As you think of three different selves there are two big questions. First, when you thinking about the costs and benefits of an action, think through the cost and benefits for the different selves. Second, decide which of the three selves you want to optimize for.  With luck your present self enjoys this post, your future self remembers enjoying the post, and ...

Cool Tools: Vim Tricks

This post will help me remember cool tricks I learn in VIM.  It's mostly for me to find things I've forgotten how to do ... Select an XML/HTML tag block Tag blocks * tag-blocks * For the "it" and " at " text objects an attempt is done to select blocks between matching tags for HTML and XML. But since these are not completely compatible there are a few restrictions. The normal method is to select a until the matching . For " at " the tags are included, for "it" they are excluded. But when "it" is repeated the tags will be included (otherwise nothing would change). Also, "it" used on a tag block with no contents will select the leading tag .

Depression reading list

I've had multiple people ask for my book recommendations on depression on bipolar disorder.  Here's my reading list: The Noonday Demon: An Atlas Of Depression An extremely well written book about depression. It helps a reader understand the experience of depression from a superb story teller. The author also has a gripping  TED talk . An Unquiet Mind: A Memoir of Moods and Madness A psychiatrist's story of bi-polar disorder, a very well written personal memoir.  It gives a good feeling of the highs of Mania as well as the lows of depression.  Bipolar Disorder Survival Guide, Second Edition An engineering manual for laymen on bi-polar disorder.  This is a great book if you'd like to understand the current medical knowledge around bi-polar disorder, as well as what you can do to for yourself and your loved ones. 

Don't under estimate e-mail. It's the new drag and drop and notification system.

This will likely roll up into another blog post, but writing it down so  I don't lose it. In the 2000's using a computer meant using the windows desktop. Two common capabilities from those days were the ability to do a user initiated share of data between applications, and the ability to asynchronously notify the user. User initiated data sharing on the windows desktop was accomplished with drag and drop. Today there are no apps so there is no notion of sharing between them, except - e-mail. For example, if you want to share a video via youtube, you can send a mail to a special youtube address. Asyncronous user notification used to be done with notification windows in the bottom user of your screen.  Today there is no notion of an on your latest device alerting platform - except e-mail. For example if youtube wants to tell you your video is ready to be shared, you get an email. Cool how the world evolves eh?

Cool Tools: Vim Keybindings

This post will enumerate the vim emulators I use, I expect it to refresh as I learn of more.  The VIM community is very passionate and frequently adds plugins to support VI keybindings in random tools. Here are the tools I use with their vim key bindings.  Chrome/Firefox  -   Vimium  Chrome/Firefox   Textboxes  -   Wasavi  Windows Command Line  -  Clink  ( instructions ) Unix Command Line  - set -o vi OneNote  -  Vim For OneNote Visual Studio - VsVim  (my customization here ) Visual Studio Code  -  VsCodeVim IntelliJ -   IdeaVim  (my customization  here ) XCode  -  XVim  (my customization  here ) Jupyter Notebooks -  jupyter-vim-binding Happy VIMing. 

Soft Skills: Job Hunt Stress

This post targets currently employed developers who want to switch jobs.   Job hunts are stressful, and my goal for my job hunts is getting the job I want without getting too stressed.  My job hunting stresses come from: lack of confidence, being rushed, not having options, disappointing others and the pressure from my current job responsibilities. By expecting and mitigating each of these stressors I greatly reduce the stress during my job hunt. Below are my stressors and mitigations: • Lack of confidence ○ Study for technical interviews - Study Cracking the Coding Interview  and system design questions . Expect to spend 4-8 hours a week for 4 to 8 weeks.  The longer it's been since you've interviewed last, the longer this will take. ○  Prepare for behavioral questions - Think through your previous projects for situations that demonstrate leadership, confidence, team building and be prepared to discuss them. ○ Do mock interviews - ask your fri...

Cool Tools: Git Helpers

This post will enumerate the helpers and commands I use with git, I expect it to refresh as I learn of more.  This is now basically out of date, and a place to jog my memory.  I'd recommend finding your problem and solution here: https://github.com/k88hudson/git-flight-rules Tools: Source Tree - a superb gui for git. I use it for all but the simplest commits. gitk - Built into the git distro, gitk allows you to visualize the tree Uncommon, but useful operations Move recent commit from master to a branch. git branch newbranch git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work.*1 git checkout newbranch Get a local copy of a server branch (tracking branch)     git checkout   See which branches contain which commit  git branch -r --contains See pretty view of history (all after tag 1.2.38.0) git log --decorate --oneline --no-merges  1.2.38.0.. Even prettier git log --pretty=format:"%C(yellow)%h%...

Soft Skills: Read the best book you can.

When I have time to read, I want to read the best book I can. When I hear about a book I want to read, I either add it to the list of books I want to read, or I start reading the book immediately.   If I add the book to my  "to read" list, I'm almost certain I'll never read the book.  On the other hand, If I start reading the book right away, I'm almost certain the book is worse than books I've already added to my "to read" list. So, I'm going to try to build the discipline to only read the best book on my "to read" list, instead of reading the last good book mentioned to me.   I suspect this technique will be hard,  but reading the best books might be worth it.  If this works, I'll try to apply the same technique to other aspects of my life like movies, toys I want to watch, and people I want to have lunch with.

Soft Skills: Instilling stewardship delegation.

Stewardship delegation is a form of delegation where the responsibility for the delegated task is transferred to the delegatee.  Stewardship delegation requires upfront effort, but the long term effectiveness it creates is second to none, so I recommend learning and applying it. To establish stewardship delegation you must convey five concepts to your delegatee.  The desired results, the operating parameters, the available resources, the measurement system and the consequences of their stewardship.  I strongly recommend the delegator spend significant time ensuring the delegatee  understands these five concepts. Most of my failures to delegate are caused by the delegatee not understanding the concepts.  Having the delegatee involved in defining the concepts, especially the accountability model and the consequences helps build their buy in and tests the delegatee's understanding. The desired results is the outcome the delegator wishes to achieve.  Des...

Soft Skills: Effective Delegation

Image
A key scale out skill is delegation. Effective delegation refers to a small negative impact to the delegator resulting in a large positive impact via the effort of the delegatee.   Maximum delegation efficiency occurs in stewardship delegation. Stewardship delegation empowers the delegatee to be responsible for the delegated task, and takes an initially large investment from the delegator. However, once the stewardship delegation relationship has been established, minimal effort is required by the delegator to maintain the impact of the delegatee. A delegation relationship can be modelled as a teeter totter with the delegator on the left and the delegatee on the right.   The effectiveness of the delegation can be thought of as the pivot location. To increase the effectiveness of the delegation, the pivot must be moved to the left which allows small effort by the delegator to enable large impact via the delegatee. The pivot location and its movement is a function of delegat...

Soft Skills: Scaling out vs scaling up

Image
Scaling up refers to becoming a more effective person by increasing your personal efficiency. Scaling out refers to being a more effective person by engaging others to help solve your problems.    While scaling out is initially more difficult than scaling up, it has the potential for significantly more effectiveness than scaling up, so you should spend time investing in both types of scaling. To understand the entomology of these terms lets look at the computer domain.  In the domain of computers there are two common ways to achieve more computing power or scale. Scaling up and scaling out. Scaling up refers to getting more computing hardware for a single machine.  For example,  getting more RAM, faster CPUs or even bigger disks for the same computer.     On the other hand, scaling out refers to getting more computers. Instead of making your single computer faster you break up the problem so it can be processed by multiple computers and use the m...

Soft Skills: Concise, or is it?

I love being concise -   the efficiency warms my heart.   Russian, with its single   verb question, and matching single verb response gives me a visceral pleasure. Two Russians, Sergey and Slava, wanting to grab lunch could have the  following exchange: Sergey: Eat? Slava: Eat! My love of conciseness often  has me sending short emails.  Frequently, my mails are so concise that my reader has no idea what I'm talking about. This confusion means  I need to send another mail explaining the meaning of my initial concise mail. To conclude the lengthy explanation of my concise mail, I hear the words of my wise friend -  a message isn't concise if the reader can't understand it.

Scaling up knowledge workers

Image
Every year I try to spend a month doing things I’m proud of such as developing new ideas, sharpening the saw, and moving pet projects forward. Scaling up knowledge workers is one of those ideas I’m a knowledge worker, and I want to get the most out of myself that is possible. I call this scaling up , and it’s something I’m passionate about. The tooling for scaling up is in its infancy, so I’m helping to develop it. Personal Analytics One of the first area’s I’m developing is personal analytics. Personal analytics answers questions about you, and the first branch of personal analytics I’m exploring is screen time analytics. In this domain I’ve written either sensors, sensor downloaders and/or dashboards: Analytics Type Sensor/Data Extractor Visualizer Outlook E-mail psOutlook Email Analytics Screen Time Rescue Time Analytics Screen Time Analytics Time Usage Time Usage Reporter TBD Onenote Automation I do alot of my writing ( and writing is thinki...

Cool Tools: Rescue Time

Image
Have you ever tried to remember where your time went last week and had no clue?   Rescue Time  helps you understand where your time goes by keeping track of what application and web sites you use, and providing analytic over that data. I started using rescue time a few days ago, and can't wait to build up my personal usage data.

Soft Skills: Don't Tell Don't Ask

TL;DR: If you ask me any of the questions below I'll say ...  Sorry, I don't answer these questions, but would you like to talk about how my answer will affect you?   Are you quitting?   Is there a re-org?   Are you having a kid?    Is Igor getting fired? It's common for a questioner to  pose a question requiring a yes/no answer, with an intent to trap the respondent into disclosing information.  For example, assume Quincy wants to know if Rachel is pregnant, and Rachel is, but doesn't want to disclose that information yet. There are three possible behaviors for Rachel,  lie, disclose or abstain. Lie:   Quincy: Are you having a kid?   Rachel: No   2 weeks pass   Rachel: I feel awful for lying but I'm having a kid Disclose:   Quincy: Are you having a kid?   Rachel: Please don't tell anyone, no one should know, but yes. Abstain:    Quincy: Are you having a kid?    Rachel: ...

SaaS: The Genesis Node

This is part of the  SaaS  series. Any connection to reality will be strictly denied. "Igor, you know the odds of shipping Reddog on time are slim to none." My boss and I nodded our agreement as the director of OS development for Reddog continued. "Every team is sending a volunteer to the newly formed DevOps team. With an expert from each team, DevOps will be an elite, rapid-response team, able to deal with every type of problem in short order. The budget will be wide open, and the DevOps team is authorized to take any action required - are you the man for this?" I'm a sucker for hard problems - building all new software, powering-up a brand new datacenter, delivering a product critical to Microsoft's success, and shipping by a date that would require a minor miracle. "I'm in," I said with pride. The full impact of those two words sank in that evening as Jay, my OS team mentor, briefed me on my new role. "You'll need to res...

Soft Skills: Your life, the missing manual

Image
This post has moved. Please find it here .