Tesseract.js: Pure JavaScript OCR for 100 Languages - <AUTHOR> https://tesseract.projectnaptha.com/ <comment><USER2> In case it's not clear, Tesseract is developed by Google since 2006, having been started at HP in 1985 and open-sourced by HP in 2005. [1]

As far as I know, it powers all OCR at Google (e.g. in Keep, Docs, etc.).

This (Tesseract.js) is a WASM port of the project by a separate group of people.

I investigated using this port a couple years ago, but as you can see from the demo, it's fairly slow to initialize and run, so I never found a practical use for OCR client-side rather than server-side, but I still think it's tremendously cool.

In case anyone's interested (shameless plug), because I do a lot of academic research that involves tons of copying from webpages, PDF's and screenshots and pasting into notes documents, I created a tool at [https://pastemagic.com](https://pastemagic.com) that helps selectively remove rich text formatting, remove line breaks and does OCR on screenshots and camera photos. Setting up Tesseract on my server and creating a simple HTTP endpoint for it took less than an hour, and for free I had OCR as powerful as Google's. Pretty cool I thought.

[1] [https://github.com/tesseract-ocr/tesseract](https://github.com/tesseract- ocr/tesseract)

<comment><USER3> Somewhat offtopic, do you know of a library that would allow me to select an area of a PDF through a GUI and only read the text in those coordinates?

<comment><USER4> You could simply pipe an area screenshot to tesseract, discard the input image and get the tesseract output, am I wrong?

<comment><USER3> That sounds like a valid approach, any idea what tools I could use to get the define the area and get the screenshot?

<comment><USER4> You possibly have one installed. Mine comes with my desktop (Xfce), and gives me a GUI and a CLI to take screenshots of the full desktop, any window, or a particular area defined by crosshairs.

There's a very popular and minimalist CLI called scrot that I think would be ideal... well scratch that, I made a search and our question has already been asked and answered:

[https://askubuntu.com/questions/280475/how-can- instantaneous...](https://askubuntu.com/questions/280475/how-can- instantaneously-extract-text-from-a-screen-area-using-ocr-tools)

[https://stackoverflow.com/questions/21497447/ocr-on-a- screen...](https://stackoverflow.com/questions/21497447/ocr-on-a-screenshot)

</comment></comment></comment></comment></comment><comment><USER5> I recently did a project where I OCR'd a very rare book that I could only find in the library of congress so I could read it on my kindle.

Tesseract was amazingly powerful and accurate, but it seemed to struggle if the page was warped or tilted even a little. I had to preprocess the images heavily to try to dewarp the natural spine curvature, and even then it could only get about 99% accuracy (which sounds like a lot, but consider a book where every 100th letter was wrong - I basically flagged the errors on my kindle as I went along and manually corrected them later).

I guess the point of this comment is that, in my experience, Tesseract.js is probably going to need an accompanying PageDewarp.js for it to be of use scanning books. Not everyone has access to a right angle scanner or can slice the spine and get perfectly straight high-res scans.

<comment><USER6> That's very interesting given that Tesseract uses Leptonica. I'm not sure if they use it for dewarping but all of my little projects with Leptonica really worked well. Dewarping, binarizing, extracting individual elements etc.

[https://github.com/DanBloomberg/leptonica](https://github.com/DanBloomberg/leptonica)

<comment><USER5> Maybe I wasn't using tesseract to its fullest potential, but I had a really hard time getting it to do accurate OCR on warped paged - straight pages worked perfect.

</comment></comment></comment><comment><USER7> I tested this by taking a screenshot of the introduction blurb. This is what it came up with:

      Tesseract s is 2 pure Javascript port of the popular Tesseract OCR engine.

      This library supports more than 100 languages, automatic text orientation and script detection, a simple interface for reading paragraph, word, and character bounding boxes. Tesseract s can run either in 2 browser znd on & server with NodeJS.

Not bad, but far from useful.

</comment><comment><AUTHOR> The reason I posted this is that they've just released v2.0. This isn't highlighted on the homepage, but I assume it has some significance to the project overall.

</comment><comment><USER8> Wow, I was wondering why there were so many new github stars yesterday, and here I found the reason why. :)

Thanks for being interested in tesseract.js, it makes all the work worth. And I have to thank @antimatter15 for creating this library, without him we cannot go this far

I have read all the comments and here I would like to provide my two cents for some questions:

1\. Is tesseract.js pure JavaScript?

Yes, it is 100% JavaScript and it leverages Webassembly port of original tesseract-ocr. (means we compile the C sorce code to JavaScript Webassembly code, powered by Emscripten)

2\. The accuracy of tesseract.js is poor.

In my experience, it is hard to get perfect results without applying additional techniques to your source images. You may need to some preprocessing and sometimes train a custom traineddata. It is not easy, but it is the price of high accuracy.

3\. Cloud OCR service is much more accurate

Yes, that's true. But tesseract.js provides an in browser offline option to do your OCR, it is useful for scenarios like PWA and high confidential image content (which you don't want to send to server). Tesseract.js is not a silver bullet, but it is handy sometimes.

Hope you enjoy this library and feel free to leave any comment to us!

</comment><comment><USER9> Ugh why does open source OCR still suck so bad?!

Why isn't there an open source OCR engine even half as powerful as the Google Cloud Platform API?!

</comment><comment><USER10> I investigated tesseract.js for turning images of spreadsheets into data. I didn't mind the initial startup time or run time but unfortunately wasn't able to get good enough accuracy for my case. It seemed to work really well with plain english text though.

</comment><comment><USER11> Related Chrome extension: [https://chrome.google.com/webstore/detail/project- naptha/mol...](https://chrome.google.com/webstore/detail/project- naptha/molncoemjfmpgdkbdlbjmhlcgniigdnf)

Another extension (not using Tesseract.JS): [https://chrome.google.com/webstore/detail/copyfish-%F0%9F%90...](https://chrome.google.com/webstore/detail/copyfish-%F0%9F%90%9F-free- ocr-soft/eenjdnjldapjajjofmldgmkjaienebbj?hl=en)

</comment><comment><USER12> A thread from 2016: [https://news.ycombinator.com/item?id=12694004](https://news.ycombinator.com/item?id=12694004)

</comment><comment><USER13> I'm curious about the performance tradeoffs of Javascript versus native code?

A few weeks ago, I tried writing something that was long-running, CPU intense, ect, in a webworker. It was so darn slow that I switched to a native language. (I hope I didn't do something silly that made my code run more slowly than it should.)

I see some mention about running in WASM. Does this do something like have ordinary Tesseract compiled for WebAssembly and then fallback to Javascript?

<comment><USER14> A while back I ported several c++ libraries with emscripten and it's usually just 2-10x slower than native. It gets maybe another order of magnitude worse if you're a porting a library that heavily relies on vectorization which isn't available on the web.

</comment></comment><comment><USER15> What's slightly weird is that the Chinese "example" text mis-reads a character in the first line. The image shows:

冬 日 平 泉 路 晚 归

But the OCR reports:

冬 日 平 柳 路 晚 归

(Note the different character right in the middle)

<comment><USER16> I tried using Tesseract around a year ago to recognize digits only, very clean images, not some weird font. I had thousands of images, and it failed in around 3% of them. It was so weird, as it would recognize the same digits in other images just fine.

I tried 4 or 5 different OCR programs, and none of them worked well enough for my case.

I was actually surprised, I thought OCR was a solved problem with ridiculously low error rates.

<comment><USER17> In my experience Tesseract can get confused near the edges of images, and padding with a wide white border helped a lot. Strange that _none_ of the OCR programs were good enough, though.

</comment></comment></comment><comment><USER18> Even though it says it supports 100 languages, I cannot find the list of supported languages. I am mostly trying to find out if it supports Indic languages.

<comment><USER4> [https://github.com/tesseract-ocr/tesseract/wiki/Data- Files#d...](https://github.com/tesseract-ocr/tesseract/wiki/Data-Files#data- files-for-version-400-november-29-2016)

Seems so, lists at least Hindi, Urdu, Bengali, Sanskrit, Urdu, Nepali, Marathi, Sinhala and Punjabi!

</comment></comment><comment><USER19> Nice project! Tried it with a screenshot from an eBook. Unfortunately the Os became Qs and the Is became |s.

<comment><USER5> You never realize how similar characters are until you start an OCR project.

ec

ij

tf

Il|1

hb

OQ

etc.

Even the tiniest addition or subtraction of printed ink can transform one character in one of the above rows to any other character in the row. Throw in page tilt/warp/etc. and OCR can frequently confuse them unless you train it specifically on your text. The pipeline I've found that works best is:

image -> upscale -> dewarp -> OCR -> spellcheck -> grammar check

<comment><USER20> I too have been very disappointed in Tesseract for "simple" OCR (converting subtitles).

For communication, Turbo Codes[1] for example have the decoder produce an integer value for each bit, rather than just a bit. The value is a measure of how likely the value is 0 or 1.

This is then used with previous bit values, which includes parity data, to make a "hard" decision.

I wonder if something similar has been tried for OCR? I imagine the OCR front- end could feed a number of probable hits, along with confidence, into a spellchecker. Or something along those lines.

[1]: [https://en.wikipedia.org/wiki/Turbo_code](https://en.wikipedia.org/wiki/Turbo_code)

</comment></comment></comment><comment><USER21> Does it work only on books and magazines or would it work on a driver license or ID card as well?

<comment><USER11> Tesseract is optimized for images with white backgrounds. ID cards or movie screenshots do not work well.

<comment><USER22> I have used tesseract ocr combined with imagemagick and ffmpeg to great success for video text extraction.

<comment><USER23> Can you list your script/pipeline? I haven't had much success (though, I only ran ffmpeg's internal tesseract OCR[0], no imagemagick processing or any other processing in between)

[0] [https://ffmpeg.org/ffmpeg-all.html#ocr](https://ffmpeg.org/ffmpeg- all.html#ocr)

</comment></comment></comment></comment><comment><USER24> There is another post about tesseract but by python. Same question but I guess it might be closer ... is it compatible with TensorFlow js? or is it ok to run alongside? Or the model can be "simplified" to run on client side like mobile net?

</comment><comment><USER25> This is just amazing. I wonder how much work and how many brilliant people it took to develop this. Congratulations to everyone involved. I'm sure a lot of cool stuff will come from this tool.

</comment><comment><USER26> Ooh exciting! The main reason why I've needed to leverage the GCP vision API is due to orientation limitations on local OCR.

I'll test and migrate to this soon depending on accuracy. Great job so far.

</comment><comment><USER27> > Tesseract.js wraps an emscripten port of the Tesseract OCR Engine.

So it is a wrapper library of a C++ project, which is cool. But saying it is a "Pure" JavaScript is purely misleading.

</comment><comment><USER28> I remember reading that Tesseract is the old tech which does worse than current ML based stuff. But since no one gives out their ML data that's all you get.

<comment><USER17> Your knowledge is out of date. Tesseract 4 added a new OCR engine based on LSTM neural networks.</comment></comment>


My experiments with preventing heart disease - <AUTHOR> http://blog.harjtaggar.com/my-experiments-with-preventing-heart-disease <comment><USER2> Its nice to see people spend more time thinking about their health and taking direct actions to improve it. This really stood out for me though:

>During these two months I'd not been exercising at all.

Working in the health field I can't begin to express how important it is to exercise frequently. The human body is designed to run, not to sit in an office for 8 hours a day punctuated by 2 minute walking breaks to the bathroom every few hours.

Also, stop eating once in a while. Nearly every culture and religion has a historical link to fasting yet only recently are the benefits being explored in a scientific manner.

Please fellow HN, take heed from the author and try to commit to a good diet and regular exercise, for the sake of you and your family.

Great work Harj, keep it up. You're a source of inspiration for many.

<comment><USER3> For how long and how often would you recommend we 'stop eating once in a while'? Or do you have resources that recommend what would be a beneficial amount of fasting?

Just wondering what steps I could take to be healthier, as I've never even considered fasting in the past. Thanks!

<comment><USER4> This is referring to Intermittent fasting ([http://en.wikipedia.org/wiki/Intermittent_fasting](http://en.wikipedia.org/wiki/Intermittent_fasting)). The best guide I've seen to getting started with this is here: [http://www.nerdfitness.com/blog/2013/08/06/a-beginners- guide...](http://www.nerdfitness.com/blog/2013/08/06/a-beginners-guide-to- intermittent-fasting/)

</comment></comment></comment><comment><USER5> This article addresses a huge problem that Eating Academy and [https://www.plantdietlife.com/](https://www.plantdietlife.com/) is attempting to address. This issue should be especially important to a community who does a majority of their work sitting at a desk for long hours at a time.

<comment><USER6> _Full Disclosure:_ It seems that Brenden is the owner and creator of plantdietlife. Five of the nine comments mightybrenden has made on HN are links to PDL.

</comment></comment><comment><USER6> This is the second or third time I have seen {endo|ecto|meso}morph come up on HN in the past week. I thought that the {endo|ecto|meso}morph theory was rejected by modern science and medicine. Has something changed or was I wrong to begin with? Is there any explanation for the recent occurrences: new fad diet or prominent blogger appropriating the term?

<comment><USER4> I wasn't aware the terms had been rejected. The terms aren't important though. The general concept that some people put on weight quicker than others, when lifestyle factors are controlled for, has been shown to be true by research.

</comment></comment><comment><USER7> This is a great article. Not to take anything away from the OP (just upvoted the post actually), but just out of curiosity I wonder why it is posted on HN. Is there certain range of topic the HN expect?

<comment><USER8> Substantive posts of intellectual interest are always welcome on Hacker News.

<comment><USER9> How substantive is an n=1 anecdote about some biomarker interventions with no hard endpoints?

<comment><USER10> statistically powerful stories ⊂ substantive stories

<comment><USER9> Thomas, in relation to my question and Daniel's answer, could you kindly explain the direction of the subset relation you are talking about there?

</comment></comment></comment></comment></comment><comment><USER11> you're continuing to spread a myth

there is no link whatsoever between cholestoral (ldl/hdl) and heart disease, this has been proven beyond a doubt

heart disease is an inflammatory disorder

<comment><USER12> First of all, it's very difficult to prove a negative.

Second, I always thought that the specious connection was between dietary cholesterol and blood cholesterol, not necessarily the latter with heart disease.

Any comments/elaborations?

<comment><USER4> I think there are two issues:

1) The link between dietary cholesterol and blood cholesterol.

2) The link between cholesterol and heart disease risk.

The former exists because research has shown that a large number of people don't seem to see an increase in blood cholesterol when they increase their dietary cholesterol, as I mentioned in the article.

The latter exists because people with seemingly healthy cholesterol levels, still develop heart disease, which has led to looking for alternative risk indications e.g. number of cholesterol particles vs total amount of cholesterol - the theory being that smaller, denser cholesterol particles may carry less total cholesterol but are more likely to cause plaque build up in the arteries.

<comment><USER13> A few years ago I saw a story on BBC suggesting a despairing outlook for people of the Indian subcontinent origin (Indian/Pakistani/Bangladeshi - IPB); it was titled "Asian heart disease gene found". It reported that a significant percentage of IPBs have a gene that regardless of lifestyle and/or dietary choices, will kill them rather early [1]. I have not read the actual, grim study.

For non UK audience: Asian == UK term for people of the Indian subcontinent origin

[1] [http://news.bbc.co.uk/2/hi/health/7833753.stm](http://news.bbc.co.uk/2/hi/health/7833753.stm)

<comment><USER4> I wasn't aware of this specific gene mutation but research has shown empirically that Indian men are at greater risk of premature heart disease than the average person (one UK study states up to 50% more) even when they were born and grew up in the West.</comment></comment></comment></comment></comment>


Spark performance comps, AWS and MinIO: TPC-H with 16node, NVMe, 100Gbe network [pdf] - <AUTHOR> https://min.io/resources/docs/Performance-comparison-Apache-Spark.pdf <comment><USER2> Minio is one of my favorite systems ever. However this isn't super impressive given the size of the dataplane they are running minio on</comment>


What next for Agant – iOS house downsizes - <AUTHOR> http://www.agant.com/index.php <comment><USER2> I've said it and been laughed at but the App Store is a shovelware market. A tiny fraction of apps gain enough volume to offset their low prices, and of those many are the result of paid downloads (tap joy).

There is a pervasive delusion that launching an app means immediate access to a lucrative market, but the reality is that it's highly competitive with extremely low returns.

If you are looking to make money off a mobile app (not establish saas mobile extension) rapidly launch MVPs of your apps to see if there is any demand. Don't invest in perfect designs and ux until you've validated that there is a user base worth investing in.

<comment><USER3> Could not agree more with you.

I'd further suggest that creating apps for clients is incredibly profitable. You don't necessarily need sales on apps to make money. Businesses, organizations, and people have problems that they are willing to pay to get solved with an app. Take your time selecting the right problem and you can make a good living and enjoy what you're creating at the same time.

<comment><USER4> What niches would you recommend?

<comment><USER3> Niches for creating your own apps? Or making niche apps for a client?

Since I was advocating client work in my previous post, I'll go with the latter. Start with what you love. As an example I love aviation. There's a lot of money in aviation (as well as a lot of debt). Companies and FBOs sometimes have very specific needs that could be solved with an app: scheduling, customer loyalty, logging, etc. Reach out, talk to them, tell that you love what they love, just see what happens.

Also I have absolutely no marketing training and create apps in an organization that I have no control over the clientele, which actually works out great for me.

</comment></comment></comment></comment><comment><USER5> I agree that it _is_ tough being a small agency building apps, but I don't think high value apps are in themselves unprofitable. I think whoever submitted this has perhaps misjudged the title a little.

The problem is that as time has gone on, more traditional agency suppliers have entered into the marketplace. This makes it _really difficult_ for small players to compete. All the big digital agencies are doing app dev in house, and even the big consultancies are getting in on the action (Accenture, Deloitte, etc). I don't think Agant were helped by the fact they weren't based in London either.

Hypothetically, let's say you're a large retailer looking to get an app built. Who do you go with: the small player with great creds, or the well established agency that you already used to build your eCom site? I can tell you which one your _procurement_ department will recommend you go with.

This isn't really an app specific issue, but one that occurs generally in the agency space (be it traditional print, digital, etc): mid-tier agencies find it very hard to compete. On the one hand they're getting their toes snapped at by one and two man shops who can undercut them, on the other they're not big enough to command attention at RFP stages against vast agency conglomerates.

<comment><USER2> A big counterpoint to this is that app profits likely won't justify big consulting firm rates. When clients realize how fast and cheaply they need to build and update their apps to keep up, paying Deloitte to maintain it will quickly become unrealistic.

<comment><USER5> A lot of RFPs are going out now that require a clear plan to update and keep apps current in a cost effective manner. This could range from strategic use of HTML/cross-platform tech, or some form of retainer agreement.

That being said, many app builds that I see being put to tender (at least in the UK) are often 'one shot' in combination with an advertising campaign or marketing effort. For better or for worse, many builds aren't designed to be sustainable or have a long-term presence.

<comment><USER2> True. In reality it's about getting support and versioning under 5k (or even under 1k) per app per year.

I do low $xx million in revenue on apps across many storefronts so I do get to see a fair sized chunk of the market and what works and doesn't work.

</comment></comment></comment></comment><comment><USER6> I take a bit of issue with the editorial title on this post. Can someone please define "high-value app"?

I know on smartphones everything is an app, but these from Agant are mostly auxiliary content plays, interactive titles to accompany other printed work. I was reminded of the glory days of the CD-ROM browsing their portfolio. Content like this has often been beautiful and compelling, but rarely profitable.

The problem on the content front is that you are competing with (1) print / Kindle, (2) the huge library of existing movie and TV content already available for tablets and phones, and (3) the entire internet, where most of the content is free to the reader.

Most of the paid apps that do well add specific functionality to your phone: managing files in the cloud, controlling physical devices, exercise companions, etc. Often they are tied with hosted services: Evernote and Dropbox, for example.

For this reason, I'd imagine Agan saw bigger success with UK Train Times rather than Explore Shakespeare.

</comment><comment><USER7> Sometimes I feel like I passed up a big opportunity not getting in on the iPhone market. Other times, I feel like the app market is like very packed concert where people get crushed and trampled, and avoiding it was a good move.

<comment><USER8> It was _very_ lucrative and easy to enter for a while. Now all the easy gold has been dug up yet there are more prospectors than ever before.

Getting into the paid mobile app market was never a viable long-term strategy, but it was certainly capable of making someone extremely wealthy for a while.

<comment><USER9> There's an interesting gold rush analogy that in real world gold rushes only a small number of early adopters make any real money, but the support staff dragged along by the me-toos has a much longer and more profitable run. You wanna be the gold rush equivalent of the old prospector now running a general store, land agent, and saloon. Teach training classes, .edu market, tools ...

Repeated past observations imply that years after the bubble pops they'll still be .edu's offering classes to prepare noobs into the bubble, which no longer exists anymore.

</comment></comment></comment><comment><USER10> After looking at their portfolio, I'd say that high-cost/low-audience apps are hard to make profitable. Let alone building a business around such apps.

That being said, some of their apps look beautiful. Wish them all the best of luck on their next venture.

</comment><comment><USER3> This is really sad to me because I aspire to run my own shop just like this one day, creating apps and software for ourselves and clients. I too see myself as a maker, not a business developer, so maybe this is a red flag to reevaluate.

Most of the apps that Agant has produced appear to be aggressively priced (seems most are around £9.99, the most recent at £24.49). Though, they do target a rather niche market. I'm very curious as to whether the apps did not sell well or simply did not cover the cost of operation. Whatever the case, now that Dave is the sole employee the revenue of the existing apps will not hurt.

Finally, I'm also wondering if Dave ended this adventure simply because he was not enjoying it, or if Agant was spiraling into debt. I can't really tell from this post. He does mention that making it in the App Store is difficult, but that some of the apps were created for clients (some being partners). I can't imagine that there wasn't enough good work out there for a talented team of proven developers+designers.

<comment><USER5> What's not totally clear to me, and I'm not sure if Dave would be willing to share (but worth a try!) is whether Agant was primarily financing itself through up-front development fees or through revenue share.

Because I know for a fact there are a number of agencies in the UK that have managed to build sustainable businesses off _up front_ costs. I don't know of any (and I'd love to be proved wrong on this) that have done it through revenue share. I've definitely lost pitches to companies that _proposed_ revenue shares though...

> _I can 't imagine that there wasn't enough good work out there for a > talented team of proven developers+designers._

I alluded to this in another post, but the problem now is more that the companies prepared to pay top dollar for apps tend to be those that aren't going to pick a small agency, even one with good creds. They're looking for big, established players that can service all of their digital needs in a single go.

<comment><USER3> The agency I work at would likely never take a revenue share. I wouldn't take one either, personally, unless the product was something I would be satisfied seeing no return on. Unless the client was someone with a proven track record, I think revenue share would be suicidal.

</comment></comment></comment><comment><USER11> As long as you're realistic with yourself and a client the app store is still fertile ground, as much as any platform. Yes, there's a lot of apps and there has been a race to the bottom in terms of pricing, but there's still a reasonably strong market. XCOM was released at a reasonably high price, to a niche set of gamers and is seemingly making sales as it was (possibly still is) in the top grossing.

I don't know whether the title is fair. The article doesn't say 'we're not profitable', it just says it's a risky market to make high value, premium products, but making that kind of product in _any_ market is inherently risky.

It's a shame, their apps are nice, but I think it's more a developer wants to develop, not chase down the next contract to keep the wages going so hopefully we'll see more work appearing.

</comment><comment><USER12> I would not call a retail app "high value." Alternatively, I would not call retail sales of the software itself a good way of supporting high-value apps.

I have two kinds of clients: Ones with hardware as part of the product, where Android is an embedded component and the software is specialized to work with the hardware; and ones with business models that do not depend on the end user paying a one-time retail price.

</comment><comment><USER13> If you're going to make high value apps, your marketing can NOT be app-store dependent which is tough. I would employ highly targeted paid download advertisements either through Facebook or other methods, as well as an excellent web and PR presence.

I do not agree they're not profitable, but they're NOT going to be "set it and forget it" style successes.

<comment><USER2> It's difficult to get a marketing campaign cheap and effective enough to offset 79c to 3$ profit margins per unit.

<comment><USER14> If you have a large enough user base built up, cross-promotion from your own apps can work wonders.

<comment><USER13> YES! We JUST stumbled upon this but it's huge - if you can ship something cool everything 3 months, and assume upkeep on a rolling scale (as in your upkeep the things getting the most traction) you can cross promote your way to serious income. 1 app often won't do it unless it's a homerun, but cross promotion of 5 things starts to build a tribe.

</comment></comment></comment></comment><comment><USER15> Most of these are not really applications, seems to be mostly just the equivalent of small adverts that would normally be a relatively cheap Flash page or Facebook app. Or they're just CDRom style multimedia experiences which we already know are not that profitable.</comment>


The Covid-19 Recession May Change the Way Americans Spend Forever - <AUTHOR> https://www.buzzfeednews.com/article/annehelenpetersen/recession-unemployment-covid-19-economy-consumer-spending <comment><USER2> Despite the provenance, this is an insightful article. There are a lot of things I've discovered that I no longer want, and likely never will again. Travel, for example, is dangerous and disgusting. Eating in a restaurant is unsanitary, expensive, and risky. A fancy car? To go where?

The only splurge I've considered in months is a pet. Man's best friend, after all.

<comment><USER3> I really wanted to get a pet, there aren't any animal rescue animals left where I am - I guess all the other sad people got them already. I want to go out to a restaurant, meet new people, do something else. There must people millions of people like me (maybe even my own family feels like I do ;-)) that I am tired of hanging out with my spouse, my teenaged kids. I want to get away. I definitely want to travel. why should i save up all my salary for a future that I might never get to. I want to visit greece, asia, all the places of the world. I don't need any fancy new shirts of shoes or whatever. I've got all the clothes I need for a long time. But travel, I want that.

</comment></comment><comment><USER4> I found the article insightful: confirming some of the ideas I already had, and giving words for other ideas that are still taking shape. Here are some choice quotes:

> "After 9/11, and again after the 2008 recession, there was the idea that > consumers should somehow patriotically spend to revive the economy," she > said. "And who benefited disproportionately? Billionaires. This time, the > billionaires can do the heavy lifting, not me."

> The "economy" is technically all of the resources of a given area: all of > its production, all of its consumption. But many people — including a whole > lot of politicians — use the word "economy" in situations when they really > mean "the stock market." The economy is built on consumer spending; the > stock market is built on projections. Or, as I like to think about it, a > bunch of guys (and they're almost entirely guys) sitting around, making > periodically educated yet often irrational and emotional bets about the > future. The economy and the stock market are not disarticulated from each > other, but they are also far from the same thing; it's no coincidence, after > all, that the highest levels of income inequality have coincided with > record-breaking numbers on the stock market.

> According to Visa, credit card spending collapsed in all categories except > food and drugstores, while savings rates grew from 8% in February to 13.1% > in March — the highest since 1981.

> "You don't need to buy anything," she said. "You just post to the listserv > what you need, and someone will give it to you. I've also seen an amazing > trade economy emerge: trading yeast for flour, toys for sourdough bread, > passing clothes from one family to the next."

> I've seen a similar activity in my local "Buy Nothing Sell Nothing" Facebook > Groups here in Montana: people making and giving away masks, using 3D > printers to manufacture dupe N95 masks, giving away children's toys and > electronics in a "contactless exchange." Just because you're not buying > anything (or buying less) doesn't mean you're not experiencing new things, > doing new things, figuring out new things.

> This might, of course, be a misguided proclamation coming from the inside of > a pandemic. But in addition to the actual risk (to oneself, to others) of > buying things, the pandemic has afforded many Americans, whether in > isolation or out of work, with something they haven't had in years: time and > mental space to actually think about the way we spend and its effects on > others.

> "The thing that's staying with me is how many of these bad shit purchases > are attempts to create control and satisfaction from circumstances where I > (seem to) have little," he continued. "I'm incredibly lucky that my > isolation has brought me less stress and more time for myself. And it's > amazing how, in that state, I am better able to act on good ethics and self- > care and just spend less. If our jobs and commutes weren't wringing us > emotionally dry on a daily basis, we'd be much more ethical consumers, > maybe?"

> This is where pandemic-induced reductions in spending, decadelong resentment > over income inequality, the resurgent progressive and labor movements, > sustained millennial/Gen X burnout and precarity, and burgeoning Gen Z > idealism collide. What if we decided that things didn't have to be the way > they were before all of this happened? Part of that shift would involve > taxing the rich and disarticulating healthcare from employment; it would > involve forming and protecting unions and focusing on reimplementing > regulatory systems, decentralizing production, and restoring the supply > chain. And it could also mean disabusing ourselves of the idea that buying > things is a solution to our problems.

> "I don't want to return to a choice of unemployment versus burnout," > Natalie, who's 36 and has been searching for a job since January, told me. > "I want just enough of an income and just enough health insurance that I > don't have to check my bank account on a daily basis. I just want to be > comfortable and content.

"I don't know that there are any answers to this," she said. "I just don't want to return to the world as it was." ●</comment>


Android: New Cupcake Features - <AUTHOR> http://activefrequency.com/blog/2009/15-new-kick-ass-android-cupcake-features/

<comment><USER2> I just hope they add a new feature that fixes all the network connectivity issues I have when my phone isn't connected to wifi. Maps, mail, browser ... they don't work more often than they do.</comment>


Researchers find yet another way to get around iOS 6.1 passcode - <AUTHOR> http://arstechnica.com/apple/2013/02/researchers-find-yet-another-way-to-get-around-ios-6-1-passcode/ <comment><AUTHOR> I hope it's fixed on 6.1.3, but, again:

        The best fix will be to include a Emergency.app that
        displays a num keyboard and it's called from the
        'Make an Emergency Call' button, instead of the full
        Phone.app.

<http://news.ycombinator.com/item?id=5225756></comment>


Twitter During a Zombie Outbreak - <AUTHOR> http://kensingtonvictoria.com/blog/wp-content/uploads/2008/07/zombie_outbreak.jpg <comment><USER2> Link was broken, here 'tis: [http://www.kensingtonvictoria.com/blog/wp- content/uploads/20...](http://www.kensingtonvictoria.com/blog/wp- content/uploads/2008/07/zombie_outbreak.jpg)

</comment><comment><USER3> Speaking of blogging about zombies: <http://www.crimsonmane.org/spikevision/cleaner/>

<comment><USER4> awesome blog. thanks.</comment></comment>


Vaccines Are Pushing Pathogens to Evolve - <AUTHOR> https://www.quantamagazine.org/how-vaccines-can-drive-pathogens-to-evolve-20180510/ <comment><USER2> The headline is a classic misstatement / misunderstanding of the evolutionary process.

Genes mutate. Naturally. All the time. Sometimes those become and advantage. Sometimes not.

Vaccines aren't "pushing" anything. They simply change the definition of advantageous.

In other words, evolution is more a process of elimination than it is an evolution (in the traditional seek to make progress sort of way.)</comment>


In 1987 Apple Predicted the Internet, Siri, iPad, FaceTime, & Apple Eyes [video] - <AUTHOR> https://medium.com/@jmspool/the-experience-vision-a-self-fulfilling-ux-strategy-ce4cdb58227e <comment><USER2> Yeah, I'm sure nobody else saw the Internet coming in _1987_.</comment>


Ask HN: Entrepreneur/Hackers meetup in the DC area? - <AUTHOR>

Hello everyone,<p>I am recent engineering graduate and moved to DC area for work. I am greatly interested in meeting entrepreneurs and hackers in the area and was wondering if you guys knew about any meetup events or groups in the area that are active. I'd love to meet fellow HN readers in the area. <comment><USER2> I could list a few that I attend, but the better/easier thing would be for you to search meetup.com. It should provide you with a good starting point by industry and/or tech topic.

The regional tech entrepreneurial organizations, like the Northern Virginia Tech Council also maintain lists of resources.

Lastly, there are a few revenue-generating (Profitable?!?) startups that provide services back to the local startup community by organizing and/or making space available for events. The three that pop into mind first are Affinity Labs, 1410Q, and iStrategyLabs.

</comment><comment><USER3> There is an active Lean Startup Circle in DC, see <http://www.meetup.com/DC- Lean-Startup-Circle/> (for a full list of LSC groups see <http://leanstartup.pbworks.com/Meetups>

</comment><comment><USER4> could check out DC Startup Digest... I haven't lived in DC for a while but planning to move back soon. I subscribed a while ago to get a feel for what's going on.

<comment><AUTHOR> Thanks, I just subscribed to it.

</comment></comment><comment><USER5> You still have a chance to get in on startup weekend in mid-August! <http://dc.startupweekend.org/>

</comment><comment><USER6> <http://www.meetup.com/Hacker-News-NOVA-DC/>

</comment><comment><USER7> I second this. You might try hacdc if you like electronics.

<comment><AUTHOR> Thanks for the response. I actually did electrical and computer engineering. It'd be nice to at least network with people in electronics. I will definitely look into it. Thanks again.</comment></comment>


Fear, American Style - <AUTHOR> http://kottke.org/17/02/fear-american-style <comment><USER2> >Corey Robin is a political scientist whose expertise is the history of conservative movements and the politics of fear.

Just in case you had any doubt where his sympathies lie.</comment>


Parallel and concurrent Haskell, Marlow [[PDF slide deck]] - <AUTHOR> http://community.haskell.org/~simonmar/CEFP1.pdf

<comment><AUTHOR> Part 2 (about 150 slides altogether; Goldilocks deck, not too dense or fluffy. Favorite: "WTF is WHNF?"):

<http://community.haskell.org/%7Esimonmar/CEFP2.pdf></comment>


Verizon Buys AOL for $4.4B - <AUTHOR> http://techgeniux.com/aol/

<comment><USER2> 10 years from 100B+ to 4B+, ouch</comment>


Ask HN: Am I expecting too much? - <AUTHOR> I work at a large, non-software company in the US as an entry-level software engineer, where I've been working for a little over a year, now.  This has been my first job out of college, though I did do freelance work for a few years prior.  I'm very unhappy at my company, and I'm wondering whether this is due to the company, or instead due to my own unrealistic expectations.
In my organization at this company, each team is assigned one senior engineer, one or more non-senior engineers, and one or more offshore engineers.  On my team, I am the only non-senior engineer, in addition to half a dozen offshore engineers.  In the ~12 months that I've been on my team, 3 senior engineers have joined and subsequently quit, which has left me to learn the ropes of our (unnecessarily large and often undocumented) application and manage all of our offshore engineers on my own.
This means that I usually work significantly more than 8 hours per day (8 hours is the norm at my company).  Lately, this also means that I'm usually quite a bit more familiar with our application than the senior engineer on my team.  This has led to a number of hilarious situations in which I am at my desk, IM'ing the senior engineer what he needs to say at meetings, as those meetings are happening.  I can't attend these meetings, because they're only for senior engineers!
Because I generally have no time to write code or do anything other than write e-mails and put out fires during the work week, I spend a large part of my weekends writing code for prototypes and projects, thinking about the designs of various parts of the company's application, improving our documentation, writing code quality guides, and coming up with various process improvements (e.g. ways to improve our source control policies, ways that we can improve our interview process, etc).  When I show other people (engineers on other teams, management, etc) what I've worked on, I generally don't get any response whatsoever.  This is problematic, because I need management to sign off on any changes that I make to our code-base or any of our processes, and without their sign-off, my work basically goes to waste.  It's alright if none of my ideas get implemented -- they might be bad ideas (in hindsight, I know that some of them are!) -- but it would at least be nice to get some feedback, and I never get any.
To make matters worse, management doesn't seem to be aware of any of this.  My manager has suggested that I try to take on more tasks at the next job-level up from mine, when by the company's own guidelines, I've been doing the job of a senior engineer for some time now (though I probably haven't been doing as well at it as an actual senior engineer would).  I will admit that I haven't been doing an great job of making myself "visible" to management, but I think that I've been doing enough that they should have more awareness than they seem to have.
Other than that, I just can't seem to connect with anyone at work.  I try to have conversations with other engineers about software (I've tried a wide variety of topics), and am generally greeted with head-nodding and a blank stare -- sometimes other engineers even make impolite comments about my interest in software.  I've tried to organize meetings where we can discuss computer science topics, but management, while supportive of the idea, has warned me that there might not be enough interest to warrant having such meetings.
The general M.O. here seems to be to do just enough work to shift responsibility to someone else, to be Agile (with a capital "A") even though our organization is anything but, to schedule meetings (never try to solve a problem using automation -- meetings are the only way), and to basically maintain the status quo, even when doing so means making bad decisions that will cost the company big time in the future.  By the way, it's not cool to think or converse in terms of abstractions -- only speak in terms of APIs, please (paraphrased advice that I've been given by management).
I've been trying to make the best of things: the attitude I've tried to have over the past year has been that if I can identify various things that we do wrong at work, and can come up with better ways to do them, then it's almost as good as working somewhere where things actually get done in the right way.  Still, I'm unhappy.  For the first time in my life, I feel like I might be depressed.  I don't like waking up for work in the morning, and on the weekend, all I can think about is how much the next week is going to suck.
It seems like this should be a really sweet job -- after all, you can do what is essentially bad work and still get paid, the environment is laid back, and people are friendly, for the most part.  But it's actually really frustrating.  It feels like no matter how hard I try, I'll never make any improvements to the company's situation, because our organization in the company is structured in such a way that one single person (at my job-level, at least) can't really affect any change by him/herself.  Thus it feels like the only way to proceed is to knowingly do bad work.
Am I expecting too much?  Is this just how software engineering is?  I'm grateful to have a job, and don't mean to be a know-it-all.  I know that my company doesn't owe me anything more than a paycheck, but I just don't feel like this is a good situation.  I've talked about some of this with management, and the response has basically been "That must be frustrating."  I don't know many other software engineers, and didn't do CS in college, so can't reach out to classmates or professors for advice.
Please, HN, set me straight! <comment><USER3> Quit, join a small company. I did five long years at a multinational megacorp without realizing that life could be better. It was like prison for programmers. When I finally quit to be employee #5 at a bootstrapped startup it was a revelation. After I had been at the startup for a month it still didn't feel real - it felt like I was on vacation from my previous job. It took a long time for it to sink in that I didn't have to go back. Ever!

It's possible to enjoy work! Don't make my mistake and waste years in an environment you hate - I should have left after 3 months instead of 5 years. I will never work for a large corporation again.

<comment><USER4> Except these things could be preventing such a transition:

* Moving expenses to $EXPENSIVE_TECH_CITY

* Student loan debt

* Credit card debt

* Car loan + auto insurance

* Severe pay cut

* No experience building CRUD apps

Or MSCCSN for short.

<comment><USER3> That was not my experience at all. I didn't take a pay cut moving to a small company. My salary stayed about the same, I had similar benefits, and I got a little equity which a few years later was worth a nice bonus. Staying at a large company all you're going to get is the standard 3 to 5 percent cost of living increase every year.

Generally I do not think it's true that large companies pay better than small ones - if anything the opposite.

Re: moving to an expensive tech city, perhaps that might be an issue, but there are smaller companies in lots of places, not just Silicon Valley.

<comment><USER5> > Generally I do not think it's true that large companies pay better than > small ones - if anything the opposite.

Anecdotal data point: I recently made the switch from startup to Megacorp, and my base salary remained the same, but my equity compensation went from being made of unicorn farts and fairy dust to something a little more real. Meaning if I stay the year, my total comp'll jump roughly 50%.

And my base salary at the startup was pretty good compared to some of my friends working at smaller places.

</comment></comment></comment></comment><comment><USER6> Every situation is unique and every person is different. But I share my thoughts.

\- The right place is the one that helps you achieve your life goals. It sounds like you may be in the wrong place but that doesn't mean you should quit just yet.

\- Its probably a good time to start making friends at other companies. Its fine if its casual. You just need to start building your network. If you do this right you may never have to apply for a job or draft a resume again (I haven't).

\- You are getting a lot of tasks thrown your way (which is great) but don't make the mistake of thinking doing most the work means you should be recognised as a senior. Thats not at all how it works. Especially in a corporate culture.

\- Keep making your seniors look good. You don't want to be a threat to them. If their career advances they will take you with them. You want every to feel that they are more likely to succeed with you around.

\- You probably have a lot of energy and motivation at this point in your career so it worth finding a place where you can better thrive. Before you leave your current position however I would be sure you have learned everything you want to learn there. You don't want to be a noob walking into your second position.

Hope this helps.

<comment><USER7> x10 this:

> \- Keep making your seniors look good. You don't want to be a threat to > them. If their career advances they will take you with them. You want every > to feel that they are more likely to succeed with you around.

</comment></comment><comment><USER8> One thing that stands out for me is the ratio of onshore to offshore engineers. I have only worked in a few organizations with offshore teams but the experience has always been frustrating.

First, if you're working in an organization like this, it means they value cost management over product. I know that's a sweeping generalization because it's possible to build good products with offshore teams, but it takes tremendous effort, or unusual coordination at the offshore location. This brings me to the second point.

If the product work is being driven by the onshore team, at the ratios mentioned, then a large portion of your time will be coordinating with the offshore team. This can be a demoralizing process. I've often found that it would take me an hour to do what it took me 30 minutes to coordinate and the offshore team 3 hours to implement, for example. The response from management is that this is still a force multiplier and so it's worthwhile.

So as a rule, I avoid companies that do this and I walk away when the offshore cost savings buzz is in the air.

If you actually enjoy building software, then that's a special gift. Many people you'll come across in the profession regard it as a job. You should seek an environment where the people seem to have an active interest in these things.

I don't know where you live, but you might look into an HN meetup or something similar. As others have said, work on building up an informal network. It only takes one good connection to make a great difference in your professional life. Good luck!

</comment><comment><USER9> I like the rule of thumb when there's no one left to learn from in your job, time to move on.

Obviously don't quit, but you could start looking. Even if it's not implemented you have created new systems for your company ;)

But remember what you want is not necessarily what others in the org you are in wants.

Some people just want a easy job. It's not a crazy idea, if the company is not benefiting those who go the extra mile, why do it? Some people value life outside work more. And this certainly shifts a lot as you get older. Why work hard to make widget company A better than competition widget company B?

Level up jobwise, put you energy into a side project(part time self employment) or keep trying if it's important to you, maybe it's more complicated than it seems.

</comment><comment><USER10> It seems to me like you try to make your job better, and outshine on all areas, but you are not trying to do it in a corporate way.

Your bosses only care for 2 things, and those things are the only things that you can use to get their attention and implement change.

1) Does the change make more money You have to show them, prove them that the change you try to implement will make more money down the hill. Will it attract more customers, will it make customers spend even more, how can you quantify this idea into money.

2) Does the change save money spent If you can prove them that the change will save them money that they are currently losing, then you have to show them how. Show statistics, show numbers.

This is the only thing that works with almost any corporate company and almost every work occupation that I have seen, talked to with other people, and learned all the way.

You either make more money, or you save money, everything else noone cares about.

Especially as a developer, you might know that changing a codebase MIGHT be easier down the road, but unless it is quantifiable by numbers and money, noone cares.

</comment><comment><USER11> You name two reasons that always should result in you finding another job: A) You do the job one level up and don't get recognized. B) You can't connect to your colleagues.

Look for a company that is quite different from your current one (e.g. a major software company, another size, another location) and then try again. If you recognize that these two points are still the same you definitely need to change something about your style. But for now changing the company seems the most reasonable choice.

<comment><USER12> Just because someone cannot connect with colleagues in two consecutive companies mean the person has to change something in him/her self. In the current working scenario, it will not be a surprise at all when a person with great attitude is not able to connect with this colleagues/work in most of the places.

<comment><USER11> What you say sounds a lot like looking for excuses. It doesn't matter if there are reasons for why it may not be you. The thing that matters is that you should always try to improve yourself and if you have two consecutive, independent experiences with the same outcome, then it's a good hint that you can start to work on yourself there (instead of improving your coding skills or updating your vimrc file, for instance).

</comment></comment></comment><comment><USER13> > I'm very unhappy at my company

> Am I expecting too much?

> Is this just how software engineering is?

> my own unrealistic expectations

> I generally don't get any response whatsoever

> it would at least be nice to get some feedback, and I never get any

> I just can't seem to connect with anyone at work

> there might not be enough interest to warrant having such meetings

> you can do what is essentially bad work and still get paid

> the response has basically been "That must be frustrating"

> I'm wondering whether this is due to the company

All company outside a few small areas is exactly like this, the exceptions being:

* Startups

* Open-source

There is nothing wrong with this company. This is how pretty much all companies are. This kind of environment is suitable for 85% of software engineers. They like it that way, and they want it that way. Companies do not want to be dependent on heroics. They want a predictable process.

> I spend a large part of my weekends writing code for prototypes and projects

* Be on the outlook for a sufficently-funded startup where you could be the CTO or technical co-founder

* Join an open source project

Do not talk about this to other people in the company. In the meanwhile, until you have landed your new role, avoid disturbing other people, or make them feel inadequate. Companies fundamentally cannot use people like you. It is contrary to their desire to keep things predictable, both good and bad things.

By the way, personality-wise, I am pretty much like you. I am a co-founder in 3 startups and 2 open-source projects. It may be annoying for you that you are not suitable for working in most companies around, but at the same time, if you find the right place to work at, you will have much, much more fun and make much, much more money than in a "normal" job.

<comment><USER14> Good advice. I work for a company like he describes and I can vouch for everything you said. You can't rock the boat too much at a company that see tech as a means to an end. If you're passionate about tech Acme megacorp is the wrong place to be.

</comment></comment><comment><USER15> No, your expectations are not too high. You need to feel ok at work and if you are passionate about the type of work you do, it's reasonable to find a workplace where this sentiment is shared and going to work feels like fun.

I saw a few comments in this thread which said that this is simply the way it is at a large company. I strongly disagree. I've worked full time as a software engineer both at a small company with just a handful of programmers and, currently at a large corporation with over 8000 employees. In both cases, I've been surrounded by people with a passion for software. People who share my interests. People who want to excel at their job and deliver the best possible product. If you're someone with that kind of mindset, I urge you to look for a job where that is the norm. Part of the problem may be that you currently work for, as you yourself put it, a non-software company.

As others have pointed out, don't quit your job until you have a new one. If your search takes a while, or doesn't pan out, you may come to regret jumping the ship before you've found a new vessel. As a final note, let me point out that I am personally not familiar with the job market for programmers in the US. From what I've seen though, it seems like it is harsher than in Sweden.

</comment><comment><USER16> Create a 'plan B', another job that you have lined up or a launching customer for your freelance career. Then, ask your current employer to be promoted, _pronto_ to the function of senior engineer with associated pay-raise, citing the first couple of paragraphs of what you wrote above.

If they bite, give them a chance. If not, execute 'plan B'.

</comment><comment><USER17> Hi Throwawaypotato,

I was in a similar position. Non-software company, basically one of two developers in a group whose focus was business. We would occasionally interact with other software teams in other departments to integrate our systems, and I would cherish those moments; but it was clear that across the organization overall view of software was that of a necessary evil.

I tried to convince the group about taking a new approach to how we developed software, to perhaps have more communication between the sparsely distributed software team, I even made a presentation over software processes, how we could improve... nothing ever changed anything. All they really cared was that we made the wishes of the sales team real...

After a year of firefighting, dealing with poor processes, and feeling overall undervalued I resigned to resume my PhD. My advice is that you change to a software company, and in general that you join a company where your role is a first class citizen (I've heard similar complains of friends who are, in say, a finance position within a structural engineering firm).

On the other hand, I left with a strong impression that these type of non- software or software adverse companies are great candidates for companies to either sell services or to directly compete against with more efficient services... perhaps a route I'll one day take.

Cheers!

</comment><comment><USER18> I know some will say that the logistics of life--paying for stuff and the like --can dictate whether you compromise on your work environment. But, for me, I now wish I'd taken the approach of life being too short to waste it in a job that makes you unhappy. And the particulars of your situation really don't matter. If you're unhappy, you're unhappy and it's as simple as that. It feels like you're asking for permission to be unhappy based on the external circumstances. But whether your unhappiness is a natural consequence of your situation or not isn't going to make you happier.

So my advice would be to find something that makes you happy. This doesn't have to be a blind search...there's plenty of research on what makes a work environment fulfilling. The classic is the intrinsic motivators (autonomy, mastery, purpose) rather than the extrinsic motivators (money, fame and such). It sounds like your current environment doesn't have much going for it in the way of intrinsic motivation, so start by thinking about what a rewarding work experience looks like for you and then try to find it.

And if money is your thing (it does enable lots of things that can make your overall life happier), the lesson I've learned 20+ years into my career as a developer (and now management) is that worrying about money early in your career is a premature optimization. Worry about honing your craft and the money will take care of itself up to a certain point. When you progress beyond Senior into team leadership is when you should start thinking about getting paid, and you'll get there a lot sooner if you spend the beginning of your career learning as much as possible and ensuring that you don't stagnate. It doesn't take long to become very senior, but it's not just a matter of putting in the time. I've interviewed people with 20 years in the industry who basically had the same 2 years experience over and over. And I've interviewed people with just 5 years experience who were completely ready to take on technical leadership positions. Be the latter and you'll end up getting paid more over the course of your career.

</comment><comment><USER19> It is easy to feel oppressed in software development. I don't mean to say that people in software development _are_ oppressed, just that it's easy to feel that way. One of the goals of software development is to create a product that people don't notice or think about (something intuitive). I have found that it is common for developers to feel that their work goes unnoticed at times.

That being said, I would recommend three things:

1) Try to focus a little less on whether or not you've been treated as fairly as possible and look for ways you can improve things for everyone in the company. If you leave, someone else is going to have to deal with the same crap. Is there a way you can make it better?

2) Talk to higher management. Try to be objective and avoid blaming. Just identify things in the process that are causing you to feel unappreciated and ineffective. Could they involve you in more planning meetings? Could you start holding trainings to share knowledge among other developers?

3) Remember that you don't owe the company anything. You should absolutely be professional in all your dealings, but a job is a means to an end. If you aren't getting the pay, recognition, or satisfaction you're looking for, just look for another job. Companies live and die. Employees come and go. Don't get too emotionally tied to it.

</comment><comment><USER20> As someone said, it's time to move on but take it easy. Try to reduce your "extra working hours", at least try to get enough free time and make sure weekends "are weekends". You need time for you.

Now it's time to start thinking "what would you like to do next" and invest some time in a daily basis looking for companies and positions that you will feel motivated to apply. That research and process may take some time.

Ah, don't get into the "Engineer -> Senior Engineer -> Manager" thinking, titles are not important, what really matters is what you do and how much you enjoy it. If you enjoy what you do, you will succeed.

</comment><comment><USER21> I've been in your exact situation- very nice, laid back people, but who are boring and have no desire to really improve or change things. It sucks, I feel for you.

Remember to respect the balance. What if you were on the opposite team? One that charged ahead, worked like crazy and valued only the smartest? That might be nice for a bit, but eventually it would wear on you in other ways, you'd be tired, stressed and feel undervalued.

But even after respecting the perks, you're restless. You want to be on a higher functioning team. I say quit, and quit right now. Because right now you're in a place in your life where you want to work hard, study and grow. So go find those people, they are out there. But leave on good terms, because in 5 years when you want to focus on your family, or take up a hobby, or just chill out, you'll want this type of job, and you'll be glad it's something you can come back to. And then 5 years after that, who knows, you'll get that itch again, and once more your off to the races.

</comment><comment><USER22> You're probably at a good point to appreciate the following:

[http://www.ribbonfarm.com/2009/10/07/the-gervais- principle-o...](http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or- the-office-according-to-the-office/)

<comment><USER23> +1 I think this provides an excellent theoretical framework to think about types of people in a corporation, the fundamental objective of the corporation, and seems to explain many behavior of others. OTOH, I still think this is just a framework and may not have any connection to actual reality.

</comment></comment><comment> nikki-9696 In my experience (which is limited because I don't job hop), the non-software company that I worked for sounded very much like you describe. I did myself a disservice by not leaving sooner. I now work for a software company and it's very different. I am much happier here, working with no offshore bullshit and having co-workers who care about learning, sharing, and our products.

I can't tell you which is "normal", but I will advise you to try to leave. Socialize and network your little heart out, because if a friend recommends a place to work, you can be more sure that it won't suck, and it will be easier to get in the door.

</comment><comment><USER24> This is an incredibly well written, thoughtful post.

It's not someone else's job to make you happy. It's your job.

How to be happy is something we all work on every day. Nobody can tell you how to do it for you.

For me, some things that have helped are group exercise, meditation, social interaction, trying to challenge myself and being creative. Financial security is also important.

> I've been trying to make the best of things: the attitude I've tried to have > over the past year has been that if I can identify various things that we do > wrong at work, and can come up with better ways to do them, then it's almost > as good as working somewhere where things actually get done in the right way

There's no place that does things perfectly. People deserve to be happy and I think you can find something better than your current situation if you keep looking. It may or may not mean changing your job.

Ultimately, what you're looking for may be found in yourself rather than in your workplace or from an answer on the internet. You can still change your job. My advice would be, consider what you want to do, and give it a try. If you're the decision maker then it's the right thing to do. Even if you're not the decider, when you look back and realize that it wasn't your choice, you've still learned something. Good luck!

</comment><comment><USER25> You are at a company where people are not interested nor invested in the work they are doing: they are there for the paycheck, they resigned themselves to the situation, you are likely viewed as "green and fresh out of college, you'll learn yet", and the situation is hopeless.

I worked at a place like that. And it was a software company. And it was my second time working there. After I realized that the company deteriorated far more than I had anticipated in my absence (and I did anticipate it), I quit the place the first chance I got, and never regretted it.

Generally if you love working with computers, you have to give up working with them professionally, because today's computer work is nothing like the work of old: too much politics and management meddling, too few people who actually care about doing things correctly, or about working with computers at all, for that matter.

For most people working with computers today (and I even experienced this first hand working in Silicon Valley), working in this type of a job is just means to get above average pay, or decent pay, just like for most people an automobile is something that gets one from point a to point b, instead of this incredible machine which can put together economy, performance, and design all in one.

</comment><comment><USER26> It depends. What are you willing to risk to get what you may want?

You have only been there a year and you are eager and motivated. This is great to hear. It also sounds like you enjoy writing software, also great.

Here is what you do not want to do: become a PITA.

Stop talking to management so much (at least for now), they probably are getting tired of it.

Also try to fit into the culture where you work (at least for now).

And absolutely always ALWAYS be a team player. Even if the senior doesn't know as much about the product as you do right now. Offer your help and be nice about it. Don't take things personally, even if someone is being rude to you. Also try to look for people who you admire professionally and help them whenever you can.

In the mean time focus on your skills and keep improving your corner of the world.

What will happen, sooner than later, is that those people you helped will remember you. And when they are in a position to affect positive change, they may return the favor.

While you are doing this, make mental notes of where you want to be and definitely do shop around. By being aware of the real world situations, you'll be better equipped to recognize a better situation.

Best of luck to you!

<comment><USER27> This. Every (good) job I've gotten has been from networking.

Finding good developers is hard, and companies love referrals. Those 3 senior devs that have quit likely found a job somewhere else, and that somewhere else will be hiring.

If they remember you as the passionate helpful developer who was putting in a good effort at a terrible company, they'll probably want to throw potential job opportunities your way.

And make sure they have a way to contact you, even if you are just making a connection on LinkedIn or something.

</comment></comment><comment><USER28> May be my experience would help you) Have been in a similar role as you before. Finished Uni, started my first, what I thought was a "major" job. I was developer level there at the time, whereas the rest of the team was much more senior people who teched me up(very big thanks to them). After about a year more senior people moved away from company. Leaving myself as the only team member... Following this, had to do most of the work and ridiculously enough do interviews to hire more senior people in my team... who would be hired based on my feedback ... As well as that had opportunity to participate in company life and influence their main products as I see fit, use it as a playground.

This gave me tons of experience that I could hardly get at my level and age.

Very lucky for the company at the time I wanted for it to prosper, hence have tried to make it as good as I could.

Chance to learn and advance yourself.

P.S. left to a much more senior position in another company after surviving such a rhythm for few good years.

</comment><comment><USER29> Unless you really care about the product (technically challenging or high impact on society), find a smaller company or even a startup to work with.

If you're in PDT or MDT timezone, interested in working remote for a startup (higher risk, below-market-value pay, great mission, small team, challenging work), feel free to contact me and we can see what happens.

</comment><comment><USER30> You should definitely quit the company. Don't waste a lot of time there.

2 years back I quit the company to start freelancing, and sometimes when I look back - I regret wasting those valuable years of my life.

It feels like my situation just 2 years back. I stayed in such a company for 7 long years because of various reasons - but also because it got very comfortable - I had the option to do bad-to-mediocre work and no-one would question it, because everybody thought it was "great work". Three years into the company I had once complained to a new manager that most of the team did "mediocre work" and did not even take minuscule risks. The result was - <USER2> new manager put me into a PIP, ironically in a quarter when I was performing very good. She came to apologize a week later. But formally never cleared my name off PIP, instead marked me as a employee she cured on the HR records. That was cruel.

<comment><USER31> What's PIP?

<comment><USER32> Performance Improvement Plan

<comment><USER33> In other words, it means your employer is collecting proof that you can't perform in order to fire you.

</comment></comment></comment></comment><comment><USER34> It sounds like the perfect place for you is to work for a funded/profitable startup that has less than 20 people working in it. Preferably smaller.

It's really the only way you get to wear all the hats and solve lots of different problems in lots of technology domains and IMHO the best way to become a true full stack developer.

I can't tell you exactly how to find those types jobs, but I can tell you I've managed to over spend half of my 25 year career working in those types of companies.

Well maybe I do have some hints. I guess in the early days I did a lot of networking and going to events and meetups and such.

Then within the past 10 years I have started blogging and podcasting which exponentially increased my luck surface area and as a result a lot more opportunities come my way.

Anyway, best of luck with it!

<comment><USER35> > exponentially increased my luck surface area

I love this expression. Coincidentally I owe my current job to a blog post I made a few years ago, and I'm not even a prolific blogger.

</comment></comment><comment><USER36> I think I can comment on what people might be thinking when you show them your prototype: "will I have to maintain this?"

The only advice I can give is keep yourself available and keep looking for a job even if you want to work where you are at. It can't hurt to shop around.

</comment><comment><USER37> > I work at a large, non-software company...

Basic rule of thumb, the bigger the company-- the dumber and more dysfunctional they are. Also, Non-Software companies simply don't get devs.

Chalk this stint up to experience, prepare to move on.

Pro-tip, on your job search make sure you scorecard your next company for personal cultural fit. The ONLY way to determine this is by talking to actual members of the team you would work with. Here are some good areas to probe during your interview conversations > [https://www.themuse.com/advice/the- best-interview-questions-...](https://www.themuse.com/advice/the-best- interview-questions-to-ask-if-you-want-the-truth-about-company-culture)

</comment><comment><USER38> Every place is different but what you are experiencing sounds somewhat typical of a large organization. It sounds like you would be much happier somewhere smaller! Small startups tend to have the opposite sorts of problems, where each person needs to take on lots of responsibility but consequently everyone gets to have a big impact on the company and product. And as long as they practice code reviews for all changes you're guaranteed to get feedback even if sometimes that feedback is just "that's gross, don't do that". Anyway at a smaller startup it should be way less likely for there to be the kind of disconnect between dev and management as you are describing.

</comment><comment><USER39> I have been through very similar situations like yours during my early day jobs. It's that fire that we always had, fresh out of colleges and into the workforce, the drive to do good things, build cool stuff. Makes you very susceptible to be manipulated into doing more for free. If you think they pay well (just in certain pockets of the world anyway), the ROI from all that you do are multiples of what they gave you.

Here's the thing - your management know exactly what frustrated you and also know that it's the most efficient cost-cutting move, and it simply doesn't overlap with their interests to do something about it.

</comment><comment><USER40> A couple random thoughts: You've freelanced before, you're not happy with your current job, so consider getting back into that, at least on the side.

3 seniors quitting in a year does sound a bit like a red flag. Hopefully you're keeping in contact with them? Maybe you can find out why they left and where they went (and whether you can come along).

It's often unnecessarily large and undocumented. Sorry.

Consider running your ideas by some higher-ups before you spend your weekends on them. If they're not interested, maybe they could help you figure out things to work on that would get traction. This might be one of those trite old things where you make the person belivee it's their own good idea, but even then they'll at least know you were the one to implement it.

Things like code quality guidelines and interview processes involve some subjectivity- they're commendable things to want to improve but it may not be as simple as "boom, now it's better."

Not everyone loves talking about software for the sake of software. Maybe connect over biking or frisbee or movies or something. Also, "software" is a vast, vast space of topics. If someone doesn't happen to be in the right frame of mind when you bring up some otherwise-interesting topic, you probably will get blank stares. If you do want to chat about software, find a way to ask people about something you know they're working on.

I do hate the getting-things-done-in-meetings approach. You could try short- circuiting them with emails like "Here's problem X, here's my solution Y, please email me thoughts otherwise I'll go ahead and implemnt it." (YMMV)

In the end, though, it does sound like you're looking to leave. So, keep a list of your accomplishments (even if nobody there appreciates them), the responsibilites you have, positive feedback you've gotten, and things you've learned. Brush up your resume and look around. If you're financially stable, maybe just bail and go back to freelancing. Or, if you're feeling gutsy, maybe apply for a Sr role at your current place- that might be a way to gain some recognition.

</comment><comment><USER41> I think you could use a sizable attitude adjustment. The first thing to is to do your job. It's not clear from this lengthy post that you do that. Quit the politicking. Your 4th paragraph lists a bunch of things that sound like they don't matter a whole lot. Figure out how to work during the work week. Try to assume positive intent from your co-workers.

I guess in sum, start doing the opposite of your gut.

</comment><comment><USER42> Peter Thiel has this funny law that states "A startup fucked at its foundation cannot be fixed". I think we can generalise that and say that a company fixed its foundation also cannot be fixed. Your post is the hallmark of a toxic work environment and no amount of work from you can fix that. Get out as soon as possible.

</comment><comment><USER43> No, this is not normal. You should quit.

</comment><comment><USER44> Hi, I made an account just to respond to your essay. Congrats, you made me get out my laptop ;)

\- Feedback is hard to come by. I don't know your company, but I've known several managers over the years who are excellent people, fantastic engineers in their own right, and decent at organizing projects... but they have no idea how to give constructive feedback. Sometimes this is a personality defect - software isn't known for attracting folks with high EQ - and also it's easier to not risk pissing people off. Sometimes they're guilty of apathy or oversubscription. I think you need a mentor, someone senior who will actually provide this feedback, and ideally who has visibility into the work you and your team perform. They will certainly have insight and perspective. I didn't realize how valuable this was until I started with my current manager, who _gives excellent feedback_ , and I can't thank her enough for it.

\- Work expands to fill the time allotted, but work also shifts to the person most willing. If you're pulling those kinds of hours and your team is not, then hey congrats, you're the kid in school who does all the work in group projects... so, presuming you're not okay with being that person... "Why would I promote you when you're carrying the team on your back?"

\- "How tall you are depends on who you're standing next to." It's sadly common for a dev to have ten years' experience and not hold a candle to another with two years' experience. It depends on what they did in those years! Folks who aren't still hungry to learn, while still competent, cease to grow. So for evaluating your peers, do respect their years of seniority, but take it with a grain of salt that those years were well spent.

\- "One must imagine Sisyphus happy." Camus said that, and while depressing, the quote sums up most of software development in a nutshell to me. You have to value the process - which it sounds like you do - but with the knowledge that your efforts will never make the problems go away. At best there will be new problems. At worst you'll be hamstrung by the situation around you, which leads to the next paragraph...

\- "Every group of friends has That Guy. If yours doesn't, then congrats: YOU are That Guy." No matter the context, don't be That Guy. If your senior engineers are so amazing, you wouldn't be asking these questions: it would be painfully obvious to you that you can learn a ton from their experience and example. That is, unless you're very self-centered and narcissistic, which isn't meant as a dig so much as a "know thyself" moment. About the time that everyone learns from you, but you don't learn from them, and you're not just there for the money/etc... it's time to go.

\- Culture comes from the top. ICs can't change the culture. At least not much, and likely not outside their team. It's just not how big orgs work. This should be _part_ of the reason directors and VPs are so well compensated: it's on them to set the tone, establish the expectations, and conduct the hiring to enforce those. I personally know five ICs, off the top of my head, who all tried to change the culture, were unsuccessful, burned out, and quit. Find the serenity to accept that from your perspective the culture is immutable, and either accept it or change gigs.

\- Yeah, final point: It's time to go. The usual career building advice applies, but I'd also focus on meetup groups. Everyone at a Golang meetup group, for instance, likes Go _so much_ that they sacrifice personal time to hang with others who feel the same.

Feel free to reply if you'd like any further clarity. Good luck!

</comment><comment><AUTHOR> Wow! Thank you for all of the wonderful feedback and suggestions! This all seems like great advice, and I will be giving it a lot of thought over the coming weeks and months (...and years, probably). I don't feel quite as depressed, now!

<comment><USER45> Don't just think about it, but act on it! :)

</comment></comment><comment><USER46> I started my career at a very large insurance company in 2005 and for 9 months wrote no lines of code. I was documenting COBOL systems, sitting in disaster recovery planning meetings, all kinds of megacorp stuff that was soul crushing.

My next job, I was the only 'non-senior' on the team of about 12 that wrote all of the code that kept the manufacturing systems running for a very large international biomedical device manufacturer and since we were IT, we were on 24/7 pager duty.

Everyone from top to bottom at both companies were much like you describe- doing just enough to get by, punching the clock, and checked out. Not necessarily bad or dumb, but not necessarily good either.

Being a very outgoing person helped me stand out and I was never left out of meetings because I wasn't senior enough, either because I was lucky that these companies didn't do stuff like that, or because I was engaging enough for them to realize I may not have the title but I had the chops.

I've never again worked for a company that wasn't tech focused, and I've never again worked for a team that was a cost center (my teams made money from clients and we got treated better). The biggest company I've worked for since was 220, the smallest was 5.

As I've looked back on my path from Junior SD to Software Architect to running my own teams and companies I've realized two major things:

1) The megacorp stuff was god awfully boring and soul crushing. I connected with no one (I don't remember anyone I used to work with from those companies except maybe 2 people) but I was smart enough to pay attention to the good and bad things they did. From organization and procedure to inflexibility and beauracracy I was able to pick and choose some of the good habits up that you'd never get spending your career at startups.

2) If I would've stayed at either of those companies too long I would've burned out, or worse, gave up and stayed. It felt like being in an F1 car and having to drive in a school zone. I KNEW I could do cool stuff if I could find an outlet.

You seem to have the creativity and ambition to be very good at your craft and a company like this will squash it in the long run.

Make a list of things you think are good that they do (code reviews, mentoring, general procedural stuff, even if mundane). Make a list of things you think are stifling or dumb (old tech, no code reviews, 'senior' dev only meetings).

Use that list to make sure you're not going to get more of the same at the next company.

If you don't mind client work and love variety look for teams that do professional services work (like implementations for a software product/service company) or an agency (you'll get every variation of good bad and ugly there).

If client work or agency life is too stressful (and it can be FOR SURE) get on a product or service team.

You're still young enough I wouldn't recommend going to too small of a team/company too fast.

I see a lot of startup Cowboys that are good at rapid prototyping but are shit at developing something maintainable. There is a very happy medium between knowing when to go Cowboy and when to play it safe- if you do that you'll always be in demand.

The caveat to that is that I've seen big companies and big teams with awful procedures (or none) and I've seen 4 person teams that had a great workflow and process and shipped quality work fast and without very many issues.

The medium sized teams and companies seem to be a good middle ground of being visible, able to affect change, and having enough other people to lean on and learn from without getting brushed off because everyone is running 1000 mi/HR and has no time.

</comment><comment><USER47> Get out of there.

</comment><comment><USER48> Life is too short to be unhappy with anything, anyone, etc; so make a change. Here is a list of criteria I have gathered over the past 20 years in tech on finding the right fit. It doesn't have to apply to just software/technology jobs.

1 - Is software/technology the company's main source of revenue?

This is my top-most question, because I have been an engineer in several organizations where software/technology wasn't their primary concern and it sucks for lots of reasons. All of the reasons funnel back to this question. It makes economic sense that if you're an engineer at a law firm (as an example), you are not the organization's primary concern because you likely do not contribute to the organization's primary source of revenue: litigation. This will have all kinds of downsides to it: lack of training whether from budget constraints or a lack of mentors; lack of advancement on the right things to match a thriving career in software/tech; a lack of pay.

2 - Does the company make software/technology for the right reasons?

This might be a stickler for lots of other HN readers, but I have made an effort to stay away from tech companies who participate in the supply chains of industries that I take up issue with. Example: I'm not fond of war for any reason, so working for a defense contractor is out of the question. Even when the sales pitch sounds great, I still look at whether I'll be able to sleep at night knowing I'm making a contribution to the things I care about.

3 - Does the initial environment suit me?

I emphasis the word, 'initial', because this will change as all environments do... Even at the few companies I have found over the years, they all changed in ways that communicated to me, it was time to move on. People, politics, mergers, acquisitions, lack of new opportunity, etc- The landscape will forever be changing so find your tolerance level for the changes you can handle and work with it, not against it.

4 - Check in with yourself frequently and ask yourself, "Do I still love what I'm working on?" and be willing to make positive changes if the answer is no. 'Knowing thyself' is some of the oldest philosophical wisdom and for good reason. You will continue to jump from one circumstance to another if you don't truly know what does make you happy. I spent years trying to climb the corporate ladder and realized that I'm not cut out for management, but I like being a leader. One can be a leader anywhere... with or without followers, subordinates, etc. Besides most people love and respect leaders, while despise and tolerate managers.

You will feel like you made mistakes and bad decisions along the way, but this is normal growth. Just keep focusing on what brings you happiness.

</comment><comment><USER49> We moved the text from [http://pastebin.com/raw/8sdGRra3](http://pastebin.com/raw/8sdGRra3) to the text field above. It's longer than Ask HN texts are usually supposed to be, but given that there's an active discussion it seems more convenient to have it here. If there are objections, we can put it back the way it was.

</comment><comment><USER45> Leave for a two weeks vacation and come back to the ruins of the project. Then, apply for senior position. If rejected, quit and find a better gig. You will not get a senior position nor raise/praise for what you are doing right now.

But generally, your company sounds like a pretty standard fortune500 crap tier outfit (IBM, Citi, Ericsson, Tata, etc). I suggest you find a better company or position within the company. Move teams if possible. If not, just leave. Don't stick to places like these. I did. I wasted my time.

</comment><comment><USER50> Find another job, but don't quit, as it makes salary negotiation much harder. Do the interviews in the background. Also if some engineer you worked with has left the company, ask him to help find job for you.

</comment><comment><USER51> Just copy paste this to the CEO and see what happens. (minus the self- deprecation)

<comment><USER52> Bad idea IMO, he's still very inexperienced and thus likely to not be taken seriously even if he's right.</comment></comment>