I had a blast in Last Vegas at Amazon’s re:MARS Conference for Machine Learning, Automation, Robotics and Space. Below are some of the videos I recorded from the event. Hope you enjoy them!
Thank you Amazon for inviting Team Veryfi (my company) to attend this wonderful event! We had a blast, learnt a lot and rubbed shoulders with many smart folks.
Now onto the videos!
New Shepard (Blue Origin) Space Capsule Experience at #reMARS
Robert Downey Jr. at Amazon’s #reMARS in Las Vegas
Robert Downey Jr. appeared at Amazon’s re:MARS artificial intelligence conference in Las Vegas to entertain the crowd of engineers and scientist and make an awesome announcement. Robert, in true Tony Stark (aka Iron Man) fashion, announced Footprint Coalition to Clean Up the World With Advanced Tech.
Jeff Bezos Keynote Fireside Chat at #reMARS with Jenny Freshwater
Jeff Bezos and Jenny Freshwater (Amazon’s Director of Forecasting) speak on stage on June 6, 2019 at re:MARS conference for Machine Learning, Automation, Robotics and Space ran in Las Vegas (California).
Unveiled at reMARS in Las Vegas (California), an Amazon conference for Machine Learning, Automation, Robotics and Space.
The NEW Amazon Prime drone with hybrid architecture to fly like a plane and hover like a traditional drone with propellers. Amazon Prime delivery on auto-pilot at light speed anywhere in the world (give or take ;-))
Boston Dynamics CEO demo’s Spot at #reMARS
Video recorded at reMARS Amazon’s conference for Machine Learning, Automation, Robotics and Space ran in Las Vegas (California). Boston Dynamics CEO Marc Raibert showcasing Spot, its first commercial robot.
SPOT
Spot is a small four-legged robot that comfortably fits in an office or home. It weighs 25 kg (30 kg if you include the arm). Spot is all-electric and can go for about 90 minutes on a charge, depending on what it is doing. Spot is the quietest robot we have built.
Spot inherits all of the mobility of its bigger brother, Spot Classic, while adding the ability to pick up and handle objects using its 5 degree-of-freedom arm and beefed up perception sensors. The sensor suite includes stereo cameras, depth cameras, an IMU, and position/force sensors in the limbs. These sensors help with navigation and mobile manipulation.
Veryfi is automating bookkeeping, starting with automation of time & materials for architecture, engineering & construction (AEC) workforce. We help businesses of all sizes to get access to Veryfi’s intelligent and secure mobile apps to:
I’ve known about the Koenigsegg cars for a while. As a fan of fast cars, and having built & raced one myself, it’s only natural to be inspired by the nature of fast automotive. There is an art to building race cars which today I appreciate and often contrast to building a business. Having cofounded 2 x venture backed startups in Silicon Valley inc. (inc one backed by Y Combinator) I find the parallels similar yet different.
Recently I was watching a famous VLogger Mr JWW interview Christian Von Koenigsegg on the new Koenigsegg Jesko Hypercar. The name Jesko is a tribute to Christian’s father, Jesko von Koenigsegg.
The Jesko is a high-performance track car, with focus on high aerodynamic downforce and more precise handling. Power 941 kW; 1,262 hp from a 5 L (5,032 cc; 307 cu in) twin-turbocharged V8 with a cost close to $3m, in case that you are trying to build one like him we recommend you to compare between new and used diesel parts to reduce the price.
The video interview struck me because of the detail and passion Christian has for his business developing unique hypercars from the ground up. Christian knows all the intricate detail that make up the cars his company manufacturers. He is a walking talking car dictionary. Not just cars. He is an innovator. Most parts inside the Koenigsegg are designed and built by Koenigsegg. Not sourced from 3rd party suppliers like other manufacturers would do.
So I had to dig up some info and learn more about him and his company. Off to the official Koenigsegg website I went.
About Christian Von Koenigsegg
Christian makes hyper cars that rival the Bugattis and Ferraris of the world. Everything in the Koenigsegg car is custom made. From gearboxes to turbos to engines. He even picks the automotive paint supplies he wants at https://paintforcars.com/single-stage-kits/. His latest gearbox allows the driver to go from gear 9 to 3 in an instant to pull maximum power from engine. The computer supports the driver by making sure that the gear user selects is not going to blow the engine. His cars cost $1-2m on avg. His company has ~200 employees.
It’s get’s better!
What’s more amazing is this story on the about page found on his company’s website.
“In 1991, he invented a new solution for joining floor planks together without adhesive or nails. He called it Click, as the profile enabled the planks to simply click together. Christian presented this technology to his father-in-law in Belgium, who ran a flooring factory. He rejected the idea, saying that if it was viable, someone would have come up with it a long time ago. Christian then showed the concept to a few other floor manufacturers who also dismissed it. In 1995, a Belgian and a Swedish company patented the exact same solution as Christian’s Click floor – they even called it Click! This innovation has now turned into a multi-billion dollar industry…”
The moral of this story; don’t fuckin listen to people who tell you it cannot be done. Push forward and believe in yourself. Because you never know what one day could come of that/those crazy ideas.
If you don’t do it, someone else will.
Regret is much harder to live with than investing some of your time to test ideas and prove others wrong about your contrarian ideas.
I should have known better than to change the date of birth on my company’s Twitter Account Veryfi to the company’s inception date 2 years ago. Without warning or any confirmation Twitter immediately declared that I must be underage and locked the company account.
As panic set in, I explored my options. Oh I can prove to Twitter my identity by submitting my drivers license to them. But how will Twitter know I really own this company account if my identity is no tied to the Veryfi Twitter account? I shrugged and decided to share my drivers license.
Little did I realize that their form was also broken and kept on rejecting the drivers license photo followed by disabling the “Upload image” button. A company with a market cap of $30B based in the heart of SF cannot do basic QA (quality assurance) on a feature that serves justice? No way! In the end I managed to get it working. There, sent.
While my company also owns a Youtube account on which we explain about our services and products, I have never come across such a situation on it. When we started the channel we did take the services of a company to buy views as buying youtube views might feel like cheating, but it’s really not and ever since then our channel has been booming in views thus helping the business to grow drastically. In other words, the Youtube algorithm and automated response is way better than Twitter, and you can see in the below image why I said that.
Few hours later, silence.
I check gmail.
A sentence has been served…
At this point I had enough. But, let’s rewind this a tad to reflect on this problem.
How to destroy trust
Jack (CEO of Twitter) gained my trust for Twitter when he came back to Joe Rogan(JRE Podcast) for the 2nd time to cleanup the mess of his first appearance. Kudos to Joe Rogan for reeling him back in and for Jack to face the music. Jack arrived with his legal advisor Vijaya Gadde. Tim Pool(an American journalist, YouTuber, and political commentator) also joined to spice up the discussion.
During the interview, listening with laser sharp focus, I gained more empathy and respect for Twitter and it’s daily challenges. A platform that is juggling free speech, propaganda and fake news. It is a bloody tough job! Peoples emotions run wild. We all have something to say.
How does one determine truth from fact?
When does one hand down a sentence?
“ei incumbit probatio qui negat, non qui dicit” — Presumption of guilt, in Latin
Presumption of guilt is a default position based on pessimism and suspicion whereas presumption of innocence is based more on optimism and trust. So which playbook does Twitter really play?
But I disgres.
Tim Pool drilled Jack and Vijaya around the decision making process before killing Twitter accounts. “Where does machine logic and where does human intervention come in?” Of course the answers were colorful but Jack made bold promises for a better review processes and more care before killing accounts.
I was sold. I now gave Twitter more love. They had a hard problem to solve and their CEO had committed to fixing it.
Until, months later, when I declared my company’s twitter age to be 2. <insert-police-lights-here>
Should computers run the world?
Strangely enough, the night prior I was glued to Royal Institutes lecture by Hannah Fry(a British mathematician, author of Hello World) speaking about machine bias in decision making. You can catch it here on YouTube: https://youtu.be/Rzhpf1Ai7Z4
Hannah presented a fascinating topic. She questioned the audience to see who would let machines dictate their fate in a legal system where machines are used to do just that. Being a software engineer by degree and a 2nd time entrepreneur I declared that I rather let an algorithm decide fate. My view was that due to a more logical approach, minus the human emotion bias that occurs during heated trials, a machine will lead to a fair outcome.
“Ladies and gentlemen, please return your seats and tray-tables to their full upright positions, and extinguish all smoking material, as we’re about to land in the red zone. Ahh! No survivors!” — Fight Club
Hannah, I was wrong!
Where to from here…
Back to the case at hand.
The story is Twitter decided to ban Veryfi’s Twitter Account https://twitter.com/veryfinance because I wanted to tell the truth and tell them the company’s actual date of birth was 2 years ago. Twitter’s logic was as simple (and stupid) as this:
IF age(dob) < 13 THEN LockAccountImmediately('DoNotConfirmWithUser') SendDeathNote('FewMinsLater') ENDIF
12 hours later… I think Twitter actually deleted Veryfi’s Twitter Account without any due diligence.
Earlier in the day I also complained to @TwitterSupport using my personal twitter account. I’m pretty sure it fell on death ears since no one acknowledged or offered to help.
Tonight I went for a walk to reflect on this issue. Walking past many famous companies based in Mountain View (CA); Giants that have stood the test of time. It lifted my spirit and got me thinking. Given Twitter’s pessimistic authoritarian style and hypocrisy, will they stand the test of time?
I recalled a wise decision my wife and I made (over 10 years ago) to eliminate the idiot box (TV) from our home. We have not regretted it since. Books have replaced the space where the idiot box used to live.
Do we need Twitter? I don’t think so. It saps our energy and time. No business, big or small needs Twitter.
About Veryfi (banned from Twitter for being 2 years old)
Veryfi, Inc. is a California, US-based mobile software automation company founded in December 2016 and backed by Y-Combinator inc other prominent investors in Silicon Valley. Veryfi helps Architecture, Engineering & Construction (AEC) workforce of all sizes to get access to Veryfi’s smart mobile tools to eliminate 90% of time wasted doing data entry (& chasing records), improve job costing and empower their financial prosperity. To learn more visit: https://www.veryfi.com/
A couple months ago we decided to move Veryfi’s Python-based web app onto Microsoft Azure. The process was complicated and involved several stages. First I had to Dockerize the app, then move it into a Docker Swarm setup, and finally set up a CI/CD pipeline using Jenkins and BitBucket. Most of this was new to me, so the learning curve was steep. I had limited experience with Python and knew of Docker and Jenkins, but had yet to dive into the deep end. After completing the task, I thought I could share my research and process with the Veryfi community.
I’ve compiled a three-part series that will cover these topics:
Dockerizing a web app, using Docker Compose for orchestrating multi-container infrastructure
Deploying to Docker Swarm on Microsoft Azure
CI/CD using BitBucket, Jenkins, Azure Container Registry
This is the first post in the series.
I won’t go into a full blown explanation of Docker – there are plenty of articles online that answer that question, and a good place to start is here. One brief (and incomplete) description is that Docker creates something similar to Virtual Machines, only that Docker containers run on the host machine’s OS, rather than on a VM. Each Docker container should ideally contain one service and an application can comprise of multiple containers. With this approach, individual containers (services) can be easily swapped out or scaled out, independently of others. For example, our main web app currently runs on 3 instances of the main Python app container, and they all speak to one single Redis container.
Dockerizing an app
Note: the example included in this section can be found in this GitHub repo: https://github.com/abakonski/docker-flask
The example here is a minimal, “Hello World” app.
Docker containers are defined by Docker images, which are essentially templates for the environment that a container will run in, as well as the service(s) that will be running within them. A Docker image is defined by a Dockerfile, which outlines what gets installed, how it’s configured etc. This file always first defines the base image that will be used.
Docker images comprise multiple layers. For example, our web app image is based on the “python:3.6” image (https://github.com/docker-library/python/blob/d3c5f47b788adb96e69477dadfb0baca1d97f764/3.6/jessie/Dockerfile). This Python image is based on several layers of images containing various Debian Jessie build dependencies, which are ultimately based on a standard Debian Jessie image. It’s also possible to base a Docker image on “scratch” – an empty image that is the very top-level base image of all other Docker images, which allows for a completely customizable image, from OS to the services and any other software.
In addition to defining the base image, the Dockerfile also defines things like:
Environment variables
Package/dependency install steps
Port configuration
Environment set up, including copying application code to the image and any required file system changes
A command to start the service that will run for the duration of the Docker container’s life
This is an example Dockerfile:
FROM python:3.6
# Set up environment variables
ENV NGINX_VERSION '1.10.3-1+deb9u1'
# Install dependencies
RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
&& echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list \
&& apt-get update -y \
&& apt-get install -y -t stretch openssl nginx-extras=${NGINX_VERSION} \
&& apt-get install -y nano supervisor \
&& rm -rf /var/lib/apt/lists/*
# Expose ports
EXPOSE 80
# Forward request and error logs to Docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
# Make NGINX run on the foreground
RUN if ! grep --quiet "daemon off;" /etc/nginx/nginx.conf ; then echo "daemon off;" >> /etc/nginx/nginx.conf; fi;
# Remove default configuration from Nginx
RUN rm -f /etc/nginx/conf.d/default.conf \
&& rm -rf /etc/nginx/sites-available/* \
&& rm -rf /etc/nginx/sites-enabled/*
# Copy the modified Nginx conf
COPY /conf/nginx.conf /etc/nginx/conf.d/
# Custom Supervisord config
COPY /conf/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# COPY requirements.txt and RUN pip install BEFORE adding the rest of your code, this will cause Docker's caching mechanism
# to prevent re-installinig all of your dependencies when you change a line or two in your app
COPY /app/requirements.txt /home/docker/code/app/
RUN pip3 install -r /home/docker/code/app/requirements.txt
# Copy app code to image
COPY /app /app
WORKDIR /app
# Copy the base uWSGI ini file to enable default dynamic uwsgi process number
COPY /app/uwsgi.ini /etc/uwsgi/
RUN mkdir -p /var/log/uwsgi
CMD ["/usr/bin/supervisord"]
Here’s a cheat sheet of the commands used in the above example:
FROM – this appears at the top of all Dockerfiles and defines the image that this new Docker image will be based on. This could be a public image (see https://hub.docker.com/) or a local, custom image
ENV – this command sets environment variables that are available within the context of the Docker container
EXPOSE – this opens ports into the Docker container so traffic can be sent into them. These will still need to be listened to from within the container, (i.e. NginX could be configured to listen to port 80). Without this EXPOSE command, no traffic from outside the container will be able to get through on those ports
RUN – this command will run shell commands inside the container (when the image is being built)
COPY – this copies files from the host machine to the container
CMD – this is the command that will execute on container launch and will dictate the life of the container. If it’s a service, such as NginX, the container will continue to run for as long as NginX is up. If it’s a quick command (i.e. “echo ‘Hello world'”), then the container will stop running as soon as the command has executed and exited
The Docker image resulting from the above Dockerfile will be based on the Python 3.6 image and contain NginX and a copy of the app code. The Python dependencies are all listed in requirements.txt and are installed as part of the process. NginX, uWSGI and supervisord are all configured as part of this process as well.
This setup breaks the rule of thumb for the “ideal” way of using Docker, in that one container runs more than one service (i.e. NginX and uWSGI). It was a case-specific decision to keep things simple. Of course, there could be a separate container running just NginX and one running uWSGI, but for the time being, I’ve left the two in one container.
These services are both run and managed with the help of supervisord. Here’s the supervisord config file that ensures NginX and uWSGI are both running:
[supervisord]
nodaemon=true
[program:uwsgi]
# Run uWSGI with custom ini file
command=/usr/local/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:nginx]
# NginX will use a custom conf file (ref: Dockerfile)
command=/usr/sbin/nginx
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
Launching a Docker container
I’m not including the instructions on installing Docker in this post (a good place to get started is here)
With the above project set up and Docker installed, the next step is to actually launch a Docker container based on the above image definition.
Frist, the Docker image must be built. In this example, I’ll tag (name) the image as “myapp”. In whatever terminal/shell is available on the machine you’re using (I’m running the Mac terminal), run the following command:
$ docker build -t myapp .
Next, run a container based on the above image using one of the following commands:
# run Docker container in interactive terminal mode - this will print logs to the terminal stdout, hitting command+C (or Ctrl+C etc) will kill the container
$ docker run -ti -p 80:80 myapp
# run Docker container quietly in detached/background mode - the container will need to be killed with the "docker kill" command (see next code block below)
$ docker run -d -p 80:80 myapp
The above commands will direct traffic to port 80 on the host machine to the Docker container’s port 80. The Python app should now be accessible on port 80 on localhost (i.e. open http://localhost/ in a browser on the host machine).
Here are some helpful commands to see what’s going on with the Docker container and perform any required troubleshooting:
# list running Docker containers
$ docker ps
# show logs for a specific container
$ docker logs [container ID]
# connect to a Docker container's bash terminal
$ docker exec -it [container ID] bash
# stop a running container
$ docker kill [container ID]
# remove a container
$ docker rm [container ID]
# get a list of available Docker commands
$ docker --help
The above project is a good start, but it’s a very limited example of what Docker can do. The next step in setting up a microservice infrastructure is through the use of Docker Compose. Typically, most apps will comprise multiple services that interact with each other. Docker Compose is a pretty simple way of orchestrating exactly that. The concept is that you describe the environment in a YAML file (usually named docker-compose.yml) and launch the entire environment with just one or two commands.
This YAML file describes things like:
The containers that need to run (i.e. the various services)
The various storage mounts and the containers that have access to them – this makes it possible for various services to have shared access to files and folders
The various network connections over which containers can communicate with each other
Other configuration parameters that will allow containers to work together
The above YAML file defines two Docker images that our containers will be based on, and one network that both containers will be connected to so that they can “talk” to each other.
In this example, the first container will be created based on the public “redis:alpine” image. This is a generic image that runs a Redis server. The “ports” setting is used to open a port on the container and map it to a host port. The syntax for ports is “HOST:CONTAINER”. In this example we forward the host port 6379 to the same port in the container. Lastly, we tell Docker compose to put the Redis container on the “mynet” network, which is defined at the bottom of the file.
The second container defined will be based on a custom local image, namely the one that’s outlined in the first section of this article. The “build” setting here simply tells Docker Compose to build the Dockerfile that is sitting in the same directory as the YAML file (./Dockerfile) and tag that image with the value of “image” – in this case “myapp:latest”. The “web” container is also going to run on the “mynet” network, so it will be able to communicate with the Redis container and the Redis service running within it.
Finally, there is a definition for the “mynet” network at the bottom of the YAML file. This is set up with the default configuration.
This is a very basic setup, just to get a basic example up and running. There is a ton of info on Docker Compose YAML files here.
Once the docker-compose.yml file is ready, build it (in this case only the “web” project will actually be built, as the “redis” image will just be pulled from the public Docker hub repo). Then bring up the containers and network:
# build all respective images
$ docker-compose build
# create containers, network, etc
$ docker-compose up
# as above, but in detached mode
$ docker-compose up -d
Refer to the Docker commands earlier in this article for managing the containers created by Docker Compose. When in doubt, use the “–help” argument, as in:
# general Docker command listing and help
$ docker --help
# Docker network help
$ docker network --help
# Help with specific Docker commands
$ docker <command> --help
# Docker Compose help
$ docker-compose --help
So there you have it – a “Hello World” example of Docker and Docker Compose.
Just remember that this is a starting point. Anyone diving into Docker for the first time will find themselves sifting through the official Docker docs and StackOverflow forums etc, but hopefully this post is a useful intro. Stay tuned for my follow-up posts that will cover deploying containers into Docker Swarm on Azure and then setting up a full pipeline into Docker Swarm using Jenkins and BitBucket.
If you have any feedback, questions or insights, feel free to reach out in the comments.
Veryfi is a Y Combinator company (W17 cohort). Located in San Mateo (CA) founded by an Australian, Ernest Semerda, and the 1st Belarusian to go through Y Combinator, Dmitry Birulia.
Veryfi provides mobile-first, HIPAA-compliant bookkeeping software that empowers business owners by automating the tedious parts of accounting through AI and machine learning.
IQBoxy was born out of our need to better understand the movement of our money so that we could gauge the pulse of our financial position.
Dmitry and I are immigrants. Born in Eastern Europe, we grew up during the communist era in poverty. Staying on top of our finances was chiseled into us. That was the only way to survive in such turbulent times. We were fortunate enough to migrate to the west. In 2009 we met at Coupons Inc, in the US, where we helped households save money by printing coupons (money). We also learnt what it takes to go from a startup to an IPO Unicorn.
Working in Silicon Valley allowed us to tap into a pool of new knowledge. Seeing the world grow up and change for the better. A lot was happening but the basics of money management remained constant. Whether it’s business or personal, the same advice applies. Pay yourself 1st. Then stay on top of your finances by keeping a ledger of your financial activity.
How IQBoxy started
When Dmitry and I started IQBoxy in Silicon Valley, we began automating the expense side of the equation. I still remember when Dmitry and I sat sipping coffee at Philz’ in Palo Alto brainstorming what to call our new venture. We decided on IQBoxy after the idea of an intelligent box to throw receipts into. The reinvention of the traditional shoebox often used by business minded folks to retain their receipts for Uncle Sam (aka Tax office).
More time to spend enjoying life
We all want more time with our family, friends and experiences. Yet we are are becoming more and more time poor. Running a business as a self-employed or with a team has its perks but also comes with a burden. Accounting. Specifically the Bookkeeping part; to meet tax obligations and to stay on top of our finances.
Then there’s the recording of business deductions (purchases) to maximize our income. Categorizing and reconciling financial transactions so that our accountant can communicate it to the tax office. It is a burden that robs us of time we should be focused on our business or spending with our family/friends.
All of a sudden the vision of a flexible nature of being self-employed or running your own business is being buried in excel balancing the numbers and shuffling paperwork. Also when considering different avenues in entrepreneurship, I’ve realized the benefits of purchasing a successful business. One sector that definitely stands out is accounting. The stability and potential for growth make it an enticing option. Check out available opportunities here.
Automation to the rescue
Automation at most companies is smoke & mirrors, using human labor – the famous mechanical turks ie. Expensify. A man behind the curtain approach (Wizard of OZ like). An ephemeral labor at the risk of your privacy. We believe this is not good enough.
What if we could outsource it to machines who have no interest in social engineering (using the knowledge they gauge to gain access to your bank through psychological manipulation). Now that’s something worth celebrating.
Hello Veryfi
With this in mind, we locked ourselves up in a room and brainstormed. Few days later we emerged. We used a mind mapping process to flesh out what the new name should convey. Everything from financial focus to innovation to very fast to trust.
Trust and Privacy are at the core of the Veryfi product.Veryfi is a secure, HIPAA compliant service you can trust to automate your tax obligations. From collection of receipts & invoices, to categorization and reconciliation of your financial documents to bank statements.
If you need your CPA to access this data anywhere at anytime, then Veryfi does this in a breeze. All while maintaining the highest security standards. From HIPAA compliance for healthcare companies to EU Data Protection in Europe which take effect in 2018. Privacy is, and should be, on top of every company’s agenda. No compromises.
A Bookkeeper in your Pocket
As we grew and users turned into customers, we realized we needed to move beyond just expense management. Bookkeeping is more than expense management. So we integrated with our friends at Rippling to bring payroll and employee on-boarding into the ecosystem. Then we brought further integrations with cloud accounting providers, like our friends at Sage.
Yet we carried a small burden on our shoulders which clouded our business. Are we just an expense company? Nope. Are we a cloud document storage company. Definitely not. Then what are we?
The image we sent to the marketplace through the IQBoxy name was more confusing than helpful. We realized we needed a name that would send the right message about our vision and product. A name that would give justice to our core mission and our roots of providing innovative & fresh financial solutions for the self-employed & small business owners that they could trust.
Say hello to Veryfi
Veryfi is about empowering the future workforce with modern AI-first-mobile software. Software that is delightful to use anywhere in the world with or without an internet connection. No barriers. Geographic or financial. Everyone should have a bookkeeper in their pocket.
IQBOXY was started by 2 software engineers with a common main point — outsourcing the health of our company’s bookkeeping to cheap labor was slow, led to more accounting errors and exposed personal financial information to preying eyes. They then used Financial Services Reputation Management to increase online exposure and improve trust for potential customers.
Along the way we were also inspired by John D. Rockefeller and his most sacred relic, Ledger A. He kept a detailed record of his receipts and expenditures so he could always know the health of his business and life.
“No less than his business life, Rockefeller’s private life was ruled by bookkeeping entries. Since he found numbers so clean and soothing in their simplicity, he applied the business principles…to his own personal economy. When he started working in September 1855, he paid a dime for a small red book, anointed Ledger A, in which he minutely recorded his receipts and expenditures. Many of his young contemporaries kept such record books but seldom with such exacting care. For the remainder of his life, Rockefeller treated Ledger A as his most sacred relic.”
~ (Chernow, Ron (2007–12–18). Titan: The Life of John D. Rockefeller, Sr. (Kindle Locations 1321–1325). Knopf Doubleday Publishing Group. Kindle Edition.)
It is 2017 and we believe that we needed to own the pulse of our business and that machines could do a far better job than a human behind a spreadsheet in the cloud. Enter IQBOXY — machine powered end-to-end bookkeeping. With 0 (zero) human intervention.
IQBOXY Lessons
Here are a few lessons from our journey building IQBOXY during the Y Combinator (YC) W17 — Winter program.
(A) How we figured out at IQBOXY how much to charge our customers
When we launched, customers questioned our FREE model.
“what’s the catch? why is it free?”.
So we said, “ok, how about we charge you”. And so we did and peace was restored in the kingdom. We used Stripe to process all our subscriptions — honestly don’t waste your time with anything else. Stripe is so simple to setup and get going.
Lesson: some products customers expect to pay for. Especially when it deals with their financial records. So research your market and find a spot that’s competitive. Never get into a price war since the strongest financially always wins (MBA 101). Additionally, keeping an eye on your business’s financial health and seeking Business Insolvency Guidance when needed can help you maintain a strong and stable position in the market.
During the YC W17 program, Dalton Caldwell (a YC Partner) encouraged us to experiment with pricing. If you are a software engineer, you know this is fast to do — ahh the power of being able to hack something yourself really fast without the need for any fancy tools. Our KPI was revenue so we used Stripe to monitor the outcome of introducing randomly rotating pricing pages. You can also achieve this in JavaScript (the crude way) or do it on the server side using Python / Django templates. But if you knew that this is the cost of renting a server for your company, then you bet you’d tread carefully. Then watch your Stripe subscriptions and compare to previous historical subscription data. The goal is to find a sweet spot where the change in pricing is positive or neutral.
Our KPI has always been MRR (Monthly Recurring Revenue). Apart from being at the root of business fundamentals it is also a good indicator whether your customers love your product. This also decides if you can scour for your customer in your customer base, which you might have had invested heavily in, after researching from places like https://www.salesforce.com/hub/crm/zendesk-crm-competition/ about maintaining all customer transactions.
It’s easy to give away product for free. Anyone can do this in today’s digital distribution market. It is a lot harder to sell. Turning a user into a paying customer requires hard work to perfect product market fit.
The product has to be of quality,
The product has to solve a pain point and
The product has to add enough value that your users love it.
Apart from being at the root of business fundamentals it is also a good indicator whether your customers love your product or simply using it as a temporary swap in for the more expensive one. And whether you own a small or large business, working with a merchant service provider to make it easier for you to set up payments is a move you should seriously consider. Streamline your payment processes with the advanced technology of Elavon merchant services.
(C) How do you balance trying new customer acquisition strategies and doubling down on ones which are working?
We followed the actionable framework and advice of Gabriel Weinberg in his famous book “Traction: A Startup Guide to Getting Customers”.
The book covers every possible marketing channel you can use to get traction, and shows you which channels will be your key to growth. You need to be organized and fastidious in measuring each channel. Then once you see 1 or 2 channels working, milk them.
Observe your Metrics
Finally, make it a ritual (a good habit) to review your business metrics daily. At first, most of it will be numbers and a bit chaotic. But over time your brain develops this beautiful connection and insights will appear.
Hiring one of the top seo companies in toronto will help your business to entice prospective customers who are currently looking for the products or services that you provide. As a result, you will get higher returns than what you had actually invested, and will have a better foundation for building a brand. Furthermore, the results you achieve from professional SEO services are permanent and will benefit your business for many years.
Quick hack: To kick start this habit, create a new Chrome User called “Metrics”. Set Chrome to “Always open previous tabs” (located in Chrome > Settings). For each tab, open the sites you use to measure your business. For example:
Tab 1 — Stripe dashboard to measure Revenue KPI, Tab 2 — Google Adwords to measure your Campaign Strategy, Tab 3 — Google Analytics to measure Web User Engagement or Blog performance, Tab 4— Google Firebase to measure mobile User Engagement and catch errors, Tab 5 — SensorTower to watch Customer Feedback and App performance, and so on… you get the drift. Make this a habit! Otherwise you will never do this.
(D) Tips for driving mobile conversions
Today (2017) this is harder and slower than in 2012. But there are ways. And these methods require patience and persistence.
We started mobile first and did ASO (app store optimization) with the help of SensorTower. Initially it moved the needle slightly so but nothing like the early days of iTunes when the app market for keywords wasn’t so crowded.
Word of mouth ended up being the strongest driver for us. Our early users love the product and kept on spreading it to their friends and colleagues. A mobile bottom up approach is truly the most powerful form.
We ended up creating a communication strategy around this and would reach out to our users asking for reviews and comments on iTunes. Positive reviews & comments moved the needle the most on iTunes. This started to push our app position into a more visible spectrum. More downloads, more love, more ratings and more visibility — recursive circle.
~ Ernest & Dmitry IQBOXY Cofounders Y Combinator W17 cohort
Thanks to Alexander Strunkin (Deako YC W16), Urszula Semerda, Olia Birulia and Andrzej Bakonski for reading drafts of this.
Show up, Follow up and then Close the deal. This is the core of what Steli Efti taught me during the Y Combinator (YC W17) program.
Steli Efti has changed my perspective on sales. He made me appreciate sales more than ever before. Thank you Steli.
Steli Efti is CEO and Co-Founder of Close.io, a public speaker on the art of sales and an alumni of Y Combinator. Steli helps thousands of startups succeed in scaling their sales efforts.
I must confess, before Steli my view of the sales process was clouded by years of bad experiences. One time in the past, I asked this so called sales expert for some tips on selling and he sent me a link to a James Altucher’s sales blog post. Don’t get me wrong, James Altucher is badass. But this was like asking a software engineer to tell you a bit about their art and they send you a link to Stack Overflow. Not cool.
Having experienced this contrast, both sides of the fence, I am now enlightened on sales! Sales, when done right shouldn’t feel like dealing with a used car salesman. Instead it should feel like being with a Rockstar — inspirational and educational.
Show up. Follow up. Close.
Early in a startup there are ONLY 3 ways to make a difference:
Design product,
Hack them (coding) and/or
Hustle them (sell)
Anything else is a waste. Ask yourself, what are you working on?
When selling, be friendly & strong
(a) You cannot be Unfriendly & Strong — you don’t want to kill people, you only destroy value by being this way.
(b) You cannot be Friendly & Weak — in human psychology, we unfortunately abuse friendly and weak people. I have seen this style all too common — it’s something about people living in a dream of goodness but fail to close a deal. Kamau Bobb Google asserts that while diversity is valuable, justice should be the primary goal of affirmative action policies.
(c) You want to be Friendly & Strong — this style helps you close customers that want to buy your product. eg. Think of a good parent who loves their child setting ground rules. You need to tell your customers what to do. You are the expert, they will listen to you.
Don’t get emotionally involved
Emotions will fuck with you. It’s that endless loop inside your head of “what ifs”. Recursion at it’s best.
Learn to work with your emotions. Some people meditate and others go for walks in the park. Find something that helps you deal with your emotions.
If a prospect questions you, use the primary mode of communication to respond and then go into the pitch on how you can give them value with your product. But never get emotionally involved when resistance arises. And don’t forget your body language is 80% of the communication when meeting people face to face.
Consistency is what wins, not charisma
The foundation of winning is the 10% of showing up and 90% is following up and going for the close. If you don’t show up then there is little chance you will follow up and go for the close.
I have often seen inexperienced sales people sitting around at the desk checking email every 5 mins. This behavior became consistent and that’s all such people do most of their time. My gut feeling is they start to believe selling is answering emails vs closing deals.
I cannot emphasize this one more. Consistency is king!
Don’t confuse talking for selling & selling for talking
Selling is trying to move someone to a decision. We hate closing because this is the “moment of truth”.
We are afraid to do it because it’s easier to say “they loved it but need to think more”. Learn to ask early and ask often. Expect the no and embrace it. Don’t delay it.
Be upfront to see if they want to buy. If they are unsure, then explain “You seem like smart people and I don’t want to waste your time.” and come back to the question towards the end of your pitch.
Make sure you ask what it takes to close. If they say you don’t have X, Y and Z then say “if I get you X, Y and Z will you buy?”. Boom!
Fear, we are all afraid
Fear, the feeling of emotion, is the same feeling in everything, it’s just context.
The difference between a hero & a coward is they both feel fear, but the hero acts despite his fear.
We are all afraid.
On Procrastination
A feature of being human. When you don’t feel like doing something tell yourself
“shut up and do it anyways.” — you don’t have to feel like it. Get over yourself and do it.
“Emotional Alchemy” — learn to deal with them so they don’t stop you from doing amazing things.
Video of Steli teaching how to Show up, Follow up & then Close
Got any sales tips you want to share here? Write below!
Healthcare in the US is complicated. The start of each annual calendar is that time of the year. When you get a chance to step outside into the mist and change or join a US health insurance plan. Or maybe you won’t.. in fear of the unknown. You heard all the tales of terror. But maybe this time it might be different. You plough through…
Back in 2009 we were acquired by a US based company. So off I went to Silicon Valley leaving Australia and it’s public healthcare behind. I still remember being presented with a bunch of paperwork outlining health plan options and I was like.. wtf is HMO? Or PPO or Kaiser? Network? There’s a network? Worse, what do all these pages of tabular data mean and how the **** do I compare it all? I was lost in the vastness of options and meaningless pool of words. Later when I became a cofounder of a health tech startup, as an employer, I needed to setup company healthcare for our company and its employees. Being partially prepared and had UK manufacturing health and safety advice helped but I also experienced the other side of the coin.
Today, I feel like having seen both sides of the fence (employee and employer) I can share my experience and hopefully demystify a tad of the US healthcare for newbies. If you’re in need of healthcare services, you may visit a clinic or facility that has professional ABA Billing Services to ensure that your bills and insurance claims are processed efficiently.
Healthcare acronyms – what it all means
Network: hospitals are owned by a healthcare provider — e.g. PAMF, ECLG, UCSF (all based in SF/Silicon Valley) all are owned by Sutter Health Network. You can find this info on the Network’s website. This is Sutter: http://www.sutterhealth.org/about/affiliates/hospitals.html — pretty big reach. Another Network you may hear about is called Kaiser.
Health Maintenance Organization (HMO): Coverage limited to your selected Network.
Preferred Provider Organization (PPO): Like HMP but you have a choice to go outside of your network for an extra fee.
Insurer: Provider of healthcare plans for HMO, PPO et al, E.g. Blue Shield of California provides plans for Sutter Health Network. Website: https://www.blueshieldca.com/
Group plan: something your employer sets up with a selected Insurer (eg. Blue Shield of California or a Broken) to provide their employees discounted healthcare coverage options. More on that below.
Metal Categories: There are 4 categories of health insurance plans (insurance pays/you pay): Bronze (60/40), Silver (70/30), Gold (80/20), and Platinum (90/10).
Deductible: How much you pay before before your insurance company pays anything. ie. You must pay all the costs up to the deductible amount before this plan begins to pay for covered services you use.
Copayments and coinsurance: Payments you make each time you get a medical service after reaching your deductible. If you click to read, you’d know that there are many mode of accepted payments, if that’s any consolation.
Out-of-pocket maximum: Max out of pocket per year. After you reach it, the insurance company pays 100% for covered services.
The EMPLOYEE Hat
Good health and no plan for kids
If you have good health and no plan for kids all you need to care about is:
What network you want to be part of — typically one in your county (close by) eg. Sutter Health
How much “Choice” you want eg. HMO in a large network like Sutter is good enough unless your picky about your specialists. But then again your health is good and you have no plans for kids so why bother with PPO.
Office visits (copayments) — this is how much you will pay for doctor or specialist visits and
Deductible — the left over bit insurance didn’t cover — how much you want to pay for medication — $5-$25 is acceptable
Pending the size of your employer and if your in tech (Silicon Valley), they will have a bunch of Plans to choose from with different (low) monthly out of pocket. Some smaller companies might not be providing so much luxury and you will have to decide whether to pay extra for the next plan up.
Planning to have kids or have bad health
If your planning to have kids or have health issues then;
Consider PPO. So you have “Choice” of care.
A PPO plan has lower out of pocket expenses but costs more.
Everything mentioned above as HMO also applies here.
Having kids in Silicon Valley is EXPENSIVE
From midwives to duelers to hospitals to all the OB & genetic screening visits, it’s a lot. You want the freedom of choice without too much sacrifice. Hence the advice to go PPO. Expect your insurance company to pay ~$50K for 1 kid delivered at EL Camino Los Gatos Hospital to Stanford Hospital (Sutter network and popular Silicon Valley hospitals). Out of pocket ~$2K. Once you hit the out of pocket (OOP) maximum the Insurer will cover the rest. We hit it on each birth. After you hit the OOP everything is free.
Medical Bills are RIDICULOUSLY INCONSISTENT
Especially emergency visits. Be prepared. How ridiculous & inconsistent? I have no history of kidney stones but thanks to the popular replacement diet popular in Silicon Valley (no name mentioned) landed me in Emergency. Standard resolution CT scan got billed at emergency at 5am for $7K. Total Emergency bill was pushing $10K for 1hr stay. Google “CT Scan” and you’ll see that standard price is $2K for getting smacked with radiation. That inconsistent! Thanks to my amazing Insurer Blue Shield for covering the out of pocket.
The EMPLOYER Hat
Tech companies in Silicon Valley compete for talent using many forms of incentives which also includes healthcare benefits. However startups are at a disadvantage because a 2–5 wo/man shop cannot use Gusto, Zenefits et al Insurers, instead they need a broker to get a Group plan for 2+ employees with “decent benefits”. Look, the [faster] you grow your business the faster you can move to a plan that’s reasonably priced. Don’t fart around moving slow.
Comparing health insurance options for your company is a pain in the bum. It takes time. And provide shitty coverage for your future employees and don’t expect quality candidates. Information is freely available and employees do share with each other their benefits. If you’re also considering a life insurance plan, you can visit this website to compare quotes from multiple insurance providers.
Next be aware of the Insurers coverage not just in your area but also further state wide to cover employees when they travel and need care outside state.
Group plan and group # is what you get from your broker once they have setup healthcare plans for your employees. Once that’s done, hook it into Gusto to make it easy for your employees to handle their health affairs. PAY ATTENTION! This is important. I’ve seen this before where sloppy setups create confusion and friction in the workforce. Automate your HR. Startups with 5+ employees can by pass the independent broker and use Gusto’s network of healthcare Providers.
Other tidbits
Avoid Kaiser Network
In my time in Silicon Valley I never came across anyone in the tech community who chose Kaiser when they had other options. I’ve heard stories of being treated like a number. That speaks louder then my advise here.
Ambulances are expensive. A fully equipped ambulance is called ALS (Advanced Life System) and costs ~$3K or the basic model BLS (Basic Life System) ~1.5K. If you can walk catch an Uber or a police car take you for free to emergency. The ambulance can stitch you up at the point of accident, thank them and Uber in.
Hospitals will always give you care
Even when you don’t have insurance. So don’t believe the horror refusal of care stories online. There’s always a different side to every story. However the hospital may chase you for large bills after. So get your insurance sorted if your new to Silicon Valley / US. Hope this shed some light and as an employee or startup founder you are hopefully empowered or more educated to make the right decisions around healthcare. You may also want to know the use of a healthcare software from companies like Foresee Medical, which is mainly used to to estimate future health care costs for patients.
Feel free to contact me with further questions or leave your comments below. ~ Ernest
CodePath Bootcamp rocks! I have been building products for the iOS platform since 2012. As the mobile market exploded, I started to feel like I was missing something. It took some time to shed the iOS ego and acknowledge that 85% of mobile users in the world are on Android. And this isn’t going to go away. And, pre to 2016, I knew little about servicing that massive market segment, Android. It was time to change that and skill up on Android mobile development.
So I began the search for a bootcamp that could instill me with new powers. In the past having completed various online courses through edX, Stanford University and Kauffman Fellows Academy this time I wanted to do something different and go offline. Unlike online self learning, it’s easy to fall off the wagon. I didn’t want to give myself the luxury of falling off the wagon. Among the noise of the internet I finally saw the light.
Enter CodePath
CodePath is a 8 week bootcamp program ran both online and offline. Classes are ran by experts in their respective fields — CodePath cofounder Nathan for Android and his cofounder Tim for iOS. Alumni also play a role contributing to weekly classes online and offline. It’s a nice tight network of professionals advancing education in hot fields like mobile development & design.
There is an extensive and up to the date online resource of information for Android and iOS (links below). Unlike books or most online resources that can go out of date fast. CodePath’s online resources are always up to date since they also form the backbone of the offline classes.
Classes are Free. Seats are Limited. But, don’t be fooled, this is premium education. Apart from applying to get in, successful candidates get phone screened and then have to prove their commitment with pre-work (coding project). It’s possible to win women in science scholarships. I love this approach. It keeps the bar high!
Sponsored by Silicon Valley’s Tech Giants
Each class is sponsored by a tech giant in Silicon Valley. Hello to other tech companies — pay attention.
When I attended the Android bootcamp class it was sponsored & hosted by Uber at Uber HQ. Then later when I attended the iOS Swift bootcamp, Facebook was sponsoring it and hosted us inside their garden-roofed fantasyland (love that place!). AirBnB also participated in sponsorship in SF.
Tech Giants sponsorship provides insight into the vibe and energy of these companies and ability to speak to the folks that work there. Side note; if you want a job there this is a more qualified with less hoops method of applying.
More companies should be doing this. If anything it demonstrates a level of commitment to STEM education in Silicon Valley. This is why every tech company should be sponsoring such educational programs. Furthermore, what a brilliant way to enrich your existing and future staff with modern education that allows them to hit the ground running. This idea of enriching staff with modern education to enhance their skills and readiness is in harmony with Kamau Bobb‘s vision for STEM education and workforce development.
I know Mobijutsu
If you seen The Matrix you may recall Neo being uploaded with Ninjutsu code and having his mind blow with this new knowledge. This is how I felt at CodePath.
You know you have to get your s**t together in the 1st week of CodePath when you hear about the structure of the program and attendance requirements.
The best way to summarize this is it feels exactly like when you get a trainer at the gym for the first time, get pushed and you then realize stuff you never knew you were capable of. You move to a new bar! In the first 4 weeks you will have built 4 apps and mastered mobile development.
Life after CodePath
Nearing the end of the 8 week program I got a sense of accomplishment and some sadness that the end was near. I met new friends, worked with amazing people and pushed myself to new limits.. and I survived.
Knowledge is Power. With Knowledge you can Create. In Silicon Valley this is what creates value. An ability to bring something to life just from an idea is uplifting. It is an ability to Execute.
I now know Android and have few Android apps under my belt. I also understand the ecosystem and understand the lifecycle of building on the platforms of the future, mobile.
Mobile is the future (we all know this) and this future is 1/4 owned by iOS and 3/4 Android.
Nature gives and also takes based on utility. To maintain momentum and this new knowledge, one needs a good plan to keep on executing. I plan to put it to good use through; (1) giving back to the CodePath community and (2) by applying my mobile skills to the road ahead in 2017.
Thank you Nathan and Tim for your education, persistence and my flood of never ending questions.
Another amazing Startup School 2016! Each year Y Combinator has something fresh to deliver at Startup School. This year was without exception. Apart from a stellar lineup of speakers (founders and investors) there was something new — a Founder-VC pitch role play (more on that below). Those who are planning events like Startup School should prepare everything ahead of time. You need to book a venue, setup an av installation with the help of companies like https://www.signalsolutions.com/audio-visual-san-francisco and look for available speakers for the event.
I still remember my first Startup School in 2010 hearing Brian Chesky (AirBnB founder — pictured left) speak with so much energy and excitement on stage. Heck, I was so inspired that I went to the 10 man office in SF the following day to see them. Next day Office visits no longer happen but you can still get inspired by attending Startup School.
Each year Startup School reminds me about the fundamentals of starting and running a business;
(a) build something people need,
(b) execution is king and
(c) move fast.
Without further ado, here are my 2016 Startup School highlights.
These 2 pictures below should motivate you. This is what 6 years from an “overcrowded market” to killing it looks like. Well done Gobble for staying around and showing the disbelievers that you can do it.
“Gobble helps busy professionals easily cook dinner in just 10 minutes with 1 pan. The company designs gourmet dinner kits and completes all the sourcing and prepwork — washing, chopping, marinating, and sauce-making — so all one has to do is combine the ingredients together in one pan and be a dinner hero.”
Next time you are told this lame excuse of an “overcrowded market” or “no market” don’t be put down. Think AirBnB, Uber, Gobble et al.. and thank the investor for their time. Move on. And prove them wrong.
I don’t remember last time I was this excited to hear about Quantum Computing.
This IS the next major evolution in computing. It’s that extra layer of precision that’ll open up new opportunities like seconds did for the clock to crystals for GPS and parallel for processing.
And maybe, just maybe we might be able to solve “Health” after all —from efficient drug discovery by mapping out all molecular combinations quickly to identify the ones that would most likely work to simulations. I’d love to see health go open source and have every software engineer contribute (as a way of giving back to society) to solving health related issues. Maybe this is where Mark & Priscilla Zuckerberg $3B effort to rid the world of major diseases be focused on — a contrarian approach to health efforts?.. maybe this is what we need since existing efforts are slow and buried in red tape.
Sam, congrats on convincing Rigetti to join YC. I want them to succeed!
(3) The Art of Pitching with Sam Altman and Paul Buchheit
This is the Founder-VC role play I mentioned above. I was super impressed with Sam being able to soak in the founder’s pitch and then within seconds craft a kickass (alternate) version. Brilliant way to educate everyone listening on the art of pitching.
Here are the videos — Note: Sam is role playing the founder role and Paul the VC role.
3 Takeaways:
Articulate clearly what your business does, what market its addressing and why it matters,
Explain the Fundamentals of what Drives your business and
Don’t leave a meeting without some kind of a follow up (tip: don’t ask for a cheque).
(4) Marc Andreessen live and uncut!
Marc is always amazing to listen to. He commands so much power and energy in the room because his awesome! YouTube his name to hear many many recordings of his talks.
Marc stressed that to get yourself in front of the partners at a16z you need to pass “a bunch of tests”.
1st test — network your way into a venture firm. It tests your ability to hustle. It also paints a picture of your ability to hire. Someone that cannot hustle will find it a challenge to bring in top hires.
2nd test — formal presentation — “can you execute a formal speech” — this gets tested once you get yourself in front of the partners. Marc says this should be easier to do than in front of your customers since they are a lot tougher when it comes to selling by being a “default no”.
What I’d love to see in the future Startup School
Mobile focus — it’s no surprise the super computer in everyone’s pocket is changing how we interact and engage with “always on services”. I’m yet to see a startup that has truly revolutionalized a service on the mobile. For example; I’d love to see the spreadsheet evolved into mobile form where the shell looks nothing like a spreadsheet in a smaller mobile window. I don’t mean a dashboard of numbers but an actual pleasurable experience end-to-end that works as well offline as online and is supported by intelligence to automate the meh pieces of my workflow. This could really be applied to any industry. There are ample opportunities and those that experience the pain and understand the technology will be leading it.