
Ask HN: How do I get out of my unhappy coding job? - yacoder
Hi all,<p>I need your advice; I'm working in an internal IT department at a non-software company which is, as you can guess, far from ideal. I live + work in the UK.<p>I am starting to feel very depressed about my situation and am desperate to find a way out. I've
applied to a job at a decent software company which unfortunately I didn't get (though it certainly gave me an idea of what to improve if I were to apply again, so was positive overall.)<p>I'm working on developing a programming language; it's extremely early days but I have certain convictions about what is important in a language and in the hacker tradition want to make something that fits those convictions.<p>I, much to my regret, don't have a degree in Computer Science (though I do have an engineering degree) - though I grew up loving programming I, for somewhat complicated reasons, ended up choosing the wrong subject.<p>As far as I can see the following steps are the way out. I'd be very grateful for any advice/criticism you care to offer about these steps, also with any suggestions you can offer me in finding a happier coding existence:-<p>+ Work hard on my language project; if I can actually do something with this I will have something very nice to put on my CV. Programming languages, compilers, parsing, etc. are really my passion; they are the one thing I'd like to get into more than anything else.<p>+ Develop knowledge of algorithms, big O, etc. - the kind of stuff I would have picked up on a computer science course, as well as being the kind of stuff asked at interviews.<p>+ Get involved with open source - I am especially interested in LLVM as it ties in nicely with my language project.<p>+ Practice, practice, practice - Practice coding, consciously trying to improve as much as I can.<p>And the most recent, most radical thought:-<p>+ Ditch the idea of going to work on someone else's stuff and get going on a Micro ISV. Keep the day job and work all the hours outside of work to put a product together. I'd like to somehow link this to my passion for programming languages, etc. - perhaps that old programmer startup cliche of a development tool of some kind?<p>Thanks in advance for any advice you can give me, it's really appreciated. Feel free to criticise + tear my ideas apart, by the way! Always happy for (constructive) criticism.<p>(I am using a different HN login from usual for obvious reasons.)
======
edw519
I have been in your situation many times before and always struggled with it.
Until I figured something out...

 _working in an internal IT department at a non-software company_ can be a
HUGE advantage. Why? Because your "customers" are right there.

Please do not underestimate this as part of your career planning. Sure, we all
want to create cool technology, but AFAIC, the single biggest shortcoming for
developers that I've ever seen is what I'll call "detachment from users".

You don't have that problem. You have end users right there at your
fingertips. Take advantage of it! Learn from them. Practice your systems
analysis skills. Find out how to make that missing link, the connection
between technology and people, work properly.

I have written significant pieces of technology for software houses, but was
actually _more_ frustrated. Why? It took months, sometimes even years before
anyone actually used it. And then, they were communicating with someone other
than me. The technology was cool, but by not closing that loop with my
customers, I always felt that my work (and learning) was incomplete.

By all means, continue your dreams and career plans. But don't waste your
current situation by being depressed about it. I can't tell you all the times
in my career when I stood head and shoulders above my peers because I had
suffered in the trenches like you are now. Except you don't have to suffer.
Because now you know to look for opportunities to get a lot better in other
ways. They're all around you if you just look.

~~~
peregrine
Some places insist on having a "Product Manager" handle all the face to face
communications, which kills it even more...

------
jacquesm
Working on your language project is probably not the best avenue to get you
out of your job, since monetizing something like that is pretty difficult.
It's been done but it had better be a 'game changer', another variation on
some theme is not going to help you become independent.

The abstract knowledge you pick up (such as algorithms, you already refer to
that) will help though, since it will allow you to build relatively complex
stuff where 'cut-and-paste' types will have a disadvantage competing against
you.

Open source is great way to advertise your skills, but only if you want to be
re-hired somewhere, is that your intention or do you plan to become
independent ?

The last item on your list sounds like the best bet in the shorter term. But
maybe first you should exchange your job that you hate for a nicer one to get
you out of the frame of mind you're in and in to a more healthy one.

Then from a position of strength you can make your decisions, usually that
works better (at least, it does for me).

Good luck!

~~~
yacoder
Thanks for the advice; will definitely take it on board.

It's true that the language project itself is unlikely to be monetisable
(especially since the chances of it ever being used let alone popular are
close to 0), but I wondered whether I could develop something along a similar
vein, say a code analysis tool or some such, which could find application of
language-related techniques and keep me in an area I find especially
interesting.

I guess I just want to be happy as a coder; whether that requires me to be
independent or can be achieved working for someone else is something I'm not
yet sure about. I agree I need to leave the negative situation, I guess part
of what I'm asking is how best to improve myself such that I can get a job
somewhere decent.

------
gruseom
(jacquesm beat me to it, but I'm sure you can use more than one reply.)

Given your relationship to programming as you describe it, I am quite sure
that you can break out of this job. So please don't feel depressed! Just steel
yourself to work damn hard on other stuff, no matter how tired or bummed you
are from work, and don't stop until you get somewhere you want to be.

Working on open-source projects is a great way to develop credibility. A huge
advantage of this approach is that you build credibility with the right crowd
- the ones who find the same things cool and interesting that you do. If I
were you I'd work backwards from the kinds of companies I'd like to hire me
and try to make substantial contributions to open-source software that such
companies use. Either that or I'd make cool new library on top of one.

Working on a personal language is less likely, I think, to be externally
impressive. Most people's reaction to that will be "yawn", unless you're able
to demonstrate something fundamentally new about it, and even then there is a
high barrier to convincing anybody. You'd be better off finding open-source
implementations of some known language to work on. (I'm talking, strictly,
about using it as a bridge to paid work. Obviously you feel passionately
enough to make it worth doing in its own right, but that's a separate
question.)

~~~
yacoder
Thank you. The positive encouragement of HNers means a _lot_ to me.

I think a consensus is emerging that putting the language project aside for a
while to focus on OSS would be a good idea.

~~~
jacquesm
What are your skills ? (programming languages and so on ?)

~~~
yacoder
currently, mostly C#, SQL, F# and some scheme. Most of my experience (and
entirely professionally) is on the MS stack, though I run linux at home.

~~~
jacquesm
Ok. I see ErrantX has already made you an offer, nice to see HN'ers help out
other HN'ers!

I'll be running a pretty weird experiment in a few weeks, I'm not yet ready to
explain it in public because I'm still tweaking the idea and I don't want to
limit myself by nailing it down, if you are interested drop me an email (email
in my profile).

------
dannyr
Quit.

Having a choice (in this case a job) is sometimes bad. If your back is against
the wall, you'll be more driven to go after what you want.

I was working for a bank in the early part of my career. I was doing mainframe
applications and I have always wanted to do web apps. So I quit my job and
learned a web programming language (.Net). I learned it pretty fast and I
built a small site to showcase my work. In two months since quitting, I found
a consulting job that does web apps.

A few years ago, I was working for a big company in San Diego. I wanted to be
in a startup environment. I tried my best to create one in my company but I
failed.

So I quit my job and moved to the Bay Area. When I moved here, I realized that
most startups use open source and I cannot find startups that use .Net.
Actually I found a startup that uses .Net but they rescinded their offer when
their investor told them to freeze hiring.

I was unemployed for months in the Bay Area so I said to myself I need to
learn an open-source language. I ended up learning Python/Django.

I accepted a short-term web development using .Net and when that ended I
continued learning Python/Django. Via networking, I ended up working for a YC
startup and eventually moved to another startup in SF.

I'm really happy (but not satisfied) with where I am right now. If I didn't
quit my job, I don't think I would have had the motivation to go after what I
really wanted.

~~~
jacquesm
That advice may or may not be good advice depending on your location. I can
see how in the bay area it will work, the OP is in London, so for him it
probably would work too (even though the market is not quite what it was a few
years ago).

But for some regions it is probably best to keep your old shoes on until
you've bought some new ones.

~~~
kd5bjo
Note: San Diego is not in the bay area. He quit his job and moved here without
having an offer in hand.

~~~
jacquesm
Yes, he wrote that, I got it. The point is, that the Bay area is just about
one of the best places to be an out-of-work programmer on the planet.

Even during a recession it would probably still be easier for a qualified
coder to find some work there than in most other places, the fact that he
found a gig within a relatively short time seems to prove that.

~~~
kd5bjo
Though it wasn't part of his explicit advice, your location is not constant,
especially if you've quit your job. Thus, the limiting factor isn't where you
_are_ , it's where you _could be_.

~~~
jacquesm
That depends. If you have a family, kids in school, a mortgage, strong family
ties, friends and so on that really counts for a lot to a large number of
people, and that means that where they are is where they'll stay.

When you're young, unattached and without too many responsibilities this is a
lot easier (and possibly even hard to imagine that one day it may not be that
easy).

~~~
kd5bjo
Yes, all of those things affect your ability to move and where you can move
to. Whenever you make a major change to your life, some parts will get better
and others worse. It's important to recognize what's actually important to
you, and act to make the things you actually care about as good as possible.

Given the question, I assume that the thing he most cares about is getting a
more enjoyable job,

------
krschultz
I think the answer is to apply to more positions. You say that you have tried
for one and did not get it. Apply for several and see what happens.

Also it sounds like you are trying to hop from internal IT to
software/language development (is that correct?), if you have no previous
official "programming experience" at a job, the open source projects might be
your best bet. That way you can have programming on your resume that they can
relate to. Personal projects are good but if the project is bigger than
yourself it will carry more weight - and the world needs more open source
programmers.

~~~
yacoder
yes, I want to switch from internal to a software company. I definitely feel
like open source is really critical; I don't feel like I'm working in an
environment where code quality matters to anybody, the only way I'm going to
get to work on a decent code base with people who care (and will improve me)
before moving job is by working on open source.

~~~
greyman
I also suggest to just apply to more companies, for example try 10 at first
and see what they told you. C# is pretty much in demand, so it should not be a
problem to get a junior programmer job.

But maybe don't be too romantic about a job in software company...you could
very well find that it also isn't a ideal job...you will perhaps fight with
bureaucracy, being forced to do dull work, etc. etc.

So before quiting your job, try to think really deep why exactly you don't
like your current job. Maybe it is something more fundamental, and ordinary
software company might also not fix it. Anyway, good luck, finding a software
programmer job is certainly achievable.

~~~
yacoder
I agree, but I don't think I am being romantic - I do realise jobs always have
those boring, etc. elements, it's a matter of whether overall you are happy
with it.

And I certainly don't accept the contention that there aren't jobs programmers
can be really happy in (as some contend, not saying you are necessarily), I
think that's lazy thinking...

In any case I certainly don't think it's something fundamental as it's not the
work itself that bothers me so much, but rather the pain of working in a
negative situation.

------
chaosmachine
Just quit. Walk out and never go back. Start working for yourself. Every day
you're doing something you don't want to do is a day you never get back.

I quit my tech support job with no plan and 4 months of savings. Within the
year, I had started my own business, and was making more money than I ever did
at my old job.

Take the risk. Trust in your own abilities, and go for it. You'll never get
the life you want by living the one you don't.

------
sbarre
As someone who has worked at startups and big companies, and has hired and
fired, the best advice I can give you if you are looking for a new job is to
try to find a good, fun company to work for, even if it's not the _ideal_ job
for you. Be enthusiastic in the interview (first impression really is a one-
shot deal), and make sure you are genuinely excited about what the company
does (even if the job itself is not totally awesome). If you don't believe in
what the company does, then you'll end up back where you are now.

Also: being happy at work is usually more related to your work environment and
your co-workers than it is to the actual work you do (you may be different
though). So try to meet the people you'd be working with, if that's a
possibility, when you are interviewing.

There's nothing stopping you from still working on your own projects once you
are at your new job, and if your day job is enjoyable, you will have more
energy and motivation to put into your side projects too as a result.

------
jonpaul
Forget improving your CV. Make sure it's good enough. Depending solely on your
CV makes you average. Are you average? Of course not, you're on HN! Build
practical shit. No seriously man, making your own language will invoke a yawn
as another commenter said. Build a web app, build a piece of software that has
practicality. Build anything, as long as it can be demoed.

I realize that you want a new job now. Well, that's going to take patience.
Don't spam your resume! Trust me, I use to interview and this was very
common... you could detect these types.

Start today. Just build something that can be demoed, something preferably
practical.

Good luck man!

------
ErrantX
Where are you based (roughly)? What is your skillset? What wage are you after?

I may have a job/project for you - and we can definitely work out something to
accommodate your side projects/business. If it's any use to you drop me a line
and we'll talk (always happy to help fellow HNers)

We are not a software company; we actually do security/forensics (which is
super interesting) but we have a little software project that should be pretty
lucrative.

If you'd prefer not to post such info you can drop me an email, it's in my
profile)

Otherwise; pretty much I agree with what the others are saying. Put the
programming language to one side for the moment and concentrate on FOSS
projects if you can.

~~~
yacoder
Wow! I am definitely interested in discussing any possibilities (I have
clearly been far too reticent on this front as is clear from discussion here),
for obvious reasons I'd rather not post [all] those details here; have dropped
you an email.

Roughly: based in London, mostly C# skillset (currently).

------
pcof
I can't believe UK has only two companies (the Royal Non-Software Company and
the Royal Software Company?). Apply for other positions in other software
companies. Even non-software companies with strong IT departments have nice
jobs, technically speaking. Specially the very large non-software companies,
who also tend to look beyond your specific degree - a large company usually
can afford a hiring process that will allow them to understand your abilities
(regardless of your nominal college degree).

~~~
yacoder
I have definitely been reticent on the jobsearching front. I guess a
combination of inertia/laziness and fear have got in the way; also I suppose I
am worried that if I apply to jobs before I am 'ready' (well practised in the
algo stuff typically asked at decent job interviews, etc.) I will end up
blowing my chances at these places then later when I come to apply with more
experience in this area they won't want to hear from me. Is that a stupid
approach?

~~~
spolsky
Yes. Crikey. There are thousands of companies in the UK that hire programmers.
How many of them can you possibly blow? Besides, the more jobs you apply for,
the more practice you'll have applying.

~~~
SandB0x
I agree with your advice, but just a note on the UK:

Software companies aren't the same this side of the pond, the culture seems
rather different. Maybe I've just had bad experiences, but London is full of
soul crushing financial services/admin software type places. I'm sure the US
is too, but there also seems to be a healthy community of fresh companies.

Check out your very own jobs.stackoverflow.com - this is one of the places I
would expect a modern company to advertise, but there are nine jobs listed for
the _whole_ of the UK, compared to over 50 for NY alone. If you want a
"normal" programming job you have to take your chances with the vast sea of
recruiters on Monster.co.uk.

(or, of course, build personal connections and/or do your own thing)

~~~
adam-_-
There are still a number of interesting companies in London depending on what
you're interested in...

Web development: check out NMA Top 50 for Agencies.

Startups: Check out the WiredUK Silicon Roundabout article _and_ the comments!

Misc: Check out things like Times TechTrack.

Interested in a particular technology? Check out the official language job
board and search for London (e.g jobs.perl.org).

There are definitely interesting companies you just have to spend some time
finding them because they won't come to you.

------
Mark_B
Be sure to ask yourself - is it the type of work you don't like doing or is it
the company or manager that you're currently subjecting yourself to?

After spending a few years of my life contracting exclusively at non-software
companies, I can definitely say that the culture can vary greatly from shop to
shop so far as how well it caters to people who are there to hone their craft
vs those who just show up for the paycheck.

Also, don't forget - jobs at software companies can suck too! :-)

------
keeptrying
Short answer: Build something that you would have built if you had your dream
job. Show it to people who hire for your job.

Long answer: Its much easier to get an interview for a job if you can
demonstrate that you've done it well before. It might still not be easy
(because they may have degree requirements that you dont have ) but it will be
easier than if you had nothing.

So go do what you really really want to do. Create a side project and do it.
DO IT WELL. Ie, get feedback, make it as professional as possible. The project
should have the same criteria for sucess as if it had been built by someone
who's job you are seeking.

Then show it to the people who hire for that kind of position.

Pitfalls: 1\. The kind of job that your passionate about may not pay very well
in the future. 2\. You might realise its not your passion and because of that
you'd have done only an half assed job. This can be solved by trying something
else. You'll know soon enough if this makes you happy or not.

Life is too short to have jobs that you dont like. I've been in that situation
and have recently remedied it. I should have done this sooner.

------
j_baker
I've been where you are before. The best advice I can give you is to turn your
depression into something positive. Let it drive you to get out of your
current position.

Aside from that, don't get discouraged. Good tech companies get to where they
are because they have high standards. Getting a job with them takes practice.
Don't get discouraged. Ask the people who turn you down for feedback. Honest
feedback is surprisingly rare, but the ones who give it to you are the ones
you want to listen to. Other than that just give it time! You'll figure it out
eventually.

------
starkfist
Do you have any money? If I lived in Europe I'd go rent a flat in Barcelona
for 3 months and put together a code portfolio on github. (I actually wouldn't
do exactly that... I'd go to work on an iphone app)

If you like compilers I'd just do that. Life's too short. You might have to
move somewhere far away if you want to be a professional compiler artist,
though.

~~~
yacoder
I'm ok for money, but not great (some debt) so can't really make that lovely
lovely idea reality :) nice suggestion though!

------
alextingle
Work on your CV, then apply for more jobs.

------
bensima
You could work for me. I'm attempting to found a tech startup this summer
dealing with aggregating local music shows and gigs. Having a brilliant
programmer would be awesome. I know more design than I know coding. email me:
bensima[at]gmail[dot]com

------
a_wanderer
"I will arise and go now, for always night and day I hear lake water lapping
with low sounds by the shore; While I stand on the roadway, or on the
pavements grey, I hear it in the deep heart's core." \-- Lake Ilse of
Innisfree, W. B. Yeats

------
olliesaunders
I'm in the UK too, but for a brief time I wasn't. I'd really like to hear from
you, if you'd be happy to email (oliver dot saunders att google's mail
service). Your situation reminds me a lot of where I was a couple of years
ago.

------
jotr99
Get a degree in computer science. Go at night and on weekends if you must.

~~~
arethuza
I disagree (and I have a CS degree) - the time spent getting another academic
qualification would be far better spent on the more practical suggestions
given elsewhere on this page.

~~~
barrkel
I've found that having a degree is generally seen as more important in the UK
than in the US; and I've seen more evidence of sniffiness, vague efforts to
exclude people who went to the wrong university.

Another consideration is whether you ever want to work in the US. Getting a
H-1B isn't easy without a degree.

~~~
arethuza
The OP _does_ have a degree, just not a CS one.

------
pclark
what are your top programming languages? you should have put an outline of
your CV in this, you sound awesome.

~~~
yacoder
thank you very much! I think you are perhaps being somewhat overly kind! I
care about and love programming, though I do tend to feel like I somewhat suck
at it. I guess right now I just want to find a way of actually getting
somewhere where I can improve my coding chops.

I mainly program in C#, though I code in scheme (what a lovely language), F#
which is a .net ocaml near-enough, and I am learning ometa which, though not a
language, allows you to experiment with languages quite nicely in other
languages.

As far as stuff I've done, I've mainly played around with stuff; outside of
work I've been on-and-off working on the language idea for a while, at work
I've done a bunch of internal stuff much of which sucks :'-(. I try to do as
good a job as I can, though it's difficult to stay motivated when in such a
negative environment. Am rather depressed about it all at the moment to be
honest!

I feel like I have a lot more to improve on. a _lot_ more. In fact I have a
terrible fear that if I was to apply for jobs now my suckiness would screw my
chances at some of the cooler places blowing my chance to apply at them later.
Argh.

~~~
pclark
whats your email? friend of mine is looking for great C# coders.

