A Software Engineer’s Life in Developing Country is Harder than is in Silicon Valley
Trust me it is
It has been almost a year since I decided to move back to my home country and do my own startup. I was before a Software Engineer at a startup in Silicon Valley which was acquired for million of dollars after 1.5 year working there. When I made the decision to go back to my home country (Indonesia), I didn’t know what kind of world I was going to face with, I thought everything was going to be easy and life was just about coding in front of Sublime Text all day, pushing codes through git, figuring out why tests was failing, and squashing bugs. It turns out it’s way more than that.
Now I am not going to look at this from a cultural stand point, as rambling about that in a single post won’t be enough (saved for future post). I will mostly discuss on the technical aspects only. On how different it is to code in a developing country and in a well developed country, such as the U.S. Here are my key take aways and experience so far.
In Silicon Valley if you had to optimize for 2x efficiency, here you’d have to optimize 10x more.
No I am not exaggerating here. I remember clearly when I was optimizing an app for very slow connections in the U.S. (i.e: subway/tunnel connections, lost connections) Well guess what? Slow connections in the U.S is equals to fast connections here. Most of the PC’s here are connected via a 1 Mbps internet connection speed. On average I think most U.S homes can have a connection of 18 Mbps. Even better the connections in the U.S have a relatively stable ping. Well not so much here in Indonesia.
While 4G LTE technology is becoming a standard de-facto in the U.S, we’re still mostly on slow 3G connections. Heck even most mobile phones here hasn’t support 3G yet, so 2G or EDGE is quite common. Now you’d have to be really smart to handle these kind of situations in your app, if you still want to give the same high quality user experience to your customers. But it just requires more time and thoughts.
You’ll have to re-learn all the low end, non-cool technology, as that’s what the majority of the market is still using.
Imagine the days where feature phone’s are a hit. Remember those Nokia’s? Yup, you never saw one of those again in the U.S, especially in 2014 right? But in Indonesia, feature phone is still a big hit for mid to low citizens. So what does feature phone means? It basically means you have to deal with shitty WAP web apps for your site. You’ll have to learn how to develop WAP websites.
Maybe using Twitter Bootstrap 3, Knockout.js, Express.js, Backbone, or ‘name your fave javascript framework here’ is a cool thing back in the Valley. But if you were to develop an app where 50% or more of your user base are using Opera Mini, those frameworks/libraries are basically useless. I see web developers bitch on having to fix stuffs on IE all the time in the Valley. That ain’t nothing yet until you have to create mobile apps optimized on Opera Mini. Yup you heard that right, Opera Mini (where most HTML5 and CSS3 gets messed up easily). Heck, I even tested opening Instagram (website) on Opera Mini and it sure looked messed up.
In Summary
I see Silicon Valley Software Engineers being glorified all the time, because of them being smart and such. But now I actually respect great and awesome developers in developing countries more. Specifically those that are willing to put up high standards on themselves to strive for greatness under the given circumstances (i.e: still giving the awesome UX, given the circumstances, and not abandoning them). And no, I am not giving a praise to my self, as I am also still learning all of these stuff, which is challenging but interesting at the same time. All of this ramblings are based on my experience in developing Shopious (www.shopious.com )
It would be interesting to see engineers in the Valley swap places with us fellow engineers in developing country and give perspective’s. Maybe they’ll actually become a better engineer coming here rather than coding back in the Valley.
Are you a software engineer/developer in a third world/developing country like me? I’d like to hear your thoughts and experience on this.