Medium-Color-Meetingsio

Interview with Denis Mars – Aussie co-founder of meetings.io

Aussies are taking the valley by storm! Recently there was a great article in the Sydney Morning Herald (SMH) about the Brain drain: why young entrepreneurs leave home. The article points out that Australia is still not the best place to get grow a technology business with financial support from investors. Aussies are leaving their home land and making impact here in Silicon Valley where talent, investors and an environment famous for innovation & technology thrives.

This week I got a chance to speak to an Aussie founder based out of Palo Alto (Silicon Valley) re-inventing communications for a connected world. Their product meetings.io is backed by top investors including Y Combinator, Yuri Milner, SV Angel, Starling Ventures et al and out of Beta as of April 2012.

What is Meetings.io?

A Skype killer! Meetings.io allows you to meet face to face with anyone (+1 people) from around the world within your web browser all wrapped up in a sexy interface. No messy software installations. No registration requirements. But if you do register you get access to additional tools to plan, schedule & access your history of meetings. And did I mentioned it is free!! Try it out => meetings.io

Who’s behind Meetings.io?

Meetings.io is founded by Denis Mars and Arend Naylor. Both lads are from the Y Combinator 2011 alumni.

I got a chance to speak with Denis and extract some wisdom from him on what it takes for an Aussie to kick-start a killer disruptive product product in Silicon Valley.

Interview with Denis Mars

Founder Info

Name
Denis Mars

Company
Bitplay Inc – creators of Meetings.io

What service / product does your company provide?
We’re in the business of transforming everyday human interactions into wonderful online experiences by changing the way we fundamentally communicate with each other at work, at home, or on the go. Looking into the future, we believe humans will be spending more and more time communicating and interacting face to face online in much the same way we interact and communicate today but in person. Our job is to create products that allows us to conduct these rich interactions online whilst keeping the fidelity and productivity of an in person interaction.

What role do you play?
I am a co-founder and the CEO, but titles aside, my day to day role is to do anything necessary for the company to succeed in achieving its goals. So right now I’m spending lots of time hacking away writing code and when I’m not coding, I’m either designing, sketching ideas in my notebook, networking, strategizing, solving problems, recruiting, or dreaming of the impossible and then figuring out how to make it possible.

How long have you been running / working on your product / service?
As a company we’ve been at it hacking up concepts and exploring opportunities since 2010 where as a YC company we built and launched our first product called Embedster which was an amazing service that let users monetize their videos that they upload to services like YouTube and Vimeo. We had 50 cent (the rapper) use the tech on his Ning social network and it just exploded from there. Unfortunately some in the industry didn’t like the idea of us democratizing the monetization of user generated content and as such we were forced to shut the service down later that year.

After a few weeks of feeling crap and wondering what are we to do next, we got back up and started experimenting with browser based P2P technologies thinking this could be an amazing technology to do some really cool things with. We built a video accelerator that enabled P2P distribution of live and on-demand video within any browser and we ended up being re-YC’ed in 2011.

Being an Australian and travelling back and forth to the US we had to use lots of video conferencing services such as Skype and WebEx to stay connected and to work remotely on a daily basis. After a while we started asking the question, why are all these video conferencing services so crap, why can’t someone make a simple video conferencing solution that has no hurdles to use it and doesn’t force you to add people as a contact, and while we’re at it why can’t it just run on your browser, why do I have to install more crap on my machine? That’s when we said, screw it, let’s utilize this cool P2P technology we have and just build one for ourselves. We then set out to scratch our own itch and build a video conferencing solution that we’d love to use ourselves and the output of that was Meetings.io which we officially launched to the public in April 2012.

Technology

What personal hardware are you using?
I use my iMac for all my design work and long hours coding which I tend to do mostly between midnight to 7am. Now and then I need to drag myself away from the iMac at which point I use my iPad to do some web browsing and emailing. When outdoors I use my Mac Air to do hacks on the run but I prefer doing all long hours and zen coding on the iMac.

What Solution Stack is your business built on?
We use HTML5, JavaScript, JQuery, CSS3 with Flash 11 (for webcam and P2P access) predominantly on the front end and C++, PHP, LUA, FMS4.5, Nginx, MongoDB and AS1 running on Rackspace and AWS for the back end. We’re also experimenting with WebRTC and CORS for our next releases and we predominantly like using RPC for our back end calls. We use some off-the-shelf libraries but prefer to build most things ourselves from scratch since most of what we’re doing is still cutting edge and pushing the boundaries of what’s possible within a web browser.

What decision(s) lead you to go with that Solution Stack?
We go with whatever is best suited to solve the problem at hand. With that, we’ve had to learn a bunch of new languages but that’s all part of being a hacker. I personally love having the opportunity of learning new things and the best way to learn is to build.

Top 3 Favourite online services you couldn’t live without?

  1. Meetings.io – we use it all day at work to collaborate or to run meetings with. Yes it’s our product but even if it wasn’t we’d still be using it everyday.
    URL: http://meetings.io
  2. Gmail – use it all day but now it’s becoming more and more of a distraction with so much noise mail coming through. Someone needs to solve this problem too.
    URL: http://mail.google.com
  3. Flipboard – it just makes getting all my news and info so effortless. There is so much information overload on the web and Flipboard does a great job of filtering things and getting the good stuff over to me via a wonderful experience.
    URL: http://fliboard.com

Silicon Valley

What made you come to Silicon Valley?
As an engineer I love building things. And for me the best place to build things is Silicon Valley. The exceptional people that come from all over the world, their collective pool of knowledge, the access to capital and an appetite for risk taking is what makes Silicon Valley such an amazing place, and for me there is no other place I would rather be. It’s analogous to being in Florence as an Artist during the Renaissance period.

What are 3 Top Challenges you faced upon arrival in Silicon Valley?

  1. Getting a visa – plan A was to go for an E2 Investors visa which would enable us to build a company here and stay for many years without too much fuss and plan B was to go for the E3 visa which is more readily attainable. I ended up getting the E2 which was a challenge but one well worth the time and effort.
  2. Starting from scratch again – while I’ve had some successes in Australia I quickly discovered that what I knew from these experiences back in Australia was not very applicable to how things worked in the Valley. I had to start again and it was a challenge to try to undo what I knew worked in Australia and to freshly learn how things worked here. Fortunately Silicon Valley is full of resources and one of the them that I attend to on a regular basis is the Stanford ETL (Entrepreneurial Thought Leaders) lectures which is open to the public and available online. It is a wonderful way to learn from some of the best leaders and innovators from around the world.
  3. My Aussie accent – it took some time for me to adjust my Aussie accent so that Americans can understand what the heck I was saying, especially when talking on the phone. I figured out that if you speak a little slower and emphasised the R more people can understand you better.

How about Visa or finding a place to live?
I went for the E2 Investor Visa which is a challenge to get but well worth it if you can pull it off. The visa process is a painful one but that’s just another day as a startup so you get used to jumping hurdles that pop out in front of you. Finding a place in Palo Alto was really tough and very competitive, there are people lining up to rent in Palo Alto so come prepared with all your references and documents and a check to sign for a deposit on the spot should you find a place you really want. You gotta be quick.

What resources did you turn to overcome these challenges?

Bay Area or San Francisco to settle?
San Francisco is great but I love the sunshine and being close to Stanford University so for me its Palo Alto all the way.

In terms of office, chances are we’ll probably need to set up shop in San Francisco soon as we’re growing our team and most of them are located in SF, but for now I like the fact that Palo Alto has less distractions so you can spend more time focusing on building your startup.

1 word of advice for our Aussie entrepreneurs wanting to come to Silicon Valley and start their own business?
If you are thinking about coming to Silicon Valley, then my advise would be to stop thinking and just come here. While you can build successful companies anywhere in the world, there is something very special and unique that only Silicon Valley offers and as soon as you are here you’ll experience that for yourself. It’s an exciting time to be in Silicon Valley with so many individuals from all over the world all working on their Mona Lisa’s and in the process changing the world forever.

Thank you for doing this interview Denis. And for sharing these golden nuggets of experience with the readers of The Road to Silicon Valley.

~ Ernest

How to: Push Stuff Collected in GSDfaster to your Calendar

You asked for it and here it is, Native Calendar integration from within GSDfaster mobile app is finally here in the latest version on iTunes. Makes sense right. But when we started off the GSDfaster app we had big plans to build out a calendar feature within the app. But then later realized why when we can integrate GSDfaster with a kickass calendar that is already embedded into your phone’s operating system. This means we get to focus on trying to be the best GTD app & start integrating with your phone’s native apps. Bonus win for everyone!

calendar-on-iphone

How does Calendar integration work in GSDfaster

First, you must have the latest build of the GSDfaster app. If you do not go to your iTunes store and upgrade your GSDfaster app or download it from iTunes here.

3 simple steps to rock’n’roll with Calendar integration in GSDfaster

Start your GSDfaster app.

  1. Make sure that under “Info > Settings” you have enabled “Send to Calendar” switch. It should be set to ON. By default it is OFF. That’s it here.
  2. Go to your Process bucket. Sticking to the systematical GTD fundamental principles, start processing your stuff. The Calendar integration happens automatically when you have selected a Due Date. Make sense right. Calendar’s work on dates. So when you hit Save on this stuff, not only will this stuff get filed into the appropriate bucket with the properties you set but also imported into your iPhone’s Calendar.
  3. Hit Home on your phone and open your iPhone’s Calendar. Navigate to the date you set as Due Date in Step 2 and you should see it recorded in your calendar.
3 easy how-to steps in sending stuff to your phone’s Calendar.

3 easy how-to steps in sending stuff to your phone’s Calendar.

Tips: When you add stuff to your calendar, GSDfaster automatically sets 2 reminders in your calendar. 1 for 15 minutes before it is due and the other for 1 day before it is due.

iCloud benefit

The beauty of using the phone’s calendar is if you are also using iCloud to sync your iPhone to your Mac to your iPad, you will get notified of the due stuff on those devices too. Cool hey. That’s the beauty of integrating with already great services on the Mac vs trying to redesign the Calendar and have you mentally fight over retaining memory of 2 calendars.

So what do you think? Is this a cool feature? What else would you like to see us add or change here? Post your comments below or contact us.

~ Ernest

How to: Focus using GSDfaster’s Pomodoro Technique

Let’s talk about that red tomato icon you would have seen in the GSDfaster app. If you havent yet then you will most likely come across it. The red tomato icon is the gateway to Pomodoro Technique.

Have you seen this red tomato staring at you?

Have you seen this red tomato staring at you?

The Pomodoro Technique technique uses a timer inside GSDfaster app to break down stuff collected into 25-minute intervals called ‘Pomodori’ (from the Italian word for ‘tomatoes’) separated by short breaks. This allows you to focus on the 1 task at a time since frequent breaks can improve mental agility and get stuff done faster.

Why

Multitasking is a Human Delusion. Counter to common belief our brains do not multi task. You cannot do two cognitively complicated tasks at once. Our brains context switch in a linear fashion. If you need more convincing than check this blog post on what multitasking does to our brains and The Truth About Multitasking.

So you may already be using a productivity tool to organize your stuff in a GTD / lists like fashion but what next? That’s exactly what I wondered when I built GSDfaster and started accumulating ton of ideas. How to best effectively process each stuff I collected. The 2 minute GTD rule for stuff is easy to follow. Do it if it can be done under 2 mins and then remove it. How about other stuff I collected that take few minutes to do. That’s when I found the Pomodoro Technique.

How

5 basic steps to implementing the pomodoro technique

  1. Decide on the task to be done
  2. Set the pomodoro (timer) to 25 minutes
  3. Work on the task until the timer rings; record with an x
  4. Take a short break (3-5 minutes)
  5. Every four “pomodori” take a longer break (15–30 minutes)

Ref: http://en.wikipedia.org/wiki/Pomodoro_Technique

What

tomato Yes the GSDfaster app carries this simple yet effective feature. It’s already there under your nose. you might not have noticed it but it is that red tomato icon top right.

Red tomato? Yap, Pomodoro is Tomato in Italian.

3 simple steps to rock’n'roll with Pomodoro Technique in GSDfaster

Start your GSDfaster app.

  1. Make sure that under “Info > Settings” you have set a timer duration that suits your working style. By default it is 25 mins. This is also the Pomodoro Technique default. However you can change this anytime in this Settings screen.
  2. Go to your stuff you collected. This can be in any of the buckets or in the process bucket. Click on the stuff and top right of the screen you will see a red tomato. Clicking the tomato opens the timer window, the Pomodoro Technique.
  3. Press “Start” button to begin the counter. The 25:00 visible in the far right screenshot below is the default 25 minutes. Once you begin the timer this number will be counting down to 0. When it hits 0, an alarm will ring and the phone will vibrate to let you know time is up. You will also notice that the Start button when pressed changes to “Stop” button to allow you to stop the timer anytime.

That’s it, simple hey!

3 easy how-to steps on managing your time better using GSDfaster’s Pomodoro Technique.

3 easy how-to steps on managing your time better using GSDfaster’s Pomodoro Technique.

Tip: You can press the X button top left of the Pomodoro window in Step 3 to close the Pomodoro window. This will allow you to see the task detail beneath it. Pressing the X will not stop the counter. If you click the tomato icon again you will see the timer still counting down. We did it this way so you can always see the detail of the task you are working on without impacting your 25 min focus.

Simple, effective and already inside your GSDfaster app. Free of charge. Just another great feature we included to help you get stuff done faster.

About GSDfaster mobile app

Getting things done (GTD) is a popular method developed by David Allen for stress free productivity. GSDfaster gives you tools to FASTER and stress FREE way of getting stuff done in a simple todo list organizer method. David was right, offloading your ideas and stuff to do into a trusted source like GSDfaster’s list structured note taker easily yields immediate rewards.

Any GTD app you pickup should make it easy for you to store, track and retrieve all information related to the things that need to get done. GSDfaster takes care of all of this for you.

If you do not have the GSDfaster GTD productivity app installed you can grab it from GTDfaster website or Get GSDfaster from iTunes. If you have any questions regarding the Pomodoro Technique or GSDfaster app please comment below or contact me directly.

Thank you for reading this post and I hope it was informative enough to get you even more productive.

~ Ernest

Relax & Hike in Yosemite National Park

Yosemite National Park is a World Heritage Site internationally recognized for its spectacular granite cliffs, waterfalls, clear streams, Giant Sequoia groves and biological diversity. Always a favorite place of mine to visit for many good reasons.

  • Going back into nature has some sort of ancient coded connection to the seat of our soul. It feels good to be in Yosemite. Something about the spirit of Yosemite that pulls you back like a magnet.
  • Always something to do and see. From beautiful trail walks to stunning views of the mountains, waterfalls et al and sightings of wild animals like deer, coyote and bears.
  • Bears don’t attack humans like in Yellowstone. Unless you are fighting for a snickers bar with one. Never feed the bears. They are a large graceful smart creature to admire from a distance.

So this time round we had another great reason to go to Yosemite. My mum was in town (from Sydney, Australia) and we wanted to show her the spirit of Yosemite. The beauty of Yosemite which every year pulls us to visit and experience something new.

About Yosemite National Park

Yosemite National Park is a United States National Park spanning eastern portions of Tuolumne, Mariposa and Madera counties in east central California, United States. Yosemite is internationally recognized for its spectacular granite cliffs, waterfalls, clear streams, Giant Sequoia groves, and biological diversity. Almost 95% of the park is designated wilderness.

IMG_7389_b

More on Yosemite on Wikipedia here: http://en.wikipedia.org/wiki/Yosemite_National_Park and at U.S. National Park Service here: http://www.nps.gov/yose/index.htm. There is also a nice 30 min video of Yosemite here: http://www.youtube.com/watch?v=HTj2BF5HmXo which also tells the story of John Muir‘s fight to protect this amazing piece of land.

“Only by going alone in silence, without baggage, can one truly get into the heart of the wilderness. All other travel is mere dust and hotels and baggage and chatter.” –John Muir in a letter to his wife Louie in July 1888

The trip to Yosemite National Park

If you live in Silicon Valley than expect to travel around 4 hours to get to Yosemite National Park. It a pleasant drive and plan at least one break along the way… at the Bass Pro Shop to recharge batteries and explore the shop.

silicon_valley_to_yosemite_map

Bass Pro Shops (Outdoor World)

Bass Pro shop is located in Manteca. Manteca is halfway on your journey to Yosemite - see map above. Bass Pro is a retailer of hunting, fishing, camping and related outdoor recreation merchandise stuffed animals and all sort of hunting gear. It is an experience in itself. When you 1st walk in you will notice the sign that asks you to “check and have your weapons secured at the door”. Inside is a hunting shop mixed with a stuffed zoo!

Where to stay – Yosemite View Lodge

Yosemite View Lodge is situated on the edge of the majestic Merced River, with most rooms providing gorgeous views of the river from the comfort of your own balcony or outdoor spa.

View from our room at Yosemite View Lodge

View from our room at Yosemite View Lodge

Yosemite View Lodge is located at the base of the entry gate to Yosemite National Park. It is a 15 min drive from the gate through the part into the valley. It is an amazing drive. Which is why we love staying at Yosemite View Lodge. It gives us an opportunity each morning and evening to experience the wonders of Yosemite. The entry to the park is $20 per vehicle unlimited for 1 week – more of the park’s fees here.

IMG_7388_b

So one night coming back to Yosemite View Lodge, we came across a buck with full-grown antlers. As we stopped, he walked past our car at a hand reach away. Other times we got to see coyotes and on Christmas eve a dozen deers galloping on the side of the road while it snowed. Simply stunning. Stuff you never get to see in such context if you stay inside Yosemite Village. You get to appreciate the drive back and look forward to it each day.

Great points about Yosemite View Lodge:

  • You sleep to the sound of waterfalls. Close the door to your balcony and it’s quieter. Open it and the sound of rushing water will relax your mind.
  • There is a gas fireplace inside that is made to look like a wood fireplace. Always a pleasure to come back to the room after being in the cold and start the fireplace. During winters this is a winner.
  • Cheap! Around $200-250 /room /night.
  • There is a spa in the bathroom.
  • Most nights you get a visit from room inspectors – 2 cute Raccoons.

Annoying bits

  • No Internet inside any of the rooms. Only in the main foyer and you have to pay $9 for 24 hrs for Internet connection rivaling that of dialup. No free hot spots anywhere in the valley either.
  • You will only find AT&T cell reception in the car park of Ahwahnee Hotel or on top of Glacier Point.
  • If you are picky about quality food than bring your own. Seriously.

What to do in Yosemite National Park

Experience what nature has to offer by hiking its trails.

The Yosemite Village is pleasantly placed in a valley surrounded by large mountains, waterfalls and plenty of greenery. Only 1 million years ago glaciers used to roam this valley. From the picture below you can imagine how glaciers user to roam this valley. Today waterfalls are left of their presence.

IMG_7140_b2

Yosemite Valley Visitor Center

First thing you should always do is drop by the Yosemite Valley Visitor Center. Open 9-5 daily. Go there to find out what trails are open and any warnings in the area – stay safe! Due to weather conditions (even in spring) some trails like The Four-Mile Trail can be half closed. So find out what is open and plan your hiking expedition from there. While at the Yosemite Valley Visitor Center watch the a 23 minute film titled “Spirit of Yosemite” presented in the theater behind the visitor center lobby.

Trails we Hiked in Yosemite

Me scanning the horizon

Me scanning the horizon on the Mirror Lake trail

Plenty of trails you can take. However this time round we only hiked the following.

The Four-Mile Trail

If you want to get amazing views of the valley this is the hike to do. Don’t be fooled by what sounds like a short trail. It is all up the mountain hiking. A very good work out for the glutes! Expect about 3-4 hours up the mountain and when you reach the top you will be at Glacier Point. More reading here: http://www.yosemitehikes.com/yosemite-valley/four-mile-trail/four-mile-trail.htm When close you can only go 2.6 or so miles. Still a great hike.

Distance: 4.7 miles (7.5 km) one way.
Time: 3 hours and 2 coming back.

The Four-Mile Trail early in the hike

The Four-Mile Trail early in the hike

The Four-Mile Trail starts off like this

The Four-Mile Trail starts off like this

Breathtaking views half way up the trial

Breathtaking views half way up the trail

Only keeps getting better

Only keeps getting better

Mirror Lake & Tenaya Canyon

This one is pretty flat and easy to do. It will take you deep into Yosemite forest and provide a range of lovely scenery along the river. If you really want to experience the mirror lakes glass like effects get there around 8am when the water is still, no wind and perfect lighting. More reading here: http://www.yosemitehikes.com/yosemite-valley/mirror-lake/mirror-lake.htm

Distance: 4 miles (6.4 km) to loop around.
Time: 3 hours with small brakes for photos.

Mirror lake few mins from where the bus drops you off, the start

Mirror lake few mins from where the bus drops you off to start your hike

Half way through the hike

Half way through the hike

Sentinel Meadow & Cook’s Meadow Loop

This is a casual walk anyone can take and you are bound to run into some deers, local bird life and maybe a bear ;-) More reading here: http://www.yosemitehikes.com/yosemite-valley/sentinel-cook-meadow/sentinel-cook-meadow.htm

Distance: 2.25 miles (3.6 km) round trip.
Time: 1-2 hours.

Casual walking and exploring hike. Maybe a bear is lurking by ;-)

Casual walk and exploration hike. Maybe a bear is lurking by ;-)

Local wild life is not afraid of humans

Local wild life is not afraid of humans

Ahwahnee Hotel

Once you have finished your hikes for the day, the Ahwahnee Hotel is a great place to drop by and kick back with a hot chocolate or coffee in front of a large communal fire place in this swanky hall (pictured below).

Ahwahnee Hotel was constructed from stone, concrete, wood and glass and opened in 1927. It is a premiere example of National Park Service rustic architecture, and was declared a National Historic Landmark in 1987. It is also a very expensive hotel to stay in but open to the public to drop in and use their open area for relaxing, reading a book near the many fire places and dine in their swanky restaurants.

Swanky hall where you can kick back and relax - tea is served at 4pm

Swanky hall where you can kick back and relax – tea is served at 4pm

Main dining restaurant open for lunch & dinner

Main dining restaurant open for lunch & dinner

And that pretty much wraps up a great trip to Yosemite!

Few final tips:

  • Do not speed through Yosemite National Park. Especially during summer. Many bears each year are killed by speeding drivers. Drive slow and take in the wonders of the beautiful Yosemite National Park.
  • Do not feed any animal. As cute and innocent as they look, it is not good for anyone. They are wild animals and teaching them to be dependant on human hand outs will teach them to be violent in the future to others when not fed. Especially bears; which must be put down in such cases.
  • Do not litter and do not take anything out of the National Park. Leave only with amazing memories and great photos.
  • Have fun!

Photography // for the photography nerd insiden you… all the pictures here were shot on a Canon 5D full-frame sensor through f2.8 L 24-70 mm lens & the tighter shallow depth of field pics through f1.4 50 mm fixed.

~ Ernest

Transport in Silicon Valley: Caltrain rattlers & those inconsiderate drivers

The good’ol topic of Transport. It’s going to be nearly 4 years since I have been in the valley. This has given me more than enough time to experience both forms of transport – train & road. Out of all the normal craziness that happens on road and track, 2 stand out like sore thumbs. And to newbies to the valley these 2 will most likely hang around like a bad smell. The 2 in question are Caltrain’s gallery trailer “rattlers” and the swarm of inconsiderate car drivers on the road.

The former will no doubt be fixed in the next few years when the “gallery trailers” are replaced with the new bombardier line; but the latter might take more time and maybe when the US Government invests in replacing human drivers with Google’s driverless cars. A machine will certainly be a better solution and improve road safety and reduce road rage. Let me expand with some tips on managing this.

Caltrain rattlers (gallery trailer)

I call the Caltrain “gallery trailer” fleet “rattlers”; because they will shake your body like a rattler snake shakes it’s tail. This gets annoying very fast when you spend long commutes and want to utilise your time on the train to do some computer work. You are literally bouncing in your seat, losing focus constantly, especially during express hour when the train is at its max speed. The gallery trailer is a disaster waiting to happen.

A bit about the network. The San Francisco Peninsula Commuter Corridor consists of double track CTC main line which runs between San Francisco and San Jose. A 47.5 mile track. And there is only 2 of them – one for each way; making “the action” known as hot and heavy especially during commute times. The JPB runs upwards of 96 commuter trains on Weekdays, with as little as 10 minutes separation between trains at peak commute hour.

There are two types of Caltrain trainsets

Gallery TRAILER (older silver) Bombardier BiLevel coaches (newer)
22 Gallery Trailer (Nippon Sharyo)
http://www.youtube.com/watch?v=tzYbHIrh4PA
6 Bombardier (Bi-Level)
http://www.youtube.com/watch?v=5DYvxX5j27w
caltrain_gallery caltrain_bombardier

More here on the commute fleets: http://www.caltrain.com/about/statsandreports/commutefleets.html

So what to do?

1. Catch only the Bombardier BiLevel coaches (above pic on the right). They are far far better in ride quality. It’s like riding on a cushion of air at any speed. You can get your work done on these. They even have power outlets for your computer. You can also check out Quora for Caltrain hacks on where to sit to minimize noise & improve ride quality should you end up in the gallery trailer.

Typically the Bombardier are operated as “bullet train” (minimal stops) but super fast to get up and down the valley during peek hour commutes. Outside peek hour, it is back to the rattles. So if you are getting a rattler, shifting your boarding times by few minutes could yield a Bombardier.

2. Be prepared. There is chaos on these tracks. 2 tracks up and down the valley (fail). 1 accident anywhere on this line and it brings the whole network to a halt with major delays. Consistently.

@caltrain @caltrain_news your killing us on rattler #278 1st carriage ! Plz turn on the aircon b4 we melt. #annoyed #sardined

Use Twitter to Follow: @caltrain which is crowdsourced and @caltrain_news which is run by Caltrain. Often if there’s a problem on the line, you’ll know more by listening to this stream http://www.railroadradio.net/content/view/24/143/ than the conductor knows!

I won’t even start on the Clipper system. That is another fail but not as bad as the gallery trailers.

Stupidity on the Road

So California is putting a stop to smartphone maps while driving. This extends the sms texting while driving and supposed holding your phone while driving. Half a year ago I was fined for holding my phone in my hand on speaker phone. Go figure. What I (and I am sure many people) would love to see is a crack down on the most common form of stupidity on the road. The failure to use blinkers. Inconsiderate drivers. There is a bucket load of them every single time you set out to venture on the road. I always say;

If you are good at driving than all you have to worry about is other drivers on the road.

Yes Good is a loose term, but you will know if you are good by your driving history record, how comfortable you feel behind the wheel and how well you react on the road. Btw, slow != safe. This is a daily reminder for me when I drive on the road and even more so when on foot crossing the road.

When I first arrived in the valley back in March 2009, I thought “hey drivers stop when I jay walk. So nice of them.”. Nice yes, but this is because of all the accidents and suing going on; as I soon found out from the locals. You learn about the accidents when you spend enough time on the major freeways like 101.

did-u-know-indicators

This is how accidents happen

Failure to use indicators. Each time I venture onto the road I come across a handful of these inconsiderate drivers. There is absolutely nothing funny about failing to use the indicator to let your fellow drivers and pedestrians know about your intentions. It is how accidents happen because an inconsiderate driver was lazy or incompetent to press that short lever to tell others on the road where they intend to go. This is how accidents happen on fast paced roads like 101.

So next time you are about driving on the road pay careful attention to how many inconsiderate drivers you spot failing to use the indicator. You will be surprised  On every short driving trip I see a handful of them and on longer trips it becomes mind gobbling that so many are allowed to do this yet holding a phone to check google maps or speak to someone on speaker phone is illegal.

If you think failure to use indicators is bad, watch out for “bumping”! Really not worth owning a nice car while living in the valley. That I will leave for another post.

Stay safe peeps!

~ Ernest

Linux security paranoid check-list – Top 10

Had this sitting around in my Google Docs for some time. Good idea to share these Linux security tips to help others secure their boxes. So here it is peeps.

Linux security paranoid check-list

Linux security Penguin in tux

  1. For direct access to your box, only use ssh. SSH is the most secure standard for both authentication (both host and user) and data protection (everything strongly encrypted, end-to-end).
  2. Enable key-pairs as the only way to access your box. Don’t allow passworded logins. Most passwords are too short and sit (even if in hashed form) on many databases: your bank, your favorite retailer etc. My guide on SSH setup will guide you through this by setting in sshd_config.
    PasswordAuthentication no
  3. Run ssh on a high port. The reason is that a lot of security scanners will only scan the standard known-service ports or the lower range (1-1024 are privileged ports that only superuser can bind/listen to, so they are more attractive to hackers) So running on 43256 (there are 2^16 =~ 65k ports) is much safer.
  4. In the firewall rules, limit access to your (and your customers) IP blocks, i.e. instead of 0.0.0.0/0 (all the internet) allow only from (say) 12.167.110.0/24 (specific block)
  5. Control the users who are allowed entry to your server.
    sudo nano /etc/ssh/sshd_config
    AllowUsers username1 username2
  6. Never ever permit root logins:
    sudo nano /etc/ssh/sshd_config
    PermitRootLogin no
  7. All administrative stuff is done as a known user (accountability) which used ‘sudo’ after you have authenticated in via SSH.
  8. Use a second layer firewall (software firewall) in case the first goes down. On Linux you can use iptables with Gufw, one of the easiest firewall in the world, to manage the iptables.
    sudo apt-get install gufw
  9. Run logcheck, a periodic system log scanning that will email you any unusual event. logcheck comes with a very large rule-set of what can be safely ignored so it only emails when something really new and different shows up in the logs.
    sudo apt-get install logcheck
    sudo nano /etc/logcheck/logcheck.conf
    # Add your email to SENDMAILTO
    sudo -u logcheck logcheck # run a test
  10. Run tripwire, a service that scans all the executables on the system, and alerts when a signature has changed (i.e. the file has been replaced). There is also a good post here on Setting up Tripwire in Ubuntu 11.10 – Intrusion Detection System.

    sudo apt-get install tripwire

And that’s a wrap! Are there any others you would recommend?

~ Ernest

SSH Security & Server Access

Open SSH is the most widely used SSH server on Linux. Using SSH, one can connect to a remote host and gain a shell access on it in a secure manner as all traffic is encrypted.

ssh

A neat feature of open SSH is to authenticate a user using a public/private key pair to log into the remote host. By doing so, you won’t be prompted for the remote user’s password when gaining access to a protected server. Of course you have to hold the key for this to work. By using key based authentication and by disabling the standard user/password authentication, we reduce the risk of having someone gaining access to our machine/s.

So if you are not using SSH with public/private key pair, here is how to get this rolling. If you are using AWS (Amazon Web Services) you would have been forced to use this method. This is great! The instructions below will teach you a bit about this and provide insight into setting this up on your dev VM or a server which doesn’t have this level of security turned on.

Useful commands to note

Accessing server using key

ssh -i ./Security/PRIVATEKEY USERNAME@SERVER -p PORT

Example:

ssh -i ./Security/aws/myname_rsa root@127.0.0.1 -p 22345

Restart SSH server

sudo /etc/init.d/ssh restart

Install & Setup SSH Security Access

Note: This section is for admins only.

On your Server (remote host) Locally on your box
1. Install SSHOnly if not already installed.

sudo apt-get install openssh-server
sudo apt-get install openssh-client

Make sure you change your server (and firewall is present) it to listen on port 22345 (or similar port of your liking in the high range) vs the standard unsecure 22.

Via Shell

sudo nano /etc/ssh/sshd_config
sudo /etc/init.d/ssh restart

OR

In Webmin >SSH Server > Networking > Listen on port = 22345

How to install Webmin instructions are here: http://www.theroadtosiliconvalley.com/technology/building-ubuntu-lamp-web-server-vm/

On your Server (remote host) Locally on your box
2. Create a public/private key pair.

ssh-keygen -t rsa

This will generate the keys using a RSA authentication identity of the user. Why RSA instead of DSA? RSA is 2048 bit key vs DSA 1024 bit key restricted. Read here: http://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys

By default the public key is saved in the file:~/.ssh/id_rsa.pub,
while private key is:~/.ssh/id_rsaeg.

3. Copy the generated myname_rsa.pub file to the remote host. Use SFTP and from:
/Users/name/.ssh/myname_rsa.pub drop it into remote host path:
/root/.ssh/myname_rsa.pubNote: If that folder doesn’t exist then create it.

sudo mkdir /root/.ssh/
On your Server (remote host) Locally on your box
4. SSH into remote host and append it to ~/.ssh/authorized_keys by entering:

cat /root/.ssh/myname_rsa.pub >> ~/.ssh/authorized_keys
rm /root/.ssh/myname_rsa.pub
4.1. Check the permissions on the authorized_keys file.Only the authenticated user should have read and write permissions. If the permissions are not correct change them by:

chmod 600 ~/.ssh/authorized_keys
5. Enable SSH public/private key pair access.

sudo nano /etc/ssh/sshd_config

Make sure you have the following:RSAAuthentication yesPubkeyAuthentication yesSave when exiting.

6. Reload new configuration.

/etc/init.d/ssh reload (or)
service ssh reload
On your Server (remote host) Locally on your box
7. Protect your private key file.Locally on your machine assuming you moved the private key file to folder ./Security/

chmod 0600 ./Security/myname_rsa
8. Test your new setup.Login to your remote host from your machine:

ssh -i ./Security/KEYFILE USERNAME@SERVER -p PORTNO

where ./Security/KEYFILE is the location of your private key file.eg.

ssh -i ./Security/myname_rsa root@1.1.1.1 -p 22345

You should be granted access immediately without password requirements.

On your Server (remote host) Locally on your box
9. Disable authentication by password.

sudo nano /etc/ssh/sshd_config

Make sure you have the following:

ChallengeResponseAuthentication no 
PasswordAuthentication no
UsePAM no

Save when exiting.

10. Reload new configuration.

/etc/init.d/ssh reload (or)
service ssh reload
On your Server (remote host) Locally on your box
11. Test #2 your new setupLogin to your remote host from your machine:

ssh -i ./Security/KEYFILE USERNAME@SERVER -p PORTNO

where ./Security/KEYFILE is the location of your private key file.eg.

ssh -i ./Security/myname_rsa root@1.1.1.1 -p 22345

You should be granted access immediately without password requirements.Also test using the old method which should prohibit access.

ssh root@1.1.1.1 -p 22345

Should yield: Permission denied (publickey).
Server is now protected against brute-force attacks.

Finally make sure you adjust your development tools so they tool can gain access to your secured server.

Tools

Your choice of tools my vary but the process is very similar. The following are my most used tools and how to tweak them to allow SSH key entry to my secured server.

FileZilla – SFTP

To enable FileZilla to access the server under the new configuration do this:

  1. FileZilla > Preferences…
  2. Settings window opens. Select “Connection > SFTP” (left hand navigation).
  3. In the right pane, click on “Add keyfile…”. Navigate to your private keyfile and click on it to add.
  4. You may be asked by FileZilla to “Convert keyfile” to a supported FileZilla format. This is fine and just click “Yes”. Save the output file to the same location as your private key file.
  5. Click OK on the Settings file to save final changes.

SublimeText2 – IDE

To enable SublimeText2 to access the server under the new configuration do this.

In your solutions sftp-settings.json configuration file enable key file access like this:

"ssh_key_file": "~/.ssh/id_rsa",

Example:

"ssh_key_file": "~/Security/myname_rsa",

And that’s it. Happy development!

~ Ernest

 

Sunday reflections of building a tech business

As I sit here working on my new startup Medlert at RocketSpace on a lovely Sunday afternoon I look out the window and see the new Department of Transportation SF project under way. They are building out San Francisco’s Transbay Transit Center. The duration and amount of working going into this made me reflect back on my career in the startup space. Here are a few of those thoughts I captured today running around in my mind.

“Solid products always start with Solid Foundations”

This isnt just a lesson from the work of high tech companies. This is what I am seeing out the window (pics below). The drilling and piping going in to build out a solid foundation for the San Francisco’s Transbay Transit Center. This has now been going on for few months. To the untrained eye not much progress has occurred. A big hole with pipes. This is the progress rarely acknowledge in the startup space but yet forms the back bone of what comes next. The stuff that happens behind the scenes. Once the foundation is built, well the rest will follow like lightning.

IMG_1442 IMG_1437

Looking back at technology I have seen founders take short cuts and slap products together without much thought given to the technology foundation driving their core platform. Instead of thinking about software as a service they couple the front end to the back-end. This typically results with major chaos once they start to grow fast and those short cuts quickly become technical dept. Band-aided due to lack of time to go back and fix them for good. For some humour on this point read my prior post on PHP and excuses would be leaders make.

“While it’s desirable to build a rock solid foundation you still must walk the fine line between solid foundation and over engineering before you get to MVP.” ~ Mark McCubbin

Take the time to understand your domain, the tools & technologies that will allow you to move fast and efficient from A to B and build out a kickass foundation before declaring victory.

“The Devil is in the Detail”

Jared would constantly remind me this. Over and over as we built Couponstar from a 2 man shop in Sydney Australia into an International business with offices in London, Sydney & The Bay Area . Fruits of our labor were acknowledge later when Couponstar got acquired by Coupons.com in Mountain View, CA.

Day in day out Jared was on my case with the reminder. “The Devil is in the Detail”. Heck I heard it so often it would make me angry. From an email I sent to a prospect to design work to a new product/feature I built. “The devil is in the detail Ernest. Never forget that.” He would say. It got coded, burned in & stamped onto my cortex. I lived and breathe that now.

Back when we started working together in 2004 I had zero startup experience. Fresh out of a corporate world and few consulting gigs under my belt I realized quickly my attention to detail sucked. Bad. As time went on I realized how important that feedback from Jared was. I think without me accepting that The Devil is in the Detail I would never have upped my ante and built a successful business. I ultimately became anal about detail. Thanks Jared!

Detail is everything today. We see it so often that there is a strong push for cofounders with Design skills and startups building out sexy User Experiences in their products. The detail is in everything from communication to how we present, express & sell ourselves. Products with high attention to detail give users a comfy, warm, fuzzy feel. Because they are designed & built with the customer & perfection in mind. (think Apple) Get sloppy and contact a client with a poorly written email, newsletter, product demo and immediately you will get placed into the loser bucket. There is no excuse for lack of detail apart from laziness.

The idiom “the devil is in the detail” derives from the earlier phrase, “God is in the detail;” expressing the idea that whatever one does should be done thoroughly; i.e. details are important.

“Ideas alone are worthless. It is mostly about the Execution”

If you have been working, living & breathing in the tech space in Silicon Valley/SF you would have heard this being mentioned many times over. Ideas alone are worthless. It is mostly about the Execution. It is also why people are not reluctant in the valley to share ideas because everyone knows good fast execution of a good idea with a killer team is the killer combo. This great idea you have, there are probably 50 other people in the world with the same idea. What separates you from them is who can execute the fastest.

 

Also remember that ideas change fast. Once you start executing the idea the subsequent pivots will evolve the seed idea until you get famous for an idea that resembles nothing like the one you started with. This is exactly what Jessica Livingstone (YCombinator partner) concluded in her famous book Founders at Work which surveys tech success stories in Silicon Valley.

It is a rat race in the tech space. Everything moves fast in Silicon Valley and you need to be moving super fast executing on your idea. Get your MVP (minimum viable product) out the door into the marketplace then go and speak with your users to see whether it is what they want. Iterate. Speak to them again. Dont sit in front of your computer. Get out there and get feedback from your users. There are no answers sitting in front of a computer. Run experiments, designs test and get more data from your users. And make sure you sell sell sell.

Eric Ries from The Lean Startup and Steve Blank (Customer Development Process) share the same approach on how to build a startup by getting out and learning from your customers. Of course you alone cannot do all of this but having a kickass founding team where responsibilities are divided and everyone is generating results works wonders!

551833_10150920918824099_107804449_n

And when you think you have something which reflects a sustainable business, build a fortress of protection around it. This usually comes in 2 forms – patents and/or distribution. I highly encourage you to watch Paul Willard‘s talk at Atlassian on Growth Hacking and how startups die due to poor distribution. All of this requires Execution. Not sitting on your ass day dreaming. Get a move on. The world isn’t waiting for you.

“No excuses! Ever.”

As an entrepreneur there are no excuses for “I don’t have the skills.”. Bad fuckin luck. If you chose to be an entrepreneur and dragged others into working with you, believing in you and your idea, you need to stand up and fit into those shoes. As an entrepreneur you do everything in the early days. Everything. I was folding coupons and putting them into envelopes on the floor with Jared in the early days at Couponstar. Later we got machinery to do it but hey someone had to do the dirty work to get traction in the early days.

There is no such thing as I am not good at it so I wont do it. Get better. Life is a life long journey of education. It never stops.
There is no such thing as I don’t know. Go and find out. Speak to people. Learn.
There is no such thing as I will wait for good luck. We make our own luck by getting out and about. The harder I work the luckier I get.

Look, you can make excuses or your can change the world. Well maybe not the world but definitely the industry you are focusing on to make a difference in. You decide.

~ Ernest

Thanks to Mark McCubbin for reading draft of this and providing input.

GTDfaster is now GSDfaster Lists, Pomodoro & GTD Notes

That’s right folks, the name has changed to GSDfaster!

GSDfaster can be expanded and thought of as “Getting Stuff Done” Faster.

We believe this is a far better representation of what the GSDfaster app is about. It is about Getting STUFF Done! If you have already been playing with the upgrades you would have also noticed few changes around the design. It is now cleaner with a flatter design feel to it, especially the buttons – yes we heard you :-)

Thank you all for all the great feedback which got us this far. There are few other features which I will cover in a future blog post in more detail to help you get stuff done faster using GSDfaster.

Before - GTDfaster

Before – GTDfaster

After - GSDfaster

After – GSDfaster

How to download GSDfaster app?

Simple. Just click the icon below.

Recap of what GSDfaster app is about

The Getting Things Done method created by David Allen rests on the principle that a person needs to move stuff out of the mind by recording them externally.

David Allen defines “stuff:” anything you have allowed into your psychological or physical world that doesn’t belong where it is, but for which you haven’t yet determined the desired outcome and the next action step. [pg. 17 – Getting Things Done book]

Previous blog posts worth reading

So to recap, same great app but with a name change and new features which I will cover in future blog posts. What do you think of the name change? Let me know below and as always if you have feature suggestions please log them here.

~ Ernest

Outsourcing work overseas: are you sure it’s for you?

Outsourcing part of software engineering is not for everyone. Outsourcing requires a lot of micromanagement and software engineering background to make sure that what you ask for is what you get. What follows is my own experience over the last 10 years in many outsourcing contracts working across India, China and Eastern Europe outsources both independent and agencies.

Are you sure it’s for you?

If you think you’re a big shot that will “palm off” the job in the form of outsourcing then forget it. You are heading down a spiral of getting “f**ked”. Because the important piece of outsourcing are micromanaging and understanding what the fuck is getting delivered so you can either pull the plug on shitty code or influencing the right sort of implementation.

Not to mention if you outsource too early or your core IP you lose the power to radically change the design of your product. Early design is constantly changing especially if you are building something which has never been done before. You want the flexibility to change fast. You need to be under control and know what is going on with all the moving pieces. Read more on this how bad outsourcing impacted Boeing’s Dreamliners (787′s).

This leads me to some key points on what skills you should have if you are going to outsource. Mind you I said “you” because it cannot be someone else you palm it off to.

1. Have a strong background in software engineering.

Loose coupling, Less code, Don’t repeat yourself (DRY), explicit is better than implicit, Test-driven development (TDD), Distributed Version Control System (DVCS)… all important. Did you understand any of those? If not then you are going to get a piece of shit code. Why is code important? Because it determines the type of engineering culture you build out internally & future maintenance (this is where the hard costs nail you down) and local hiring – quiet frankly great engineers do not like working in a pile of mess.

If you do not know how to code move on or go and learn to code. Anyone with the right attitude and time today can learn to code. See http://www.codecademy.com/, http://www.udacity.com/, https://developers.google.com/university/, etc… plenty of resources online for free. No excuses.

In a nutshell you need this experience and knowledge so you can “cut through the bullshit”. If the outsources delivers crap code you tell them to fix it. If they continue to deliver crap code. You break the contract and provide constructive feedback to them.

Detail detail detail. “The devil is in the detail.” my previous biz partner stressed this to a point where it is now embedded into my psyche and into how I work.

If you are outsourcing make sure that you or the person working 1:1 with the outsourcer are very detail orientated. This way bullshit is caught fast and stopped at the front line, and where appropriate move fast and fire the outsourcer.

2. People skills

If you have a background working with people (we all do right) and managing those people (oh here we go) then this part will also get smoother. You need to understand you are working with people who have their own lives, family, goals and ambitions etc… so don’t be an ass because you outsourced a piece of work to a “cheaper” labor country.

If it helps, review (even if you have already read it) How to Win Friends and Influence People by Dale Carnegie. The 3 basic principles:

  • Don’t criticize, condemn, or complain.
  • Give honest and sincere appreciation.
  • Arouse in the other person an eager want.

Look, you are going to have to micromanage them. Yes micromanagement ain’t ideal for your immediate employees but for contractors it is a must. They are paid to do a certain job and usually move on. You need to receive quality (refer to point 1 on engineering) and also make sure commitments are completed on time and within budget. Hence the micromanagement.

I also like to emphasize to build a good relationship so you can work with them again. Obviously pending the results of your encounter. Results is all that matter at the end of the day. But, never lose sight of maintaining that level of expected quality. If it drops, give them a chance to correct it by providing constructive feedback. If nothing changes again, then cut the tie immediately.

Remember: “Once shame on you, twice shame on me” (in 1st person)

Right so you have the necessary skills to get moving. Here is where the harder stuff begins.

The checklist!

1. Automate.

As much as you can. Outsourcing isn’t just relationship management. There are a number of balls in the air from managing the relationship to code review & feedback to product questions that need to be answered and/or fleshed out.

Use DVCS (ref my previous blog post) with email alerts enabled for code checkins, comments and issue tracking. Have everyone involved with the job on email alerts so you know when code is checked in or issues logged. I like using Bitbucket for all of this.

I also recommend you put them on HipChat for Private group chat and IM, business and team collaboration. This way you will maintain all communication in the one place.

2. The standards list.

Send the contractor your “standards list” of what you expect out of the engagement. Use Google Apps to write one up & share it if you do not have now. Put a line in the sand. A bar in front on:

  • Expected quality – DRY baby!,
  • Naming conventions,
  • Daily status updates – email or via HipChat,
  • Use of standard industry engineer practices like TDD else you will get code without unit tests!!
  • How everyone can reach each other for questions on product spec or similar ie. Skype, emails, cell #, HipChat etc. Include timezones everyone is working on.

3. Requirements.

Fuck sake man. More detail. Stipulate any API calls, use cases, designs, standards as mentioned above etc.. If you have an engineering background you will appreciate and say “fuck yeah” to what I just said.

No one likes to document things but this small initial investment will weigh in its worth when the final product is delivered to spec. Do not leave anything for misinterpretation.

  • Have a Balsamiq design illustrating all the screens you expect and how they should look.
  • Where applicable provide designs for every screen. Do not let the contractor try to work out for themselves what you want. Never ends well and you get billed for that time.
  • Technical detail around API calls (request & response) with examples, use cases, high levee flow diagram etc..

4. Understand it before you open your mouth.

If you are developing for a channel you have no experience in, ie. Android. Then spend time learning it from at least a “high level” understanding so you can speak the lingo and know when you are getting lied to in the face. If you level out with the lingo then you will get respected more and the contractor will not be able to pull a “shifty” on you.

5. Hiring.

Never straight forward and always requires a ton of work. But this pays off when you have the right contractor on board working with you.

  • Spend time writing up a detailed job spec and list it on oDesk/eLance and wait for the flood of offers. Immediately decline those that have not met all 5 stars criteria.
  • Setup a spreadsheet of all those that applied to keep track of who you short list, their contact details, your last communication with them etc… From the 100 narrow it down to top 20.
  • Interview the top 20 via Skype video (yes you need to see them) and listen for something that will differentiate one from the rest. For me it was getting asked questions I did not have an immediate answer to. Smart switched on engineers are like that and you know you got a winner there.

Remember that at every point in the interview/communication you need to be prepared with a series of questions so you can use those as a base for quality and comparison.

Tip: And when you do engage the outsourcer make sure you stay working via oDesk or similar tool. As much as you may be conned into believing working outside oDesk is worth 10% discount it isn’t  oDesk provides great tools to track your contractors time (with videos) and in the end you get to provide feedback on them. Bad business means bad comments means no future business. So it is in everyone’s favor to be on best terms and get the job done right.

6. Have fun!

Not a long-term strategy

Outsourcing is great when you first kick off a startup and need to fill in skill or time restraint gaps like kicking off a new channel which will interface interface with your in-house platform (your IP – which you built and are evolving) or design work. But that is where it stops.

Remember that outsourcing is work for hire. Your own company / startup is a labor of love which only you and those that live and breathe it each day share in the office. So if you have high expectations of the outsourcer to care and be on the ball with something they are building or have built then you most likely skipped the crucial part. The part where I told you to own the whole process and be laser focused on the work getting outsourced. You fucked up. You’re at fault not them.

Never outsource your core business. Only channels. Those that are not what I call IP (intellectual property). Your IP always stays in-house managed by you and your cofounder.. and ultimately a kickass in-house team.

Final note

You are not looking for a “sweat shop”. Find rock stars! That have a history of delivering quality code on time while communicating effectively. Communication decides if you get an apple or an orange when all you wanted is an apple.

If you have any stories (good or bad) please share with me them below in the comments.

Happy outsourcing!
~ Ernest