No you can't, obviously. You just said it. For one, you don't enjoy it.
What you need to learn is that straight programming isn't a valuable skill by itself. You already know this because you wrote an article about it. You need to be able to tie your programming skills with other skills such as selling yourself as the person to get the job done. Once you get the job, you need to be able to ship it.
There are programming skills that are valuable in isolation. If you are a world expert on a certain domain which lacks talent, then that's valuable. But that's not really isolation, that's tying your programming skills with a certain specialty.
Take a look at the model you are working under. There is a whole spectrum of jobs from good to crap. On Odesk, there are a sprinkling of good and a lot of crap. I imagine the company employing you is saying yes to every job that comes their way. They probably don't get good jobs, so it's all crap. They get crap jobs which pay crap and of course you are going to get a small slice of a crap pie.
Why take a job just because it's there? Okay, you laid out a bunch of reasons but you still hate it. I would probably hate working on crap jobs also. People worked for Steve Jobs because the guy was... well... Steve Jobs. Why are you working for people who are trying to compete on the worst model in web development, the race to the bottom in pricing?
If you know good developers, then maybe you could start your own development shop and get those developers to work for you. If you hate the work but you can get jobs, then maybe do the selling and have the other developers do the work.
Or maybe you could come up with your own projects and monetize them.
You just have to hustle, just like everyone else does. You can't just write code and expect the world to come to you. Get out there and make things happen.
Edit: In other words, quit whining. ;)
Edit: Edit: I could write a book on this subject. The above is just an attempt at an off the cuff capture. There are a ton of threads on HN which are hugely valuable on bringing the bacon as a developer. Just look around, it's more productive than ranting about your situation.
Clearly the person you are working for is trying to take a "this is how everything is done here" approach to running a dev shop and hiring developers. It's the same in the Philippines. Everyone works 10 hour days, 6 days a week and within a certain band of salary. I suppose the U.S. is like that to some degree. We have the 9 to 5 and 40 hour weeks.
Disruption in your case would be pretty easy. If the company has decent employees, then you could scoop them all up.
you don't think that value comes across exactly that way?
that said indians have a major cultural problem. they're way too nice, and they're also way too enduring, and they find other ways to vent that. when i was in the US they were putting their shit on the indians, because they knew that since they really wanted to stay in the US they would endure all the shit, and not talk back. some of these people got dumped on their 6th year, because that's when the employer has to decide on whether they sponsor a green card or just get a new one.
odesk encourages crap, because the people that come there generally don't think hey i'll get an awesome guy on there who i can't find in my environment. they think hey my project is super easy anyway. i'll get a cheap dude to build exactly what i want.
don't get me wrong i know some really good developers, and employers on odesk(well truth be told it's just 1 of either). but they're there no doubt.
what disgusted me the most was that the guy i was working with (who used odesk to get cheap developers) was thinking that he was doing them a favor. he thought of himself of some kind of savior, because he was helping indians so much.
When I've dealt with teams in India (rather than Indian folk in western nations) I've had problems with this. It's not niceness, it's being non-confrontational. To excess. When you ask if they understand (so you could offer help or training on a technical question, for example) it's "yes, certainly". And then a week later you get the email saying no progress has been made because they don't understand something.
It's irritating.
30 hours is not long to have to stick with one thing, and if you put in 30 hours on odesk at $10/hour you could take the next twelve and a half weeks off compared to what you are signing up for. Even at $2/hour you would still only need to work every second week and still come out ahead.
I can only guess that competition is fierce but you only need to find and retain a few companies that can feed you some work and you are set. So, sure do what you are planning if it keeps food on your table, but set each Sunday to match your month's wage and when you do, get out.
Next weekend when I'm working rather than spending the whole time with my family I'll rethink whether I could outsource it for 10% of what I make if I could find one programmer I could rely on to get it done correctly, quickly and discretely.
That's my first world problem.
I've found focus gets better with age. Young minds benefit the most trying to discover and learn as much as possible. You get bored when the initial learning portion vanishes.
Sometimes you need a project that has a wide enough breadth that it can hold your attention over a very long period of time. When one part gets boring, you move to the next part. Over a few months you rotate around but you must return to each piece and make it better.
I am trying to get a freelance webdesign/developer career going, but I am quickly learning that doing freelance projects is much more about getting clients, managing clients, and making sure they are happy than it is about programming, design or development skills.
Anyways, I hope you new job goes well and good luck!
I have this - and mine is utter crap. I cannot believe I have so little good stuff to show, despite years of doing this. (http://www.mikadosoftware.com/paul_brian). I realised that I also do not finish projects - but I have to finish something so I at least put it on github and link to it.
You can do better.
This surely must become a trend - looking on ODesk for a fool to do crap work must give way to CVs that demonstrate actual ability.
Running your own shop is a whole new set of skills. Working at this place might give you the insight for later in your life when you can move up the ladder. Maybe you are doing the right thing. Just get your focus fixed on the next level up and how you can get there.
edit: no, don't take this job. from your skill set I think you have already well passed this level. there's nothing to learn and it might even look negative on your resume.
Can you move down to Delhi ?
My late uncle used to say this over and over again: zamindar nahi banenge jab app kam kisi aur keliye karehe. If that didn't make sense, it's because my Hindi sucks: what I mean is you'll never get rich working for someone else.
There are programming skills that are valuable in
isolation. If you are a world expert on a certain domain
which lacks talent, then that's valuable.
Like Delphi? [1][1]
Get a down payment on that first gig and you have operating funds in a country where apparently there are developers working for $100 / month. You don't need to get an office right away. Work solo at first if you need to or pickup another local developer who can work from home. Or pick someone else up off O-desk. Build more funds and you get more options.
> And if you agree that (s)he can't do projects alone, why do you suggest making and monetizing her/his own projects?
Good point. We all have problems at times with discipline when working from home. It's something we can get over, but it also depends on the underlying reasons for the lack of discipline. You have more room to experiment when you are working on your own projects.
Getting out of such nightmare in India is a lot easier India than developed countries. You just need to make more money than salary of your job to get out it; which is about $100 at this point for you. In Silicon Valley and NYC, developers need to make $5,000 to pay bills. $500 is considered a decent salary for a first job in India; here are few ways to make $500 / month.
1) Freelancing: You can find better gigs on job boards like http://jobs.wordpress.net and https://groups.drupal.org/jobs
I run a startup (http://www.ranksignals.com), we could hire you for a freelance job if you are interested. My contact info is on my profile.
2) Blogging: Start a blog and promote it, you need about 5,000+ page views per day to make $500 a month.
3) Sell small plugins & themes on ThemeForest and CodeCanyon. You can make a lot more than $500, there are developers grossing over $100,000 per month.
If you want to get a full time job, don't work at a body shop. Work at a product or ecommerce startup, they offer higher pay and better experience. Companies like FlipKart are offering 10 lacs/year salary to new developers.
I live quite far from NYC in White Plains, rent for 1 bedroom apartment here is $2400.
PS. I am sure there are people surviving for $500 a month in NYC, but that is not the lifestyle most developers desire when they have job offers for $80,000 to $120,000. In fact, most developers I've met say they want to make $10,000 per month to quit their job.
So that leaves around $1000 for everything else and any savings.. which means I think you are exaggerating when you say you live very well.
They have quality standards that you must meet to get approved. Browse through http://support.envato.com/index.php?/Knowledgebase/List/Inde... to find out more.
Also, I would avoid Odesk like the plague. Build up a portfolio (open source works as well) and connect with people on HN.
Frankly it seems like OP is more depressed than anything - alone and isolated in a strange place.
He knows that much and noted it.
What he wants to learn is discipline and getting shit done no matter how much it smells. Having a boss breathing down his neck might work.
> Working on an open source project instead would be much more constructive and would get him engaged with experienced developers who could teach him a thing or two. If he's still a student (and it looks like he is) GSoC might be a great way to get started with this.
No. In an OSS contribution (or most GSoC) if you lose yourself nobody will care much, it's your loss. You're completely missing the point.
As for the cases where people in the west are actually made redundant - the west has ruthlessly exploited its colonies for a couple centuries and now, thanks to free trade, it is allowing for some balancing in the global economy, which means both poor countries getting richer and some people in rich countries being worse off. I'd say that in the grand scale of things it's justice, and long overdue.
If you are able to get shit done, I might be able to exploit you in a more pleasant and productive manner than some odesk bodyshop for similar wages - no bond and no hard feelings when you quit for something better in 2 months.
Do you have a github or other code portfolio? (If not, build one.)
And get the heck out of Chandigarh. Mumbai, Pune, Bangalore, pick one. There are Hackathons here in Pune and companies who will pay you well over 6000rs/month provided you actually get shit done.
So sad! I was rooting for OP for being a techie in Chandi. I was born in Chandigarh and although I emigrated within a few years of being born, I'll always consider that city a home of mine. I'd really like to do something to support its fledgling tech scene. I've committed myself to the idea of moving to Chandigarh to bootstrap my startup when I decide to go at it alone.
I would love for OP to stay in Chandigarh, but I honestly can't say that's a sensible move at this point in time.
I thought I could find it in the military, I was wrong.
I thought leaving the military and subjecting myself to the cold reality of the free market would force me to develop it. I was wrong.
I thought starting a company would make me focus. I was wrong.
Finally, with no other options left, I entered corporate America. Having a large, nasty ongoing project, clear motivation to keep working on it, and the latitude to implement my own approach was all I needed to start making real progress on my own inner quest for productivity.
In retrospect, it was not the last thing that I did that finally "did the trick." It was the combination of everything I'd done. There weren't any magic tricks, no way to skip the years of paying dues. There's no way to force it, even if you throw yourself into the ultimate sink-or-swim environment, if you aren't ready for that particular experience, you'll either sink, or you'll swim, but find that swimming doesn't mean what you think it means.
Your current course of action will not have the intended result. What will happen is that you'll get burned out. Then you'll have nothing to show for it but the experience. You'll take that experience to your next big push and build on it. And so on and so forth.
At some point, all of that accumulated experience will drive out some small success. Might take three years, probably will be closer to 8-10. Then the game will change, you'll have mastered productivity and now you're playing a management game rather than a survival one.
You're lucky in that you're driven to make this transition, most career techs aren't, they stay at the level of survival their entire lives.
I wouldn't be too worried about losing career steam. There are plenty of things for a person who can code but doesn't have a passion for it to do. In fact, there are probably many more roles a person like this can take than someone who just wants to code all the time. And they can be a lot more lucrative.
Burnout is probably going to be a good thing. Some people need to be forced to consider alternative career paths and skills to develop. Burnout will definitely do that. The new direction will ultimately prove to be valuable later on, but you won't realize it in the moment.
Move.
Since then I've never been able to be productive. I tried contract work here and there but I've never had the self-discipline. Actually I've made less money in the last 7 years combined from programming than 1 month at my real job. Think about that... I haven't made $5K from programming over these last 7 years.
Of course I needed money so I started working part-time jobs. I currently work 24 hours a week for near minimum-wage, often having to shovel snow in sub-zero temperatures. I thought the worse I suffer the more I'll get motivated to do work at home. That has not happened. I have nothing to show for these last 7 years except half-completed projects and a free productivity extension that 5,000 people use - but obviously does not work for me.
So maybe getting a job is the right thing for you. If you can't work from home, you can't work from home. You'll have to accept the best terms you can find, and if that's $100/mon then that may be your only option.
As for me... I would rather die than get a programming job. I'm as defiant as ever. I love programming, but I only love programming my own ideas. Even the thought of programming for someone else makes me feel physically ill (like throwing up). So either I make it as an Indie developer or I die as a janitor. Your post made me realize I should feel lucky that I have the option to be a janitor for $10/hr. You don't even have that option.
In startup terms I thought it would give me more runway.
[0] : http://www.siyli.org/take-the-course/siy-curriculum/ (a free course on meditation)
a. Today, India has way more internet penetration than even 10 years ago and it also cheap enough to afford a home connection. Yes, even in a place like Chandigarh !! </sarcasm>. Though the average so called 'broadband' access it still far from what might be available in developed nations, programmers these days can at least do a quick google while they are working on something, instead of having to batch all of the querying do be done from a cybercafe. That is what we went through.
b. Having to work at a sweatshop, putting in the hours doing grunt work, earning peanuts and knowing that you could do better hasn't changed much from the way I remember it ...oh wait, hell yeah it has ! These days, you will at least have a computer to yourself. You will at least have comfortable chairs. You won't be working shifts and they at least will be paying you (I refuse to believe the $100 bit) as opposed to slaving it out, while it's being called 'training' (worse still, you have to pay them for the opportunity). That is what went through.
c. They don't have LUGs, Hackathons or any sort of local mailing lists ...oh geez, why the f* not !??! I'll tell you why ? 'cos people like this guy will bitch and moan about it all the time but will not take the initiative to just start one up themself. Indian programmers, (most of them, tbh) expect that things where they can just go to and learn just 'exist'. It's a small percentage of people who would think -- "here is this thing that I already know and I can share, let me do that with another person. It would be a very happy pleasant coincidence if the other person knows and can share something that I don't already know".
Come on man, start up a LUG, organize a hackathon, visit the computer lab in your local college and speak to that girl who appears to be frantically coding on a lab computer because her parents think getting a computer for her at home would be a waste of money ...and anyways, it's not like she needs any more education !!
d. ....I could go on, but I just realized the source of these sort of bitch-and-moan posts, as I write this. The sense of entitlement that youngsters in India have these days.
You know what buddy, you can't address people who just happen to be in a better place than you as 'first world dev' just because you happen to live in India. Being 'First World' anything is about a state of mind where your own personal issues are greater than other peoples, with the irony that the issues come from a sense of entitlement. Take a long hard look at your life and think about why you ought to be entitled to the things that you think you ought to be.
rant done.
Honestly, if you get bored after 20 minutes, programming isn't for you. In this job, there are days when you churn out one feature after another, and days when you spend the whole time staring at the monitor wondering how to fix that bug. And guess what OP? That happens to everyone, regardless of location or place of work.
;-)))
* Less pay (< $100 month) - totally off, recently I had an offer from a startup in Chandigarh for a very competitive salary - close to $2000 a month (pm me if you want the recruiter's email id).
* PHP projects - There a lot of vacancies for python, ruby, nodejs and angularjs jobs, either you need experience or you should have decent projects in your github repo.
* 48 hours - might be possible, but does not have to be the case
* Joining for a team - Joining a sweatshop for working with a team from whom you can learn is __Stupid__ - Chances of finding someone with proper skills in a sweatshop is close to zero.
* Bond with 2 months pay - Firstly it is illegal, but, yes I do know that sweatshops do have this practice. Avoid it at all costs. Or you can simply not pay them, as there is no way they can enforce the bond (legally). But this is a huge red flag. A proper company does not ask for that - period.
* 0 friends - where do you live? There are PG accommodations available brimming with social life (with individual accommodation - it is not always a shared thing). I currently live in one - and it is awesome.
* Change your life in 9 months - by working in a sweatshop? Not going to happen, you will instead be stuck in a pathetic project which ruins your career prospects further.
* Move to Delhi/NCR region - it is close to CH, and not as far as B'lore/Chennai/Hyderabad, and you have globally respected brands here.
I wouldn't recommend it to anyone - we use terrible tech(php and ftp), I haven't learned anything new in months, only taught my (senior) coworkers some tips to work even faster. I'd write more about it but my break is over.
What do you have to lose?
Just be aware that you could do the same thing in the US (or anywhere else, really) and make exponentially more money.
Start one! Seriously- no jive. Be that change that you want. It may be that your affinity is not to be a developer--- you may actually be an organizer of people! Try it! You can do it for free! Make announcements! Start by meeting once every two weeks in the evening and teach people everything you know! You will make connections! You will be tapped to work with others. You will grow along with those around you. The people you help will see your strengths and send better opportunities your way. Trust me, you will see.
Seriously, start it up. It is within you to do it and it is free and fun! Find a library or a park or someone's living room or a restaurant. Even if it's just one computer, gather a flock.
I'm working in a startup now where our major focus is on doing quality work using modern tech. We deal with clients directly and not through websites like oDesk. Great to see that you have worked with backbone etc. Would you like to catchup some time for tech discussion? I have few friends who do that regurlay at weekends. Mail me at gkcgautam@gmail.com :)
Recently I put a Django Ecommerce site job there for $10k USD and you won't believe how many phone calls/emails/linkedin requests I received from 'Agencies' primarily in India/Pakistan but some from Eastern Europe as well promising me the world for my $10k.
When you have to sift through all of this the cookie cutter scripts everything becomes apparent and you realise it's a thin veil of bullshit, the product managers (middlemen) that call you up in reality have a team of very lowly paid junior devs who are incapable of doing the project. (Evidenced by me asking some moderately difficult technical/architectural questions) And very few have a track record of getting shit done and delivering. I would never hire an 'dev agency' via Odesk after this experience, it's too hard to sort the good from the bad as an employer in a 1st world country.
I ended up interviewing freelancers only and liked what I saw/heard - I thought the freelancers on ODesk were of quite a high standard actually. Ended up hiring a fairly senior engineer for the project. If he pulls through I will offer him ongoing work for $2-$3k a month.
You learn discipline by sticking with something despite wanting to jump to something else.
We contracted with Delhi dev shop and were paying about $8000 Australian dollars per month for the equivalent of 3 developers (mix of backend devs full time, and on call front end dev, designer, tester)
I think our junior dev was charged out at $1300 per month so if using standard agency markup of 100% her salary would've been around $650 per month (~26000 rupees per month).
The manager was also always complaining that new recruits kept increasing their demands each year.
So it's strange that there's such a difference in salaries between 2 cities so close by. If it was true then I'd expect programmers to move to Delhi.
I think it's impossible for anyone even just barely decent in programming to get a job in India. I have seen people get into Motorola while searching for jobs like nomads. They were not from premier or even well known institutes. What you are subjecting yourself to is incomprehensible based on your objectives.
(I'm not a world traveler, so disregard the next remarks if you have better insight than me.)
I noticed while working with chinese developers they were terrified to tell me they were having a problem with a task I assigned. They also had no problems passing extremely poorly designed code in order to meet a deadline. It didn't even have to work, the understanding was, you just have to turn something in before the deadline. I had a developer that couldn't get writes to the database working consistently. So he wrote them to a file on disk... I guess that was good enough.
Working with Indian developers is a much more mixed experience. Aside from them interrupting you constantly, which I cannot stand, some of their attitudes were downright laughable. "I have 5 years experience, which is about 10 American years experience" one guy told me as he explained that it would be better to write their own messaging layer instead of my selection of ActiveMQ.
Anyway, if Twitter/Google/whatever was based in India or China, I imagine the leaders would know how to use their labor effectively to produce competitive companies. I don't see American companies ever using overseas labor effectively. The cultures are just inherently incompatible for working on a subjective task like software development.
I've been working from home for 3-4 years part time and I think my little bits of experience can help you:
1. When It comes to discipline, it is very hard! What I have been doing is measuring everything. I got Rescue Time subscription and now, every minute on the computer is measured! If I don't have a productivity score of 60+ by the end of the day, I know that things need to change. After that, it takes a lot of self control.
2. For networking, online relations can help a lot. Remote teams are great to work with. I have a small group of 3-4 people, all at different places but they help in making sure that I don't get bored and am accountable for what I do!
3. All you need to network is one good friend who is also a networker. I went to a small web development firm for internship and now I'm friends with the COO there. He's helped me with contacts. Some of my relatives are also in IT industry, so there's some help.
9 months is quite a long time and I'm sure some part in this decision is social pressure (I earn good enough while doing studies as well, but everyone around pushes me to get "experience" in big firms!)
Currently we are trying to bring in talent from Delhi and Bangalore.
You can email me at klaas@agilemedialab.in if you are interested.
Discipline is something that can be learned, that's why they teach it so much in the military.
Difference here is you have to force yourself through the pain once you want it bad enough. It will be worth it.
Think of this initial job as internship, but after a year when they know their stuff and can clear technical interviews and with better communications skills the pay package increases significantly.
when people switch to more reputed companies in earlier years the hikes they get is between 50-100% . for first 5-7 years the hike is abut 30% by the time these people will settle in large indian or multinational companies.