Category Archives: Habits

Johnny Boursiquot on building a software agency from scratch, learning Go for Rubyists, and server-less software architectures.

Listen to this episode of Hacker Practice on iTunes today.

Sometimes you start a conversation with one intention, and digress into something completely different.

This happened to me recently, in a conversation with an old friend and mentor, Johnny Boursiquot.

Johnny and I were supposed to do a deep dive into Go Lang and Ruby in this hour long conversation. Instead we spent half an hour talking about Johnny’s experience building a technology agency from scratch.

Then we got around to talking tech XD.

Johnny is well-known as one of the pillars of BostonRB. He also helped to organize the Boston GoLang meetup before moving to Maryland where he founded Baltimore’s GoLang Meetup.

He was listed on New Relic’s list of 18 Go Experts to Follow Online.

In the episode we talk about:

  • Johnny’s lessons learned from founding and building a tech agency, lots of juicy business advice for consulting companies and agencies in the first half of this talk
  • The relative pros and cons of using ruby vs go in different domains
  • How to get started using a new language

  • A quick primer in serverless application architectures

  • How intermediate devs can 10x their workflow

And a lot more.

Enjoy.

Notes

[00:00] What brings Johnny to Maryland after living more than a decade in Boston

  • What brought him to Boston in the first place

[02:30] Major lessons learned from time in Boston running a technology company

  • Running a company means that you’re responsible for other people’s income
  • Many unexpected challenges: biz dev, legal, etc

[05:15] How did Johnny get started in technology business.

  • Started with entrepreneurship in high school

[08:00] Learning how to do business

  • Dealing with clients
  • Managing expectation
  • Touching on the difference between hacking and building a product

[11:00] #1 Lesson? The difference between a service business and product business

  • Agencies do not scale the same way a product scales
  • Most agencies do not end up producing a lot of reusable technology or internal products
  • It’s hard to do internal product development because your staff is busy with revenue generating service activities
  • It’s risky to invest in product development

[20:00] What would Johnny do differently if he could start over?

  • Start a product company: raise money.

[23:00] What about the reverse situation? Making a profitable, successful agency.

  • Protect your margins
  • Be flexible with workflow; Agile doesn’t always work smoothly in an agency environment
  • “They want warez”
  • Your job is to tease out the specifics of what the client actually wants
  • “You’re not in control of your own product roadmap”

[27:30] How to mitigate risk of scope creep

  • Establish a relationship; a partnership to guarantee future work
  • Get a Master Services Agreement

[32:00] Segue to technical discussion. What is Ruby good for vs Golang?

  • Ruby for developing something fast. “Getting a web app out there as fast as possible”
  • GoLang is better for heavy lifting, whenever performance is a consideration

[37:45] What are Johnny’s tips for learning Go (or any language)

  • “Leave baggage at the door…appreciate the differences of Go”
  • There is a “Go Way” of doing things

[41:15] What kind of project should I try using GO in

  • Anything with heavy duty network requirements
  • Microservices (“Something you can throw away”)
  • “Gnarly, performance-critical jobs”
  • Concurrency in Go is super-awesome

[45:00] AWS Lambda and Serverless 101

  • Not actually “serverless”. That’s a marketing term. There is always a server somewhere.
  • Monolithic App > Microservices > Lambda functions
  • Everything is a discrete functional unit
  • Very cost-effective because the server only runs when you call the function

[51:30] What can an intermediate Rails developer to 10-20x their workflow

  • Look past the magic of the language (Ruby) or framework (Rails)
  • Learn the underlying properties of the WYSIWYG
  • Understand how SQL, HTTP, Databases, and CURL — fundamentals of the web — work
  • Learning the underlying complexity enables you to use the higher-level abstractions more rapidly

[59:00] Johnny’s relationship with the command line

  • Used to work in Windows, and mostly everything was a GUI
  • Put together command-line tools to build Flash experiences
  • Started using Ubuntu – understood that there are discrete tools to use and stitch together from the command line
  • Now uses a Mac. Everything can be done from the terminal

[1:05:45] Running swift on the server

[1:07:00] Johnny’s new life hack

  • Modified Pomodoro with a physical twist

[1:10:00] Johnny’s child-rearing hacks

    • Every child is different
    • Reward effort over innate qualities
    • Lots of people squander innate talent. Working hard never fails.

[1:14:00] Johnny’s new job at an education non-profit

  • Serving under-served school districts
  • Exposing diverse groups to the world of technology
  • Bring education equity to the communities that need it most
  • Mostly doing ops work these days
  • The biggest challenge is always dealing with people
  • Johnny loves pairing with more junior members

[1:20:00] Final requests to the audience and where to find Johnny

What now?

Go become a better programmer. And subscribe to the show on iTunes.

How to Be a Zen Master while Spending the Holidays with Your Dysfunctional Family

When you leave home for the first time, you discover yourself. Or, as in my case, you can engineer yourself with the help of some brilliant professionals. This is a simple matter of applying principles of behavior change to your environment to make desired behaviors effortless.

When you cannot control the environment, ideal behavior becomes a taller order.

Periodic visits are mandatory in most families and every homecoming reminds me of the strength of old habits and interpersonal dynamics. Every tendency I have eliminated through careful environmental controls rears it’s ugly head once I’ve returned to the family farm. I only win these battles with a combination of preparation, vigilance, and reflection.

I want to share with you my strategies for dealing with the uncontrollable home environment we all encounter when we return to our parents and siblings for the holiday season. You don’t have to become a child just because you’re in your childhood environment.

Continue reading

The five kinds of friends and how they will impact your business.

To change your social habits in 2017, try out the 2017 ONE CAL wall calendar that I made specifically to help with habit tracking in my own life.

These are some of my best friends.

The average angel-backed startup is running on one thing: Trust.

They’re mostly comprised of 20-somethings. They don’t have wives or kids. They have friends. They live with them, they hire them, they eat their breakfast, lunch, and dinner with them. Their co-founders are their oldest friends. They share studio apartments paid for up-front on maxed-out Amex’s. They invest in each other’s companies and they cover each other’s bar tabs.

Now that I work with startups around the clock, I’ve seen how friendships can affect business: How college roommates can become effective leaders in the private sector. How starting up with your family can tank the company in six months. The nature of the relationship makes all the difference.

There are 5 kinds of friends when you’re involved with a startup. They can exist within your organization or come from other places. They can be family members, mentors, or some combination.

They are, in no particular order:

1. Bad Friends
2. Good Friends
3. Best Friends
4. Imaginary Friends
5. Demons

The differences lie in the costs and benefits as well as the corporeal existence of the entity in question.

Bad Friends (Waste time, waste energy)

Bad friends are toxic. They take up time and energy. They have bad habits. They are bad friends to you, and to themselves. They make you feel judged. They are not in alignment with your goals. They have expectations that can’t be managed. If you don’t spend time together, they stop being friends.

You should stop spending time with these people. They consume your time and your energy. There’s a compound effect for every toxic relationship you maintain.

Sometimes, bad friends are extravagant. They convince you to spend precious time and money on toxic behaviors. They want to party. You want to work. They want to eat fancy, you want to eat healthy.

They’re fun, but they’re bad for you.

If you’re wondering if a specific person is a bad friend, they probably are.

Drop these people from the team. Simply stop communicating with them. With they text, ignore them. When they call, ignore them. When they email, ignore them.

Some people will say you’re a being a bad friend. I contend that you’re saving everybody time and energy and being a good friend to yourself.

Good Friends (Spend time, gain energy)

You might spend most of your free time stressing about the things you’re not getting done. Good friends get you to forget about the to-do list for a while. The best entrepreneurs are present in the moment and soak up this time together.

You should get energy and insight from your friends. This is what separates the good friends from the bad. They both take up time. Good friends give you something in return: energy.

Good friends have different goals from you. They are working towards a different end.

Good friends are good people. They feed your soul. They don’t cost you any money. They barely cost you any time. They are supportive, understanding, and considerate. You have to spend time on good friends. You have to keep in touch and hang out together. If you weren’t regularly in contact, you’d drift apart. This is a sad but necessary fact of friendships. Drifting apart doesn’t have to be painful. A good friendship can be rekindled without hard feelings as long the mutual energy transaction is still present.

Best Friends (Save time,  gain energy)

The best friends take up no time at all. Every moment spent with your best friends is a moment spent on the cause. They are working towards the same goal you are. These are the people you found companies with. People who you partner with for 10 years to achieve the moonshot that is your life’s work. They come around once or twice in your lifetime if you’re lucky.

These relationships are not strategically planned. They are serendipitous.

You gain energy from these people. You save time by knowing them. They are the ultimate force-multiplier. They are your secret weapon, your competitive advantage.

Imaginary Friends (Save time, spend energy)

In Think and Grow Rich, Napoleon Hill suggests the formation of a personal cabinet. This is a set of imaginary friends that you consult regularly to get advice. These are usually role models and icons that live in your head and help you think from the perspective of a genius you admire. Here are mine:

1. Jesus
2. Gandhi
3. Elon Musk
4. Tim Ferriss
5. Steve Jobs
6. My future self

I go to these people with different issues. Jesus reminds me to love my fellow man. Gandhi reminds me that the truth will set me free and that I have to be the change I want to see in the world. Elon reminds me to focus on big problems. Tim asks me if I’m working on the right things. Steve keeps me focused on quality, because if it isn’t quality it’s shit.

My future self is on the cabinet as a reminder to check in. How am I treating myself 12 months from now? How about 12 years? How am I treating the person I should (ostensibly) care the most about?

Maybe you haven’t put together an imaginary cabinet.

That’s fine, I’m kind of a freak.

But, you certainly have mental schemas and representations about people in your head. One of my portfolio CEO’ssays, “I just ask myself what my mother would think of what I’m doing”.

That’s the same thing. Those mental representations require energy, but they can save you a ton of time by giving you an outside perspective.

Demons (Waste time, lose energy)

Demons are your internal saboteurs. Positive Intelligence lists the ten saboteurs as follows:

  1. The Avoider
  2. The Controller
  3. The Hyper-Achiever
  4. The Hyper-Rationalizer
  5. The Hyper-Vigilant
  6. The Pleaser
  7. The Restless
  8. The Stickler
  9. The Victim
  10. The Judge

These have been described in depth in Positive Intelligence (which, yes, you should read). They all affect us in some capacity at different times.

I’m certainly a victim of my own demons. I tend to judge others harshly. I tend to be restless, bouncing from task to task. I frequently wonder if the task at hand is the most important task I could be doing. A regular mindfulness practice has helped me be aware of and address these tendencies in a constructive way.

Demons waste our time and our energy. Whenever you catch yourself engaging with your demons, you should consult with your cabinet instead.

Understanding your friends, real and imaginary.
The real Tim Ferriss once said that if he could put anything on a billboard, anywhere, he would put it on the campus of the country’s biggest college. It would read: “You are the average of the five people with whom you associate the most.”

This a popular concept and really potent one. It’s critical to professional and personal growth to accept that our social circle is individually formative.

I include our good and bad imaginary friends on this list to emphasize that time spent in reflection is at least as important as the time spent in action.

High performers are good at asking: “What am I spending my time doing?”

The question I’m suggesting we ask is: “Who am I spending my time with?”