• When I was a kid, my dad and I had a (friendly) argument. I said that digital displays were better and I wanted them everywhere, for example, as the speedometer of a car. My dad said that dials were better and he made his point:

    Dials are faster to read and remember and if the needle is oscillating, you can still read it and now what the average is.

    — My Dad

    He was right. If your speed was rapidly oscillating between 98km/h and 102km/h on a dial, it was trivial to read, on a digital display, it would be a blur that looks like 199km/h. You could solve it by dampening oscillations, but that creates other problems (lags) and it’s a boring solution.

    My dad was right, so I decided to solve the problem. I spent years thinking about and came up with a solution when I was 13 or so. A numbering system where only one digit changes at a time. Let me demonstrate. 0 through 9 is the same: 1, 2, 3, 4, 5, 6, 7, 8, 9. But the next number can’t be 10, because that’s changing two digits at the same time, so it’s 19… now what? Now you go down until you hit 10 and then you can go to 20, because between 10 and 20 there’s only one digit difference. Here’s from 1 to 30, highlighting the ones that are different:

    Normal PSDC
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    8 8
    9 9
    10 19
    11 18
    12 17
    13 16
    14 15
    15 14
    16 13
    17 12
    18 11
    19 10
    20 20
    21 21
    22 22
    23 23
    24 24
    25 25
    26 26
    27 27
    28 28
    29 29
    30 39
    31 38
    32 37
    33 36
    34 35
    35 34
    36 33
    37 32
    38 31
    39 30

    The way it works is that when a digit is odd in the original normal decimal number, the next digit is PSDC is inverted. This is the Python code to convert numbers to PSDC representation:

    def convert_to_psdc(number):
      digits = [int(n) for n in list(str(number))]
      new_digits = []
      for i, digit in enumerate(digits):
        if i == 0 or digits[i - 1] % 2 == 0:
          new_digits.append(digit)
        else:
          new_digits.append(9 - digit)
      return int("".join([str(d) for d in new_digits]))
    

    Here are a few interesting PSDC numbers:

    Normal PSDC
    0 0
    1 1
    9 9
    10 19
    11 18
    18 11
    19 10
    20 20
    21 21
    99 90
    100 190
    101 191
    189 119
    190 109
    191 108
    999 900
    1000 1900
    1001 1901
    1900 1090
    1901 1091
    9999 9000
    10000 19000
    10001 19001
    99999 90000
    100000 190000
    100001 190001
    999999 900000
    1000000 1900000
    1000001 1900001
    9999999 9000000
    10000000 19000000
    10000001 19000001

    Problem solved! Not really, this is useless… but for some reason 13 year old me started to be obsessed with this and I still think about it frequently.

    If you want to see all the PSDC numbers up to 10k, I published a table on this site.




  • city skyline across body of water during night time

    Making NFTs valuable and real

    by

    city skyline across body of water during night time

    If you don’t know what an NFT is, here’s a wrong explanation: they are an entry in a database saying that something, belongs to you (or more precise, to an account you have control over). It’s impossible to hack or fake…

    …but it’s also meaningless. You see, you don’t really own the thing, you just have control over what essentially is a link. You can pass it on, sell it, but you can’t prevent someone else from creating a similar or the same link (you could claim you have the oldest one).

    If you buy the NFT of a picture, you can’t do anything with it, while the original copyright holder can do everything they want. They can make more NFTs, license it for commercial use, print copies. If you want to stop, and end in court, your NFT is meaningless. This is the realm of intellectual property and by now it’s understood quite well. NFTs are not playing on the realm of intellectual property… not yet.

    I think this would make NFTs very valuable and also real (they are sort of fake at the moment).

    Make the NFT assignment also carry the contract that makes the assignment of copyright or transfers a trademark or patent. Now NFTs are wrapping the intellectual property that the courts will back up. Now it’s interesting.

    One interesting bit of NFTs is the fact that the original creator could get 5% of every sale afterwards. If NFTs are being used to transfer copyright, it should be impossible to transfer copyright without transferring the NFT otherwise there wouldn’t be further transactions for the artist to get paid out of. Can a contract be made so that the IP assignment cannot be separated from the NFT. That is a technically and legal challenge that I find interesting and if it’s possible, that could change everything.




  • Top Insights

    • She’s a black female gay, grew up in the south raised by a single mother.
    • She became a VC, very underrepresented, very underestimated.
    • Her firm is Backstage Crowd, open to accredited and non-accredited investors.
    • She published a book: It’s About Damn Time, about her experience becoming a VC.
    • Has a podcast: Your First Million.
    • Made a course: How to Raise Capital for your Company from Scratch.
    • She believes and preaches: Acknowledging privilege doesn’t take it away.
    • She raised $7m over 7 years.
    • On larger investors for her fund: They are invited to come back to her found but she doesn’t want to be beholden to them.
    • Prefers small like-minded investors to big LPs: it’s more fun.
    • She believes 80% of the companies could do without any funding and bootstrapping.

    It’s been pushing a boulder up a mountain.

    Arlan Hamilton

    Intro

    • Arlan Hamilton is black, female and a lesbian. She’s from the south, and was raised by a single mom.
    • She has a podcast called Your First Million. There’s another unrelated episode with the same name.
    • She’s happy to talk about race unlike others.
    • She published a book It’s About Damn Time.
      • She read the whole book for Audible.
      • She got rejected a lot.
      • She describes how hard it was to break in and how she did it.
    • There’s a lot of scrambling of people reaching it out to her that previously rejected her.
      • Some people are guilty because of Black Lives Matter, and George Floyd’s death.
      • Some people now have more leverage so they can work with her.
    • Arlan doesn’t accept any and all money she is offered.
      • Integrity is very important for her.
      • She’s very protective: 
        • Of her companies.
        • Of her brand
        • Of her people.
      • She doesn’t want to be someone’s saviour, the token black person that shows the caught up with the times.
      • She treats everybody as though they are good at first, but quotes Rihanna: “Don’t mistake my kindness for weakness
      • There’s a difference between someone that finally got that black lives matter and someone that just doesn’t want to look bad.
      • She doesn’t respect people that are just giving crumbs of what they actually have to the unrepresented crowd, that’s insulting.
      • Even if you were on her bad side, you can get on her good side, but it can take work.

    On Privilege

    • Acknowledging privilege doesn’t take it away.
      • She can acknowledge it’s harder for someone to get on an airplane when they are in a will chair without feeling bad about about her ability to walk.
      • Recognizing a privilege doesn’t put someone down.
      • Life being harder for a black person to get to the same level doesn’t mean a white person didn’t work as hard.
    • She wants everybody to have the same opportunity, not necessarily the same outcome.
      • She says “What I would love to be able to do, and all black founders and other founders would love to be able to do, is to wake up and start working on their thing and not spend 80% time defending myself.”
    • She raised $7m over 7 years.
      • The whole Backstage Capital experiment is a drop in the bucket, barely a series A round.
      • People that don’t want her on the industry are nervous.
    • Arlan and Jason had a lot of conflict at the beginning because she thought Jason was advocating lowering the standard to let women in.

    That was the worst tweet I ever did

    — Jason

    Backstage Crowd

    • We’ve had multiple investors that promised the world and backed out last minute.
    • Invested in 100+ different companies.
    • Invests pre-seed, usually 25k to 100k. Starting off with small checks.
    • The impact is starting to bear with companies starting to raise series A.
    • On larger investors for her fund: They are invited to come back to her found but she doesn’t want to be beholden to them.
    • She prefers to have like-minded people as her investors
      • Operators, big tech employees, etc.
      • Started 100k only last year.
      • Half the people that signed up are accredited, half are not.
      • 1200 people.
      • Now we can start putting $250k to $1m.
    • She doesn’t like to say that underrepresented founders have lower valuation to same performance, but that white men tend to be overvalued while underrepresented founders are correctly priced. Otherwise she believes people will think something is wrong with the underrepresented founders.
    • She has great deal flow, even white men pitching her, who are doing well: high quality and quantity.

    If I didn’t want to, I would never have to source a deal for the rest of my life.

    On NOT investing

    • Gives appreciation to companies she doesn’t invest on:
      • She built a lot of content:
        • Podcast
        • Meetups
        • Investor weeks, in and outside her portfolio.
        • Office hours
      • Slack for top 100 of the accelerator even if she couldn’t accept them.
    • Accelerator in 2019
      • 1900 applications in 5 weeks
      • Selected 24, in 4 cities, 2 countries, invested $100k
      • Top 100 got to be part of the Slack even if not invested on.

    On joining the crowd

    • She thinks it wasn’t necessary to be in Silicon Valley to be a great investor even before the pandemic.
      • ⅔ of her companies are not in Silicon Valley.
    • She wouldn’t consider investing in white men, her deal flow is too good.
      • She made exceptions, but they are very rare.
      • Underrepresented founders want her on their cap table.
    • What was it meeting by the big LP?
      • They are mostly guys.
      • They ask questions that make no sense.
      • They want explanations on startups that went to 0, when 80% will.
      • She feels her clothes get ripped and they point at each part of her body asking why it is fat.
      • Jason’s description of the experience of talking to the big LPs was triggering to her.
      • They don’t want to take a chance on the new.
    • Silicon Valley is a place of favours, she has a chapter on her book about how nobody is self-made.

    Go to Atlanta and hang out for a couple of weeks. […] It’s happening, you are missing it.

    Fleeting, a good example of her investments

    • Backstage Crowd has two lanes: accredited and non-accredited.
    • Fleeting: trucking company.
      • On the non-accredited track.
      • Raising fast on Republic.co, crowdfunding.
      • Founder wanted to be a doctor, he got to drop out of school, ended up working as a trucker.
      • He got taken advantage by a web developer company.
      • He knew what he was talking about, a perfect match for Backstage Crowd.
      • More than $1m in revenue.
      • Thousands of matches.
      • Her mother and brother invested in it, their first investment.

    All of these founders are going to make me so incredibly wealthy that I can’t stand it

    The future

    • She tried to raise a $100m fund, it’s impossible. She can do the same model with a syndicate and have a great relationship with investors downstream.
      • It’s more fun with the syndicate than with giant LPs.
      • She says “I don’t think anything could have been more tailor made for us at this moment than syndicates.”
    • She is going to try to get one or two deals a month. What makes sense organically.
    • She’s doing an online course: How to Raise Capital for your Company From Scratch.
      • 80% of the companies could do without any funding and bootstrapping
      • You want to have the investors chasing you and not the other way around.
    • She doesn’t like the idea of being seen as “having broken in”
      • She’s an outlier.
      • She has a way of thinking that most people don’t have.
      • It shouldn’t be this hard.
      • The first four years she didn’t feel she broke in.
      • If everybody has to do this, it’s not worth it.
      • There’s more work to do.

    If I didn’t felt hopeful I wouldn’t be able to wake up in the morning and do this.

    Arlan Hamilton



  • When you are building a B2B SaaS product it’s very hard to know what the appropriate price for your product is. Even if you magically found the correct one, it might not be the correct one next month when you made the product better and you are providing new values. That’s why you need to be constant experimenting with prices on your app.

    When I started my career I was afraid of raising prices, of having to justify why they went up (I wasn’t even aware of grandfathering). When I started to learn that most entrepreneurs set their prices too low, my partner and I decided to set the price too high and then lower it if it was necessary. Without realizing we painted ourselves to a corner.

    We didn’t want to just lower prices, we wanted to experiment with prices (switching from per-user to 3 plans, things like that). The problem was that anything we would come would cost a different amount for each customer. For some customers it would go up, and that wasn’t a problem, because we would grandfather them in. But for some customers it would plummet.

    There were two options for those customers:

    • Lower their prices according to the new plans and lose the revenue.
    • Don’t lower their prices and risk them being very angry about overpaying.

    Because we were a bootstrapped startup living month to month, every time we discussed this we would get stuck in a cycle of what-ifs one or the other situation. Eventually one day we made a rule of forbidding talking about pricing (trying to get some work done, because we would spend days and days discussing pricing).

    Eventually I found myself wishing that instead of starting with a high price and lowering it for experimentation, that we started with a low price and raising it for experimentation. We would have experimented much more. There’s another obvious solution which is not depend on the sweet revenue of those high prices. But even though it’s simple, I don’t think it’s easy… like sitting in front a pizza and not having a slide. Yeah… right!

    Next time I want to increment prices over time and even then try to give myself room for experimentation.




  • Dashman

    Why I think Dashman failed

    by

    Dashman

    Almost every time I tell someone what Dashman, one of my startups, was, their response is: “Oh, I really needed that back in 20somethingteen”. Yet I didn’t manage to make Dashman a commercial success.

    I collected several hundreds of email addresses over years of people interested in Dashman. Yet it failed, nobody bought it.

    How can a product show that much demand and have no sales?

    I’m purposely not telling you what Dashman was, because it doesn’t matter.

    I think the problem is that Dashman had a demand curve with a shape I didn’t predict. People would find themselves needing Dashman to solve a problem and would happy become a subscribing customer if Dashman was right in front of them… but… and this is the important part…. if Dashman wasn’t, they would find a workaround and not need it anymore. If I came a year later with Dashman they would buy because the workaround was working and switching was not worth the effort because their current pain around this issue was 0.

    Dashman solved a pain that generally stayed around for a couple of weeks and then disappeared. It didn’t matter if the pain was intense or not, it went away. You know what market behaves like that? Weddings. If you have a great idea for a product for Weddings and you spend 5 years collecting people that want to use it, once you release it, how many would start using it? Maybe the last couple of months of interested people. Everyone before that is already married and your product is worthless to them.

    I have heard weddings being a bad industry to work at but in all the books about building products in which they tell you to find the customer first I never read “make sure your demand doesn’t dissipate with time“.




  • Buying tools

    by

    I have a few maxims when it comes to buying tools. One I heard from Adam Savage and I think he heard it from someone else. When buying a tool you haven’t used before:

    1. When buying a tool you haven’t used before, buy the cheapest possible working version. Not the toy one, but the next level up.
    2. Once you wear it down, break it, outgrow it, buy the most expensive one you can afford.

    The idea here is that the cheapest one will be enough to get you started and learning about the tool, maybe it’s the wrong tool, or maybe the path splits in two or maybe you end up just not using it that much. By the time you are done with the cheap one, you will have gain knowledge that lets you chose a better one.

    When you buy a better one, it’s cheaper to buy a for-life tool, than keeping buying it every now and then. At that point the extra quality might also be appreciated, specially around precision and accuracy.


    I recently had to choose which family of battery based tools to buy into. Generally when buying a tool, brand-loyalty is a liability, not an asset. Buy whichever tool matches you the best for your need for that tool, whether it’s quality or price. But when it comes to battery there’s an advantage in brand-loyalty because you can interchange batteries between your tools. It would be awesome if there was a standard of battery connectors but that will never happen.

    I’m a hobbyist and I do some home repair and DIY, so my demanding on tools is not that high. I do love quality but I found something that I love more than quality: variety. I’d rather have an OK drill and an OK stapler than a great drill. This actually happened recently and we bought the stapler and now we find so many uses for it. Having a large repertoire of tools helps find new paths, new projects, new ideas. When it comes to battery tools, I’d say, buy the cheapest ones that are good enough for you.

    Big caveat: if it’s for a job that has a fixed set of tools, then adding variety beyond the tools you need is worthless, so there you should ramp up quality instead.

    This was my decision with battery tools: the default is Ryobi, they are cheap but not too cheap and they have a great range of tools. If we outgrew a tool, for example, not enough power, or not enough resiliency, then we upgrade it to Makita and have two battery families, but no more than two. The decision on Makita is not final, I would probably reevaluate it when the time comes… so far Ryobi is performing really well.




  • I’m very proud of what I achieved at Wifinity

    by

    Disclaimer: I’m blatantly tooting my own horn here because I’m proud of what I achieved, and very proud of what my team achieved. This is a personal story and a shout out to some awesome people.

    Today Jordan Bundy, someone I hired when I was at Wifinity sent all of us this message (pic included):

    Happy 1 year anniversary of getting the band together

    Jordan Bundy
    Part of the Wifinity team having dinner on our first get together.

    Today is the one year anniversary of the Wifinity software engineering team meeting face to face for the first time. I built this team completely distributed from the start and once I had the phase 1 complete, after months of being team mates but never having met, we had our first get together. Everyone was flown to London, where Wifinity is based, and we spent a week working, doing design/architecture, talking to all heads of departments, getting to know each other, and having geeky fun.

    Might have been the best business trip I’ve been on.

    Jordan Bundy

    What geeky fun? We all went to Bletchley Park to learn about code breaking during WWII and the birth of computers (where else?):

    On the day we all met, everybody was joking and talking as though we were old friends, like we knew each other already. I was ready to play host, to be the ice breaker, to work hard to make people comfortable… I ended up having to work hard to keep up instead. 

    At Wifinity I was in charge of all the technical aspects of a big Intellectual Property acquisition that had many moving parts that needed to come together in a 6 month program. We collectively wrote many hundreds of thousands of words of documentation that ended up being indexed, searched, tidied up and so on.

    The hardest part was probably migrating all of the servers from one company to another with minimal disruption to the wifi users. My goal was to have 100 or less complains and would have given us all a pat on the back for less than 10. In the end we got 0. Well… actually in the middle of the server transition we got 1 complaint, but turned out it was for a competitor service. That was pretty funny. A lot of credit for this migration goes to Chris Nash and Sam Whannel. If you need an SRE/DevOps/SysAdmin/SysOp type of person, you can’t go wrong with them.

    On the software development side the team did a marvelous job at taking over a very old code base with lots of technical debt, a lot of problems.

    Goran Jovic focused on security and he found some nerve wracking issues that we scrambled to fix. I remember internal conversations at Wifinity discussing pentesting; I think having Goran on the team was better than most pentesting.

    While we patched those security fixes, Rémi Sultan built an entirely new reusable authentication system that matched the needs of the company so that an entire class of bugs would be unlikely to ever happen again. He didn’t do it because it was on the roadmap but because he felt strongly about having a robust product, and he was correct.

    On the frontend side of things I had the pleasure of working with Grzegorz “Greg” Pabian. He’s an expert at many things. He was our resident Git wizard, teaching everybody the black arts of advance git and helping us when we got stuck with a broken branch. He could also have big-architecture thinking on the frontend so when he started re-writing and modernizing code, what he produced was a thing of beauty.

    Jordan Bundy also started on the frontend but it became clear to me that he’s a talented generalist. He didn’t stay on the frontend, he ventured into the backend and beyond, working with stakeholders. When I was leaving Wifinity, I recommended him to take over as manager of the team.

    And on the QA side of things I worked with Twayne Street. He’s good and fast at testing software. He would find so many rare bugs and his reports were so detailed and helpful. He started writing an automated testing system for Wifinity that looked pretty good. I really wish I would have seen it come to fruition.

    I’m very proud of what all of us achieved together at Wifinity and I miss working with this team a lot. I’d happily work with them again, and I know they would me; until then I’ve gained some very good friends. And I’m taking suggestions for our next nerdy venue. 

     




  • Good bye LastPass

    by

    I’ve been using LastPass for 7 years or more and I have converted various business and people to use LastPass but that ended today. I’m a security minded person so I’m not abandoning passwords managers, just LastPass.

    A few days ago I woke up and my LastPass vault looked like this:

    That looks bad… I contacted support which took about a day to tell me “Oh, yeah, your Vault is corrupted, don’t worry about it, we logged you out and fixed it. Just log back in.”

    Pfiuuuu! I thought. That was a nerve wracking unproductive day, but at least LastPass support eventually showed up and fixed it…. NOPE!!!! It was still corrupt. I sent about 30 more emails to LastPass over a period of 4 days after that and I got no response.

    I did manage to revert my vault back to the last master password I used, which thankfully wasn’t changed so long ago so I didn’t lose that many passwords and also thankfully I still remember that master password. But this is completely unacceptable behavior from LastPass to a paying user, so that’s it, I’m done with LastPass.

    Any recommendations on password managers?




  • First some definitions:

    • Bad debt is debt that was incurred for a liability, for example, buying cars, throwing a party, buying a boat, going on a trip.
    • Good debt is debt that is used to buy a producing asset. Debt used to start a business that is producing profit, buy a property that produces rent, etc.

    I once asked a bank for a loan. The loan would have been given to me on the basis of my salary, track record in earning money, credit report, and current affordability level. Still they asked me what I was planning on doing with the money and I told them I was planning on investing them in one of my business and on that basis the told me that I was rejected because they don’t do business loans. Mind you, I wasn’t asking for one, I was asking for a personal loan.

    Naively hoping to still qualify I explained that my business was buying property abroad and that it was a really good deal. Their answer was that I should talk to the mortgage department because they don’t do loans to buy property because then the property could be mortgaged and lost and they are left with nothing (nothing except every single payment coming out of my salary, mind you).

    When I talked to the mortgage department they told me what I expected: they can’t offer mortgages abroad.

    Later on I went to the same bank, I asked for the same amount and I told them I was planning on blowing it all out on a party. They said yes. Now that I was planning on just spending it on one single event of which no good financial outcome could come out, my salary was good enough for them to say yes to the loan. I asked what if I wanted to spend it on a highly depreciating asset, like a car, and they also said yes.

    It seems like banks prefer you to have bad debt, than good debt. I don’t know why it should matter one way or another if the collateral is the salary, not the asset, but if it matters, why does it matter in the wrong direction?




  • I once got a job at a company that was acquiring a massive piece of intellectual property from another and it was my task to build a team to maintain and transition the knowledge as well as running assets (servers, databases, etc). The company that hired me had no relevant the documentation and the IP we were buying came with very little and all potentially obsolete. Everything was a matter of asking random people one after the other piecing together the puzzle until the answer was built. Oh… and I had 6 months to get it done.

    The process of starting to write documentation was very daunting, so I created a new type of document that I named “Exploration”. An exploration is frozen in time and describes something that happened, was found, discovered, figured out, etc. For example an exploration might say: “My boss asked me to add an account, I didn’t know we had accounts. I asked Johnny and he said Sally used to do it but she left. I asked my boss who replaced Sally and I was told to talk to Sam. Sam told me how he adds accounts, the steps are 1, 2, 3, 4. He doesn’t know what step 3 does but he knows that if you don’t do it, the account doesn’t work.”

    An exploration is frozen in time and describes something that happened, was found, discovered, figured out, etc.

    I bet I’m not the first one to come up with this concept, but I haven’t seen it anywhere. Have you?

    The goal of the explorations is to quickly form a written corpus of documentation about “How do we do things here?”. This allows you to depend less on people, which is very useful during transitions or turbulent periods where people might leave.

    One of the key aspects of explorations is that they are narrative, informal, and not necessarily high quality. It’s hard to write the manual so people don’t do it. Specially if it’s a big manual of which nothing is written. The exploration is a brain dump.

    Explorations should be stored in a centralized documentation system that’s easily searchable. My preference is Confluence (maybe using the blogging feature), the cool kids are using Notion these days. Stay away from Google Docs, because it promotes private copies and there’s no way of having a single tree or directory of documentation. Being able to easily search all explorations is very important and they should be searchable with the rest of the documentation.

    Explorations sometimes evolve into proper documentation, procedures that are maintained and live. When that happens, I often have a See Also section in the document that points to the explorations that influenced it and at the top of the explorations I add links to the document. It’s important to note that explorations are tier 2 documentation and it’s important that everybody knows it so that they are not taken as truth when read and are written liberally.

    The frequency at which explorations are created changes depending on what’s going on at the company, but generally people should be writing them any time they faced something puzzling. The way I do it is very simple: I constantly debrief with my team about what they did and after they told me the story of what happened, what they did, the workarounds and we have a good laugh, I almost always say: “Please, write an exploration about it”. It takes some effort to get started, but I think often people realize not having to remember things and just making brain dumps has a lot of value. Eventually they would just write explorations without me asking.

    Don’t expect explorations to have an immediate effect. It takes time to build a corpus of data that is worth searching for answers. It might take you a year to get there.




If you want to work with me or hire me? Contact me

You can follow me or connect with me:

Or get new content delivered directly to your inbox.

Join 5,047 other subscribers

I wrote a book:

Stack of copies of How to Hire and Manage Remote Teams

How to Hire and Manage Remote Teams, where I distill all the techniques I’ve been using to build and manage distributed teams for the past 10 years.

I write about:

announcement blogging book book review book reviews books building Sano Business C# Clojure ClojureScript Common Lisp database Debian Esperanto Git ham radio history idea Java Kubuntu Lisp management Non-Fiction OpenID programming Python Radio Society of Great Britain Rails rant re-frame release Ruby Ruby on Rails Sano science science fiction security self-help Star Trek technology Ubuntu web Windows WordPress

I’ve been writing for a while:

Mastodon