My Amazon Seller Stack: 23 Tools of the Trade

Software and services to power your Amazon business.

I’ve been selling on Amazon since 2014 and over the years the strategies, services and tools I used have evolved just as much as the Amazon landscape has evolved.

There are now suites of tools dedicated to solving specific problems faced by Amazon sellers but as my business has expanded, becoming more of a business than simply a form of search engine manipulation, my needs have grown

My operational infrastructure and team has scaled to meet the demands of selling across 7 different Amazon marketplaces, allowing me to free up time to train for a Spartan Race and to expand our product range again, whilst also hitting record days in what is traditionally a slow quarter for E-commerce.

Whilst I firmly believe the core of our success is our philosophy of only launching products that genuinely help people and trying to be the best out there, our ability to scale across so many marketplaces and SKUs is undeniably down to the software infrastructure, services and team that the entire business operates on.

So I wanted to share the tools and services we use to say thank you to them for helping us so much.

I didn’t start out using all these products and services, new and smaller Amazon sellers might not need half of them, and whether they are the best is often subjective, but they are all what we are using right now to operate our business.

Operations

The day to day operations require tools that work, all the time, every time and our decisions reflect that

Google G Suite – Productivity & Collaboration

https://gsuite.google.com

I want to think about my business, not whether our emails are getting through. We use Google’s G Suite for email, documentation, calendar and hangouts. It just works and is ubiquitous. Very little on-boarding needs to be done with new hires and it’s easy to secure and configure. Amongst other documents, all our translations are stored as Google Sheets allowing for effortless collaboration.

Upwork – Hiring

https://www.upwork.com/

We have a core team of full time staff members, some core contractors who work for us on an ad-hoc basis, e.g. translators, and then there are the specialists we hire just to solve a single problem. We’ve been using Upwork since it was called ODesk and whilst it has had problems it’s also proven invaluable in finding good talent fast, as long as you know how to create good job descriptions and find the talent yourself. I’ve never hired someone who’s applied to a job post, I’ve always headhunted talent looking for a position.

Asana – Project Management

https://asana.com

All our project management is done in Asana, helping us stay focused on what the important tasks are and who is responsible for them. With a distributed team communication is key and being able to assign tasks, track responsibilities and work in progress whilst receiving real time notifications throughout a task lifecycle helps all of us keep each other on track.

Dropbox – Distributed File Store

https://www.dropbox.com/

Whilst we store Google Documents in Google Drive, we use Dropbox for all our business and project assets, e.g. labels, brand assets and purchase orders records. Google Docs are great to collaborate on in a web browser, but Google Drive doesn’t let you sync a business and personal account locally, Dropbox does, and setting all our staff up with their own company Dropbox accounts is really easy, as is sharing files.

Grasshopper – Global Phone Numbers

https://grasshopper.com

We use Grasshopper for our customer service numbers, allowing us to give customers in the US a toll free number to dial! It provides a useful desktop application for taking calls from a laptop and will send voicemails as emails for out of hours calls.

Help Scout – Email Help Desk

https://www.helpscout.com/

We’ve integrated Help Scout in to both Amazon and our WooCommerce platforms, allowing us to handle help desk customer service as a team. Having a decentralised customer service team, working together across timezones, is probably the biggest thing that’s let us scale as a business. No more missed support tickets, just happy customers.

Slack – Real Time Collaboration

https://slack.com

All of our team uses Slack for real time collaboration (posh for chat) allowing us to communicate, share resources, discuss work and get things done. It’s responsive, easy to create secure channels, the design team don’t need to be involved in inventory discussions, and a searchable chat and asset history has proven itself time and time again.

Standuply – Scrum Manager

https://standuply.com

We’ve integrated Standuply with Slack for Scrum management. This is as much for the good of the team as it is for me to keep track of what I’m doing. Standuply is triggered to ask each of us 3 simple questions each morning as we start work:

  1. What did you do yesterday?
  2. What are you doing today?
  3. Are there any obstacles?

This makes it easy for all of us to keep track of what we’re doing and what everyone else is doing.

WorldFirst – International Banking

https://www.worldfirst.com

We buy and sell products and services all over the world in 4 different currencies. Working with WorldFirst gives us much more competitive ForEx rates and much lower fees for currency conversions and international wire transfers, this has substantially improved our profit margin compared to our normal business banking solution.

Amazon & Logistics

DHL – International Shipping

https://www.dhl.com

We ship, a lot, globally. You’ve probably heard of DHL, they are the one with out the arrow in their name 😉 Samples from China, signed letters to our bank, inventory from factories to warehouse, we do a lot of it with DHL.

SentryKit – Amazon Listings Health Check

https://www.sentrykit.com/

With so many products across so many marketplaces, keeping track of their health means checking the Amazon listings daily, the perfect task for a SaaS! SentryKit scans all our listings across all marketplaces and produces a daily report of any issues that need to be tackled. Experienced sellers will know that even if you do everything right the Amazon systems aren’t perfect and SentryKit gives us the piece of mind that we’ll know when an incident does happen to one of our listings!

Deliver Plus – International Delivery

https://www.deliverplus.co.uk

We use Deliver Plus to get better rates for international shipments to the UK. They have large accounts with DHL and UPS which gets them bigger savings than are available to us by ourselves.

Feedback Genius

https://www.sellerlabs.com/feedback-genius/

Seller Labs’ Feedback Genius is an enterprise level auto-responder allowing us to reach out to our Amazon customers to provide automated, after sales care. This after sales support helps our customers love our products and our brand just a little bit more and if our customers are happy, I’m happy!

Marketing

Shutterstock

https://www.shutterstock.com

We do a lot of content marketing, blog posts, banners, adverts, etc. and need to find licensable, quality images that are fit for purpose. Shutterstock has a MASSIVE online database of licensable images so we simply have a subscription with them that covers our needs

WP Engine

https://wpengine.com

We used to run our e-commerce and marketing platform on Shopify, but after spiralling development costs and no SEO footprint we switched to WordPress and WooCommerce and quadrupled our traffic and sales overnight. Whilst I love hosting infrastructure I wanted to work more ON the business rather than IN the business so moved our platform to WP Engine. Due to the way I architected the platform we have a contracted WordPress administrator who does about 2-3 hours of work a month across 7 different sites. It’s a really elegant solution for building any sales and marketing platform.

Mailchimp – Email Marketing

https://mailchimp.com

Mailchimp is my favourite email marketing platform. As we have so many products selling in so many different countries and languages it’s important to have a simple solution that lets us collect email addresses across all our platforms, tag them appropriately and let us automate mail outs to our different customer segments. Mailchimp does it perfectly and with a really beautiful user interface that keeps things simple (stupid)!

Accounting

Xero – Online Accounting Software

https://www.xero.com

We used to use an accountant that had their own bespoke online accountancy platform but switched to a different accountant as our bank accounts and number of currencies we handled increased to a point their system couldn’t handle. Now we use Xero I can’t recommend it enough. Our first accountant’s bespoke platform seemed an easy option to start with but we suffered from vendor lock-in and high priced, specialist, book-keepers. Xero is familiar to all good accountants and book-keepers so you can change service providers with out changing accountancy software.

A2X – Amazon Marketplace Accounting

https://www.a2xaccounting.com

A2X exports all our Amazon transactions in to Xero, simplifying the work our book-keeper needs to do and helping make sure that everything is accounted for. It saves a lot of time and money and is extremely reliable.

Avask – European VAT

https://ukvat.uk.com

Because we sell so much in so many European countries, we need to be VAT registered due to EU law. Avask Accounting & Business Consultants have helped us get VAT registered across the EU as well as handle all our accounting and help us to make the VAT payments.

Compliance

Ashbury Labeling – Product And Labelling Regulations

https://www.ashburylabelling.co.uk

One of my brands is a vitamin supplement brand which is heavily regulated in the EU. Working with Ashbury gives us peace of mind, knowing that all our product ingredients and formula are legally approved for sale in the EU and that our labelling and marketing practices are also compliant with no misleading health claims. In the USA we sell Probiotics, in Europe it’s Live Cultures!

Di Renzo – Italian Regulatory Affairs

https://www.direnzo.biz

All supplements warehoused and sold in Italy need registration with the Italian Ministry of Health and we’ve been working with Di Renzo to communicate with the Italian government and get all our products approved as Italy is one of our largest markets. The business has grown from an Amazon business to one of legalise and compliance!

Natural Products Consulting Corp – Canadian Regulatory Affairs

https://www.npc-corp.ca

Canada also require all supplements to be registered with the Canada Health organisation and assigned a Natural Product Number (NPN). NPC Corp handled all the hard work for us, helping us register our products and sell them in Canada.

Podcasts

The Amazing Seller

https://theamazingseller.com

I’ve been listening to Scott Voelker’s The Amazing Seller podcast from the start, when it was just Scott and his dog! He helps keep me in the loop with what’s going on in the Amazon ecosystem and is another tool in my toolbox to help me keep current and on top of things.


I was inspired to create this post after paying my corporation tax and going over the accounts of the last 12 months and seeing all the services we’ve leveraged to build the business and get to where we are today.

We’ve dabbled with lots of tools not mentioned over the years which have fallen by the wayside but this is a pretty concise list of all the products and services we are using at the moment as the platform for our business.

I’m curious to hear from others.

What’s in your Amazon seller stack?

Over the course of the last 12 months, what has been your most consistent present problem?

Where Do You Get Your Information From?

Whilst working along side CEO and designer Jon Myers a common conversation thread that would emerge was “Where do you get your information from?”.

Motivational speaker Jim Rohn famously said that we are “The average of the five people we spend the most time with”. A similar philosophy can be applied to the information we absorb.

Limiting the scope of information we gather will in turn limit our horizons. If we live in a bubble we will isolate ourselves from incite and experiences of people outside that bubble.

Taking on board information from incongruent sources can also be dangerous. Always take a good look at people offering advice. If they are living the life they talk only then should you listen.

Here are some of the blogs I read to get genuine information which has been helping me grow my career over the years.

Slashdot

Slashdot is why I got in to Bitcoin in 2010. It is a tech news aggregator aimed at nerds and is often the first news site to report on tech news sourced directly from specialist mailing lists and newsgroups.

Joel On Software

Joel Spolsky is the founder of Fog Creek Software and co-founded Stack Overflow and Trello. Joel has been blogging about his approach to software and business on Joel On Software since 2000.

OnStartups.com

Dharmesh Shah is co-founder and CTO of HubSpot. Dharmesh loves what he does and has shipped “about ten” commercial products across different startups. Whilst Dharmesh has slowed down blogging on OnStartups.com he can be found on Medium.

Signal v. Noise

Signal v. Noise is written by David Heinemeier Hansson and the team at Basecamp. David created Ruby on Rails and founded Basecamp in 1999. Basecamp are now a company of 50 people working remotely across 32 different cities.

High Scalability

Todd Hoff has been blogging about High Scalability issues since 2004. Todd worked at Yahoo from 2005 and helped them scale to serve hundreds of millions of users. He’s also built HA platforms with five 9s of availability. 

A16z

Andreessen Horowitz is a venture capital firm in Silicon Valley with a focus on technology. Their founders and team regularly write for their blog covering all aspects of the industry.

Philosophy Of Logging

Application logs are one of the most useful diagnostic aids in platform support and it pains me that many developers often ignore such a critical aspect of their system.

When To Not Log

There is only one reason for an application to not generate any logs, and that is for performance reasons, e.g. constrained telecoms or web servers running at maximum IO capacity where even writing to disk will have an impact on application performance.

And even then, you can bet those applications catch and log exceptions at an ‘error’ level for diagnostic purposes.

Really, there are no reasons for an application to not generate any logs ever, which is something I see all too frequently.

Logs Are Important

The developer might know what the application is doing already, they wrote it, but logging also tells other people what the application is doing. The QA team, the systems team responsible for deployment, the on-call sys admin who is responding to alerts generated by a failing system, running the code, at 2am. All these people need to understand what the code is doing, the developer is part of a team and the code is part of a system. Everyone and everything has to work together for the solution to function.

It’s Hard To Log Too Much

Most languages have third party libraries to help with logging, e.g. log4j, WinstonJS, etc.

These libraries let you configure a log level, e.g. debug, info, warn, error, none, depending on the severity of what you are logging, so you can filter what the application actually spits out.

e.g. if you consider the following code

logger.debug('User not authenticated', email);
logger.error('Exception', err.message);

an application configured to log at debug level would log both lines, but an application configured for just error logging will only log the on error line. This way you can run the application at a log level suitable for your needs.

router.post('/signin', async (req, res, next) => {
  logger.debug('router.post /signin');
  try {
  }
}

It’s even reasonable to add logging at the top of each function call, so you can trace through the application as it runs confirming the correct parts get called. In the worst case it’s comfort noise, in the best case it will help someone solve a bug as they step through the logs later.

Catch And Log Your Exceptions

When your application generates an exception that means it’s doing something you didn’t predict. Probably triggered by an error.

It takes reading documentation to know what libraries and functions will and will not throw exceptions. A good rule of thumb is if the libraries’ example code catches exceptions, production code should also catch those same exceptions.

A responsible developer will catch and log these errors every time and these errors should be logged at the appropriate error level.

Log To Console/Disk

Depending on your application and it’s environment it is not enough to just return an error as the result of a request, e.g. in the case of a web server.

Creating a web service that returns an HTTP 500 status code and some JSON containing the error to the client seems a reasonable way of handling errors but it offers no paper trail. If your application can’t log people in because a disk is full, with out proper logging how are you going to know when the incident started? How are you even going to know it’s because the disk is full if you aren’t catching, throwing and logging exceptions around that code? How is the systems administrator supposed to diagnose that issue at 2am when text messages get them out of bed?

Logging to disk gives you the benefit of 20/20 hindsight. With correct use of timestamps you can see when issues occurred and from that come up with holistic solutions to stop them from happening again.

Logging to console gives you something to look at if the disk fills up.

Use A Log Aggregator

Logging isn’t just for developers and systems administrators, it also a useful information source for first tier customer support when the logs are pumped in to an aggregator.

With Importist we are using Sentry, it has an open source solution if you want to host your own or a hosted option with a usable free tier, other options include Splunk or Kibana.

To a certain extent, anyone that can read should be able to understand some error messages. e.g. Cannot connect to database. Allowing first tier support read access to a good log aggregator will reduce the cost and time to fix of incidents by helping them diagnose customer service issues themselves and improve the quality of bug reporting, removing any guess work from second tier support and beyong allowing them to get to the heart of the issue quicker.

A good log aggregator will also integrate with Slack and email for reporting and notification, possibly alerting you to issues before your customers even realise there’s a problem if configured correctly.

You Can Graph Logs

Logs can be used to create graphs. Key Performance Indicators (KPIs) and statistics can be monitored by analysing logs with a tool like Munin. A great example is the Apache web server. Apache will log every HTTP request to an access file with a timestamp. Analytics tools like Munin can then scan that log file to calculate statistics like accesses per second.

I’m currently investigating Logz.io for visualising our system logs. Logz.io makes logging cool again as you can run pattern matching against the log output of every component in your system, the application servers, the databases, the web servers, email servers, everything. Properly configured tools like Logz.io or ELK will even generate access maps if the user’s IP is available.

The Dangers Of Courses

I’ve seen a lot of people wanting to get started in software development take courses or bootcamps thinking that is enough and then they will know it all.

I’m a big fan of self education and am slowly going through a series of courses on Udemy for fun. I also love what the freeCodeCamp guys are doing. But all these courses seem to have one thing in common so far.

None of them discuss logging.

Well, that’s not entirely fair, freeCodeCamp uses logging as an example of writing Express middleware. But so far that’s it and that’s really not good enough.

Not All Of This Is Gospel

How and the amount you log obviously depends on what you are doing and who you are working with.

If you’re writing a quick script to parse a CSV you will require a different level of logging than if you’re dealing with a distributed application spanning many processes and servers.

If you’re part of a company then you will need to log appropriately for the rest of the company to function.

Conclusion

Depending on your point of view logging

  • makes the terminal messy
  • helps diagnose system and performance failures
  • can be used to monitor system performance
  • can be used to create system KPIs

Building Your First VR Experience In Decentraland

This is a brief video and tutorial on building your first VR experience in the Decentraland VR platform and getting you started with the tools, a-minus syntax. By the end of this tutorial you will have an area of land with a Lambo on it you can walk around. Publishing the land to the Ethereum blockchain will come in a later video.

Sorry for the fan noise, the client seemed to have killed my CPU 🙂

First you need to install node from either:

I am currently using version 8.9.1

Then you need to install the Decentraland CLI tool. The tool is documented at https://cli.decentraland.org/ but is installed with the command

npm install -g decentraland

 

I ran in to a bug where the first time I ran the install command it failed to install. When I ran it for a second time it installed fine.

Now create your decentraland directory, I’m calling mine rus-demo

cool-2:Code rus$ mkdir rus-demo
cool-2:Code rus$ cd rus-demo

 

Now run dcl init inside the directory you just made

cool-2:rus-demo rus$ dcl init

? Scene title: rus_demo
? Your ethereum address: (recommended — used to check ownership of parcels when deploying
your scene) 0x818118181888
? Your name: (optional — shown to other users so that they can contact you) rus
? Your email: (optional — shown to other users so that they can contact you) rus@rus.com
? Parcels comprising the scene (recommended — used to show the limts of your scene and upl
oad to these coordinates)
Please use this format: ‘x,y; x,y; x,y …’
1,1; 1,2; 2,1; 2,2
? Do you want to continue? Yes
New project created in ‘/Users/rus/Documents/Code/rus-demo’ directory.
? Which type of project would you like to generate? Static a-minus scene project
cool-2:rus-demo rus$ ls -al
total 24
drwxr-xr-x 9 rus staff 306 22 Mar 09:24 .
drwxr-xr-x@ 79 rus staff 2686 22 Mar 09:22 ..
-rw-r — r — 1 rus staff 116 22 Mar 09:24 .dclignore
drwxr-xr-x 3 rus staff 102 22 Mar 09:24 .decentraland
drwxr-xr-x 2 rus staff 68 22 Mar 09:24 audio
drwxr-xr-x 2 rus staff 68 22 Mar 09:24 models
-rw-r — r — 1 rus staff 495 22 Mar 09:24 scene.json
-rw-r — r — 1 rus staff 358 22 Mar 09:21 scene.xml
drwxr-xr-x 2 rus staff 68 22 Mar 09:24 textures

 

Download the lambo files from

https://nofile.io/f/TZr8JXFfHCc/avent.zip

Extract the models and put them in the models folder

Open the scene.xml in your favourite text editor, replace the contents with the following a-minus code to display an object.

<a-scene>
      <a-obj-model obj-model="obj: models/Avent.obj; mtl: models/Avent.mtl" position="0 0 0" rotation="0 0 0" scale="1 1 1"/>
</a-scene>

 

Save the scene.

Run dcl start.

dcl start

 

Drive your lambo to the moon.

The Decentraland marketplace has now been launched at https://market.decentraland.org/

Building A Virtual Reality Social Network For Digital Nomads

Being a digital nomad, remote employee or perpetual traveller creates as many problems as it solves. Swapping the stability of the office and home environment for a life of travel and adventure on the road also swaps the stability of a supportive, social circle of friends and growth for a multitude of single serving friends, shallow Tinder encounters and continual acquaintance re-engagement. I’ve forgotten your name already but will remember it next time when I feel guilty about it, promise. Another day, another apartment, everything changes, when you live out of a bag, minimalism is key. No posters, no art, no decorations, no books, Kindle is king. Everything becomes digital. Why even have a backup hdd when you have the almighty cloud. #nobaggage.

Can I Backup My Friends In To The Cloud

I stay connected to people meaningful to me, all around the world, through the Internet, many of which I have not seen for 4 or more years now. My monkey sphere is a fixed size, my friendship and acquaintance network is not and is maintained through a series of ‘likes’ on Facebook and Instagram. I can’t talk to all the people I want to talk to and can’t say all the things I want to say but I do my best, giving just a thumbs up and a ‘congratulations ?’ to the people who have made massive impacts on my life on their most important life events, with complete sincerity and regretful absence.

What Has The Internet Ever Done For Us?

The Internet has revolutionised the way we communicate and interact with each other. Social networks, Facebook, Instagram; video calls, Skype, Facetime; collaborative suites, Slack, Hipchat. We can communicate, present and share ideas with someone on the other side of the world almost as easily as if they were in the same room. We can even play games, real time and turn based, with friends remotely, PS4 and XBox even insist on it now with more games featuring network play than multiplayer modes.

Digital Rights Management almost lets us own things, almost. Although Kindle owners know the hard truth that Amazon can just pull books away from you that you have paid for if Amazon have a dispute with the publishing house as a lesson to the publisher, and Apple owners know the hard truth that for some reason they now have an aurally offensive U2 album in their collection thats not entirely easy to get rid of. DRM isn’t so much ownership as it is a license to use.

Since DRM, Blockchain technology has come along and created real ownership. With Bitcoin you can own digital money but with Ethereum you can now really own digital assets. Digital books, digital music, digital art, pure ownership can be tracked on the Ethereum network, changing the way we think about ownership and assets.

We Are simulations living in a virtual realm, says Elon Musk

Virtual Home Sweet Home

Combining everything we’ve talked about so far, the social and material challenges that digital nomads face, the impact on social interactions and communication thanks to the internet and the concept of real, asset ownership on a blockchain, a potential solution or at least combination of ideas is taking off with a project called Decentraland.

Decentraland is a Virtual Reality world, similar in scope to Second Life, but with all ownership of virtual assets existing on a blockchain, so they cannot be taken away from you and with all of the technology running the platform decentralised and open source, so the platform can not be turned off and with 0 barrier to entry, so it will go viral.

Please let that sink in.

You actually own all your things in the world, your land, your house, your avatar’s clothes, etc, everything that is yours you own.

You cannot turn Decentraland off. Anything created, your house, your land, will persist forever on the IPFS network and the entire platform is built on open standards and with an open source license. Decentraland is censorship resistant.

Decentraland will be exponentially viral. The client uses WebVR/WebGL as a minimum, an open standard supported by all web browsers and each area is directly addressable via an HTTPS URL. This means I can share my location with you on Facebook with a link, the same way you might share a blog article, and you can click it and come hang out with me. There is 0 barrier to adoption. Users will be able to build VR businesses (Second Life had an economy of over $3billion) and use Facebook or other online marketing techniques to drive traffic to their virtual business presence.

Virtual Ownership

Anyone who has enjoyed playing the Sims will love Decentraland, you can create your avatar, dress it, make it an expression of yourself or whoever you want it to be, you will own it’s outfits, jewellery, everything.

For crypto collectors, your house can also be an extension of your personality. You will be able to acquire furniture, art and decorate it to your hearts content. Creating a crypto demonstration of wealth or a relaxing, tranquil Ubud-esque yoga haven depending on what you want it to be.

Virtual Interaction

My main interest is in the virtual interactivity. I hope Decentraland becomes a place where I can regularly meet and socialise with people in VR as I travel, people I already know and new people as well. The current user base is a crossover demographic between crypto enthusiasts and VR enthusiasts so it’s a bit of a bubble, but with the VR adoption rates becoming main stream and the 100% accessible direction Decentraland is heading in, I’m excited for the number of people who can get involved and the kind of people I might meet in there.

Getting Involved

I’ve already bought some large areas of land with which I’m going to experiment with some VR business ideas and create a VR mastermind retreat, a virtual Necker Island if you will and I’ve had the great fortune to already meet experienced entrepreneurs and VR enthusiasts like Carl Fravel, so early involvement is already paying off.

Decentraland has just reopened its’ LAND marketplace so anyone with an interest can now buy their own parcel of LAND in the world and join in.

You do need, at the moment, a bit of tech-fu to develop your land but developer tools are now available here, so you can create 3D models in Blender or 3DSmax and upload them to your LAND!

6 Tips To Help You Read More Books

I’ve been lucky in that I’ve always enjoyed reading. My earliest memories are of consistently getting in trouble as a child due to reading Terry Pratchett or Fighting Fantasy at night, it’s always something I enjoyed but ended up getting sidelined shortly after I turned 25 when I become a jaded, adult with a career.

Since leaving the UK I’ve become an avid reader again as it’s one of the best ways to discover new experiences and perspectives on life as well as engage the mind and reduce stress. Reading is my meditation. It’s New Years Day, 2018, and the end of a cycle which is always a good time for reflection, here’s a short list of some of the observations I’ve made looking back over the last 4 years of my reading habit!

1) Always Carry A Book With You

There’s a saying in photography circles, the best camera is the one you have with you and the same philosophy applies to books, if you always have a book to hand you will always have something to read. I don’t have the luxury of a local library or the ability to buy and own real paper books but I am fortunate enough to have both an iPad and an iPhone letting me access the huge Amazon Kindle library with the ability to sync between devices! Now wherever I am, I can always reach in to my pocket and read something with no excuses, and I find reading far more valuable than checking Facebook in my downtime.

2) Form A Regular Habit

I’m a big fan of routine, it helps get things done and having a routine for reading is no exception! In Phuket I’d always read whilst eating breakfast, lunch and dinner. More recently I’ve been getting in to Starbucks when it opens at 7am and then reading until 8am when I go to the gym, getting in 7 hours of reading a week. This blog post was actually inspired by reading in Starbucks earlier this morning and reflecting on how lucky I am to be able to do that each day.

3) Surround Yourself With People Who Read

They say you are the sum of your 5 closest friends and by surrounding yourself with people who share the same values as you do, it will rub off. Everyone I know is always reading and always talking about the books they have read, making recommendations and sharing their conclusions. Being in an environment like this is motivating and inspiring. It really helps to find your tribe that will let you grow and flourish.

4) Create A Reading List

If you have a list of books you want to read, you will always have something to read, no excuses. By creating a reading list, either on Good Reads, Kindle, your notepad etc you will never be stuck with out a book. When doing anything it’s always a good idea to remove as many obstacles and unknowns as possible from your path so by being prepared, when you finish your current book there is nothing stopping you from starting a new one! My reading list has a habit of growing faster than I can keep up though, which just motivates me to read more.

5) It’s OK To Stop Reading A Book You Don’t Like

Until recently I’d never given up on a book, anything I’d started I read through to the end. That is until I picked up How to Make Love Like a Porn Star: A Cautionary Tale by Jenna Jameson. Reading that felt like a painful chore where every line put me to sleep. At first I felt obligated to finish it, I’ve never stopped a book half way through before, if I stopped then I’ve failed this challenge… But why should reading be a challenge? Why should you be forced to continue something you aren’t enjoying? For me reading is a fun activity where I get to relax, be entertained, learn and grow. If a book isn’t ticking your boxes it’s ok to put it down and pick up another. This isn’t University, there’s no required reading, just because someone else likes or recommends something doesn’t mean you have to.

6) Choose Topics You Will Enjoy

It’s always best to front load yourself for success as much as possible. If you want to read more books, choose books, topics and ideas that you’re interested in, passionate about and will enjoy, that way reading will be a pleasant and rewarding experience. When you do have a reading routine in place though, make sure to test yourself with new ideas from time to time to push your boundaries! I know I love reading about trashy thrillers or anything about psychology and evolution so anything by Dan Brown or Richard Dawkins will be read on release! Reading about money or a biography though was never something I thought would interest me so I shied away from them. I’m surprised to say that Arnold Schwarzenegger’s Total Recall: My Unbelievably True Life Story and Robert Kiyosaki’s Rich Dad Poor Dad are the two best books I read in 2017. In fact I wish I could have read Rich Dad Poor Dad 18 years ago!

These are the 6 main things that help me continue reading. I have tried to set goals like read 52 books in a year and I’ve tried to listen to audiobooks and they didn’t really work for me. Blogging about the books I’m reading has slowed down because I’m not able to articulate the benefits of the book sufficiently and as an exercise in formalising my notes to solidify my understanding of the book’s topics, my approach is sorely lacking. I want to work on that in 2018.

What do you guys do that help you to read more?

Wishful Drinking – Carrie Fisher

I was legitimately bummed out when Carrie died, I spent December bouncing between Ho Chi Minh City and Bangkok, ultimately spending Christmas itself in Bangkok after watching Rogue One in Ho Chi Minh City!

The amusingly named memoir is fun to read, giving a glimpse in to Carrie’s Hollywood upbringing and partying antics, written in a kind of jovial, this happened, deal with it kind of manner.

Emergency: This Book Will Save Your Life – Neil Strauss

I read this book because a group of us were moving to China, just as Trump was getting voted in to be President of the USA and various military exercises(?) were taking place by both America and China that seemed .. awkward. What would we do if something happened? Where would we go? How would we get there? I didn’t know what I didn’t know and now after reading this book I now know a little bit more about what I still don’t know!

Like The Game, the book documents a year or so in Neil’s life as he decides to become prepared for an emergency, engaging in escape and evasion courses, survival courses, shooting courses and meeting people who have ‘flags’ in multiple countries and passports, reading this book alone won’t prepare you for anything but it gives some interesting ideas and directions that you might want to head in if any of these issues are a concern for you, or just of interest.

Whilst our paranoia about China turned out to be unfounded, the Chinese absolutely LOVE Trump and compare him to Chairman Mao… It’s a good read about getting prepared whilst also skipping aside any politics or opinions on whether getting prepared is actually necessary.

The Year Without Pants: WordPress.com and the Future of Work – Scott Berkun

The Year Without Pants is an insightful look in to Scott’s year working as a team lead for WordPress and Automattic’s company culture that allows remote work. What’s most interesting about it, is the culture works! Running a remote team successfully can be incredibly difficult at scale. Their culture was unconventional, employees are independent, working from wherever they wished and most interestingly, rarely using email to communicate.

The book makes a great case for why remote work can work, especially if you consider how much time at a traditional workplace is spent purely through the computer. I know for myself I could actually spend days during a busy project not speaking to a single soul in my office and just working through the day on my computer and collaborating with the team on IRC and Skype whilst handling tickets in Jira. The principle is sound and in my opinion the things that make it a success or not are employee commitment and competence and the company culture and processes. A remote team with a paranoid and suspicious company culture will never work.

Automatic doesn’t make you run the Google gauntlet of trick questions, e.g. why manhole covers are round or how to upgrade SSHd on servers on the moon but instead hires you by trial to tackle a simple project and work on real things. As an approach this is great and something I experienced myself whilst “interviewing” for a company in Australia and then blockchain.info. It’s a great way to see if people can actually do the job or not, I’m a big fan of hiring people that can do the work, whilst it’s a nice idea to hire people with the capacity to learn what you’re already doing it’s a great idea to bring people on who already know what they are doing and can help you improve what’s already been done!

What is important to note is that whilst Automattic has a remote culture, they also have a head office in San Francisco and regular company meetings, in real life, where all employees turn up and work together in the same place. Reading the book suggested a culture of competent people, all part of the same team, who wanted to be there, working together to solve problems they believe in. This culture was also always there from the start, with the Founder, not shoe-horned in later.

I took so many notes from this book that writing them up would have yielded a book of a similar size and scope. Scott Berkun is ex-Microsoft having worked on Internet Explorer, he knows what he’s doing and is able to succinctly put it in to words. I think that is also why Automattic’s culture of remote work, works. Put the right people in the right place doing the right thing!

git push matching vs simple

Recently I built some new infrastructure and started to see messages like this in my Git environments.

Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

Decisions, decisions. What exactly is the difference between matching and simple Git push?

git push matching vs simple

From the documentation

push.default defines the action git push should take if no refspec is explicitly given. Different values are well-suited for specific workflows; for instance, in a purely central workflow (i.e. the fetch source is equal to the push destination), upstream is probably what you want. Possible values are:

  • nothing – do not push anything (error out) unless a refspec is explicitly given. This is primarily meant for people who want to avoid mistakes by always being explicit.
  • current – push the current branch to update a branch with the same name on the receiving end. Works in both central and non-central workflows.
  • upstream – push the current branch back to the branch whose changes are usually integrated into the current branch (which is called @{upstream}). This mode only makes sense if you are pushing to the same repository you would normally pull from (i.e. central workflow).
  • simple – in centralized workflow, work like upstream with an added safety to refuse to push if the upstream branch’s name is different from the local one. When pushing to a remote that is different from the remote you normally pull from, work as current. This is the safest option and is suited for beginners. This mode has become the default in Git 2.0.
  • matching – push all branches having the same name on both ends. This makes the repository you are pushing to remember the set of branches that will be pushed out (e.g. if you always push maint and master there and no other branches, the repository you push to will have these two branches, and your local maint and master will be pushed there). To use this mode effectively, you have to make sure all the branches you would push out are ready to be pushed out before running git push, as the whole point of this mode is to allow you to push all of the branches in one go. If you usually finish work on only one branch and push out the result, while other branches are unfinished, this mode is not for you. Also this mode is not suitable for pushing into a shared central repository, as other people may add new branches there, or update the tip of existing branches outside your control. This used to be the default, but not since Git 2.0 (simple is the new default).

What is the difference between push.default matching and simple

In short, matching forces you to keep remote and local branches in sync, with the same names at all time. Simple lets you have different branch names and doesn’t force you to push all the branches as the same time. For me simple is a lot more, er, simpler, and safe and reflects the way I work better. The choice is easy.

git config --global push.default simple