
I have a soul-crushing job and I don't know what to do - shubhamjain
I love programming and I enjoy solving good problems. Even though I am aware that there is some level of grunt work associated with each job but this one is just killing me.<p>Most of my job deals with adding CRUD functionality and bug fixes here and there. People don&#x27;t seem to be tiny bit interested in doing things better. Our front-end developer chooses to re-implement everything from modals, alert boxes, to validation in form of horrendously ugly code because he believes his code will be more understandable to &#x27;him&#x27;. The pay is not great and there nothing exciting associated with this job. In fact, out of 8 hours, I barely write code for 2 hours.<p>I only took this job in order to buy some time and create some interesting things but this job barely leaves me any time to do so. When I started looking for job, I didn&#x27;t get good response from HN hiring &#x2F; freelancing threads (maybe because I don&#x27;t have a good portfolio).<p>I feel I should know modern frameworks like Rails and Angular to have a better appeal but it would take months before I get proficient in them and I have never been good at learning new frameworks for just the purpose of learning. I have no idea what I should do?
======
patio11
Some times I think we are wired to believe we have to beg people's forgiveness
for not being miserable. Medium term I'd suggest discarding this belief. Short
term: on behalf of geeks everywhere, your local online watering hole hereby
grants you permission to not be miserable.

Quit. There exist much better jobs out there. The hiring market for people
with your skillset is the best it has ever been.

Level up. Portfolios are not, in fact, how most people get consulting gigs or
jobs. This is believe due to availability bias by junior employees/consultants
because portfolios are tangible and they have some sort of just world theory
where the best gigs/jobs go to the people on the top of the ladder in
programming skill. There is no one skill ladder. To the extent that there is,
skill is not the primary driver of employment decisions.

P.S. The overwhelming majority of jobs are not in modern frameworks. Get good
at Rails/AngulAr if they interest you or if you want to work in fields where
they're the frameworks of choice. (Rails might be for Valley startups one of a
few top contenders. I am insufficiently well acquainted with Angular to
understand whether it is. Either way, neither will account for a full
percentage point of LOC written in 2014.)

Also, if you haven't done so, I'd sit down and figure "What do I want to get
out of my career?" and start optimizing for jobs which get you closer to those
goals. This sounds obvious but some people don't do it. Do it. "A job which
keeps a roof over my head and doesn't tax me mentally" is a perfectly valid
answer but you don't seem to want that so don't continue to seek it out when
you get up every morning.

~~~
atmosx
I have the idea that AngularJS is requested more and more. I thought it was
kind of a "must have" skill.

~~~
nostrademons
It's the hot technology in the same way that Rails was the hot technology in
2005-2007.

This does not make it a must-have. I did just fine learning Django instead of
Rails in 2007, and when I finally got into Google in 2009, I ended up using
neither for the bulk of my time there (okay, I think I had about 3-4 Django
projects in my tenure, and knowing Python definitely helped).

There is a certain segment of the employer market that is always chasing the
latest hot fad: Java applets in 1997, ColdFusion in 1999, J2EE in 2002, Rails
in 2005, Angular in 2009, React or Polymer or Go in 2014. Knowing the latest
hot fad can be an excellent way to get your first couple jobs in software,
because these employers are always looking for people and typically don't know
much about technology themselves. However, it often signs you up for a
lifetime of retraining, unless you leverage experience at one of these places
into domain knowledge with a longer shelf life. Companies that live by the
latest fad die by the latest fad; the same ColdFusion or J2EE skills that got
me my first jobs in college are basically worthless now.

------
a3n
"I feel I should know modern frameworks like Rails and Angular to have a
better appeal but it would take months before I get proficient in them"

The best time to plant a tree is 20 years ago. The second best time is today.

~~~
DLarsen
If you want to get your feet wet with some real work, I highly recommend
joining the folks at assemblymade.com. They have a really neat platform for
collaboration that will allow you to make real contributions to a commercial
project. One of their most active projects, Helpful, is a Rails app and would
be a great companion project to the typical self-taught track of learning.

------
fuzzywalrus
I had string of crappy jobs to get finally a good one. I worked at a dead end
e-commerce company that's now defunct that provided its own in-house platform
to sell to customers for e-commerce sites. It was miserable, everyone could
see the company was on life-support, including the owners. The practices we
used like editing code on live sites/servers was insanity. I forced myself to
start using Git, making me the only one using version control and sneaking in
best practices to hone in skills. I took what I could from the job to benefit
me (taking on a project to make a mobile version of the platform). I hated the
job as the work environment was toxic and it was affecting me outside of work.
Even to this day, I have the occasional bad dream of being forced to go back
to work for that company but having some sort of exit plan, even vague as mine
helped enormously.

Picking a project and assigning it a tech stack is the best way I've found.
Simply doing tutorials for the sake of tutorials takes superhuman dedication.
My motivation grew also in parallel with the work conditions spiraling
downward.

Long story short, I scored a job oodles better than the horrid job and make
significantly more, and have happy coworkers and bosses that care. Plus, I've
picked up a lot of skills here which I'd never been able to at my crappy job.

------
7Figures2Commas
> I only took this job in order to buy some time and create some interesting
> things but this job barely leaves me any time to do so.

If your interest is in creating "interesting things," you should focus on the
ways you can scratch this itch. If you go into your next job looking to "buy
some time" you probably won't be any happier than you are now.

> I feel I should know modern frameworks like Rails and Angular to have a
> better appeal...

Software development is software development.

A lot of jobs, even at prominent/"hot" companies, primarily involve CRUD
applications and mundane development tasks ("grunt work"). Proficiency in
Rails or Angular might help you land a new job, but it's worth contemplating
the very real possibility that the nature of the work at these companies won't
be any more engaging to you just because your employer uses a framework du
jour.

~~~
moooffooom
Wow ... this comment is so true especially in Germany.

Most of our Software Development jobs here in Germany deals with business
application at is very boring and contains mostly mundane tasks. I have worked
for some companies already and i really got to think the work is mostly the
same boring shit!

At my current job we have a load of "slaves" from companies like Accenture,
CSC and the like... they also report the same shits from a lot of other places
:(

I really lost all hope ........

------
agentultra
I'm the worst for not taking my own advice but I've often heard it delivered
to me in one form or another when I've been in these similar situations... so
here it goes:

What do you like to do? Do more of that.

Easier said than done, I know. It comes off as an awfully curt way of
suggesting that you throw out your entire life and reorganize it in a way that
you can toy with your passions in pure bliss every waking moment. For those of
us with families, mortgages, and responsibilities outside of work such advice
seems useless.

But it's not entirely useless. You just have to do _more_ of that thing which
excites you. It won't replace the drudgery of your current job (or any
possible job you can get thereafter). But if you aim to spend a few hours a
week on it for the sake of being happy and doing interesting things you might
find an opportunity to make it your thing.

Share your passion with others. Show them what you're up to. Aim to make a
little progress each week. Keep it small. Finish one thing at a time. Don't
leave dangling threads. Yadda yadda.

The flip side of asking yourself this question is that you have to be honest
in order to make progress. You may not actually like programming. Or perhaps
what you do like programming is so niche that there isn't an industry for it
(notice how few postings there are for BF programmers?). It's okay to enjoy
programming as a hobby. Maybe you're actually a carpenter in a world obsessed
with gizmos and you'd be better off spending the majority of your days planing
and staining wood. Fiddle with computers and neat programs at night. That sort
of thing.

You're not living in a Kafka-esque dystopia. There are ways to get out of your
rut. You just have to shift your perspective and be willing to do something
about it.

------
logfromblammo
If your job is a soul-crushing vise, take your soul out of it and put it
somewhere else. There are a lot of people out there that do something they
hate to pay the bills. They get their enjoyment out of life by doing something
else after clocking out. People at your work have no interest in doing things
better because they already emotionally divested themselves from the job. Just
pretend that instead of writing awful code, you're just serving customers at
the restaurant until your agent calls about an audition.

Reserve your passion, creativity, and imagination for the people who care,
even if that's just you. Don't learn anything based on what you think other
people might want to know. Learn what you need to know to do what you love. If
you can't somehow telegraph to a prospective employer that you can invest your
passion into _something_ , it won't matter what you know. Bitter, jaded,
burnt-out people don't get nice jobs.

~~~
shubhamjain
You are misunderstanding my situation. The reason why people aren't interested
in clever solutions is because they can't think of any. It may seem cynical
but I have seen people out here working even longer than me re-creating
something, not exploiting even basic tricks or automations.

Lately, my co-worker spent 15 minutes indenting JS files without realizing
that it would 10s to use a code beautifier.

~~~
bluesnowmonkey
I don't know your situation well, but the way you talk sounds like I used to.
I spent too much of my career criticizing the people around me. Long story
short, you get zero points for making other people look bad. It doesn't
benefit your career, it doesn't make you feel good.

If there is an opportunity for your co-worker to be more effective, that's a
great thing. You get to be the one to show him how. Just don't forget to do so
with humility, because maybe there's a very good reason for doing it the way
he does now. And if he's not interested in your advice, try not to take it
personally.

It may be that you really are surrounded by idiots. Your co-workers are
stupid, management is incompetent, they'd all be better off if they just
listened to you, whatever. In this (unlikely) worst case, negativity still
gets you nowhere. Acknowledge to yourself that you aren't satisfied with the
situation, start looking for another job, and continue to show up every day
doing your best and helping those around you. I've watched others take this
approach and they're doing a lot better in their careers than I am, and they
seem happier.

------
otoburb
Your sentence "[...] out of 8 hours, I barely write code for 2 hours"
contrasts with the next sentence: "[...] but this job barely leaves me any
time to do so."

I am probably misinterpreting, but if you wanted to buy some time I would have
thought this meant accepting this job to pay the bills, and then outside of
work hours picking up other skills to create some interesting things, which
sounds like the right way to build up your portfolio and skillset, especially
if you've put in your required 8hrs/day in the day job.

I understand there are family commitments or other activities that may take up
time, but in light of your implied situation (i.e. having to accept a less-
motivating job to pay bills and buy time), you may want to consider either
pushing for a new framework at work (which sounds like an uphill battle), or
looking for another job.

~~~
shubhamjain
The main problem is exhaustion. The queer thing about jobs out here is that in
name "flexible timings" there is complete lack of schedule. Everyone comes
around 11AM and stay till 7-7:30. I reach home by 8 and I am completely spent.
Weekends are better but I don't feel I am progressing enough to have a good
job.

~~~
allegory
Been there. Shift your hours back to 9-5. Helps considerably. You don't lose
the evening then. Gives you something to live for.

~~~
ScottHConner
Moar this than I can upvote. Getting in early changes your entire day. Sure,
you sleep less, but unless you have an acute medical condition you can get
used to it within a week or so.

~~~
klibertp
Yeah, but make sure you do sleep enough. I neglected sleep for years, sleeping
for 2-4 hours a day - on average, with sometimes 2-3 days without sleep at all
- and I though I was doing fine. When it finally caught up to me I had a major
epilepsy episode at the office, which was not nice. I since started to value a
solid 8-9 hours sleep much more than before. This "much" of sleep is probably
not really needed, but right now I'd rather be safe than (even more) sorry.
YMMV ofc, but just keep in mind the dangers when deciding to sleep less to do
something else.

~~~
allegory
Similar experience. I did two days solid with a couple of naps and passed out
on some stairs breaking three bones in my foot, 2 ribs and dislocated my
shoulder. My brain just said "enough of this shit" and taught me a painful
lesson that destroyed me for 3 months.

7 hours minimum now and no stimulants (alcohol, caffeine, masses of sugar etc)
and lots of water. Made a bigger difference to me than an exercise regime.

------
ChikkaChiChi
I got addicted to solving problems. Every time I fixed one, I would get that
little dopamine hit that told me I was doing a good job.

Then one day a buddy said, 'Yeah, but in your company there are problems that
shouldn't need to be fixed.'

Completely changed my way of thinking and set me on the path to start looking
for a new job.

------
blisterpeanuts
Maybe find an open source project that piques your interest, dig into the
source code and start helping them fix bugs and add enhancements. If you work
8 hours a day, you have about 20 hours a week of free time, so go for it.

Log onto github.com and click the "explore" link at the top, to get some
ideas.

Beyond that, realize that most people don't have ideal jobs. It can take years
of hard work to get to the point where you can pick your job, or even better,
make your own job.

Everyone's had soul crushing jobs before; just grit your teeth and get through
this, whilst looking around constantly for the next opportunity.

As a friend once said, opportunities don't usually knock on your door. They
lie there quietly, waiting for you to go out and find them. Best of luck!

------
aurelius
I was in a similar situation once. Here's the algorithm I came up with to get
myself out:

1\. Figure out what you _want_ to do.

This is the most important step. You currently have a job, so you have time to
really think about this and figure out a solid answer. The answer doesn't have
to be an emotional epiphany where you find your so-called "passion", but it
has to be a concrete goal. For me, it was more of a recovery of the idea that
I wanted to apply my programming and computer science skills to interesting
and difficult real-world problems. With that in mind, I looked at the place I
was currently working at, and saw that I wasn't going to be able to achieve my
goal there. So, I looked around and found another opportunity that was more
along the lines of what I wanted to work on.

2\. Figure out what skills you need to pursue your goal.

So, when I found the new job that I wanted, I interviewed for it, and got
rejected. I asked for feedback, and I was told that my data structures and
algorithms knowledge wasn't good enough. I suppose if I had followed my own
advice, I'd have realized this before I applied. After stagnating at my old
job, and foolishly taking a team lead position, my skills had certainly
atrophied. However, the interview failure was exactly the kind of real
feedback/wake up call that I needed.

3\. Work on improving your skills so that you are ready to actively pursue
your goal.

After failing the interview, and getting some feedback, I set to work
rebuilding my data structures and algorithms knowledge. I bought a copy of
Cormen, et al., and brought it everywhere. At work, I would go off and hide
somewhere for an hour a day, and study some part of the textbook. At home, I
worked on a core data structures and algorithms library in C. I'd get up an
hour before work, and write unit tests or fix bugs. I'd use the evening to
hack on new code for the library. I was pretty exhausted after work, and I had
three kids, one of whom was only a few months old, but I pushed myself ahead
because I had a goal, and I didn't want to be stuck in my current job any
more.

4\. Don't give up in the face of failure. Keep the dream alive.

After 5 months of study, and writing the data structures and algorithms
library, I decided it was time to apply again for the new job I really wanted.
I explained in a cover letter what I had done since the first interview
rejection to address the feedback I'd received, why I really wanted to work at
the company, and how I thought it lined up with my career goals. Within a
week, I had heard back from the company, and scheduled another interview with
them. Three weeks later, it was my first day on the job!

It was terrifying to apply for a second time. I had no backup plan. My current
job at the time was starting to suck more, and I wasn't enjoying being a team
lead, so something was going to have to change, one way or another. My life at
home was exhausting, too, with the new baby and two other kids knocking
around. But my wife was on board with my whole plan, and tried to give me the
time to do the work I needed. It helped that we had friends and family who
were struggling to find jobs - there's nothing like seeing other people
hurting to give you a realistic perspective on your own life, what you have,
and where your life should be going.

On the other side of all this, I've made it my mission to be continuously
studying, cramming it in wherever and whenever I can. I never want to be back
in that hole of skills atrophy. Also, at the start of every year, I make an
assessment of where I'm at goal-wise, and I make a study plan for the year,
including a substantial project to work on in my spare time that will help me
get to where I think I need to be. Resist the urge to hop from one thing to
the next. Focus on something, and master it before moving on to something
else.

Good luck!

~~~
nesyt
Why was taking the team lead position foolish? Were there no benefits to
accompany the drawbacks?

~~~
aurelius
It was foolish because I worked at a large company, and team leads were
basically impotent eunuchs who ran errands for the higher ups. I also worked
in a department that had pathological ideas on how long developers ought to
work (including weekends), and how short product schedules should be
(unfeasibly short).

There were some benefits. I loved being able to help the guys on my team. I
did my best to promote their achievements, and argue for them at project
schedule meetings. I was very happy to get one of my guys a really good
placement on the "technical career path" system when it reared its ugly head
at the company.

Ultimately, my strengths are in technical problem solving, not in managing the
psychopaths who seem to ascend to the upper echelons of large companies.

------
klunger
Not to sound harsh, but you seem to have an unrealistic expectation about how
rewarding a given job should be. The _vast_ majority of working folk do it for
the pay check, then clock out at the end of the day and proceed to the part of
their lives where their heart resides. Think about all the folks who works in
retail, or food services, or manufacturing, not to mention agricultural
workers, dish washers, maids etc. The notion that your career should reflect
your passion is classist nonsense peddled by career counselors in upper middle
class high schools and psychologically seductive but ill-conceived internet
memes. You have a job that probably pays higher than the median national
salary and doesn't expose you harsh physical conditions or toxic chemicals on
a regular basis. Have some perspective and be grateful for what you have.

That being said: If you want a job that it is personally fulfilling to you on
a reliable basis, then you need to take some risks. I would recommend either
1) starting your own company (it is your baby so you will care) or 2)
freelance consulting (so you can pick your work).

------
fivedogit
> "I have never been good at learning new frameworks for just the purpose of
> learning"

Could not agree more with this statement. When I get into a software project
really deeply, my work ethic is insane. Obsessive. As I need new technologies,
I learn and assimilate them quickly because I'm so motivated to get to the end
point. There's never been a tech I've given up on when plowing through a
project -- well, maybe OpenCV.

Anyway, I've tried, as the OP has, to teach myself Rails or Django or whatever
on the side as a "resume builder" and have lost interest each time. I _just
don 't care_ enough to learn the not-totally-necessary tech to a degree that
would actually do me any good in a job interview if I'm not doing it as part
of a passion project where it is required.

From the other angle, when I get an idea and want to build it really fast, I
don't have the patience to force myself to learn a new language or tech when,
fuck it, I can just do it in Java or whatever.

Catch 22.

~~~
maerF0x0
I think thats where side projects have to be something you care about. Scratch
an itch whilst learning pet technology.

Ex: a friend of mine wanted to modify some data on his garmin GPS thing. He
also wanted to learn Go and google app engine. A few weeks later he had resume
items and the goal accomplished.

------
lovelearning
Shubham, I went through your blog and I'm impressed! It looks like you're a
person with wide ranging interests. You seem proficient in combining concepts
from core mathematics, computer science, practical software engineering and
electronics, which in my opinion, is something only few engineers can do and
fewer still actually do.

Use your creative energies, polymath skills, urge for perfection and your
time, to build your own software ideas and perhaps make a business out of
them.

Don't waste them on your employer's products or your fellow employees. If they
like bad code, then let them. You too can lower your standards of perfection,
and raise your level of tolerance. Empathize that perhaps their job is as soul
crushing for them as yours is for you. Your expectation of perfection in
others is the bigger enemy you have to conquer. Expect perfection from
yourself, but forget about others. Good luck (from a fellow freelancer!)

------
tryanother
i could have written this. our "designer"/self-professed "front end guru" does
everything wrong. everything. i've had to teach her what javascript callbacks,
closures, constructor functions, and hoisting are. she's rolling her own
"front end framework" (table-based layouts with a few breakpoints thrown in)
and separates the code into dozens (dozens) of different CSS and JS files. i'm
also getting paid shit wages. but i basically spend 90% of my non-work, non-
sleeping time learning and creating things so i can have a portfolio. i don't
have a CS degree, so i am taking OCW courses and MOOCs to fill in my knowledge
gaps. i'm going to start building an app for a friend soon so i can put
something on my github. i cannot rely on my "real" work to provide me with a
meaningful portfolio. i recommend you do the same.

~~~
LandoCalrissian
It's maddening to hear stories like this. I'm a UI/UX Developer, and really I
just end up doing most of the front end development for our team. One of the
big things I focus on is making sure our conventions are clear and documented.
Style guides are verbose and have code examples.

Part of being a good at frontend is bringing the biggest lift to the team
overall and making their jobs as easy as possible. So many people will be
touching your code at some point, so I go out of my way to make their
interactions as painless as possible.

I think with frontend development in particular, it's really easy to get some
people that are really unqualified. Hopefully this is changing, but I feel
like a decent amount of people sell some serious snake oil because some of it
bleeds into soft skills.

~~~
fuzzywalrus
Agreed, at least with the advent of precompilers and task managers like Grunt
and Gulp we're starting to see a division from the previous generation of "web
designers" where there's some hard skills that you simply do or don't have
that can't be faked easily using bad WYSIWYG editors or rudimentary grasp of
HTML and CSS.

------
forca
I feel for you, I really do. I've also had a string of "crap" jobs where I
felt I was not doing anything of value.

Remember, you should always be looking. If you have time, do some small bit of
pro-bono work for someone, perhaps a non-profit. Add them to your CV. Solve an
interesing problem for them.

Look at companies you admire in your area, see what interests you, and come up
with a way to solve a problem they are working on. Present this to a manager
over lunch. Tell them you fancy working for them and you can bring some skills
to the table.

Like Yoda said, there is no try, there is do or do not.

FYI, I switched over to working for non-profits, and while the money isn't as
much, the jobs are more interesting to me and I have generally much more
latitude to implement what I think will work (for me, always OSS/Libre). It's
a good feeling to know you are making a difference.

------
ffpsx
You are not alone. I am in a similar situation. Best advice for learning new
platforms is to come up with something you want to build and then learn the
new framework by implementing the idea using the desired framework.

My plan to get out of my rut is to build my own self-sustaining startup that I
am more passionate about.

------
kotakota
Some of the points you're making dont seem to make sense. For instance you say
you dont have time to make interesting things but then say you only program
2hrs out of the day. What are you doing those other 6hrs? And what about side
projects outside of work?

Another key point that lead to crud work is a lack of experience. If your
fresh out of school most job offers you'll get will be fairly crud type work
until you've shown your able to handle more.

Education can also play a role in this. If you have a bachelor's or no degree
experience will be your best friend. If you have a master's or phd you can
generally get into some more exciting positions out of the gate.

Where else are you looking for work besides hn hiring / freelance threads?
Those aren't even close to the best resources for finding great jobs.

------
robbyking
I was in the same situation for more than four years. The only reason I stayed
for so long was at the time my career wasn't very important to me -- my main
focus was my band, and even though it was infuriating, my horrible job
afforded me the time and money to be able to focus on music.

When the time came for me to think about moving on, I did a few different
things. First off, I went to udemy.com and brushed up on my framework skills.
At the time I was a front end developer, so I too courses in jQuery and
Angular.js, then took a refresher course in Java. From there I started doing
volunteer development work for local non-profits so I could round out my
portfolio.

After that, my job hunt was pretty easy. All-in-all my ramp up took about 6
months or so, and it lead to me getting a job that I love.

------
cognivore
Our first world problems are such a drag.

I think you can make most any coding job fun if you do it right. Are _you_
interested in making things better? Adding CRUD? Bake in a better object layer
to the data store. Front end developer a n00b? Just out do him with some nice
Angular or jQuery on the next project. "Oh, I already added the UI stuff."

If you can't learn something just for the purpose of learning (and why are you
putting that limitation on yourself - buck up) do it on your own time and then
bring it to work. Make everyone else look bad. Make your employer happy. Then
get good at the new shiznit so you can quit and get a better job.

~~~
mediascreen
I find that making everyone else look good is an even better way to improve
your career. Colleagues will remember every time you helped them out and your
bosses are usually more aware than you think.

------
erichcervantez
When I need to learn something I first brain-storm a small project to work on.
Doesn't have to be great or solve any world problems. Maybe it's just
something for you. But in that project, be determined to use whatever
framework you've set out to learn.

For me, I also have a coding blog (eonjava.com) where I will write an article
on whatever I am working on. I have several articles right now that I am
working on at once. I try to write them as if I am speaking to someone who has
no previous knowledge of the topic so this forces me to learn it from the
ground up. It might be worthwhile to start a blog and take this same tactic.

------
w1zeman1p
I found myself in a very similar situation to you. I was working at a job that
I didn't really like and knew that learning Rails was something that, on my
own, would take many months to get proficient at before getting good enough to
get a job. The way I broke out of my slump was to attend App Academy. I used
the opportunity to really dive deep into Rails, and javascript, but also to
meet a bunch of really great new people in a new place. (I had some previous
web dev experience but no Rails and very little javascript and it was still
absurdly useful :))

------
maerF0x0
My advice is to make it interesting. If you're supposed to do
_yet_another_GD_CRUD_page, then figure a way to do CRUD +1 .

Eg: add autosave per field, take a long form and turn it to a multipage w/
final submit, figure a way to validate in the browser before sending to the
server, internationalize it (what does $1,000 and $1.000 mean?) etc etc.

I did this, plus basically ignoring my manager (whom only cared about the bare
minimums and timelines, for his bonus) to level up my skills and move onto
better pastures.

------
FrankenPC
Same sort of situation here at my job. Myself and a group of three other
developers began meeting weekly after work to go over coding technology and to
challenge each other. We will bring ourselves up to speed with or without the
help of our company.

And that's the attitude you need to adopt. The relevance of your knowledge
base is your responsibility. Fight for it. Defend it.

------
duckingtest
Do you have any savings? Are you married or otherwise unable to move? There
are many countries in the world where you can live comfortably for $1000/month
(or even less).

That will give you a few years of time to do anything, web apps or something.
Maybe one will turn out to be profitable. Or you could just try to do part-
time remote work to cover living expenses.

~~~
maerF0x0
Which are said sub $1000 countries and link to proof would be nice.

~~~
duckingtest
Almost half of Europe [1]. Average wage is better than vast majority of people
in these countries earn. That's proof enough. You can optimize for smallest
price levels [2], safety [3] or local English level [4].

Other than that, basically most places in the world. I heard Bali is nice.

[1]
[http://en.wikipedia.org/wiki/List_of_European_countries_by_a...](http://en.wikipedia.org/wiki/List_of_European_countries_by_average_wage)

[2]
[http://epp.eurostat.ec.europa.eu/tgm/graph.do?tab=graph&plug...](http://epp.eurostat.ec.europa.eu/tgm/graph.do?tab=graph&plugin=1&pcode=tec00120&language=en&toolbox=sort)

[3]
[http://www.oecdbetterlifeindex.org/topics/safety/](http://www.oecdbetterlifeindex.org/topics/safety/)

[4]
[http://languageknowledge.eu/languages/english](http://languageknowledge.eu/languages/english)

~~~
sireat
Those are nice links, but do not be mistaken, even in a low wage EE country
your $1000 a month will not go far enough unless you have the right mindset of
a local.

Low average wages != low cost of living.

~~~
maerF0x0
Also a good point. My cost of living includes high speed internet, meat at
2/3rds of my meals, healthcare, new shoes each year etc. Maybe the low average
wage is possible to live on, but doesnt mean it will replicate my desired
standard of living.

~~~
duckingtest
In Poland, if you wanted to eat _only_ in restaurants, that would cost you
about $1000/month. $200 for high-quality home made meals with meat everyday
(the cheapest sustenance diet would be about $40). Rent for a small apartment
in medium-sized city is about $350/month. $20-$30 for ~50 mbit internet. Other
utilities about $100 I guess, depending on usage. Shoes and clothes generally
cost the same everywhere.

There is public health insurance which most people have but it's better to pay
privately for everything, prices are very low and quality is higher. Eg. a
total knee replacement surgery would be $7000 at most compared to $60k in USA.
One consultation with a specialist costs about $25.

~~~
nathell
> In Poland, if you wanted to eat only in restaurants, that would cost you
> about $1000/month.

It is possible to go much, much lower than that if you are willing to prefer
eateries/milk bars over proper restaurants. It is very much possible to have a
hearty, filling, two-course lunch in downtown Warsaw for $4.

------
ozuvedi
I went to your blog. If that is seriously yours then I don't think you need a
job where you'll be managed by some dumb blokes. You have what it takes to
create awesome stuffs. Go work on your dream ! Imagine what & where you want
to be after 10 years - some manager or lead of some XX company OR a
professional with real value?

------
spencerwalden
If you are a decent enough developer, getting proficient in Angular or Rails
should not be that difficult. I say back yourself, and get studying, you can
do it!

------
tjross
I was in a similar position until finally leaving my job this February. I am
not a programmer, I was actually an investment banker, but I know what it
feels like to work in a soul sucking job and feel helpless. The trouble is,
like you said, you get stuck in such a job to "buy time" \- for me it was to
make some money to pay back student loans - but unless you know exactly what
you want to do next or you are actively searching for it, the time gets away
from you. It becomes a virtuous cycle - the longer you are in a job like that,
the harder it is to leave. Here is my 5 step guide to figuring out what the
hell you want to do and getting out of a job you hate:

Step 1: Like aurelius said below, the first step is figuring out what the hell
you want to do, what you care about. This part has nothing to do with your
skill set or which frameworks you should learn, it has to do with finding a
mission you believe in. For me, the epiphany was realizing I needed to find my
mission. I woke up in the middle of the night gasping because I realized that
I had been in a job I hated for over 4 years and all along I knew that I
wanted to start a company. I was buying time, but instead of a year or two as
I originally planned, it was 4+.

The next day I decided to explore every business idea I had ever jotted down.
I started reading voraciously about every sector of tech I found interesting.
I started studying the history of venture capital. Finally, I was getting on a
plane to New York for a dinner with one of my clients and as fortune would
have it, in the airport I stumbled upon up a book called, "Makers: The New
Industrial Revolution." Half way through my flight after ripping through the
first 150 or so pages, I realized that 3D printing/digital fabrication was
where I wanted to spend my time. I was convinced that this was going to change
the world in a big way and I wanted to be a part of it.

I think this search process takes time and is different for everyone, but I'd
be willing to bet that the more effort you put into actively searching for
what you want to do, the luckier you'll be.

Step 2: Once you know what you want to do, you have to accept that you are
going to have to sacrifice your free time to make it happen. But here's the
kicker - since you've found something that you're passionate about, it doesn't
feel like a sacrifice!

I'm not sure whether you meant that you're working 8 hours a day and only
coding 2, but if that is the case, you have plenty of time left in the day to
go after your newfound passion. Personally, I started going to every after
work meetup (and some during the day too) in the Bay Area in the digital
fabrication space, introducing myself in person, over twitter or over email to
anyone who would give me the time of day. I also kept reading as much as I
could on digital fab and on startups. Next I started putting together specs, a
powerpoint deck, a business model canvas and talking to friends who had
started businesses before. The point is start soaking up as much knowledge as
possible and moving the ball forward in any way you can. Maybe that is setting
up informational interviews with professionals in whatever area you want to
get into. Maybe that is taking One Month Rails or Michael Hartl's RoR
tutorial. The bottom line is, do something productive every single day.

Step 3: Put a date on the calendar you are going to quit by and tell people
who matter so you can't back out. Honestly you'd be surprised how much this
helps. Saying it out loud actually allows you to visualize walking out the
door. Maybe more importantly, by telling other people, you are more likely to
hold yourself accountable. You have to keep doing this too. The more you do
it, the more comfortable it starts to feel.

For me that date was after I received my annual bonus. In investment banking
that is basically half your pay so it would have been very difficult to leave
when I was just a few months away from a big payday. I'm not sure what that
date is for you. Maybe you had wanted to pay off your car later this year and
need to wait until then. Maybe you hate your job so much that you want to quit
next Friday. There is nothing wrong with either one. However, in my opinion,
once you know what you want to do, the general rule of thumb is, the sooner
you can quit the better. So if you wait, make sure it's for a good reason
because it is very easy to make excuses.

Step 4: At this point you have identified the date you will be out the door
and you continue to communicate that to your friends, family and mentors, so
in the meantime, get yourself as prepared as you can for that date. That means
some combination of giving up TV at night, waking up earlier, staying up
later, giving up days during the weekend. Determine what skills you need for
whatever is coming next and start acquiring them. Use your network - the
beautiful thing is, once you know what you want to do and are committed to
making it happen, you'll find that people will want to help you. Again, the
mantra is progress every day. One day at a time.

Step 5: Jump. The truth is you will never be ready. At least not completely.
But if you have something you are passionate about and are willing to commit
yourself to, it will all be worth it. Consider the jump itself your first
success. You will certainly have failures and more successes ahead of you, but
that is the fun part ;)

Best of luck to ya. I have the utmost faith.

------
padobson
Apart from learning, try these:

1\. Put yourself in situations where you can meet more tech people

Most (not some, _most_ ) of the work I've gotten came from a chance
conversation with someone who was working at a place that needed the skills I
have. So try to have more of those conversations. I live in suburban Ohio in
the heart of the rust belt, so this can be done anywhere.

2\. Try consulting instead of full time work.

A lot of businesses have problems, but can't afford a full-time coder. It also
sounds like you don't want to be working full-time anyhow. Try doubling your
rate and finding 2 clients who each buy 10 of your hours a week. This is much
easier to do if you do number 1. Even better, charge a daily or weekly rate so
you don't have to keep track of your hours. This also allows you to pay your
taxes on April 15th every year, instead of having it deducted from your check,
giving you more cash flow options and more runway.

3\. Work Remotely

When you do 2, you can negotiate 3 pretty easily. A business that just needs
you to fix javascript bugs on their website 1 day a week probably doesn't want
to dedicate the infrastructure to have you in their office. This will save you
even more time, energy, and stress by eliminating your commute.

4\. Structure your time better

Set constraints on yourself for doing what you need to do, when you need to do
it. If you're coding 2 hours a day, then set aside 3 hours of your day where
you don't do anything but code. No email. No web surfing (other than what you
need to code). No phone. If you have meetings, schedule them consecutively.
Let your brain be in meeting mode for 3 hours, then go grab some lunch, then
come back to the office and put your brain in code mode for 3 hours. This way,
you can even have time to multi-task (answer emails, talk about local sports
team, read HN) at the beginning and end of the day. This takes some
discipline, but you'll get more done if you have full chunks of time dedicated
to one thing.

5\. Say "No" more

You can't do 4 without doing 5. Don't be rude, just explain that you're busy
with something else and that you can discuss at the next meeting you have
scheduled. Put headphones on while you're coding and gently set boundaries
with your co-workers that you're not available for chit-chat when your
headphones are on. I've found that music without lyrics is best for coding. I
have a John Williams station on Pandora that I use all the time, here, have a
listen:
[http://www.pandora.com/?sc=sh216294333998280127&shareImp=tru...](http://www.pandora.com/?sc=sh216294333998280127&shareImp=true).

Finally, don't give up hope. In my experience, it's easier to find a good job
once you know what you don't want. It sounds like you have a good idea about
that, so make sure to ask questions at your interviews, sales calls to make
sure they aren't making the same mistakes.

Good luck!

~~~
mrfusion
Wow thanks for all the tips! Can you explain 1. A bit more. What kind of
situations are they? How do you mention what you do or find out what they
need?

~~~
padobson
When I was first getting started, I just looked up every web design firm in
town and called them. A lot of the local firms just had people building
websites with Wordpress or Joomla on managed hosting services, so being able
to say "I know a guy that writes custom code" was good for their business. In
a bigger city, there's a lot more coders, but there's also a lot more
businesses, so I would think this would work just about anywhere.

There's a business incubator nearby that I frequented, and I found companies
there that were using technologies that I knew. If you run into a collective
like this, it's a good idea to introduce yourself to administrators, because
they're always looking to solve their member companies problems with a
suggestion. I introduced myself and let them know my skill set. The companies
always found themselves in a pinch eventually, and I built a reputation for
going into the middle of a project and helping to put out fires.

I would take strategic walks through areas where I knew there were technology
companies, and just walk in and introduce myself.

Events are even better. If you can find business speakers at a local college,
or business networking groups, these are great to go and find out what types
of problems people have. Then you can come up with solutions and go back and
try to sell them. You shouldn't even try to code anything, just pitch them
your solution and tell them you'll build it for $X, get a down payment and
start coding.

~~~
mrfusion
Thanks again! What would examples of business networking groups be? How did
you you hear about business speakers?

~~~
padobson
There's a regular business network meeting in my home town, I don't know what
it's called, but most of the web design firms I talked to had a rep at it
every week. Ask people when you talk to them if they go to any meetups or
groups like that.

Business speakers are even easier. Just go to a place where they are likely to
have presentations - a college, a conference center, business expos - and see
what events they have coming up. Scout bulletin boards. Speakers generally
like to have an audience, so it shouldn't be too hard.

------
jf22
>barely leaves me any time to do so

How many hours are you working?

------
leff_f
shubhamjain, I'm sure you are a good developer and will be able to turn this
around. :)

------
halfcat
Sounds like you are in an average, ordinary job, where they pay less and
expect more. A lot of these places are revolving doors, working people to the
bone until they quit. Then they bring in the next sucker.

Good jobs are out there, but you have to be good and you have to sell
yourself. So, two things:

1\. Become exceptional at what you do. This is the idea that "follow your
passion" is bad advice. Instead, become exceptional at your craft, and you
will automatically enjoy what you do, and you will have access to better and
better opportunities. Typically you end up doing more of what you enjoy,
making more money, and working less than you did at the sucker-farm job. On
this point, I'll say that every single time I made progress toward becoming
exceptional, I did not set out to "learn Rails" or whatever. I set out to do
something fun or interesting or hard, and in the course of hammering out 1000
details to make it happen, I learned a ton. Equally important is being around
other people who are exceptional. You gain the experience of a dozen people in
a short period of time. It's very high value that you can't get coding like a
hermit in your parent's basement. You will learn things that you could never
learn on your own, like the importance of communication. If you can't
communicate effectively with your coworkers, you can't be exceptional. There
are 100 things like this that you will learn just from hanging around other
exceptional people, how they think, what books they read, some key distinction
they know (that you don't know) that will change your life. My jump from an
average paying job to a much higher paying job was the direct result of an
exceptional friend describing his approach to interviewing.

2\. Learn to sell yourself. Most employers are out to get the most work for
the least expense. They are actively fighting on their own behalf to make this
happen, at your expense. This is how people end up at the sucker-farm jobs. If
you don't fight on your behalf, no one else will. It's only you and the
employer in the interview, and the employer certainly is not going to be
generous for no reason. You have to persuade them.

There are two good resources. One is "So Good They Can't Ignore You: Why
Skills Trump Passion in the Quest for Work You Love" by Cal Newport. The other
is "Pitch Anything" by Oren Klaff. While you probably will never need to pitch
anything to investors, you absolutely need to be able to pitch yourself to
potential employers if you want to escape the average workplace sucker-farm.

Here is a great interview with Oren Klaff:
[http://youtu.be/fXavS_IY42A](http://youtu.be/fXavS_IY42A)

Ramit Sethi has a course, "How To Find Your Dream Job". Like most of his
stuff, I expect it is pricey. You can probably find most of what he teaches
for free (if you define "free" as doing your own research for many hours per
week for a year or two). Here's how I look at his stuff in your situation. If
I could pay $1000 and go from miserable to enjoying work and life, forever, is
that worth it? I'd say yes. If you are serious about reworking your life, you
will pay for this many times over. He has a ton of free material available, so
you can see if you like his style before making an investment.

~~~
shubhamjain
Well, currently I am more interested rambling around different things.
Recently, I created a whistle detector in JS[1] and it was quite an effort
since it involved comprehending a research paper and learning & implementing
DSP concepts but I enjoyed it. So, I more interested in creating small
challenging things rather than Apps in XYZ framework.

Its not that I hate the latter but simply that after initial excitement of
code, it is hard to keep up the enthusiasm. What I wish to know is are
employers focused to find the right skill set with right experience when they
want hire?

[1]: [http://coffeecoder.net/whistlerr/](http://coffeecoder.net/whistlerr/)

------
kamaal
(This might get buried deep in the thread, but if you find it, read it)

I am assuming you are from India. I'm from Bangalore. I was in a very similar
condition like yours.

I definitely can understand if you are staying in a city like Bangalore/Major-
Indian-Metro, and have to travel and endure long traffic jams. And one more
thing you should know about stuff like "flexible timings" is under the absence
of discipline and good enough managers these policies will ultimately drive
you to a disaster. There fore first get yourself a time table. As much as the
teenagers may shout at this calling 'mediocrity' or whatever. Getting
disciplined helps more than you can imagine.

To start with you should begin traveling in low-traffic hours. Start early
from home, reach office early. I tend to follow GTD, if you like you can
follow that too. Finish all important tasks by lunch. By the looks of what you
say, you should be done with all your work by the time others are in office
and settle down. There fore your afternoon will be spent in meetings, after
your productive hours are exhausted. Leave office at exactly 5.

On the long term, keep a notebook. You should have a clear list[Not
ambiguous/vague tasks] a goal with a clear end state. Plan your work and
prioritize it, in the importance of what's best for you and the project.
Refuse to sweat the small stuff. Meticulous pick only the most important parts
of the project. If there just isn't any important work out there, talk to your
manager and see if there are other projects around you and get transferred
there. If there are absolutely no good projects in the company, please look
for a new job. Please don't waste time sweating the small stuff. You are in
your 20's and this is the kind of time you should be working on tough problems
and building all the experience you would need later. You can do all this by
having 1-1 meeting with your manager every 15 days. Write down what he expects
from you, what you have achieved in the past 15 days from the goals set in
previous 1-1 and if he is acknowledgement of all that.

Plan stuff and track all this in the notebook. Including your long term goals.
Like learning a new framework, or buying a new car. Review how you are
progressing every Saturday night, and take corrective steps necessary. And
most important. Never forget to assign 'Next steps' to every task you
complete. Because that's how new opportunities pop up.

Post 5 PM in the evening you should get decent time for your personal
projects.

Lastly keeping a notebook has a its own advantages. You can see the timeline
of what you've been planning, what you've been achieving, and what corrective
actions you would like to take or have been taking. It will also give a
complete record of everything you've done. Might just come in handy during a
appraisal or a review session someday.

Humans are pretty bad at visualizing big timelines and structures, and
remembering stuff. Without a record you will be lost, as time passes you won't
know where you are. How much time you've lost. Heck you won't even what you
did a week back and how you spent your time. This is why most of us feel much
time has passed without we achieving any thing substantial. Because we don't
have a record what we originally wanted, what steps we took, and what
corrective actions and next steps we took. So at the end it just feels like
time is flying while we aren't achieving much in the meanwhile.

------
baxterross
quit.

