Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Are you working on interesting technical problems?
542 points by obsession on June 5, 2018 | hide | past | favorite | 426 comments
I have been feeling disappointed that I haven't been able to use my computer science degree to it's full potential. Most of my work seems to be boring CRUD work where the challenge is gluing libraries together or figuring out business requirements. Actual interesting technical problems seems to be mostly wrapped in ready-made libraries / SaaS services.

Anyone in the same boat?




You might as well have asked who among us won the lottery.

I've been struggling with this for years now; after 4 boring jobs I finally gave up even the expectation that what I'll be asked to do will be even remotely interesting (or socially useful). The chance of landing an interesting job is absolutely minuscule - the market rewards whatever it rewards at the moment, and that's where jobs flock. These days, one of the bigger thing the market rewards is writing a web-based CRUD that's 99% chrome, 1% of actual functionality. Extra points if you can get some user data to sell to adtech industry.

(My own criteria for "interesting" these days are a bit different. I'm not looking for "interesting technical problems", as in advanced CS stuff, but "interesting outcomes" - pushing the humanity forward, or alleviating a social problem for some group of people. I find it hard to even find companies that apparently work on something like that, and even then it seems they have to do lots of boring work as well.)

--

EDIT: Then again there's this topic that has been casting shadow on my happiness for a long time, that I finally seem to be able to define. Maybe our civilization has finally crushed my soul, and I noticed it just now. But it feels to me that the revealed goal of our market-driven world is to abstract everything away with money. The end-game is that as an individual, your responsibility in the society is to pick a skill - whatever skill - that makes you money, and then to use money to solve everything else with your life. It doesn't matter what you do, there is only one meaningful meta-skill - making money fall out of the system, into your bank account.

Maybe I'm just realizing something obvious that parents should have taught me when I was a kid. I don't know. Maybe it was wrong of me to seek meaning in the things one does? Maybe that approach is no longer supported by our civilization?


My father-in-law mentioned something I find quite interesting to my wife: Don't look for a job that will fulfill every aspect of your life - that's what your family is for. And if you do find one, your family life might not suffer.

Not all of us are raising families, but I think it highlights a bigger points. Work is not what builds societies (certain jobs do harm society I think, mostly by destroying it's moral virtues). People relationships are what build societies and build happiness.

And you're right - there are a lucky, select few who get jobs that can also influence society.

I'm not worried about that though (anymore - I was for a time though). With my job, I can provide and care for those around me (provide for my family and generally have positive, uplifting interactions with those around me).

I have resigned myself that it's not my job to fix society, it's our job to fix society, and I'm doing my part where I am. From my perspective I have more than enough to do locally anyway: https://news.ycombinator.com/item?id=17176036


That's definitely something I need to think through more. And what your father-in-law said sounds wise. Thanks for sharing it.

The reason I ended up in tech is in part my fascination about tech, especially as applied to uplifting ourselves and solving our problems (yes, I watched way too much Star Trek: The Next Generation in my formative years). I never thought much about family - in fact, for the most of my life, I felt it's something of a side endeavour. I still feel it shouldn't be the sole focus of a person, though I definitely believe it's more important than I believed in the past.

Same for relationships. And small communities. I feel that maybe we overdid this globalization thing. Maybe global competition and centralization of various kinds of innovative work is more efficient, but it also doesn't seem healthy. Living in a city, there's no such thing as "local community" anymore. Not even neighbours.

> I have resigned myself that it's not my job to fix society, it's our job to fix society, and I'm doing my part where I am.

Still, I'd like to feel like I'm actually doing my part beyond just participating in the economy as consumer. I have specialized skills, I'm not dumb. But I have hard time finding opportunities to do things I'd know could help meaningfully and effectively. There must be something. Maybe I'm just not looking hard enough.

Your comment you linked to is golden. I'm favouriting it. Those are definitely words I'll try to remember from now on.


I've also thought about this a lot. My last years of work life have been quite boring as well. On the other hand I realize that, as you write in your first post, are scarce and precious.

A few years ago I applied for a really interesting jobs within Telematics - one of my favorite areas. So I called them, got the CTO on the phone and he had almost no time for me. Then I wrote a mail with my formal application to them. It was appealing and they replied with some coding riddles. I guess I did well enough and was one of 2 or 3 people to get invited. Of course before the in-person interview I studied some Algorithms & Data Structures book. At the same time I did Scala programming although it wasn't expected to know that but people worked with it.

Anyway, during the interview they made me sweat for at least 3 hours. Every now and then also reminding me how good the other people working there are - the one guy having worked 8 years at a company writing DBMS in London. So yeah, after leaving the communication was difficult but the CTO said the people said they liked me and they would hire me despite my shortcomings - I would have to unlearn stuff. The offer was really bad, in fact even the most senior people got below average salary.

At the end I started working at a company that worked on a moonshoot project involving a CAD program in the browser. Even some mathematician who worked in Japan on Robotics was there. Salary was good enough but the people were borderline insane. I quit after 3 months and landed a below average paid job, but with a lot of nice people. I don't regret that. Work was mostly boring but the environment was nice.

Anyways, not living in the Bay Area, I guess things are they different again.


For me, the most rewarding work is the volunteering I do. I coach various youth sports. I have no pressure to win so I can focus on letting the kids enjoy themselves, have positive interactions, and learn a little about the sports. Seeing them gain confidence and passionately work toward something is a major reward for me.

I still enjoy trying to match a user's expectations with the software I write. But, it's balanced by other aspects like coaching and being in a family.


> Living in a city, there's no such thing as "local community" anymore. Not even neighbours.

Sure there is. I live in a condo with 20 other units, and it makes a great small neighborhood.


How do you make it work? In the experience of every condo dweller I know personally, people know their neighbours mostly to the extent they bother being involved in their HOA meetings; otherwise, everyone walks their separate paths, only greeting (and maybe briefly chatting with) the neighbours as they meet them on the stairway.


It helps that it's shaped more like townhouses than an apartment building. We have a large interior carpark/garden where the kids play, which creates a lot of incidental contact and I think the kids are a huge factor in making a neighborhood feel, it creates an easy shared experience and proximity means you can easily help people out with eg shared babysitting. There's also a few people who make a dedicated effort to encourage community, like trick or treating, and it's a place where half the residents have been there over ten years. I joined the HOA in my first year which has definitely helped me get to know others.


The same thing goes for family. One should not look for family to fill every aspect of your life.


I haven't given it a ton of thought because I have a job I enjoy from time to time, and enough downtime to pursue a hobby or two - I guess I'm in a pretty balanced situation and am okay with it.

In reading your post, I had to stop and think for a bit.

I agree with you but want to give the thought that family can be one's top priority without looking for it fill every aspect of one's life.


no one thing should be dependended upon entirely. any and everything may disappear from your life at any moment.

no one is above great tragedy and loss.


You are correct - no one is above great tragedy and loss.

If my family was taken from me unexpected, I don't I'd say that I wished for more time at the office, or working on personal hobbies. I do believe in balance, but the point I'm trying to make is that family can be the number one priority.

The mindset of "I can be happy because I have x" (in this case where x = family), is indeed dangerous. And while the mindset of "I have chosen to be happy, and my top priority is my family" will bring sadness and pain if they are suddenly taken, I feel like that pain and sadness will have been worth it. Well, it is for me. That for others it might not is understandable.

Please note as well that I'm not advocating self-deprecation or letting your family take advantage or you, or throwing yourself under the bus for an uncaring family - it's a group effort and there a lot of ways to appear to put your family first in a way that's detrimental to one's self.

For me when I think of dedication in family life, I think of the story, "the gift of the magi". Nothing of true importance was sacrificed, and yet the others needs were prioritized.


I believe that the inability for business in our society to be socially aware or responsibile stems from the separation of private life and public life. I can't remember what book this was, but it looked at what war criminals were like in private life. Its main point was that, in private, war criminals were nice guys.

According to the book, the transition from being war criminals by day and family men by night, was possible through some rationalisation acrobatics or detachment from responsibility. As an example of detachment, the Nazi concentration camps didn't have an atypical ratio of psychopath to average joe. The predominant "average joes" would offload responsibility by telling themselves that this is not their decision, but that this is the _current policy of the organistation_, which is an interestingly complex statement, in the subconscious sense. It detaches the organisation participant from the organisation, and it detaches the organisation from their policy.

To come back to business v family, I think the old koan holds: separation isn't good. The rule of thumb in social situations is if detachment or separation is the easiest route, you're doing something wrong. Business is social action by necessity. So should we separate action from responsibility? What do we think of someone who is selfish and avoids responsibility?


> The predominant "average joes" would offload responsibility by telling themselves that this is not their decision, but that this is the _current policy of the organistation_, which is an interestingly complex statement, in the subconscious sense. It detaches the organisation participant from the organisation, and it detaches the organisation from their policy.

Yes, your job as the "average Joe" is to be loyal to the organization. That statement doesn't sound surprising to me, and it took me a few seconds to realize why. I've heard it before. I grew up in a religion where there was an organization, and your job was to be loyal to God by being loyal to the Organization. Only by being on the outside now I see how this is a neat way to release responsibility. See also: "Ours not to reason why, ours but to do and die.".

> The rule of thumb in social situations is if detachment or separation is the easiest route, you're doing something wrong. Business is social action by necessity. So should we separate action from responsibility?

It was easier back when you were naturally limited by geography to do business with people you also knew "after hours". These days, business and personal relationships are almost entirely non-overlapping. Hell, it's a common advice to avoid that overlap.


Likely either directly or something inspired by Hannah Arendt's 'Eichmann in Jerusalem : a report on the banality of evil'. http://www.worldcat.org/title/eichmann-in-jerusalem-a-report...


There should be a name to the phenomenon that humans seem to become crushingly depressed once they start to grasp the big picture dynamics of the system they're encapsulated within. I think it's an effect that we're not quite prepared for as we reach closer and closer to science dotting all its i's.

It's as if childhood primes us to think that life is all about figuring out what the heck is going on around us, and as a consequence some of us go into something science-y, but then we reach a certain stage in adulthood where we feel like we have a pretty good rough closed form solution to the problem, and now the journey all of a sudden seems empty and without purpose and we just keep going with the lives 16-year old selves planned out for us, with too much cost sunk to pivot. I almost suspect the end-state of science is not some sort of blissful state where we feel like we understand everything, but an utter dread and feeling of emptiness at no longer having a purpose.


I had a dream where I was in a coma for 20 years, woke up, and found that AI was now able to trivially answer even the most difficult research questions I could imagine. In my dream I visited my old workplace, and found that while the CEO was still there the ease at which questions could be answered made the humans more supervisers than researchers.

For some time in my dream I was lost, not sure what my value was as a human being without my skills that I've spent decades refining.

Then I remembered that humans have inherent value, that I am not my work, and went to a park to meditate and teach karate. It made me think, in my dream, how even if a machine could teach karate better, I was not doing it for society -- I was doing it for myself.

Realizing that you are not your work, and are not defined by your work; that humans have inherent value and you have every right to simply be happy when the opportunity arises; that the Puritan virtues of work are an illusion, and that humans should follow their passion; that the illusion of the necessity of work often prevents people from ever discovering their passion in the first place.

It was probably my best dream, and I approach life quite differently now. I think when I feel like I have a closed form solution, it is much the same spirit as an AI that will solve your problems for you.


Was that a dream or a trip? ;)


I agree. Maybe there is a word for that?

Personally, understanding the "big picture dynamics" of systems is kind of an intellectual porn for me. I loved doing that for as long as I remembered. It always came with the sense of control - understanding the systems means you could tweak it to your liking, if you so desired.

Finally realizing that the system in which we live is basically uncontrollable by an individual within it has blindsided me. So many interesting things happening, so many interesting things that need to be done still, and yet all you and I get to be are observers and consumers of whatever the system happens to spit out.


The trick for me is realizing that P doesn't easily equal NP, which means that solving satisfaction problems is a challenging thing to do. But everyone knows when it has been solved. Lots of people have an idea of what should happen, few know how to do it. If you find that for some reason you're uniquely qualified to produce some process, you can figure out if it solves someone's problem. Then other people can share their resources which they are uniquely qualified to make, and their problems are then solvable in P time, while they would have to do the NP task of learning how you do your thing. Then you as an individual have a lot of leverage because any change you make to your system, everyone will have to use, provided it's a verifiable improvement.


I haven't given up on thinking I might be able to influence the system. Specifically, I hope my volunteer work on snowdrift.coop can move the needle a bit.

https://wiki.snowdrift.coop is probably the best introduction right now; the main site is in the process of being updated.


There should be a name to the phenomenon that humans seem to become crushingly depressed once they start to grasp the big picture dynamics of the system they're encapsulated within.

I agree. Maybe there is a word for that?

'Attachment to expectation'. See buddhism.


It’s far from a perfect fit, but I think Marx’s theory of alienation comes close to what you’re talking about:

https://en.m.wikipedia.org/wiki/Marx%27s_theory_of_alienatio...

I don’t think “existential angst” fits. As the name implies, you get that just by existing and being trapped by the limitations of being a mortal human.

You’re talking about the specific meaninglessness of modern work. Marx suggests that capitalism affords us some real freedoms, but at the cost of our feeling of purpose and solidarity. And, Marxists would argue, this makes us easier to exploit.

Marx and his inheritors failed to produce systems that solved this problem, and maybe that indicates that the problem is deeper than just forms of ownership and control.

But as a problem description, I think he was onto something.


You pass butter.


Oh my God.


I guess I don't understand the reference...



In addition to the “Existential Angst” there is...

Koyaanisqatsi - life out of balance - see also the film


Seems like a variant on "Existential Angst". Maybe not exactly, but the sense of loss of purpose feels fairly close.


This feeling is because in our current stage of development, we are very primitive spiritually. Some of us don't even believe we have a soul. That it is all meaningless. Science in its current form also looks at our material world and concludes the same. Nasa tells us we are just a speck of crap in a giant space as well, with no beginning or end.

You guys talk about boxes. Well there are huge ones for the mind, carefully constructed to be believable for the masses. Too complicated to understand, they require you to put beliefs in people with credentials, who will repeat to you what they found in the books they were given, or the math they got shown.

If you want to understand your purpose here, you have to step outside of scientific thinking to start with, and that's a huge problem for almost everybody. You have to look at origins of the matrix we are living in, the illuminati, the Egyptians, book of the dead, the occult.


You forgot to mention the lizard aliens :facepalm:.


The Aeon of Horus is here: and its first flower may well be this: that, freed of the obsession of the doom of the Ego in Death, and of the limitation of the Mind by Reason, the best men again set out with eager eyes upon the Path of the Wise, the mountain track of the goat, and then the untrodden Ridge, that leads to the ice-gleaming pinnacles of Mastery!


Not enough quantum in there.


Congratulations, you won a Dunning-Krueger!


You have found the boundaries of the box, and anything you find outside the box will be judged against everything inside the box. There are a lot of people inside the box, and the box is small, so they make a lot of noise. When you get outside of the box you need to also get away from the box so that you can't hear the judging.


Wow, very nicely put.

> ...also get away from [the people in] the box...

This may be the harder part. I consider some of the people in the box to be friends. But then again, if I think about it... maybe they're outside the box too, but we're on opposite faces, and so close to it that we are still looking at each other _through_ the box.


Interestingly put. Sounds poetic.

So here I am, with the map of the boundaries of the box finally taking shape. Now the question is, how do I exit the box? I'd like to walk around on the outside and check it out.

Also, is leaving this box even a good idea? What if everyone left the box at the same time? Would the world collapse then? (I can't help myself, I tend to be interested in the global view as well.)


Well, that's where universal basic income has some validity.

It's a very nice idea.

It does have the potential to create localized unimpressedness though; the question is how powerful the temporarily-put-out groups would be, and whether the backlash would remove your power as well.

Money is power, laterally too.


Eventually everything becomes "just a job."

In my mid twenties this was hard for me to grasp. I was working as an electronics design engineer for a company that made low-end industrial controls. We had a customer who had what seemed like the dream company to me: he made robots for animatronics and lab applications. One day I was talking to him about how exciting the work was and his answer surprised me: it used to be fun in the beginning but after doing it for a few years, it was just another job.

I work with wireless sensors now. Yes, it's technically interesting, but it's pretty boring.

Why? I've discovered over the years that I am far more excited by making customers happy than by doing technically interesting work. I've come to see the technology as a means to an end, not the end in itself.


I wonder if there are some people who are exceptions.

I worked with an software developer at my last job who was incredible. He seemed to have a strong interest for the technology, no matter what technology that was. At the time, it was iOS, and he was an absolute master of iOS. I was constantly impressed by his attention to detail and emphasis on quality, well written, technically challenging code.

I've loosely followed him since, and he seems to be absolutely crushing it wherever he goes. He's spanned many different roles and seems to do enjoy taking on new challenges in the form of different programming languages / platforms.

When I think back to him, I remember someone who seemed to just love programming. In a way, he was like a Robot. It doesn't appear to matter much to him what he's working on, or if it's "fulfilling" in the ethical sense.... He just enjoys the process of coding, and being damn good at it.


>I've loosely followed him since, and he seems to be absolutely crushing it wherever he goes.

Question - is his management crushing it as well or are they crushing him? Is he good at standing up for himself and not letting management crush him?

I think a lot of enthusiastic and brilliant people get destroyed by their managers exploiting them. So the individual goes from crushing it to getting crushed. Management really has to enable that kind of person to succeed.


> Is he good at standing up for himself and not letting management crush him?

Yes. This. He was very, very good at standing his ground and asserting that his time and effort was being spent well.

Multiple times I witnessed management clashing with him over something. Usually he felt like more time and effort needed to go into a certain part of code. Rather than just "get it done" he took pride in his work and wanted it done RIGHT.

In general he was so good / fast that he could get it done "RIGHT" within management's expectations. But occasionally he would take on a big chunk of work, and management would try and shut him down. 9/10 they failed, he would do the work, and a damn good job of it.


Interesting point. Can you elaborate a bit on what you'd expect from a manager to help that person succeed? Is it mostly case-specific?


I can tell you that for this particular person he needed to be silo'd and given time.

A good manager would realize that his quality of work was top notch but that he was at times difficult to get along with. He was a perfectionist who held those around him to the same standards, and that often clashed with the business needs and even sometimes other teammates. A business generally isn't concerned with the product being perfect, they're more concerned with it getting to market on time.

So my suggestion to any manager that has an employee like this: Value him for what he is. Put him on MISSION CRITICAL tasks, where you need a rock solid implementation. Let him work for 2 weeks without interruption.

For other tasks that are perhaps not as "critical", throw other team mates at them.


It's always case specific, but it usually involves the manager supporting them by providing time and/or space. rubicon33's example and response is a great one. Put them in a situation where their strengths can be well utilized and the effect of their weaknesses minimized.

Also, not everybody has the personality or energy to constantly stand up for themselves. A lot of people will eventually crumble or leave. Don't make it so the only way the employee can do their best (e.g. what rubicon33 describes) is if they put their foot down and scream.


>Why? I've discovered over the years that I am far more excited by making customers happy than by doing technically interesting work. I've come to see the technology as a means to an end, not the end in itself.

100% agree. I'm a Data Scientist and I'm supposed to have one of the most exciting and sexiest jobs in tech. But after many years of doing this I've come to realize that working with good customers and seeing them happy is much more rewarding than playing with the latest machine learning thing. New tech is just the thing that makes it easier to tackle a customer use case.

There's a strong relationship between the quality of the people I'm working for and my sense of the work being interesting. If the people I'm working for are unrealistic a-holes no amount of technical novelty can make up for that.


I've seen this sentiment many times here on HN. I wonder, who are your customers exactly?

At one of my previous jobs, "my customers" were the managers of some company who asked managers of the company I worked in to deliver some software that will be sold as a part of a software package, to be used by someone downstream. I don't know who ended up using my work and how, because we were isolated by several abstraction layers from that. I did care about the happiness of those people, little I knew about them. But I couldn't care less about the happiness of our customers - a company I didn't hold in high regard, with managers not being particularly helpful. I suppose I did get some small sense of satisfaction when their managers told my managers that the work is good. But that was it.

So, are we talking about happiness of customers, or happiness of people actually using the product? Those are very often different groups. Or, in other words, are we talking about finding happiness in generalized servitude, or making people's lives better?


I was referring to people who were actually using the product. I've had a number of jobs in my life, including being in the services division of a product company and also in an internal consulting team of an extremely large non-tech company. I would typically interact directly with the people who are using what we were building. So I could see exactly what they needed and did not need (despite what they said they wanted) and manage that so they were happy with the end product.

I've also worked in situations you've described. My only interaction with the end user is through layers of middle management. I found that environment to be extremely demotivating and certainly no direct sense of satisfaction. One of the small benefits of being a Data Scientist right now is that a lot of managers don't really understand what it is I do so I get some interaction with the end-user from a requirements and solution validation standpoint. But I suspect in a few years Data Scientists will become invisible cogs (like everybody else) in the Enterprise IT machine.


Personally I work in the health tech space - specifically a pharmacy. Our customers are people who are able to get cheaper medications and better health help and pharmacy technicians who are more productive due to our software. The job is technically just Django/CRUD with some integrations, but the impact can be fulfilling.

I don't think you can get that kind of satisfaction in B2B software as a developer (only a salesperson/exec).


What are the thing that is intresting ( as per your opinion, if you are willing to share? )? I mean not everybody will get the job they like and it will be the boring thing to do ( but, still we have to do this boring job! ). But, life shouldn't be boring and it should be beautiful and enjoying.


The interesting thing isn't the technology, it's what the users/customers are doing with it. It's how it improves their lives, simplifies their business, enables them to build other products and increase profits, etc.


I personally think the people working on things like database and filesystem performance are doing really cool work. Any time you're taking conference papers and turning it into code to solve a particularly hairy problem... that's pretty cool.


Dude I got you.

Two kinds of "work": work that gives you money, and work that gives you value. They are not necessarily the same one.

Most people have to work for money. The best we can do is to gather more "money" (or resources). So that you can dedicate more of your time to generate, as you said, "interesting outcomes".

I recommend the book "Your Money or Your Life" by Vicki Robin. I learnt a lot relevant ideas from it.


> Maybe I'm just realizing something obvious that parents should have taught me when I was a kid. I don't know. Maybe it was wrong of me to seek meaning in the things one does? Maybe that approach is no longer supported by our civilization?

Ouch, this resonated. I've been walking this path with you.

Sometimes I make my own food. Or grow it. Or pickle it. It would be more "efficient" to buy such food in many cases. But if it gives me pleasure, I trade my time to do it.

My opinion: the point of life is not to acquire so much money that you can avoid doing any difficult things and wrap yourself in a cocoon of comfort. The point of life is to find your own good life and live it. That will entail some difficulties (at a minimum the difficulty of seeking your own definition of the good life, which is hard!). You may find that in your work (lucky you!) or you may have to work to support yourself and find this good life in other areas.


I've favorited more comments in this thread than anything else on HN ever. Thanks for the great thoughts. I can add tangentially that these questions, these considerations, were pursued almost maniacally by David Foster Wallace, especially later in his life. You may find satisfaction especially in his last, unfinished novel, The Pale King, which purports especially to treat the immense spiritual gravity that he thought pertained to boredom itself, the awful tedium that so many of us have to suffer in the modern marketplace. Not, like, the boredom of having nothing to do on a rainy Sunday afternoon, which I don't think exists anymore; more the ugly struggle to, as you say, find a meaningful life amid meaningless work and interactions.


Thanks for the reference, I'll look at it.

When I wrote my edit to the comment, I didn't expect much reaction to my confused ranting. I was surprised to discover it resonates so strongly with people here. I guess I'm nowhere near alone in thinking those thoughts, and going through this process.


> abstract everything away with money

This is the lens through which von Neumann and Morgenstern saw all of human behavior, and their "rational" economics has been hugely influential in public policy. I use scare quotes because I disagree that the approach is rational -- many things in life can't be measured in dollars, not even dollars! (E.g. you can't compare a dollar today with a dollar ten years from now. Regardless of your discounting strategy, that money is going to mean something different to you in ten years.)

Your position is a great example of this phenomenon -- there's not really any amount of money that can compensate for a lack of inspiration at work. You might be willing to give up on interesting work for enough dollars, and the rational economist would say that this is the measure of how valuable interesting work is. But there's a long history of studies, notably by Kahneman and Tversky among many others, showing that framing human motivation this way leads to all sorts of paradoxes.

So yes, we have a strong tendency to measure everything with money -- this outlook is deeply embedded in our economic and political systems -- and it makes people miserable because it's a terrible way to account for human happiness.


"I use scare quotes because I disagree that the approach is rational"

Agreed. For the most part, going to church is not economically rational. For the most part, having children is not economically rational. For the most part, being monogamous to one's spouse is not economically rational. For the most part, patriotism to one's country is not economically rational.

In a slightly different sense, going to space, or colonizing Mars, would all be economically irrational.

I'm wary of a definition of "rational" that tends take all of the things that humans hold dear, and declares much of it "irrational".


I think there's something to the Hume quote about reason being a slave of the passions.


Hume was right. I recommend The Righteous Mind.

https://en.wikipedia.org/wiki/The_Righteous_Mind


We do innovate. What we don't do however, is giving everybody a job in innovation.

These days, one of the bigger thing the market rewards is writing a web-based CRUD that's 99% chrome, 1% of actual functionality. Extra points if you can get some user data to sell to adtech industry.

I don't think they are rewarded on the grand scheme of things. Software has always showed a winner-takes-all structure and most software disappear. Take for example the game industry. 15 years ago, you would have talk to anybody, they would have told you the market is mature and they are making money on making movie-based games. Today, most players (publishers, studios, etc) of that era have disappeared (Im too lazy to get the long list of publishers that are gone).

Also innovation can act in a subtle way. Take the iphone for example. People are more productive because of it. That means that hospital, universities, research labs, non-profits, etc, all are doing better jobs which means we cure more disease, teach, help and study better, etc. because of the iphone.

But yeah, if you dont work in innovation, then you work for the current "government", the current group-thinked direction made by some smart "politicians" (by "politician" I mean that guy who lick asses all day long, who goes always in the direction that's well accepted and who use words to seduce people and get what he wants). It's either innovate (rare) or maintain.

Maybe our civilisation has finally crushed my soul, and I noticed it just now. But it feels to me that the revealed goal of our market-driven world is to abstract everything away with money.

There is a passage in the movie "1492: Conquest of Paradise" by Ridley Scott that I love:

"Look outside, what do you see?" ask Colombus to some royal acolyte

"I see towers, I see palaces, I see steeples, I see civilisation. And I see spires that reach to the sky!" answer the politician contrasting with the wild america of that time.

"All of them created by people like me" say Colombus


As a Mechanical Engineer with solid math and physics background, using Machine Learning and Numeric Methods to substantially engage and improve product performance, I really feel like I won the lottery.


Congratulations!

I handicapped myself by going into CS instead of graduating some hard engineering degree (or biology). See also matte_black's comment elsewhere in this discussion. Programming alone is a tool in search of problems to solve, and the interesting problems are elsewhere.


Are you free to say where you work?


> pushing the humanity forward, or alleviating a social problem for some group of people

Isn't this what humans like to strive for? Making an impact, being remembered after death, thus living forever. That's one of the things a family (with kids) helps you get over, you know, the whole "living on through your kids" thing. If they don't end up as homeless drug addicts, it probably kinda works.

I've taken a job at a university two years ago. Pay is much lower than before. Haven't felt anywhere close to overworked or burnt out ever since, even though I've stayed until late at night occasionally when we fucked something up by deploying without any proper testing again, because hey, it's such a tiny change. I'm not doing frontier science or anything, we're just working on a custom netbooted Linux distro that also runs windows vms via qemu-kvm, for teaching environments. A lot of what we do could be dismissed as NiH-syndrome or creating solutions to problems that have already been solved by big companies, but as long as someone is paying for it I'm good with this job. Because there pop up a lot of problems or requirements that are just interesting to solve by yourself, actually not just for fun but for actual use cases. Nothing game changing for humanity, not for millions of people, but for some. And I will interact with them directly, and sometimes they tell you that they like the system you helped develop. That, and the fact that you're not in competition with your coworkers or another team or anything really makes for a great work atmosphere that I'm currently really enjoying. I don't know how long I can/want to stay, but for now I can say it greatly improved my overall happiness.


> Isn't this what humans like to strive for? Making an impact, being remembered after death, thus living forever. That's one of the things a family (with kids) helps you get over, you know, the whole "living on through your kids" thing. If they don't end up as homeless drug addicts, it probably kinda works.

I don't know. Everyone has kids. Having kids is technically making an impact, but I think that when most people say they want to make an impact, or to accomplish something great, or to change the world, they don't mean by doing something that almost everyone else does.


> I don't know. Everyone has kids. Having kids is technically making an impact, but I think that when most people say they want to make an impact, or to accomplish something great, or to change the world, they don't mean by doing something that almost everyone else does.

I guess that's what the "help getting over it" part was referring to. In your teens/early twenties you dream of changing the world, and after reality sank in, you do the next best thing and go for kids because you shape them and so live on through them, mission accomplished, impact has been made. Humans are great at bullshitting themselves. (Not trying to sound harsh or implying kids are worthless or anything, but it really seems to be a fallback plan for a lot of people)


Yup. Having a child seems to be the lowest common denominator of "having an impact", and it terms of improving anything around you, it's simply re-rolling the dice, hoping that your kid will end up in a position of greater influence than you. Having offspring is probably the best way to make (some of) your way of thinking outlive you, but you need to work on creating opportunities for your children if you want your way of thinking to impact anything around them.


> hoping that your kid will end up in a position of greater influence than you.

No, it's hoping that you plus your kid(s) will have more impact than you alone. Or that your kid will magnify your impact just by existing (which there is some evidence for if your chosen venue of impact is electoral politics, at least.)


Meaning is a process of its own creation, not a measuring stick. Often when people speak of meaning as though it were quantitative, they usually are referring to how much they help other people. Meaning is also interactive, it rarely happens in total isolation. If everyone around is constantly conflating meaning with monetary success, it's easy to feel confused and despair. Don't blame money, but rather look for bits of beauty in life and share them with people you care for. At least that's what seems to work for me


>... the revealed goal of our market-driven world is to abstract everything away with money

That's one mental model but it doesn't fit exactly with reality and there are others. See the Love & Money graph here for example. Not quite sure how that fits in with the job hunting. https://www.theatlantic.com/magazine/archive/2003/01/does-mo...


> alleviating a social problem for some group of people

Not sure what you mean by "social" problems specifically, but when you alleviate a problem for a group of people, they pay you, and that's what a business is.

I realized recently what a useful abstraction money is, because when money came about we didn't have the ability to create a massive blockchain keeping track of who did favors for who, and when. So it's a reasonable proxy for reputation and social credits.


What I meant by social problem for some people are things impacting their happiness and quality-of-life, reducing suffering, etc. Some examples to narrow down the possibility space:

- Make it so that people in your community have access to clean water. Surprisingly, it's a problem even in the most advanced countries.

- Contribute to something in healthcare that reduces costs, improves availability, or makes more people survive a procedure, an illness, etc.

- Make firefighting safer, or more efficient. Make it less needed in the first place.

- Make the air clearer. Make the energy cheaper. Make the roads better and safer. Etc.

- (Meta) make the market less ennui-generating.

I found that "what pays" is not a good proxy, because often what pays best is solving problems for a group of people, which also generate further problems for other groups of people. Usually, the benefits for the first group are purely financial.

To use a simple example - advertising. There's lots of people who would pay you for your work in this space, because your work will earn them more money. What your work will do downstream, however, is most likely one of those:

- It'll create more work for someone else to cancel the effects of your work; a lot of advertising is playing a zero-sum game, i.e. simply wasting natural resources and human time. (Conversely, often your work is only needed to cancel out the effect of someone else's efforts.)

- It'll disturb the market, promoting a worse solution over a better solution, leading customers to make wrong choices, and thus lose some amount of money and/or happiness.

- It'll add to the noise we all have to endure, also slowly eroding happiness.

Occasionally, you might end up promoting the right thing to the right crowd for the right reasons, but I doubt that happens very often ;).

Conversely to all of that, I feel that solving what I see as "social problems" pays less, if at all, again making "what pays" a bad proxy towards finding ways to address those problems.


Is your room clean?

It's a somewhat serious, somewhat tongue-in-cheek question. But if you need to clean your room, maybe you should do that first. Instead of having grandiose visions of improving things at large scale, prove to yourself you can improve things at a local scale and keep them that way.

If that sort of thinking is interesting, there's a whole book of it in https://jordanbpeterson.com/12-rules-for-life/ Though I'll say I got out of the existential and nihilistic mindsets differently, I don't feel like I have to wrestle with meaningness like I used to, before I ever heard of the author, I've just read good-sounding things from people who have read that book or have otherwise gotten themselves invested in the author's doings.

I suspect you've read this before but if not, point 5 might resonate with you: http://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2006... If you fit the mold and can't change your mindset then you'll forever be unhappy unless you manage to get one of those "interesting" jobs.


A good list. But we have no time to work on social innovation until the bigger problems of tongue detection are solved: https://images.anandtech.com/doci/12870/Screenshot_113.png


What about people with lots of problems and not a lot of money?

For some reason, I still think they have value and that their problems are worth solving, regardless of what the market thinks of them.


Solving them at scale can still lead to money. Sometimes they are willing to give you a little money, sometimes others are (governments, or even businesses if it can lead to profit for them. I.e., low income training + job search with recruiter fee could be profitable). Or if you're addressing the problem of they have little money, by giving them skills or opportunities, you can charge after you help them (i.e., many coding bootcamps that delay costs until you land something)


This still asserts that solving the problems of a poor person is worth less than solving the problems of a rich person.

Also, getting paid by the government to do something is decisively a non-market solution, given that the government gets its money through taxes.


I can provide examples:

Panera Bread gross revenue $2.8B, McDonalds gross revenue $22.8B

Nordstrom gross revenue $14.4B, Walmart gross revenue $500.3B

Payday loan revenue in the rich burbs roughly-zero, Payday loan revenue nation wide mysteriously between $6B and $46B depending on data source

Now can you get a cool and trendy very high social status hipster job to brag about on social media in the coolest office with only the best "personality fit" coworkers helping poor people, oh heck no you'd be savaged here if you admitted to working for McD, but the market of poor people products, at least in some areas of business, is about ten times as large as rich people products.


There are a hell of a lot more poor people than there are rich people.

It’s also a hell of a lot easier to take advantage of them, given they generally lack the education or resources to protect themselves from predatory businesses. I struggle to think of McDonald’s as “helping” poor people. It’s putting food in their mouths, yes, but if McDonald’s were more concerned with the health and financial wellbeing of their customers as opposed to exploiting psychology to get as many people to impulse buy as much junk food as possible it would be an incredibly different company.

The goal of a company is not “help” its customers, the goal of a company is to exploit any and every untapped source of wealth. If it can do that by hurting someone who doesn’t know better, it is going to.


> Payday loan revenue in the rich burbs roughly-zero, Payday loan revenue nation wide mysteriously between $6B and $46B depending on data source

Payday loans may "solve a problem" but they do it in a predatory and exploitative way.


Your first statement seems to imply that the market is flawed (because, obviously, the willingness to pay for something is going to be higher for someone with lots of money than someone with little), the second seems to imply that there is something inherently beneficial in focusing on 'market solutions' as you define them. These views are rather at odds with each other.

But, I'm not trying to comment on either of those, just that you can create utility for a poor person and still have a viable business. If it relies on government for funding, because society has decided it's worth funding that sort of work, so what? We have an entire defense industry in the US based on that idea. Most of our education is too. Other countries have their entire healthcare systems based on that idea. You can decide you don't want to be paid directly by taxed money, but that's on you, not on the viability of such a model.


To be clear, I’m criticizing the common notion that the market is inherently beneficial or that it contains the solutions to all problems (though I don’t mean to accuse you of holding such views). Some problems necessarily require non-market solutions.


Mother Teresa's contributions to poor ppl of the world were minuscule compared to Bill Gates.


Don't forget the damage done to everyone (incl. poor people) by Gates' predatory business practices.


Or the damage done to everybody, particularly the poor, from MT's "suffering is Christ like" mentality.

My point is, you have to compare them entirely. At least Gates seems to have moved into the "good" quadrant later in life.


That's not the only way to make money, though. A big problem with modern corporate capitalism is how abstract everything is: you're rarely getting paid directly by someone you're doing a favor for. Now it's more like, the corporation you work for holds money in investments, which gain value as the stock prices of an actively managed portfolio of other corporations changes, and a portion of that value is paid out as salaries to employees, who work to raise the stock price, so other corporations will buy more shares of your corporation, which raises the stock price of your corporation…


How about doing some academic work?

With the explosion of NGsequencing there's no shortage of data or data-magician positions, and there's many challenges with social impact


I admit that - given my life situation - I'm biased towards jobs that at least have a chance of also letting me put bread on the table ;).

That said, I'm also having hard time separating academic work that helps things from that which just adds to the noise - grant-chasing, paper-generating studies. Any advice on that?


Well there's some noise like in everything else in life, but I don't think there's any empty studies (okay there's even a few cases of lying which is sad beyond words but thankfully they are very few i think).

Why does this noise bother you? Besides, keep in mind that the grant-chasing doesn't happen because of greed, it happens because people want to continue doing science and that's the only way to maintain an active lab.

I could shit on the state of academic publishing for days, but at the end of the day, there is an overall positive direction in this 'academic endeavor': the creation of knowledge.

I find this direction much lighter on my consciousness than "generate value for the shareholders"


Fair point.

The noise bothers me for two reasons. One, because grant-chasing to keep the lights on means you end up having to prioritize busy work over important problems, which wastes lives of researchers and slows the scientific endeavour. Two, because high noise makes it more difficult to find interesting/important results of other people's research.

Maybe I'm just wishing for unachievable perfection in this space.

> I could shit on the state of academic publishing for days, but at the end of the day, there is an overall positive direction in this 'academic endeavor': the creation of knowledge.

That I agree with, and I definitely complain more about the private market than scientific research because of that :).

> I find this direction much lighter on my consciousness than "generate value for the shareholders"

True, I feel the same.


Funny thing- I'm a bioinformatics making 70k and with a family. I'm ready to leave the space to make money. I'm at the point where I wouldn't mind something less altruistic -it's all the same uninteresting work. Crazy to read your stories of wanting to go the opposite direction.


Crazy indeed. Grass is always greener then? Your 70k in bioinformatics is something I'd drop my current job in a heartbeat for!

I'm very interesting in knowing what are your motivations to switch towards "something less altruistic". Could you share some more details? Maybe it really is that no matter what you do, no matter how meaningful, it'll always become a boring chore? Maybe I didn't have an meaningful job yet, so I'm not disillusioned?


I think the best way to describe the issue is to consider why people claim being in healthcare is bad (try googling around for whether it's worth being a doctor because you feel called to help people). Healthcare (and biotech feeds into healthcare) is very heirarchial, so advancement gets blocked. There are better ways to find meaning than the field you work in. Like all technology jobs it's viewed as grunt work compared to MD/PI/regulation visionaries. My main motivation is cash and experience that are difficult to get in an underfunded and sinking industry; genomics is really struggling to float as science progresses to new fields not out of the ninety's. I feel like someone stuck in a third world country watching America glitter into the sunset. Sure I make very interesting products but it is boiled down into the same day to day mundane work, but for less pay. We might get a thank you letter from someone thanking us for extending their life and that is awesome for someone like me who is not their doc. But I'm like a firefighter- utterly unappreciated by everyone else no matter what interesting piece I work on. And it's hard to save much for retirement. I haven't felt the void you feel. I would rather make a less drastic but equally important impacts on people in my spare time like as a coach- think of Maslow's heirarchy of needs and how healthcare inverts parts of it.

I see in this thread lots of people who have their security level established and are now looking to fill their social level. I feel inverted on the subject and let's just say Maslow's order matters.


As an academia in CS, I use two filters:

* top-tier peer-reviewed conference.

* paper abstract and introduction.

If I am not convinced that the problem is interesting by introduciton, I will skip it.


Any paper that generates or analyzes draft genomes is a waste of money.


I’ve been out of the genome-sequencing space for quite a few years now, but that seems a pretty strong assertion and I’m curious about your rationale. Is it that the analysis will need to be re-done in future? Or do you think the space is saturated?


I left the game in 2015, but even then third generation sequencing could close bacterial genomes for < $1k. Long reads make it trivial to detect all sorts of stuff (sample mixup, contamination, phage activity, in vitro evolution) that goes unnoticed with short reads. Since the conclusion of large scale draft genome sequencing papers always seems to be 'we need a bigger sample size' anyway, I feel the money would be better spent on studying individual strains of bacteria.


Ah yes, I was mostly out of it before short-reads-only genomes were a common thing. “Draft” meant a slightly different thing in the Sanger sequencing days.


This is HN, assuming you can code, you have the ability to alleviate social problems through coding either through your own startup or side projects. Don't let that fire die inside of you that wants to give back and help push humanity forward, life is too short to be miserable working for someone else (as a programmer that's in demand).


I'm not very clear on what you think a job is for. I understand a job as a way to trade your service for money and the point of money is to exchange it for other people's goods and services, like the kinds of goods and services we need to not die starving in the street, and are incredibly inefficient to provide all by ourselves. Or to send our kids to college. Or to pay our taxes so that the government can continue to provide its services. Etc.

I mean if you're a programmer and want a job fighting cancer, maybe pick up some ML skills and find a way into that industry. But short of getting your PhD in medicine or a law degree fighting injustice, we're all just a different sort of coal miner providing the things society needs to keep chugging along. And there's no shame in simply being a productive member of society. As far as societies go, we're better than all that have come before.


ML isn't really what's being used since it's too unreliable. The reigning models are all differential equations based, using ODEs and PDEs along with the clinical side using PBPK with maximum-likelihood estimation.


> But it feels to me that the revealed goal of our market-driven world is to abstract everything away with money.

Yes. The most rewarding thing one can do is to figure out a way to change that.

It's sad that our brightest minds don't want to understand this, and that they'd rather think about how to make people click ads.


But this is what kills me when companies get so hellbent in their IP assignment/agreements when bringing in a new employee that I might create something. Provide me the environment to do so at work or allow me to do so on my own time. The former isn't happening, so…

The reality of the situation is that, if I'm not so drained from the mind-numbing soul-crushing CRUD work that I feel like doing more when I get home, I'm sure as hell not going to work on anything remotely related to my employer's line of work. I get quite enough of that at work. I'm going to work on problems that matter to me, and that seems to be stuff that really doesn't matter to my employer.


I think you hit the hammer on the nail.

Boring problems are quite manageable when they are also important and meaningful. The general lack of purpose most of us find in our jobs (apart from 'earning money') is the real problem.


In my experience it starts with relationships. Co workers, partner, parents etc. Then sometimes you crush an interview at a place that already has scale and you are offered a pool of problems to work on, and you pick the most important but also probably scariest one. The types of multi year results that come from that make for cool stories.

For instance, patient outcomes from a feature you built in an electronic medical record get published in major newspapers.


Interesting work is done by open source hobbyists at night. What remains is what you get paid for.


Who wants to work on monetizing open source by working hard to create a reliable way of paying the project creators to do the interesting work as what they get paid for?

Now that sounds meaningful. Email me if you agree.


Would you mind elaborating on what you had in mind?

It's a good idea. There should be an easy way for a small team to capture the value that their open source project creates. There are a variety of crowdfunding platforms like Patreon that are doing something similar. CodeMill and Bountysource are paying developers directly for adding features.


Interesting idea.

Maybe a software repository site, where users must watch a 30 second commercial, before they can download the software. Then a percentage of the profits made from selling that commercial is shared with the programmer.

Sounds like sourceforge, but I don't know how that site is monetized, or if they share the revenues with the project creators.


I worked on that for a while. If anyone would like to join me let me know.


My overall happiness was so much better when I was working for my university's pharmacy school making websites about where to find Naloxone and heroin overdose info than currently at my huge engineering firm company making twice as much. I'd love to find a job doing simple web development for a nonprofit.


Split time. Get a side gig. I have a friend who spends 4 days a week at the dental school fixing catastrophic oral pathology problems for the uninsured, and gets paid a pittence. He spends one day a week at a posh private clinic and pays all the bills for the month in the first week of the month. The following 3-4 days of posh work in the month fund everything else.


I've been there and the grass isn't always greener.


I was in the same place 5 years ago. I've decided to quit and find something worth doing not just making more money. Since then I'm working in a support role in cancer research for not exactly faang salary but it's definitely worth it.


While I can certainly understand your sentiment, I would encourage you to not give up so easily... while it might not be so easy as to stumble upon meaningful jobs there are certainly opportunities that can be created and developed. For example, if you go an entrepreneurial route you can find interesting and meaningful challenges and start to work on them in your free time and see how to push these forward over time.

Another recommendation is to have a look at 80000hours.org which is a great resource for finding the best work opportunities out there! I think they even provide some coaching :)


While I don't agree with Marx, your sense of ennui seems to reasonably represent what I understand to have been his concepts of reification and alienation.

One might ask: what does the alternative look like? From what I can tell Marx is a bit wishy-washy on that point.

Hayek more helpfully explained that the market provides a mechanism for determining value, not virtue. That it works, but doesn't uplift. And that trying to force it to will leave with neither -- you will need to find your meaning in something else.


> the market provides a mechanism for determining value

The market's notion of value is weighted by wealth: making coffee for the rich is "valuable", meeting the basic needs of the poor is not "valuable." This makes the market notion of "value" very different from just about any other notion of value in the world. If you muddy the distinction, or let someone else muddy the distinction, markets become almost tautologically awesome, because the market notion of "value" is something that markets are very good at optimizing.


> making coffee for the rich is "valuable"

There's a lot of privilege talking about what is and is not valuable, but its worth pointing out that its only a very recent, probably very temporary, phenomena that coffee is all about rich people massively overpaying in public as an act of conspicuous consumption at Starbucks, for some decades previous McDonalds and other fast food sellers made more total money selling coffee than hipster coffee shops.

There are some market bifurcation events going on, as relates to income inequality only increasing over time. For example the number of independent bicycle shops has been dropping for decades while average revenue and profit increase... thats because the market for $2000 adult bikes is extremely high social status but also very small, leading to the inaccurate observation that "there's no money selling bikes to poor people". However, sales and revenue for poor people bikes at department stores, walmart, etc, are really pretty good, its just that you can't buy a poor person bike at a cool trendy rich hipster independent bicycle store, only from extremely uncool mass retailers. There are absolute tons and boatloads of money in selling bicycles to poor people; the money is inaccessible to the "cool kids" is the only problem.

Food deserts are a similar thing; the point of talking about food deserts is to point out the individual noticing them is a really cool person.

Perhaps a HN car analogy where nothing could be cooler on social media and more valuable than bragging about selling Tesla cars to very rich people, but you won't make even a tiny fraction as much total revenue as the incredibly uncool act of selling commuter SUVs to suburbanites.

Being cool and trendy on twitter is important, but you can make many times as much money by being very uncool. To some extent the whole meta overall topic is conspicuous consumption at its finest, along the lines of I'm rich enough and privileged enough to pretend deeply uncool (as defined on social media) market opportunities literally don't exist.


My fondness for alliteration backfired.

Hayek understood that what we think about prices and what we think about ethics are distinct things. He didn't see rightness as flowing from markets. He saw it as a discovery process for allocations of resources.


"Ennui". I like the word. Thanks!

> One might ask: what does the alternative look like? From what I can tell Marx is a bit wishy-washy on that point.

I have no clue either. But it feels to me as if we're turning humanity into a single superorganism, with each one of us being just a cell, except all those cells have brains capable of wishing they'd play on the same level as the superorganism.

Related: I've never had a libertarian bent. I'm known to argue for coordination over individual freedoms. I frequently wondered, just what is it that makes many people say that we're in chains, and (here in the West) we have so little freedoms left. I think I finally realized where this could be coming from.

I've been spending some time recently going, in my head, through a list of activities I'd find exciting. I quickly discovered that most of them are either impossible or illegal, especially when living in a city. Someone (I think pg) wrote that as we entered the industrialized age, we had to invent the whole fake, hollow thing called "exercise" to replace what we've lost in the change of lifestyles. I'm starting to see it as more general pattern - we're losing many more things we could do, and replacing them with structured activities available on the market. They're similar, but also feel fake to me.

> Hayek more helpfully explained that the market provides a mechanism for determining value, not virtue. That it works, but doesn't uplift.

That sounds about right (I suppose I should start reading the foundational texts of economic thought at some point). I do not deny that the scheme I described, in which your only role in society is to pick something profitable to do, doesn't work. It generally does (with all coordination problem caveats of the market in mind). But the meaningful work, the virtuous work, the uplifting work, seems to be distributed scarcely and randomly throughout the market space. Much like in the past, you got to be a king or a peasant depending on the lottery of birth, nowadays you can be involved in civilization-changing work, or forever toil on the margin, depending on random chance. Is there even a place for fining meaning in contributing to society? Is there any agency left as to how to contribute? Are we supposed to seek either of it?

I have no answers here. Only a topic I'm trying to think my way through, hoping to find some meaning on the other end.


Have you read Zen and the Art of Motorcycle Maintenance? You might enjoy it. A thoughtful book (semi-autobiographical) about a man searching for meaning, thinking-through-it-all while riding his motorcycle across the country with his son.


Long time ago, I dropped it somewhere near the end (random life circumstances). Thanks for reminding me of it - I recall it as being pretty insightful. I'll read it again.


The Japanese have some takes on this subject. I'm far from an expert, I only have a passing understanding, and I also have no answers, but if you were curious you might look in to Ikigai.


I don't have answers either. I just chase books and try to cobble them together.

I wish you luck.


Thanks.

I'll be sure to let HN know if I ever come to any lasting conclusion.


For some Marxist readings on the alternative, I recommend Marx's own Critique of the Gotha Program and Cockshott and Cotrill's Towards a New Socialism, which seeks to develop a basis for a post-capitalism society with a cybernetically planned economy and direct democracy.


Red Plenty is an interesting history of the unfollowed possibilities for these ideas in the history of the USSR.


Marx is vague and rightly so. I think the situationists took a similar approach, which is also their main criticism. They do not describe what the utopia would be not really the steps, they instead say that it's a state that occurs when people live according to their desires. That to me sounds like "do what thou wilt" where the task is to find out what our desire, our will is.


Interestingly, I remember 'Eliezer having some good insights about "how to build an utopia" in his "fun theory sequence". I read it years ago, but I started re-reading it last weekend:

https://wiki.lesswrong.com/wiki/The_Fun_Theory_Sequence


If Kołakowski is to be believed, Marx's view of the post-revolutionary world has a somewhat mystical flavour stemming mostly from Hegel. It is the immediate roots in Hegelian philosophy that makes it, in practical terms, wishy-washy.

What has always tied Marxism in knots has been the tension between waiting for the inexorable laws of history on the one hand (and sometimes trying to give them a hurry up) versus on the other hand agitating for reforms. The former see the latter as delaying the revolution. The latter see the former as something between dreamers and jerks.

I think that history, having been somewhat lawless after all, makes the reformers look better.


Do you think that the more left-accelerationist factions have any meaningful influence compared to more reformist organizations like the DSA? Is it different outside the states?


I am not qualified to say.


Can relate to this 100%, at the moment I'm trying to enter teaching, for me that feels like a good focus if you aim for "interesting outcomes"


Not to sound cliché but that is resoundingly the primary symptom of late stage capitalism. Commodification of all; nothing is sacred, not even your own life. This has actually been the state of affairs for quite some time (at least from 18th century) but the ever increasing creep of wages, which previously shielded high wage positions from this reality, are becoming increasingly transparent as information technology becomes more prolific.


Thank you. That was beautifully put.


> abstract everything away with money

The thesis of capitalism is that acting only in self interest is good for the collective, i.e. your own capital is all, i.e. we can abstract everything away with money.

I think you're completely right about the problems with above dogma and hope that you don't stop looking for a way to do something you find meaningful.


Are you me?


I'm you from the future. I built a time machine out of sheer desperation in hopes of putting your (mine) brain on this topic earlier, so that we can find a way out of this state.


Step 1. Tell more people about this. As more people realize the sheer banality of the system, we may find better, interesting solutions

Step 2. Push for creating more and more social infrastructure. So if people want to, they can choose to not be part of the box


> Step 1. Tell more people about this. As more people realize the sheer banality of the system, we may find better, interesting solutions

I do that a lot on HN. I've been considering blogging on this topic, but I feel I suck at writing, and people may not want to listen to confused ramblings of a random programmer -.-

> Step 2. Push for creating more and more social infrastructure. So if people want to, they can choose to not be part of the box

I'm a noob at that. Need help.


Joining NGOs in your area is a good start. Many of these folks have good intent but lacks tech know how. You be surprised, how little can make a big difference


I was in the happy position of finding a job (post being a failed academic) doing stuff at the intersection of architecture and algorithms (high-speed regex implementation) and getting to to this for 11 years straight (2 years as a researcher, 5 years as a startup CTO, 4 years as a Principal Engineer at Intel). Got a decent if not ginormous exit too, which was nice. Also got to IMO change the industry - Hyperscan (github.com/intel/hyperscan) is used in a lot of places.

This nice run has come to an end for me and my team and it's made me realize that getting to work on nifty, complex algorithms and do real CS is not the default. To say the least.

I'd like to try to figure out how to do it again: the "algorithms startup" is a fun thing to do. You aren't going to be raking it in as having the 'nice library to do task X' doesn't allow you to capture huge amounts of value relative to the people selling boxen/UI/SAAS/etc. that wraps up your library. But you can work on a decent scale.

I am thinking about blogging about this; generally I've been sticking to tech stuff on branchfree.org so far but having done this successfully once makes me wonder if it could be done again.


> I am thinking about blogging about this

I'd probably read it.


I would read as well, please write about it!


Me too.


Well - thanks, guys. If you bookmark https://branchfree.org/ perhaps eventually I'll stop wibbling on about bits-to-indexes and pattern match algorithms and SIMD long enough to post some experiences and some thoughts on the modestly profitable world of the algorithmic startup, from an "expert" who is batting a massive 1 out of 1.


Good luck! And don't forget to submit those posts to HN when you write them!


... and done.

Submitted to HN, and on my blog at https://branchfree.org/2018/06/12/some-opinions-about-algori...


Ah! Inspiration. I'm a Sydney-sider and though I'm relatively satisfied in my current position, I'm having a difficult time finding the next job that could satisfy my computer engineering background. Software engineering has become a byword for web development/Java, (or selling your soul to work in HFT...)

Where would you like to work next?


Sydney is a relatively bleak place for getting a good selection of tech jobs. There are the obvious BigCos, then... not much. I may have to Make My Own Fun - another startup?


You could do your own startup but it’s really hard to do it in Sydney because even though the economy is doing well you don’t get the funding. What I mean by that is just not seed but all the stages required to be a behemoth.

US has it. They live and breathe tech. 5 largest companies by market cap are all Tech. They eat other tech companies for billions of dollars. Everyone and their dog in SV has a startup on the side. There are conferences on how to invest in startups. Some people just exclusively invest in startups. It’s crazy.

Sydney also has a tech brain drain. I lived in Sydney for 10 years and most of my friends moved out here too. Just better opportunities.

Sydney is such a nice place to build a startup though. Sucks that the ecosystem isn’t there. Vancouver has a similar problem too.


There's definitely way more opportunity in SV - obviously. And the tech brain drain is both overseas and to the disproportionately huge local players - Google HQ in the valley is one player among many big names; Google Sydney is an insane behemoth hoovering up the talent.

It is a nice place to live, though, and the Atlassian guys proved it's not impossible to build a pretty kick-ass startup here. There's also a pretty decent pipeline of smart people around. Part of my hope is that you can do smaller-scale stuff here without the Go Huge Or Go Home mentality of SV. What would be interesting is to work on things that interest me, make some money and influence the field. I don't think SV is mandatory for that.


I am thinking about blogging about this;

Yes, please do.


> but having done this successfully once makes me wonder if it could be done again

I think it's all about the motivation and setting your expectations that you won't make it every time.


This sounds like Starbucks, coffee and coffee beans.


We are developing a matter compiler. We are working on designing molecular Lego to assemble them into new catalysts, therapeutic compounds, atomically precise membranes and sensors for proteins and small molecules. The goal is to make molecules that can do everything that proteins can do and that can be designed by human beings with computer assistance. We've developed a programming environment with a custom compiler and Common Lisp implementation for designing these molecules. We are looking for programmers with chemistry experience. https://www.youtube.com/watch?v=8X69_42Mj-g


I've been to your talk in Kraków on the European Lisp Symposium! I love what you're doing!

Do you have any updates on that water-filtering molecule you showed us then?


Yes - but we aren't ready to publish yet.


Great to hear; I'm now impatiently waiting for new papers or related talks! Don't forget to post it here when you publish!


That's very cool. How do you debug these programs? What is the molecular equivalent of "format"?


That was a very interesting presentation. Great work, is there any way to follow this (besides following your wok on clasp)? You mentioned carbon dioxide. Do you have some ideas about molecular motors and creating solid carbon out of carbon dioxide? Or hydrocarbons?


Does one have to be a graduate student in chemistry?


do you do remote?


It depends on the skills and our needs.


Can I send my resume to you?


I generally like what I do.

I stay away from webdev. I did a couple of small projects but the web was just an outer API, the main work was done by native code running on CPUs or GPUs.

I stay away from enterprise systems, or fin.tech, or ad.tech. I removed enterprise-targeted keywords from my resume, Java, J2EE, SOAP, SQL. I have some experience with them from my early career but I don’t want to use them anymore.

Also, for many years I’ve never worked in/for huge companies, i.e. google/amazon/microsoft scale. My employers/clients are/were mostly small to medium companies.

What do I do? Almost everything else. Native desktop, native mobile, embedded, GPGPU, robotics, GIS, videogames, CAD/CAM, streaming media. Many startups, and small to medium companies, have problems to solve that I find interesting to work on.

There’re still boring parts in my work. But because of my experience I usually find ways to minimize the time I’m spending on them. The most generic advice, pick the right tools.


You have to be really GOOD at your field to have this freedom. Good for you, dude.

I also like to abstract away the non-sense part of a problem, so that I can focus on the real intellectual puzzles.


> I also like to abstract away the non-sense part of a problem

Some boring problems need to be solved anyway, and they can’t be abstracted away. Just when you’re picking the right tools, it shouldn’t take too much time.

For example, that CAD/CAM app I’ve developed has a lot of very interesting algorithms inside. But the software still need to appear on the user’s PCs somehow, i.e. we needed an installer. I’ve picked http://wixtoolset.org/ It’s mature, well supported, first-party i.e. made by Microsoft, open source, integrates nicely into visual studio. Because of these things, I’ve spent less than a week in total over the course of 1.5 years working (=develop, test, and support combined) on the relatively boring installer part of that software.

The installer was just an example, many commonly encountered boring problems already have good solutions. E.g. need RPC, pick .NET and WCF. Need to store structured data, pick the highest level library that fits other requirements (despite I generally don’t like SQL, I still know it and I’ve used sqlite a couple of times when it fit well). Need to expose JSON HTTP API on MacOS without much performance constraints, pick Python + CherryPy, the Python is sufficiently high level and it’s already installed there. Without picking the right tools, I’d spent a lot of time solving these boring problems.


Yeah a good point.

I think the issue here is order: solving which first. Algorithms motivate you, Handling interface demotivates. So start with the motivator.


I work at a boring company but I manage to get interesting projects to work on. I left CRUD behind about 5 years ago and I couldn't go back now. I just don't find most business logic problems interesting enough.

The transition for me came when I started a new job and my first project was to fix a slow batch job. Then I managed to get a second performance improvement project and soon I was the performance guy focusing entirely on performance projects. I really loved it.

Then through side projects targeted at problems I saw at the company, I built valuable tools using new open source tech and I got made tech lead of a new platforms team, solely focused on resolving technical problems and improving the system. Since then I have been an R+D engineer and now starting as a big data developer at the same company.

I am no genius, failed my interviews to get into big tech companies. I am a pretty big fish in a pretty small pond, I am known as one of the best technical guys in the company, which opens many doors and gives me a lot of freedom to move about inside the company and get some of the most interesting technically focused projects.


I think that actually "boring" companies with "boring" products often have more interesting problems.


It took several years but I finally found my dream job.

I work as a software engineer for an ISP. We're a startup and so of course our mission is to disrupt the industry. The great part is we're actually doing it!

Fun stuff I've done so far:

- Wrote a library to find the best available subnet given our set of IP blocks, set of existing subnets, and the desired subnet size. This may not sound like a big deal, but we've shown our IP block utilization to other ISPs and they are blown away that we achieve a perfect 100% utilization of each block. (Typically at ISPs of our size this is done manually and so there tend to be a couple leftover subnets in each block which are too small to use).

- Wrote a monitoring system for OLT hardware which A) does not provide out-of-the-box monitoring and B) does not have an API. We actually managed to build a robust system on top of its CLI interface. This is huge for us. If there are hardware or fiber problems, or if a customer simply unplugs their modem, we know instantly. It can even pinpoint where the problem is.

- Wrote a system which is able to talk to our OLTs, core switches, core routers, and customer modems to do things like provisioning or upgrading/downgrading our customers' bandwidth. Again, there is nothing even close to an out-of-the-box solution for this. You have to build real software!

- We have some upcoming products I can't share, but one of the most exciting things right now is that we are focusing on helping our customers troubleshoot their networks. This is a surprisingly complicated thing to do while providing a top-notch customer experience, and we think software is part of the answer.

So, do I feel like I've been using "computer science" knowledge? Not really. Closest thing would be using binary trees to do subnet stuff.

But what I have been able to do is flex my software engineering muscles, go back to first principles, and design software from scratch. No CRUD, no huge frameworks and package managers, just plain old fashioned programming.

(Ok, we do have CRUD and framework stuff. The web browsers have to talk to something!)


Wow you've done some great stuff. I work in the same industry in a company that has been around since 2007 and we don't have anything remotely similar to provisioning systems for client or backbone equipment, everything is done manually.

What kind of equipment do you use mainly ? Cisco, Juniper... ?


I am not sure whether we share that publicly or not, so I'm going to be conservative and not share it here. But we are hiring! We'd love to talk.

Here is our web site: https://pilotfiber.com/

Here is our Who is Hiring post (contains my email):

https://news.ycombinator.com/item?id=17209386


I'm hesitant to post because there is so much anguish here about winning the lottery for interesting work.

I have been extremely fortunate in my career. I'd say I won the interesting lottery. I started very early by today's standards, taking my first programming class at the local university when I was in 5th grade, back in '76.

At 17, in '82, I had a game company selling nationwide in Sears & KMart a few Vic-20 games I wrote. That got me a beta testing role with the unreleased Macintosh. Which got me to move to Boston, where I worked for Mandelbrot & DeVenney on the initial publishing of Fractals.

Basically, I've been fortunate to be an early developer for a series of advanced technologies: - initial 3D graphics research community (back when the question was "how to do 3D graphics at all"), - initial GUI developments (before Windows 3.1, there were a lot of competitors), - early real time mapping / navigation, I worked on one as my first post graduation job - early streaming media, I was writing media players for CD-I/CDROM/Network back in '90-'92 - early 3D gaming consoles, I was an OS developer for the 3DO and the first PlayStation - early 3D games, lead developer for games for 15 years - VFX, left games and worked on 9 VFX heavy feature films at an academy award winning studio - startup, left VFX and spent 7 years doing a ML based 3D reconstruction of photos to realistic 3D avatar web service - Facial Recognition, closed my startup and now I develop facial recognition software for an industry leader

There is not time enough in a day to explore all the stuff I've done or am interesting in further pursuing. Luckily, I am one of those that sleep less: 5 hours leaves me groggy, and 4 is just right. So I spend my daze 10 hours coding for work, and another 4-6 pursuing "mad science".


Wow, it sounds like you’ve had a fascinating career. You say you may have just been lucky to get in on the ground floor as it were, but would you attribute your success to any other habits, behaviors, or personal qualities?


I'm enthusiastic, almost to a childish degree, and I obsess. The joke at work is I'm "Sheldon", and I don't watch that show so I'm only vaguely aware that he's some type of bad communicating nerd. I think I communicate better. I'm also somewhat fearless, accepting projects over my head and still delivering.


Wow pretty amazing. A little OT but just reading about coding 10 hours a day is just making me think of back pain.

Is it really possible to sit for that long everyday and not suffer from it. I know I'm probably focusing on the wrong thing but just the idea of being able to code for that long everyday without suffering any physical problems would be reward enough for me.


I actually code closer to 14-16 hours a day. But I have a standing desk / bar stool combination, plus a compile of my work typically takes 3-4 minutes, so I have a yoga mat, weights and stuff to work out while I think & wait. I'm 54, yet look 40 with a near six-pack. I'm really lucky.


Wow man that's really awesome. Would you mind doing a blog post about it sometime (or maybe linking to the source where i can learn more about it).

It can help a lot of people like me who are struggling to work even 5 hours a day at just 37.

Still thanks for the reply, I am now seriously thinking of getting a standing desk.


My #1 advice for being a healthy developer is to observe a regular hard cardio workout.

<back story> When I was 16 I was a fairly muscle bound half geek / half athlete. To give you an idea, I was a running back on my high school football team, and a tackle and two linemen and I would have to shampoo one anothers head's after weight lifting practice because our arms could not reach the top of our heads from being so buff. We were muscle bound jocks in Iowa, what can I say...

Well, I had a bad tackle when running with the ball during a game, and I crushed 3 vertebra, doubling over backwards with my hips pushed backwards till they touched my shoulders. The stadium had a collective gasp and then silence as I was seen on the field broken. Long story short, bolts in my temples and hanging vertically for 6 weeks healed my young spine with only weather changing aches. However, I went from 230 lbs to 130 lbs, and it took another 6 weeks of therapy before I could walk.

That was the start of a decade of no athletic activity and nihilistic punk rockerism mixed with quite the intellectual journey as I left Iowa and became a part of the Harvard/MIT/BU 3D graphics research community. (This was the early-mid 1980's)

It was not until I was 30 that my then girlfriend, now wife, got me to start morning walks, then light jogs, and finally an actual return to an athletic lifestyle. To give you an idea, at 30 I could not jog a block without heavy panting and sweats. After a year I was able to jog 1 block. It took whole year to do a block without dying! During that year, I'd get delirious and throw up if I pushed. But the persistent and incredible patience of my girlfriend slowly got me back into what is considered "normal" shape.

Once I'd refreshed my previously athletic muscle / body memory, all kinds of positives kicked in like a general optimism, a general active energy level, and greater interest in everything in general.

However, this was tempered with realization that if I slacked for even a few days, I'd get depressed, and if I went a week I'd start having bone/joint chiropractic misalignment and then I'd be injured and unable to be active at all.

So, now I have a strict 3 days (at least) per week hard cardio. I ride my bike about 8 miles, living near a bike path in the San Fernando Valley. Plus I have a yoga mat next to my standing desk. I need to get a newer computer, as a recompile of my work take 10-12 minutes. But I exploit that time working out, so maybe I don't want a new development computer...


wow.. first of all thank you so much for taking the time to write that out. I found it super motivational and tbh it really means a lot to me that you are fit and fine after what you've been through during your younger years, and the kind of pain you were in at your 30s.

I've never had any injuries but doing long hours siting all day without exercise has taken a huge toll on my back. I'm not overweight but my lifestyle is very sedintary :/ Long story short lately I've have my issues become so much that I've had trouble with simple things like putting on pants, getting in and out of the car, sometimes even sleeping. Have done lots of mris, xrays and months of physio and pain keeps coming back. Also religiously did the exercises prescribed by my doctor but nothing is helping.

I'm kind of like at that point in your 30s where even jogging for a block is a nightmare for me. But reading your story gives me hope. I'm 37 and just learning that taking health forgranted for work has been a big mistake.

I will try to research some cardio exercises that won't aggravate my pain and get started. I love your idea about doing things during code compilation. What a blessing in disguise that is. I already started that today doing some SI joint exercises that I can do while sitting. It's a start and I now to get involved with beginner cardio next.


Another aspect that has helped a lot is taking a b-complex vitamin every day. B-Complex has two major benefits: it aids in the energy recovery during food metabolism, maintaining one's energy level, but the major benefit for developers is the reduction in nerve sheath inflammation. There are times when I am doing some heavy, redundant motions, like when working on 3D animations, the repetitive mouse use for multiple days can wreak my wrist and that "mouse fatigue" spot in your upper back. When I know I'm going to be abusing my wrists like that, I make sure to have B-Complex each day and for a few days after - for the reduction in inflammation and the resulting continued wrist health.

I appreciate your thanks. I could write a book about my career and maintaining health in both physical and mental aspects - being a developer can be a hell of a mental game too. If I were not so busy writing code, I probably would. Developing my ability to live like this has taken decades, and now in my middle 50's I am peaking in multiple aspects: I know how to code an immense number of highly complex things, my mental game is such that I am coding like water pouring, and my work is offering me the freedom to use everything in the creation of a new flagship application for the company. I'm simply having too much fun and getting too much done to write about it at length. I do post on Quora.com quite a bit though.


Great tip about B complex. I didn't know it could heal muscle fatigue and makes healing faster. This is great tip for almost all programmers who risk RSI at some point in their life.

Anyway yes it no ordinary thing you're in such good health and are putting 10 hours a day at 50 years while some of us are struggling lot younger.

I'm sure you already have done quite a bit of research that lays ahead of me. A book does sound like a big commitment but if you have a blog I'd surely hope you would put your story and what you did to fix yourself and how you're so productive.

A lot of people would be inspired and helped by it I'm sure.

P.S. just read this book called 12 rules for life (huge bestseller) and the author starts it by saying so this book started as a result of my quora post :)


VideoToaster?

BBSs?

What was your first computer?


I first had access to a PDP-1170 at my local university, then a borrowed Apple II, then my first computer was a Vic-20. Then a C-64, then the beta Mac.


Do you think if you had not started with a 16-bit computer, your learning would have progressed differently?

I know this is a highly speculative question.


The Apple II and Vic-20 were both 8-bit computers. The minis and mainframes at universities were 16 and 32-bit systems, but for the large part I just ignored the word-length of a system. I really only cared if I needed to work in assembler, which I preferred for a good 15 years. I generally work in C flavored C++, and don't really optimize via process bit knowledge until bottlenecks are being removed.


Pretty much everyone is in the same boat. Even if you have an advanced degree, most of what businesses need is plugging together components and adding business rules to create a product.

As a discipline, we're too young and our technology is too immature to support a true split between engineering/science and computer programming.

If you want to work on interesting problems you're passionate about, there's a few ways to do it.

First, you can do research. Years ago I joined a lab as a professional researcher to follow my passion for machine learning and sensor networks. It's not the easiest path, but labs need disciplined programmers to complement the skills of PhD students.

Second, you can consult. If you're passionate enough about a topic that you have encyclopedic knowledge, I guarantee there's someone out there who will need that expertise and will pay for it. It might not cover all your bills, but it gets you exposure (and potentially a job if they need your skills a lot).

Third, you can start a company. I followed my passion for the challenges of learning from sensor data at scale into entrepreneurship and eventually started a company, http://sentenai.com . As a technical founder, I chose carefully the technologies we use (Haskell) and the problem we were tackling (making it fast and natural to combine multiple sources of time series data and find temporal patterns). You still need to solve somebody's problem and build a business, but you can at least lay the foundation.


Nice, I'm building something similar with TTN - using Haskell to glue MQTT/SQL/WebSockets to be able to stream data from sensors and also optionally store data in timescaledb. For web fronted I really want to try miso (https://haskell-miso.org/).


Unless you're targeting consumer you might want to be careful with tech like web-sockets. After a decade of using sensors in industrial facilities I've come to appreciate the value of on-device buffers and transactional logging systems that don't maintain persistent connections. Real-world environments are unfortunately really tough on technologies designed for browsers.


You sound like you have some experience in this area so I'll ask. I'm working with fielded devices that typically sit on enterprise networks. We operate much like an IoT device, but without the hardware constraints. The current c2 system uses a traditional polling REST HTTP protocol and we're looking to migrate something more real-time (for config pushes) and lighter on the server. Currently looking at everything from HTTP/2 SSE, Websockets, MQTT over WS, or even HTTP using something like Google's Cloud IoT. As you can probably tell we'd like to keep the wire protocol enterprise-network friendly. Any advice?


It really depends on your edge data model, but the enterprise network should always be considered hostile.

At my previous company we ran SSH servers on our gateways for server->client pushes and it ran into the fewest problems with enterprise firewalls. We also ran our own mesh wireless networks a lot using our own gear. I'm guessing that's probably not an option, but when there's no admin running around looking for unauthorized wireless signals it's quite efficient.

Now all of these require a local host machine (or several) behind the firewall that do the brunt of routing and orchestration for pushes. There's a good reason for it though: It's a lot easier to get several hardened systems authorized to cross the firewall than a bunch of IoT devices. And if you can't get that authorization, you can put a cellular connection in the box or boxes more cheaply than one in every deployed device.

Happy to chat more if you want specific advice about certain situations. I also spend a lot of time investing in and mentoring Boston-based IoT startups so I have seen a broad cross-section of situations that can happen. brendan@sentenai.com


We have the full support of the network admin staff, so punching out is not an issue, we just want to keep it as clean as possible. My guess is our control channel will likely end up being some combination of WSS/Redis (if it plays nice w/ mutual auth and load balancing) or a variation of our current polling HTTP/REST solution. Thanks for the offer, I might take you up on it ;)


I'm totally in the you-dont-really-need-web for everything group but yes, this can be considered targeting consumers as-in ordinary people who want to use localized version of TTN.

I don't really approve use-cases like running a webserver to control lights on ESP8266 where simple TCP sockets would do.

Btw I've written an implementation of ZRE protocol which you might possibly find interesting - https://github.com/vpsfreecz/haskell-zre


Haskell-zre is pretty cool! I think I'll have some fun playing with it with some of our demo IoT setups. We're purely in the backend data infrastructure business so I don't do deployments any longer, but we'll probably have some fun with it anyway :)


Miso is great. Also checkout reflex; and the recently open-sourced https://github.com/obsidiansystems/obelisk


I'm working on a team that is miniaturizing a synthetic aperture radar system.

The amplifiers, processing, and data storage used to take up most of the space of a small cargo plane. Then it got down to four half-racks. Now it is the size of a dishwasher.

We hope to get it drone-sized. It is a never-ending series of interesting technical problems that span the entire STEM range, including RF, network, system, electrical and mechanical engineering, HPC, data science, voodoo-mathematics I will never understand, system administration, and plain old software development.

Everyone here is expected to cross-train in various disciplines. My background is CS but since starting here I have done electrical and mechanical engineering work including diagnosing micro-fractures, visible only through a microscope, in connectors on a bunch of VPX chassis stuff, caused by bad soldering work by the manufacturer.

On top of all of that once or twice a year we all get to go on operational deployments of the system. This year we went out and imaged thousands of miles of coastline, 6 engineers crammed in a tiny airplane hopping from airstrip to airstrip in support of a coastal erosion monitoring program. Data scientists are expected to haul around amplifiers and radar engineers are expected to live patch code while in the air.

The only reason I got this job was because I was a bored programmer teaching a Linux course as a side-hustle and a bunch of engineers came through and started asking questions way beyond the scope of the class. They were radar guys struggling to learn Linux and a couple of post-class drinks later I had an interview.

I guess my only advice would be to have a side-gig and network as much as possible, peppering everyone you meet with questions about what they do.

If what they do sounds cool, ask for an interview.


Do you have a web site for your company? Your current work sounds similar to the work I did in my graduate studies in Ocean Engineering. Thanks.


FPGAs all the way?


Capella Space?


I'm in the exploratory stages of starting a noncommercial project focused on hosting, processing and serving a vast amount of climate data for scientists and researchers. I've "seeded" this project with my own bare metal hardware, electricity and internet access. This includes 136 vCPUs, 512GB of RAM and 128TB of hard drive storage capacity (with room for another 456TB). As my own money permits, I plan to slowly add to this lab over time.

My initial consideration is to develop and host a sort of public Wolfram Alpha, but specialized for climate data queries and visualization. I'm open to other suggestions, as I'm currently in the process of architecting the system and reaching out to climate scientists for feedback on what they need that isn't well-served yet.

Once all the infrastructure work is done, I'd be happy to contribute to climate modeling more theoretically. But for now my prerogative is to develop a central repository for as much climate data as possible, normalize it as reasonable, and store it in a queryable format.

There are interesting technical problems here due to the scale of the data, the variety of its native (raw) formats, the frequency with which each source updates and the types of information involved. But speaking directly to the title of this post: I don't think anything I'm doing is strictly an unsolved technical problem, it's just a complex technical undertaking. There are plenty of data serving and processing pipelines for this that have already been proven capable.


This sounds similar to Radiant Earth https://www.radiant.earth/ They are also spearheading the Cloud Optimized GeoTIFF project http://www.cogeo.org/ and the SpatioTemporal Asset Catalog spec https://github.com/radiantearth/stac-spec.


Have you seen https://github.com/pangeo-data/pangeo? It's pretty amazing.

There's still a lot left to figure out, even storage formats aren't fully solved.


Hey, I'd love to help out in any way I can. I'm a data scientist by training, also involved in a startup that helps people learn data science (with a pretty popular data science blog too).


I love the focus. Starting at the base level data and working to normalize it is definitely the most difficult piece. How far back have you assembled data?

Feel free to reach out to me individually (email in profile), I'm working on operationalizing climate data like this and would like to look at this together!


Your email is not in your profile :)


Where are you getting this weather data?


All over. It's not strictly weather data, either. The majority of the data comes from programs within DSCOVR, LPDAAC, NASA, NOAA, NCDC, USGS, ARGO, CDC, CDIAC ORNL, DOE, EIA, EPA, FDA, EOSWEB, USFS, PHMSA and USDA. The snapshots I have are already around 50TB; I'm working on setting up updates at daily resolution for each of these sources, documenting it all and transforming it into something queryable.


Is there a possibility that there is just too much data for one person to handle in a meaningful way?


Of course, that may very well be a possibility. In that case I'll have to scale up the effort.


Wow :)

High-level questions:

- At the risk of birthing a page-long subthread on ZFS-vs-everything-else... what storage solution are you using, and why?

- What sort of hardware are you using? (This is a non-catalyzing question, and is just out of curiosity)

- How did this get started, and how are you managing this?

- Will you ever be interested in accepting donations or funding? (Including on a voluntary basis; and including with clear stipulations/structure about management)

- What sorts of decisions/motivated this initiative?

More focused:

- Do you have any interest in creating this as a "community hub", with a central code repo that data scientists can push updates to that then get run on the cluster? If the visualization data (or prerendered bits of it) are openly cached/accessible, having the code that generated the data equivalently open/available could be interesting.

- What kind of availability/openness are you looking at with data? (TL;DR translation: rate limiting)

You may already be aware (very likely), but AFAIK archive.org is interested in this kind of thing. Interesting bunch of people, but the various projects do like climate data, and they have a few hundred PB of space, FWIW.


Take a look at quiltdata.com (open source), YC S17


Thanks for expressing interest...I'll respond in order.

> - At the risk of birthing a page-long subthread on ZFS-vs-everything-else... what storage solution are you using, and why?

Right now, XFS and HDFS. This is primarily due to my prior experience with it; I have considered ZFS, and might move to that later on. I may also dispense with HDFS for shared storage and to reduce the redundant JVM memory footprint. I'm attracted to ZFS for compression and error correction features, I just don't have any actual experience using it.

> - What sort of hardware are you using? (This is a non-catalyzing question, and is just out of curiosity)

Four bare metal servers, three of which have dual Xeon E5-2630 V4s (10 core, 20 thread 2.2 Ghz), one of which has an i7-6900K (8 core, 16 thread 3.2 Ghz). The latter server has 10TB SATA SSD capacity and four GTX 1080 GPUs. The other three have 2TB of NVMe SSD capacity. Each of the four has 128GB DDR4 2400 Mhz RAM. Currently all storage is local to the hardware, but there is a SuperMicro SC847 for future expansion. Every server has dual 10Gb/s SFP+ connections in bonded 802.3ad LACP, and are connected via a 16 port 10G network switch in the same rack. I think that's everything at a high level, off the top of my head.

> - How did this get started, and how are you managing this?

I joined John Baez and a few other scientists/researchers working on the Azimuth Climate Project, which sought to preserve critical snapshots of climate data in the event of mass defunding. Later on I decided to take this a step further since those snapshots were becoming very out of date and the multifarious data repositories were never very well documented, organized or normalized. Not sure what you mean by "managing this" though.

> - Will you ever be interested in accepting donations or funding? (Including on a voluntary basis; and including with clear stipulations/structure about management)

I initiated the process of starting a formal nonprofit, but not for the purpose of soliciting donations; rather, just so that it would be clear it's a noncommercial activity. I might be interested in that kind of thing - in either way you mentioned - once I have exhausted my own reasonable resources for the task and have to significantly expand.

> - What sorts of decisions/motivated this initiative?

It began with reading worrydream's blog post, "What can a technologist do about climate change?": http://worrydream.com/ClimateChange/. Not much more to it than that.

> - Do you have any interest in creating this as a "community hub", with a central code repo that data scientists can push updates to that then get run on the cluster? If the visualization data (or prerendered bits of it) are openly cached/accessible, having the code that generated the data equivalently open/available could be interesting.

Yes, that's an interesting idea.

> - What kind of availability/openness are you looking at with data? (TL;DR translation: rate limiting)

Well everything is intended to be extremely transparent, so I'm going to open source all software (infrastructure, development, research, etc). I'm also going to keep all data open. In practice there will probably be a limit of 1000 or so queries per day per IP address, but I'll burn that bridge when I get to it. It really depends on how "real time" queries end up being, and how much abuse the system actually receives.


Thanks for the reply! Not sure if you'll see this; had some unexpected delays finishing this comment.

Everything is duly noted; I'll just expand on some bits.

> I joined John Baez and a few other scientists/researchers working on the Azimuth Climate Project, which sought to preserve critical snapshots of climate data in the event of mass defunding. Later on I decided to take this a step further since those snapshots were becoming very out of date and the multifarious data repositories were never very well documented, organized or normalized.

Archive.org is very probably interested in this sort of thing then, FWIW.

> Not sure what you mean by "managing this" though.

Heh :) I was curious what sort of work you do in order for this initiative, which appears(?) to be somewhat of a side project, to be viable in terms of budget and adequate spare time. I'm also interested in storing/working with somewhat large amounts of data too (one project I want to try at some point is implementing an infinite browser cache so I can "Google" the content of every version of every webpage I'd ever visited), so I definitely want to optimize for something that doesn't require much time :) (don't we all)

> It began with reading worrydream's blog post, "What can a technologist do about climate change?" ... Not much more to it than that.

After having read that page I now understand the sentiment of that statement. Major TIL :)

And if only all webpages were that well designed... (The interactivity was a bit of an information overload, but I really liked the layout.)


If there's a bottleneck anywhere in what you're working on, that's the most likely place for you to apply CS. But it's a tricky business; there's a risk benefit trade-off.

Writing complex code to solve a gnarly problem is often the wrong path, because it's harder for coworkers to understand the code, and harder for future maintainers to keep it correct. Thus it's often better to encapsulate the hard problem in a nice interface, and possibly release it as a separate library.

That's where most of those libraries you're gluing together come from. A tough bit of code that needed writing but also encapsulation.

A tougher problem than most CS problems you'll find while writing CRUD apps is getting architecture right, so that adding new features isn't an uphill struggle and doesn't involve piles of boilerplate. Getting the aesthetics right, making the code clear so that anyone can maintain it - this requires experience and the mastery that comes from it pays off in the longer term, because you can more easily leverage other people's efforts too.

If you can't find solace in mastering software design, you're better off moving away from CRUD apps and move to a developer of tools. Tooling, whether it's compilers, OSes, databases, whatever - has more interesting and deep technical challenges. Watch out though: tooling often doesn't pay particularly well because developers enjoy making tools themselves. They'll prefer to build their own shoddy hammer 9 times out of 10, precisely because they're in the same boat as you right now: they don't feel challenged.


I think with time you may find such drudgery is present in every field. Ninety percent of any kind of work we do is gluing together components and solving boring business needs. It's part of the reason I think we engineers love side projects so much -- they're easy to start up, and you can try out academically interesting things (obscure programming languages, cool algorithms, etc.) without caring about the bottom line.

Side projects are good for your brain and in the long-term good for your career (lest you stagnate with old technologies). I recommend having this outlet. On the plus side, having a somewhat interesting job + really interesting side projects gives you both good money and intellectual freedom.

If you want to solely focus on interesting technical problems, I'd recommend working in a research lab or going to academia. On the downside, you may lose that nice paycheck, but your curiosity will remain forever piqued!


> If you want to solely focus on interesting technical problems, I'd recommend working in a research lab or going to academia. On the downside, you may lose that nice paycheck, but your curiosity will remain forever piqued!

If you join an industrial lab, rather than a lab in a university, you can keep the pay but still do the same thing as the academics.


90% would be fine. The problem is that it's 100%.


Wow, a surprising number of responses agreeing with boredom... I'll share a different point of view.

I've been running DNSFilter for 3 years. We're (still) facing interesting texhnical challenges - ranging from BGP community strings being used to balance a global anycast network, to handling volumes of time series data [1], to designing a golang daemon to ssl sign incoming requests on the fly for domains we won't know ahead of time, to figuring out new ways to pass data in DNS, and support cutting edge standards like DNS over TLS, DNS over HTTPS.

I was just saying to my wife the other day how ridiculous it is that most things we do are technically challenging, and you have to think outside the box how to get it done -- while I was implementing a block page for user agents which requires a 19 step process to determine the user's DNS Agent ID, and display the right logo on the block page ;)

Some might dismiss these challenges due to our use (abuse) of DNS for purposes it was not intended for. Fair. Also, welcome to the real world, and we're solving problems are customers are asking for... and just figuring out interesting ways to get the job done.

1: https://blog.dnsfilter.com/3-billion-time-series-data-points...


My suggestion : forget you CS degree, drop the idea of doing something interesting during your work hours, think about it as inevitable procedure to earn your montly salary. At 5pm run away from your office and focus on whatever you think is interesting.


Is this view that common?

I'm all for work-life balance and working on passion projects on the side.

But do that many people really think of their developer job as a salary and a daily grind?


I work on "boring" stuff (CRUD, frontend and backend) and love it.

Maybe because I remember all to well what jobs I used to have:

- farm hand (heavy work on smaller less automated farms)

- construction (noisy, wet, dusty etc)

- security

- help desk

Being paid 8 hours a day to work on borderline interesting tasks, getting free lunch, being paid to study etc feels great. Oh, and I can work from home if I need to.

I also make my work interesting by putting some effort into it.


How do you get over the chaos that is front end (hip frameworks every week).


Agree this is a problem. Here's how we make it work:

Work with great people. Also code reviews make sure new dependencies don't usually in unless the team agrees (we are a reasonable bunch).

Standardized on Angular. It seems to me Angular has less churn. Yes: there is a life cycle and we have to follow the releases but it is mostly well documented.


For me it doesn’t seem a daily grind. When I am actually writing software, I completely love it, even after 14 years of doing it professionally full time (and several years part time during uni). The only parts that I never liked were the bureaucratic bullshit, production support even at insane hours of the day, and the politics with your colleagues. Usually those were a relatively small part (20-40%) of the total and I still could enjoy writing good software the rest of the time. Now finally contracting I’m in a position were my coding skills are really appreciated and I enjoy my time coding and helping my colleagues without all the bullshit. Maybe I don’t score high in the interesting jobs lottery, but I’m perfectly happy of the pretty good amount of money that I get doing something that I love in old, boring, huge companies.


A job doesn't have to be a calling, and a job that isn't a calling doesn't have to be a soul-crushing grind.

Most developer jobs are for CRUD apps, and you'll rarely be doing greenfield development. There's not a whole lot of room for passion there. If you just treat it as a job, though, rather than something you have to force yourself to be passionate about, it doesn't need to be that interesting. Once you make a living, you can satisfy your creative urges elsewhere.


I've always wondered who the magical developers are that did the greenfield development of every project I've been on-boarded to. I never seem to get ahead of the maintenance grind to the point of being one of those creating the mess instead of wading through the mess.


One way to get ahead of it is to try pitching proposals to problems your organization can't afford to ignore.


Yeah me too. But looking through the doco i keep seeing the names of people on all the green field work are the same.

I think those people live the work life equivalent of hitting all green lights.


I do. I've only had two jobs I truly enjoyed doing the 9-5 work for, all the rest have been a slog to get through to pay for my other interests and family-related stuff.


i like to work on my garden.


Where's the social life when doing this?


C'mon we are almost at the point when there will be no social life but virtually connected individuals exchanging their personal data for likes and views.


Computation has made everyone able to connect with each other with practically no barriers. AI will make connection with machines and people seamless. These are super powers.

There is absolutely no reason to be miserable at your day job. You should be preparing for superpowers if not actively using them.

I recommend watching lectures/talks during work, skipping meetings and reading from thought leaders instead of working hard to reach deadlines. Everyone is connected which means you can read and watch what Ian Goodfellow has to say about unsupervised learning or see what the issues with the world computer are from Vitalik himself as easily as listening to your marketing department figure out how to grow 10% in the quarter.


Lol that’s easy enough to say when your family doesn’t depend on you to feed them.


Your family is counting on you being prepared for the future.


I have a degree in CS and one in Physics.

For the first 7 years I worked as a "programmer", ie. writing code, a lot of C++, and of course web stuff. About 6 years ago I (accidentally) became a "data guy". I do a lot of data infra/engineering, a lot of stats and analytics, and lately ML. Also I do a lot of management stuff and hiring.

I'm lucky, this is a pretty sweet time to be working for me. My skills are a perfect match for the work, I'm able to do impactful work and can get paid for it.

I don't really care about interesting technical problems that much, in the sense that I don't want to solve an interesting technical problem just because it's interesting. What matters is having an impact on your users and the business.

I think if you're looking for those types of technical challenges, it's better to contribute to open source code, rather than doing it at the day job. At the day job, you should always choose the method which makes sense to move fast..


Academics: just take an interesting problem that you can generate potential solutions for, but if you can't, just pick the next problem.

Business: here is a continuous stream of problems, most of them are boring, some of them are hard, but you have to solve them all regardless.


That's tenured academics. A lot of academics are still struggling to make a name for themselves, which means more like: pick an interesting problem. If it gets any attention whatsoever, work on it and its variations for years. Maybe drill down into increasingly niche subsets of that problem. If at some point it appears there is no solution, make one up and defend it anyway, or add unrealistic constraints that will never be generally applicable, then promote the hell out of whatever you've got.


Business: take the easiest most profitable problem and solve it... Which is generally a boring problem.


I've left master CS studies to be able to do robotics and be free to learn stuff I want/need. After number of years hacking stuff all around in local hackerspace I'm finally getting onto something which is an attempt to create distributed motion control system (https://distrap.org) which is also one huge experiment with generating code from Haskell utilizing Ivory Tower framework made by Galois (https://ivorylang.org/). During the process I've realized the potential of this framework and started writing a book about it (http://48.io/~rmarko/book/) so people don't have to spend half a year reverse engineering it.

Beside that we're also building vpsAdminOS (https://vpsadminos.org/) for running LXC on top ZFS. At https://vpsfree.cz we currently run openVZ with the intention to migrate to vpsAdminOS which is currently tested by members.

In my experience you gotta sacrifice stuff (like well paying job) so you can do stuff you really want.


Hmm, maybe. I work in Natural Language Processing for medicine, and there are many interesting challenges ... a lot of them still academic even. But the biggest thing I'm worrying about these days are more business oriented. Machine Learning, and Natural Language Processing in particular, is nowhere near advanced or accurate enough to fully automate things. So most of my thinking goes into things like "given the limited abilities and limited data, how can we still make something that is useful". That's both a business and a UI/UX problem...which suck up a lot of brain cycles for me. Up to the point that I've become somewhat cynical and wish I was doing CRUD work instead ... since all the hype around NLP usually amounts to saying "yeah no, that's not really how it works, and you'll [the customer] be disappointed if we actually did that". The hype train is both a blessing and a curse


Technically challenging is great and all, but I would rather write IE6-compatible HTML tables if I thought my product was something useful to the world. I did a project recently where we used voice and 3D in an open space and a all kinds of other stuff that was completely new to me and it was utterly unfulfilling because the thing we built was pure eye candy and totally useless.


Same here. I used to seek jobs in technologies I like. I finally got some. It made me realize that even working with my favourite tools becomes a chore if the product is bullshit.


Absolutely, yes. Using your CS skills to write CRUD apps is the path of least resistance to create economic value. Where I live (Johannesburg), the demand for CRUD apps is so high that no single firm or group of firms can absorb it all. You can happily create a thriving software development business in Johannesburg without worrying about competition (maintaining standards and hiring well is a different story).

The most exciting thing at my old job was this DFS I had to do once.

That said, there are very interesting tech jobs out there - such as scaling boring old CRUD apps. The high frequency trading space also has many interesting problems. Imagine working on a system where you start to care about nanosecond optimizations. I interviewed (and failed at it, lol) at Optiver [0]. You should check them out.

[0] https://www.optiver.com/na/en/


I've been very lucky in finding a job that has a good mix of typical 'trench digging' (read web app development) and really cutting edge algorithmic work. We are a 3D printing startup that use 6 axis robots + extruders to print large scale geometries. Some days I'm implementing CRUD REST APIs, today though I happen to be working on Octree based collision detection.

Finding jobs like this isn't easy and mostly requires luck - my last job was very different, it was just maintaining a plain old CRUD app. Not the most mentally stimulating work, but it's probably 90% of the work that gets done on a day to day basis by software engineers.

Try looking for people who are solving a problem that is technical in nature. Business problems use technology as a tool, technology problems require development of brand new tools or the use of existing tools in novel ways.


I’ve worked a lot on networked multiplayer games on the gameplay implementation side of things. Lots of fun and interesting challenges in terms of latency hiding, client side prediction and keeping everything in sync. Game development in general let’s you dabble in lots of different areas and gameplay in particular can cross disciplines. Obviously it also comes with a bunch of downsides in terms of pay and working conditions.

Now I’m working at a startup making a collaborative VR modelling tool which applies all the same problems to a more ‘serious’ end.

Both still have a fair share of plumbing work as well. But that can be a welcome relief. I find solving hard problems (particularly under pressure) can become obsessive and make it hard to be present with my family and sleep!


There are three responses:

1. "Interesting" has more to do with the person who is being interested than the task. There are people who insist on telling me about various sports statistics as if it is amazing and interesting, and they really want to meet famous athletes. There are others who really want to work with the machine code etc. Can you maintain interest?

2. I bet you even the ideal interesting jobs you can think of: say Elon Musk's job running multiple firms probably feels like yours from the inside. Board upset that he can't get the manufacturing levels up, sleeping in the factory, trying to figure out what is going wrong by staring at who knows what while asking SpaceX to hold off on the meeting this week.

3. Sleep early and drink caffeine -- not kidding -- and your job might seem more interesting.

Edit: There is probably someone out there complaining that they have to figure out boring technical details when they really want to learn more about the business challenges.


You sound like you're very early in your career. It took me about 8 years before I found a job that I really, really found interesting.

Think about it this way: The real interesting jobs don't take chances on recent graduates. There's just too much on-the-job experience needed.

The best advice that I could give to my younger self would be to think a lot more critically about when to change jobs. The time that I left the boring CRUD job was a huge mistake. (I should have kept looking instead of taking the job that I took.)

The second best advice that I could give my younger self would be, when in a boring (but stable) job, is to avoid recruiters and try to network more with people doing interesting things. Recruiters are better when you aren't very picky about the kind of job (or employee) you want.


I feel so sorry for you. Life is so very brief to be working on something you don’t like. I look forward to going to work every (week) day.

I work in a different corner of the development biz doing computer vision, graphics and new products for companies. This week I’m working on “reading” test strips for a new medical device. Last month I was working on the graphics for a landing radar.

At the risk of of telling you to “eat what I do and you’ll be as tall as I am”, I think you might find more developer happiness if you can get off the rails of business/web development and instead, work for small companies on desktop and/or embedded products. I think the key is working for small or tiny companies. Heck, maybe working just for a tiny company might make using your skills fun again. In a tiny company you get to wear a lot of hats so you learn things and use new technologies.


Not the OP, but regarding the "eat what I do" - how do I get your food? How do I get to work on medical test strips, or landing radars?


That is a difficult question to answer. I mean, I get my work through reputation [1] & luck and 30 years experience but that isn't actionable advice for you. I would say that the trick to getting into work that puts the most "happiness under the curve" is to find a small company [2] that really needs you. Look for that advertisement on Craig's list, talk to your friends, develop a skill that you can leverage. [3]

[1] As I tell people: "People know my reputation - and yet they hire me anyway."

[2] The last company I worked at before going independent consisted of 3 people. The owner/engineer and 2 software devs.

[3] "Develop a skill you can leverage": By that I mean, start to learn something that you want to work with and then find a place to work at that will let you really learn it. For example, suppose you want to work with the Internet Of Things stuff; get a development board and do an IOT project with something like C++ and leverage your existing skill set (Javascript, Web stuff). Then take that little bit of IOT stuff and try to get a job doing IOT and then maybe C++ embedded. Does that make sense?


So no royal road, just working well and actively steering towards working on the things of interest :). Thanks for sharing.


Not the GP, but regarding tiny companies, I wanted to link this, which resonates strongly: https://news.ycombinator.com/item?id=17236637

It seems that everything's relative and being the near-smartest person in the room can be a tactical advantage.


I do a lot of robotics software engineering from top to bottom: UIs for mapping spaces, web APIs, web servers, databases, ROS nodes to handle mapping, web-based controls, industrial integration APIs, error handling, etc.

I've excitedly taken on every little task thrown at me over the years, I think, because I went to school for GIS, earned geography degrees, and never in my life expected to do anything remotely as interesting as this. It's as if my career expectations began so much lower. So when I was asked to do all the dull work, it wasn't dull for me. I've built a very complementary skill set that's rather valuable almost anywhere in the mobile robotics field. All without any engineering or CS education (which makes me really angry at the education system for barring me from engineering or CS, but that's another story)


To me the problem is when you build a few crud apps and then build them again and then again. each with slightly different technology, but the bulk of the work is telling the computer what to call a field and which fields are required only 50 different ways. It starts to wear you down. I used to like building stuff, but I've kinda hit a wall.


> All without any engineering or CS education (which makes me really angry at the education system for barring me from engineering or CS, but that's another story)

I wouldn't mind hearing about that, huh. (In my case my story was learning difficulties I only began to get past at around 25, with virtually nil remembered schooling (besides what I could figure out on my own) from before that point, more or less.)


The short story is:

I'm naturally smart, motivated, curious. I grew up surrounded by technology, tech enabling parents and siblings. I got into robotics via. FIRST. I love building stuff. But if you ask me to sit quietly in any class for an hour it's game over. I just can't. So my grades never got within a mile of the minimum cut-off for ENG or CS programs.

So I guess I found my own route into engineering. But on occasion I will feel livid about how much I lost out on by not getting to go to school for engineering. Usually it's in a moment of, "okay I would probably understand how to manipulate these matrices if I had learned it in school, but yet again I have to play catch-up."

On top of that is a longer story about the struggle with ADHD, people always assuming you're just lazy or that ADHD isn't real. About the ADHD drugs that allowed me to adjust a slider between Focused/Antisocial/Suicidal and Energetic/Social/Impatient and how I very slowly learned how to cope without the drugs that I was pretty sure would kill me one day.


I think about this a lot. With the rise of cloud computing, I wonder if what I am doing is even programming. I even searched Stack Overflow recently to see if working on complex configurations counts as programming or not. There obviously wasn't consensus.

I saved this thread to "read later" in the hope that I can identify how to get into a position where I am working on interesting problems but more or less, I implement business logic. Of course, it's still slightly interesting when you think about the scale or what I actually created but it's not technically interesting.


I'm not sure about "Software Engineering", but "Programming" to me sounds like making a computer run something to your liking, which would include configuring it.


IMO the problem is that today we generally still only have one name for all of these jobs (software dev|engineer) when it reality we probably need 2 or 3. It makes planning one's career and searching for the right job very difficult.


Code is data is code. Sometimes in a declarative and a high level language.


Programming, testing, debugging, tuning, and yes, configuring are all parts of the umbrella that I like to call “Professional Software Development”.

All valuable skills, worth respecting and improving.


One of my challenges is that I don't like easy problems, they are too simple to solve and I get bored. Because of that I have always invested most of my time into interesting technical problems instead. Just not always at work.

There are a couple of things intertwined in the phrasing of this particular question, job satisfaction and the quest for a challenge.

I stepped into this mess when interviewing a candidate who shared that they were looking for a new job because they wanted greater challenge (and this is a fine reason to change jobs in my opinion). I asked them what they were doing now that was challenging. That lead to a good discussion on how much of the problem of lack of challenge was their problem, and how much of it was their managers problem? Clearly a good manager would try to keep you challenged but a good employee can seek out challenging things without needing their bosses approval. One need only look at various online courses to realize that with no more than a few git clone operations and an AWS account you can start looking at very challenging problems. There are programs like the HeroX one which seek out participation in technical challenges, and there are local opportunities to engage in challenging problems that impact the community around you.

The discussion came around to this question, "What prevents you from taking on challenging problems right now?" And the answer was, for this candidate, nothing really, they had just not felt empowered enough to choose their own path.

My advice is that if you like your co-workers and your management and the work isn't hard, just repetitive, then automate as much of it as possible and look for your challenges outside of work. If you don't like your work environment then change it if you can.


I somehow managed to push myself towards working on interesting technical problems. ( That of course depends on what you mean by "interesting technical problems" )

My playbook is: 1. Join a product company. If you work in a software house, it will be optimized towards path of least resistance. You need to work at a company that has long-term relationship with the product for it to even have interesting problems. 2. Be joyful about solving boring CRUD stuff. Don't over-engineer, your enjoyment is not the goal. At this point, you need to build trust that you are indeed trying to solve a problem, NOT entertain yourself. ( Be careful about future-proofing. ) 3. Now, at some point, there will be a project that nobody wants to do. It will be a mess, so natural inclination of most people will be to turn it away, run from it or try to ask for better research / drag the initial phase or whatever stalling tactic will be handy.

But, inside that messy, scary project is an interesting technical problem. What you want to do is to volunteer to take care of that mess without any prior experience and with a feeling that you have no idea what you are doing. You will also need to take full ownership of it.

The best solution is to establish a Skunkworks-like setup, where an extremely lean team has low communication overhead and is isolated a bit from the rest of the company.

Benefits of it will be: a) You will gain 3 years of "company experience" in 3 months, so you will be a better candidate for next interesting problem, b) People know that everybody dreads a certain project. Usually, you can make it in half the time everybody else will think it takes. You can coast on the reputation for months and not really do much work once you solve it. Also business is extremely happy since dreadfull projects are worth more than the entire year of mundane work. c) You will push the edge and expectation inside the company. Once these dreadful projects go away, the resources and infrastructure are ready for more sexy projects. You will have the pick at them because you now have a reputation for not-overengineering, delivering and solving technical issues.

But, it is: - scary - unknown - uncomfortable

Of course - as I said, not every organization has those problems and introducing them prematurely where CRUD will suffice will actually hurt you. You need to have product knowledge and understand what business need is solved this way. There will be business/marketing overhead and you cannot avoid that. You need to think about customers needs first and foremost.

This is how I put myself in a position to solve one interesting technical problem after the other at Automattic.


This is sage advice. When other people run away, you run towards. The skunkworks setup is ideal if your company/team can swing it; it will be a catapult to a new world of experience and reputation. Good luck!


I'm working on numerical methods for solving differential equations and running the JuliaDiffEq organization to build all of the newest methods into DifferentialEquations.jl. So much of this field is undocumented or has never been tested, so it's awesome to just come up with new ideas and new schemes and test them out. My PhD was in control of stochasticity in biological organisms (how do you control the internal randomness of biochemical reactions?) and the methods for simulating such models. So I get to work with hot off the press new biological "big data" and develop new techniques which use some of the newest advances in mathematics (stochastic analysis) to do something that can have some very practical outcomes.

If you're really looking for interesting technical problems, I highly recommend looking into systems biology. There's interesting mathematical, computational, and biological problems being worked on here (with lots of funding!).


If you don't mind sharing, what are some of the problems in systems biology that you find more interesting, and who is working on them?


I find the Irvine school of systems biology to be a very intriguing methodology/outlook which is based around complex models to understand unintuitive biological behaviors matched with data validation (a lot of mathematical biology is very disconnected from biology, and a lot of systems biology is more bioinformatics). For accessibility, here's some videos which will never go behind a paywall.

I think Arthur Lander gives the most accessible talks. A lot of his talks around growth control [1] and pattern formation [2] where he shows the tradeoffs between different cellular network and feedback mechanisms and how this influences the robustness of development. Then you have people like me [3] and my PhD adviser Qing Nie [4] where we describe how noise, the randomness that exists in biochemical interactions, is able to be controlled and used by biological organisms to improve developmental processes. And then there's people like John Lowengrub who talk about the morphology of tumors [5] to be able to predict and describe how the behavior can be derived from the shape.

There's a lot of movement going on in the data generation side of systems biology. Single-cell RNA-seq methods allow us to quantify almost all of the RNA generated by each individual cell for a whole group of cells, which lets us know exactly how cells are generating different proteins and by what amounts [6]. This of course opens up a whole lot of questions, along the big data computing side (how do you handle such a large dataset and extract something new out of?) and from the mathematical side (what kind of models is this actually validating and invalidating?). With this kind of data, there are questions about how well we can fit computational models directly to data and improve prediction accuracy beyond qualitative results [7]. These models are becoming precise enough that people are starting to test their uses in pharmocology, doing personalized drug-dosage prediction using covariates and large internal systems biological models called PBPK models [8].

[1]: https://www.youtube.com/watch?v=Dza0hM2vBNk

[2]: https://www.youtube.com/watch?v=8jFx9I7lBOg

[3]: https://www.youtube.com/watch?v=_h5fVDvGp-8

[4]: https://www.youtube.com/watch?v=tRzrBvGqOOE

[5]: https://www.youtube.com/watch?v=NVFFoGfC4Uk

[6]: https://www.youtube.com/watch?v=8KpIDpPEGV4

[7]: https://www.youtube.com/watch?v=5nIeYVe_yDo

[8]: https://www.youtube.com/watch?v=2Ut-Utim-wU


I'm doing a PhD on cryptography/blockchains and working on the Cardano cryptocurrency (https://cardanoroadmap.com/). It's very technically interesting and challenging (though it pays a fraction of what I used to earn as a Software Engineer in a big company in Zurich.)

I spend most of my time thinking about mathematical problems that I feel are impactful and important. The solutions make use of theoretical computer science (computational reductions and such). Validating the results requires running small Monte Carlo style experiments typically written in C++, Python, or Javascript. This isn't rocket science code, but it's still challenging to think what kind of assumptions and constraints to put in the model / code and which ones to leave out (although the coding part itself is pretty standard.) Other than that I mostly write TeX :)

But our solutions are implemented by the IOHK software engineers that are working on the production software implementation of Cardano. It's quite interesting to guide that work through our papers, as it handles a multibillion dollar market cap and the responsibility for making sure everything is secure is big. As for social impact, this people may disagree with, but I feel we're building next generation economies and this will impact the whole of society in making it more egalitarian, giving access to money to everyone, and making salaries more equal across the globe.


Cardano is really nice and also a very good Haskell marketing opportunity ;)


I've created work that wasn't hard from a computer science point of view but was transformative of how my company worked. And the work was my own idea. That was more than satisfying.

Working on computer science for its own sake isn't a draw for me. Helping people is. Your values are up to you, but don't be surprised that working on abstract problems rarely equates to adding real world value unless you look for a job where that's explicitly the case.

Also don't overlook the dynamic that you're being paid now rather than being the customer like you were in school. Your career is ideally going to be fun and enriching overall, but don't let yourself forget that's secondary at any given time to providing the value you were hired for.


Currently working on high speed JESD204B data converters and clocking; synchronizing clocks across 9 boards for (essentially) software defined radios for defense applications. The system has something like 15 Kintex Ultrascale parts and a Sitara processor as well.

Working with some very serious FPGA people in a high functioning group doing really hardcore DSP, high speed memory interfaces, networking, etc.

I was in your boat before. It made me want to drive off a cliff.


Nope, getting an interesting problem to work on at work is a rare occurrence.

I'm 38 years old, and I'm convinced that if I hadn't been constantly working on side projects and pursuing learning on my own (books, MOOCs, etc.), and relied solely on the skills I could pick up "on the job", I would be absolutely unemployable now.

Seriously, doing nothing but writing glue code was old 10 years ago, now I'm really starting to feel burnt out. Today, I've been staring at a screen full of bad Java all day, knowing exactly what needs to be done, but can't force myself to do it. Maybe tomorrow.

Funny, I have no problem pouring myself into my side projects in the evening. Hmm....


>knowing exactly what needs to be done, but can't force myself to do it. Maybe tomorrow

It's really unfortunate I know all too well how this feels. How do you hedge since you are nearing "old" in industry?


My industry is defense/aerospace, which doesn't engage in age discrimination as much as the wider 'software industry' does.

Part of the reason I can't seem to land a real lead/architect position (despite what my title says) is that I'm waiting on all the boomers currently parked in those positions to die/retire.


If you're bored you're doing it right. Read 'Programming sucks! Or at least, it ought to'[0]

[0] https://thedailywtf.com/articles/Programming-Sucks!-Or-At-Le...


The sad truth is every interesting problem turns into a job eventually. I was very proud of myself when I did my first custom linux kernel for an ARM machine, rev 0 hardware bringup and all. Pretty proud when I wrote the first working kernel driver as well.

Now I'm doing that stuff regularly for various industrial applications, and it's pretty meh. Still beats churning out javascript for the 10000th online store, that's true.


Currently, I'm implementing BLS signatures in Go and Solidity. A couple co-workers are implementing a threshold ECDSA signature scheme from the paper announcing it. Last night we had a jam session with a cryptography professor at a top-10 CS school to discuss our system design.

Getting the opportunity to dive back into the literature, get involved with research, and still code has been amazing.


At work? No.

Outside of work? Yes, but most of that doesn't involve programming. Mostly doing stuff with pre-industrial revolution era woodworking and blacksmithing. I do have a few interesting programming side projects too, but I haven't felt like sitting on the computer after work for a while. Maybe when it's winter and I don't feel like going out.

For doing projects outside of work, I've had to learn some patience and preserverance. Previously I'd put all my might into a side project and then burn out and abandon the project. Nowadays I try to keep the side projects in a state where I can easily pick them up and leave them dormant for a while. I've got projects that I've been working on for 5+ years and they're still going.

As for working with boring projects... I just had to get used to it. I've never enjoyed any work I've done (in exchange for money), but the pay is ok and I can aspire to do great things outside of work.


I have recently been interviewing and people have been asking me very CS-specific questions that, quite frankly, never come up in my day-to-day work. Not only that, but they _haven't_ come up in the past 15 years of work. I had to really think about some of the answers because I just never do it.

The roles were for more CRUD-related gigs. I don't really get the emphasis on those CS particulars when you don't really run into them much.

Anyway, no my job is not interesting. The challenges are organizational and political rather than technical.


> Most of my work seems to be boring CRUD work where the challenge is gluing libraries together or figuring out business requirements.

This is ~80% of software development. To stay sane find a domain where the business logic interests you. Maybe you're into sports, crypto, sci-fi, whales, whatever.

Try and find a job in these domains. In my experience it makes the day-to-day grunt work of developing software more enjoyable since you're solving novel problems in area that you care about.


This was one of the reasons I went to law school after getting a CS degree. I now practice law, focused on patent litigation.

My experience generally has been that the work is more varied, and there is more learning as opposed to mechanically doing.

Sometimes I get to deep dive into interesting technical topics. I’ve taken things apart and reverse engineered bits of software and worked with experts. Plus I am deeply fascinated by computer history, and sometimes I get to dive into that as well when looking for prior art.

On the other hand, some patents really suck and have claims that were clearly written by people who didn’t understand what they were writing about. Arguing over these requires you to almost suspend disbelief to operate in a world where the claims make sense.


I have been considering making a switch from software engineering to patent law. Are most patent lawyers employed by large law firms or is it common to work for yourself or in a small practice?


For patent litigation (fighting out infringement claims in court), I'd say it's mostly done by large general practice firms and medium-to-small boutique firms that focus on IP.

For patent prosecution (drafting of patent applications and advocating before the patent office to get them issued), there are some solo practitioners, and probably more small practices than there are for patent litigation, though the big firms do prosecution as well.


Hang out with the folks in biotech if you want to be inspired. You can literally see progress on a daily basis for a host of age related diseases ;)

You can also participate indirectly by tracking the market and making small investments in say: AbbVie, Gilead, Regeneron, Spark Therapeutics, Ginko Bioworks, etc. Or apply your skills to Kaggle style ML competitions, citizen science projects, open access gene banks, etc.

Stay positive!


I did a biotech project as a college student for a cheap hourly rate. It was amazing and I didn't really appreciate it at the time. I've spent most of the last 20 years working in IT or digital marketing (building branded web and mobile apps mostly). I've had a handful of interesting technical challenges, but nothing close to working in biotech.


If you want consistently interesting work you need to be proficient in two different disciplines. Computer Science isn’t enough. Interesting work is the product of being an interesting person.

If you are a computer scientist and say, a marine geologist, there is some work that only you would be able to do, and some innovations that only you can see, that plain CS guys knee deep in the CRUD cannot.


That's an important realization that crushed me a bit when I achieved it. Going into programming, I felt I have the most interesting skill in the world. Turns out, it's only interesting if you can apply it to something interesting - and if you (like me) only know programming well, then you'll be stuck writing trivial stuff and tools for programmers :).

I wish I'd know that 11 years ago. I'd go to study aeronautical engineering or biology instead of CS. Now, I play the catch-up game, trying to learn a completely different field, just to have something interesting to apply all my programming knowledge and experience to.


Indeed, it is far easier to study another field and catch up to computer science than the other way around.

There is so much content and libraries out there for programming that it’s becoming more trivial to write effective code, especially if performance is not an isssue. You barely need a CS degree anymore.


For me that's where side projects come in. I'm working on Maths teaching software [1], which allows me to combine my teaching experience (figuring out what feedback to give as students work through problems and when) with my (limited) technical experience (which admittedly has been 80% gluing libraries together!).

The day job still pays the bills but finding something that interests me personally while also offering potential future rewards is what keeps me going.

[1] https://blutick.co.uk/demo - alpha stage right now


Completely. After 10 years it's still just data in, data out and the only real challenge lies in deciphering business requirements.

Whenever I have spare time I'm trying to build a solution like Walk Score for where I live, where such a thing isn't available. Hopefully something will come of that.


Right now a colleague of mine are working on a project called TallyLab. It's a "data diary" based on IPFS and OrbitDB. By utilizing those technologies we hope to create a distributed, decentralized, end-to-end encrypted, peer-to-peer system that gives people full control over their data. We believe it will be the first of many "GDPR-first" or "HIPAA-first" apps.

Sign up for our beta program at https://tallylab.com :)


I know how you feel. Most of it is chalked up to where you live, then the company you're at, and then the team you're on.

The first two are pretty easy to remedy if you're young and adventurous enough, but the last one might leave you searching for a long time. I've up and moved all over the place, and never stopped searching. After 10 years in this field, I've finally got a job that really brings me satisfaction. What most people don't tell you is that it's all about your boss. If your boss knows you, and helps you reach your potential, any job can be fulfilling. Most bosses aren't that good though, and they will stifle your growth and make your life miserable because their boss is doing the same to them.

The real key is to know yourself, know your skills, and advocate for yourself tirelessly. Make yourself accountable, and then deliver. People will take notice, and if they don't, pack your bags and move on to the next spot and try again.

I'm Director of Engineering for goin.org now, and I'm doing exactly what I love to do: understand a business problem really deeply, and then construct a series of large software systems to automate those business problems. Software engineering in it's truest sense is what I love. Structuring systems and code so that they all scale easily, and adding new members to the team is easy because the code is setup in such a way that new people can get up to speed and start contributing right away. Technical debt can only be allowed for an immediate life or death business situation, and once we've made it through, it is reconsidered and fixed.


I'm CTO of a machine learning/computer vision company, and quite a bit of the team's work is "gluing libraries together" -- but even so, it's an intensely interesting, rapidly evolving field. Plus I get to play with pixels and cameras and VR. That being said, I paid my dues in the 90's and early 2000's doing web services and boring J2EE and gluing Java to native and PHP to Perl to CGI [bleech]


How did you earned that position despite your experience? Seems impressive to jump that far given that industry prefers very young and buzzword oriented (or phds in that particular field).


I was raised to think that in many professions greater technical knowledge/experience would lead to greater challenges, pay, and value creation.

This can be seen in medicine and law --> Doctors vs PAs vs Nurses / Lawyers vs Paralegals.

But in tech, which feels like it should be as meritocratic as others, the links between technical challenge/pay/value creation are much harder to find.


As someone in the healthcare space, those positions in healthcare are gatekept by degree issuing universities and government-issued licensure. This is for good reason: we wouldn't want a system where drugs can be dispensed by just anyone, we want some assurance that those who we give tightly regulated powers to are indeed qualified. Tech to me feels like much more of a nascent industry, there is much less of a guild system with its pay-your-tuition and do-your-internship type of requirements. Rather, software is much more of a free-for-all, winner takes all type of labor market. Also, software is not given the same visceral examination as prescribing of drugs or prosecution of crimes. So, while technical skill in those other fields is likely correlated with the degrees, in tech it may be that highly skilled individuals get roped into management positions or into work on high-value yet low-interest business projects.


A lot of people have told me that I would never use the maths, physics and CS I have learnt at school... and the opposite happened! In my job (at Distran, a start-up based in Zürich - founder), I had to use a lot of maths, electronics, physics that I learnt at school. Most of the people here are using their scientific/technical skills to simplify experiments, create new algorithms etc... of course this is the 10% part of the job as implementing ideas take most of the time. And you have the gluing part as well.

My answer to you would be to work in a start-up where a broad spectrum of tasks are to be solved by a single person. Hardware start-ups in particular need to cover an even broader spectrum...

One aspect I found very important was to "choose the good combats", something that is worth to fight for, so that even after years you are still motivated and proud of what you have done. E.g we are making a gas detector that have obvious good effects on mortality or environment.


That is one of the main reasons why there are so many open source projects; many developers are bored in their day jobs and want to scratch their interesting problem itch in their free time.

But you have answered your own question: if you want to work on an interesting problem full time and get paid for it, one of the best ways is to start a SaaS on something you like.


My day-to-day is mostly CRUDs, yes. However, the consultancy-company I work for has various interest-groups. I'm leading one for "Algorithms". We meet (on company time) and do various things related to that theme. Workshops, learn stuff etc. I think it's a smart way to keep us motivated, while also creating knowledgeable consultants.

Some recent activites: 1. Workshop on evolutionary algorithms I made https://matsemann.github.io/walkingea/ 2. Workshop on max flow algorithms people worked on: https://github.com/Matsemann/maxflow-workshop 3. We played elevator saga 4. Lightning-talk bonanza where people prepared small talks related to hard problems / CS theory. 5. This week programming LEGO robots


I'm happy the technical part of my work is boring because as a business owner I receive more than enough excitement delivering excellent service to my clients. I think it is important to be a stakeholder and have complete ownership of a problem. Then you might prefer boring because all you care about is delivering a good result.


I love working on user-facing stuff! It gives me the chance to learning about interests, human behaviour, interaction, etc.

But I think your main issue might be about keeping learning. Personally, specially since I never studied CS (Industrial Engineer bachellor here), I loved reinventing the wheel about programming while at university for fun. I made a bootstrap and jQuery clone that ended up quite popular. Since I have finished, it has been more difficult because of time and energy, but here I am, reading HN while working on my robot before sleeping.

I have given it a thought to ask for part-time working next time I am looking for a job to be able to focus on my passions on ny free time: https://codewithoutrules.com/2018/01/08/part-time-programmer...


I'd take 20% pay cut to work on something important or useful to our world. The tiny problem is... there is no such thing. Everything seems meaningless crap, especially in small startups where I generally try to be. So yes, depressingly maybe, I'm with you OP.


A place to start are the YC NGOs


I'm not sure you'll have a lot of luck finding that in a job as much as pursuing personal projects.

That's where I let my creative and experimental ideas run free. Who knows, maybe one will become popular. Remember, it's quantity over quality with this kind of thing.

As for things you've been taught in college, and this is just my opinion: if you're being taught it in college, odds are there's about a thousand wrappers or frameworks to do the same thing without the need to about it. I doubt there's any demand for things popular enough to make their way into your curriculum. I'd say a lot of college is fluff and a waste of your attention.


As a freelancer, occasionally I am hired specifically to solve an interesting or novel technical problem a particular organization is not staffed for.

For "normal" contracts, I'm usually leveraging open sourced libraries when possible, and implementing things in the most uncontroversial way possible. My main goal is to leave the customer with a product which does the job, performs well, and can be easily understood by the next developer to pick it up. In these type of projects, my main outlet for creativity is in custom tooling and workflow automation, not anything user-facing.

Other than that, I solve lots of interesting technical problems in my free time.


I have a problem that appears to me to be both interesting and technical: There are about 3 billion people using the Internet, and there is lots of content on the Internet, e.g., just for the data types still images, video clips, Web pages, PDF files, audio clips, Web cams, IoT, and maybe more.

So, how is a person with an interest, at some time, to find the content for that interest? Uh, treat the interest as unique in all the world. Part of the challenge is meaning, how to get the content with the meaning they want?

So I used some pure math prerequisites and derived some new applied math for a solution. No, it's not data science, machine learning, artificial intelligence, cluster analysis, regression analysis, principle components analysis, classification, random forests, regression trees, discriminate analysis, neural nets, sigmoid function approximations, categorical data analysis, speech recognition, natural language processing, the semantic graph, etc. I haven't assigned a name to the math.

For users, the work is just an easy to use Web site, with just two main pages, very simple HTML, no cookies, no user IDs, and nearly no JavaScript.

The code is based on Microsoft's .NET with IIS, ASP.NET and a little use of ASP.NET. The total, on-line and off-line, is 100,000 lines of typing with a lot of in-line comments and about 24,000 programming language statements. There is also a lot of documentation external to the code.

I didn't use an "integrated development environment" and, instead, just typed in the code using my favorite text editor KEdit with some dozens of my KEdit macros.

So to me the problem has been interesting and so has the solution. Deep in the code is my new applied math. Also there are some new or tweaked computer science algorithms. As time goes on and I have a significant server farm, there may be more interesting problems with interesting solutions.

So far all the code appears to run as intended. It's my first code for this project and my first Web site, but I tried to write production quality code and not prototype code. And the site is supposed to be a good solution and not just a "minimum viable product". The architecture of the code and the server farm are fairly scalable just by some simple sharding. If this project gets to be a big thing, then scaling might become challenging with some serious changes in the code.

I'm a sole, solo founder and 100% owner.

I intend to announce alpha tests here on HN.


My job (developing an interactive VR surgical training platform) has lots of interesting technical (and non technical) problems to solve. Shipping any product involves solving a fair amount of not so interesting problems and satisficing however.

I left a well paid job in games to work in VR because I thought there was a lot of interesting potential for non games VR applications. Seeking out work that interests you does often involve taking on more risk and often a pay cut relative to 'safe' / boring software jobs, although perhaps with some chance of a bigger potential upside in the right startup.


What would be interesting for you? What would you like to do?

Does your employment contract allow you to do this in your own time?

For me, I'm more interested in a particular domain, rather than the technologies around it. So, for example, I like marine biology, so the projects (and work) all revolve around that. You might like distributed databases, so why not work around that. Find what interests you, and move towards that direction. Some people have contracts that say that their employers owns all their work even when they are not at work, and some say they cannot do open source work, so this could be a constraint.


I am... I'm working on Gorgonia[0]. My goal this year is to provide a good alternative to Tensorflow and PyTorch. At the same time I'm working on several side projects that I believe will cause the fruition of an AGI.

I'm lucky in the sense that I get to work on things that uses Gorgonia at work (though I don't actually work on Gorgonia itself proper). Took a helluva long time to get here though. And very many failures

[0] - https://github.com/gorgonia/gorgonia


Of course not. Neither am I working on a meaningful product. If people could just do the jobs they wanted to do, could you imagine how many cancer researchers, doctors, food distribution chain specialists and so on there would be?

Interesting technical problems are boring compared to meaningful problems - but there's hardly the money to improve society. Instead we get to put together software that shuffles money around or does the same thing as something else with some integration or blows up people in the middle east because that's what makes money.


Been working on trading algo for almost 17 years. For the past 5 years the % positive results have gone up 10% yearly.

2018 was the breakthrough year.

Happy about the accomplishment...but a bit sad the project is completed...


Photographers have a similar issue with a different take: they are trained on a tool, and apply it to a wide variety of problems. The difference, I find, is that in photography circles, photographers express a vast array of motivations and interests. They may be doing what they do because they are an artist, a scientist, a journalist, a human rights advocate, maybe even a computer scientist.

I would encourage you to look at computer science through a similar lens (pun intended). What human problem are you solving?


Welcome to a career as a Software Engineer my friend, every company seems to interview you like you're going to be a rocket scientist when all they need is someone to mop the floors


IMHO technical work tends to be very boring and tedious unless you have a vested interest in it someway. I think the key to finding interesting technical work is to first set your sights on some problem or issue that is personally meaningful for you, and then see if can be solved by a technical solution. Case in point, my current day job would probably be categorized as "technically interesting" since it is a project using fairly cutting edge technology and methodologies to try and solve a problem that previous attempts have failed at multiple times. Now that is fine and all but a little over a year in, and while progress is going great, I just don't care anymore. I care about my team, and my organization but my personal interest in the work is non-existent. The luster of novelty has worn off, and it is easy to see a long stretch of road that glitters from time to time but offers no real peace of mind. I think my peace of mind will come from less technologically fanciful endeavours and more meaningful work, such as providing better local educational opportunities for the community than what I currently see being offered. As such, I'm currently in the process of transitioning into this line of work while also taking a huge pay cut, and I couldn't feel better about it. Good luck to you.


No. I’m in engineering/desktop dev and very aware that if I ever switch to the web side of the world then I’ll either do very menial stuff like CRUD, or very complex stuff like scaling CRUD. Unless there are actual algorithms in what I do, I get bored very quickly!

I think it sounds like you should find a job with more algorithmic challenge. Games, finance, insurance, simulation, engineering.

Or just work on write the libs and tools. I don’t want to write a sql query I want to write a sql parser.


There are interesting problems (technical and business) in boring businesses. If you want to work on interesting technical problems you probably need to excel at a technical company. At an enterprise you are likely to find "interesting" business problems which you should really endeavor to solve in the simplest most fault tolerant manner. If you can work out which parts of CS interests you maybe you could find a problem to apply that to or research in depth.


> Most of my work seems to be boring CRUD work where the challenge is gluing libraries together or figuring out business requirements.

I think there is plenty of work out that is technically challenging, but most companies want apps that do solve their business requirements. (Shockingly, they want to make money :) .)

But I've found that 10-25% of my time is spent on tough technical problems. They may not be pure CS, but architecture, optimization or troubleshooting are all tough and technical.


I'm currently working on a very interesting problem, currently we are making software that makes automatic phonetic transcriptions: https://github.com/persephone-tools/persephone

The quick summary is that you take audio files which you process then run through some models that do labelling and at the end you get out transcriptions in the international phonetic alphabet https://en.wikipedia.org/wiki/International_Phonetic_Alphabe...

In the past I've worked on things that were very boring but also things that were very interesting, sometimes even in the same company. Even if you structure your career to try to spend as much time on interesting problems you'll still run into some boring stuff. If you really want to work on interesting problems it will likely take some effort with deliberate planning and you may end up making less money than if you did other work but these are the decisions that you will have to make. Try to find things that interest you and give you opportunities to master whatever it is, this tends to make work a lot more fulfilling whatever you do.

Incidentally in this language project I've done some work on a Web API that's mostly routine but it's very satisfying because I can very directly see how it makes a lot of other people's lives a lot easier. There's some very clear impact there and it makes some otherwise routine things a lot more enjoyable.


Just submitted my PhD in ML (waiting to defend) and started working as a contractor in an exciting enough arm of a boring enough company.

So far it's all boring CRUD - but there may be interesting problems to solve as our team and product grows. I'm trying to position myself as the guy to tackle these interesting problems by taking a proactive role in planning and project management, without cornering myself as an irreplaceable part of the boring part of the business.


> but there may be interesting problems to solve as our team and product grows

So mush optimism..... just check out the other replies on this thread. Good luck anyway.


First of all, let me point out that this:

> Most of my work seems to be boring CRUD work where the challenge is gluing libraries together or figuring out business requirements. Actual interesting technical problems seems to be mostly wrapped in ready-made libraries / SaaS services.

...isn't a problem. It's a sign of maturity of the field. In 2018 most problems that you can solve with a computer should have an off-the-shelf library or service. (And most of the job of most working programmers should be mostly selecting and configuring existing solutions according to known design patterns. Like most engineering.)

Second, you've got to take into account that NN/ML/AI et. al. is going to "eat" a portion of all programming work within the next fifteen years or so.

(I think we're due for a contraction of professional programmers, at least as far as the job has been done for decades.)

If you really want to tackle intricate problems you're gonna want to look at biology or nanotech. People in this discussion have already mentioned "matter compilers" and "systems biology".

If you really want to stick to Computer Science problems I would suggest coordination and control of swarm robots. (That's what I'm working on, FWIW.)


>Second, you've got to take into account that NN/ML/AI et. al. is going to "eat" a portion of all programming work within the next fifteen years or so.

Are there any repos I should look at to learn this? How is this possible when even humans can't read sarcasm online? I'm genuinely blown that this is even possible?!?


Repos, no. But, no coincidence, I have open two relevant tabs right now:

"Software 2.0", Andrej Karpathy https://medium.com/@karpathy/software-2-0-a64152b37c35

> It turns out that a large portion of real-world problems have the property that it is significantly easier to collect the data (or more generally, identify a desirable behavior) than to explicitly write the program.

"Deep Learning is Eating Software", Pete Warden https://petewarden.com/2017/11/13/deep-learning-is-eating-so...

> The pattern is that there’s an existing software project doing data processing using explicit programming logic, and the team charged with maintaining it find they can replace it with a deep-learning-based solution.


Two essays on "interesting technical" problems.

"Richard Hamming : You and Your Research (1986)" : https://news.ycombinator.com/item?id=4626349

"Three Golden Rules for Scientific Research : E. W. Dijkstra" : https://news.ycombinator.com/item?id=1504402


You should dabble in gamedevelopment, lots of room for innovation. Often you'll end up implementing some custom algorithm or solution where there were no previous library X that solved your exact problem. Sure, there are obviously lots of engines, algorithms, libs, standards here too... but I think it's one of the areas where you often have to come up with some new creative solution. At least, most of it is not CRUD ;-)


Software is about design, not algorithms (by and large). There are lots of design problems you can work on. The major issue is that this is as much a people problem as it is a technical problem. If you want to work on something interesting, you will have to transform your skill set.

And yes, gluing together libraries is part of the problem. How do you solve that problem. And no, your CS degree will not help you in the slightest.


I think you are expecting 2 different goals to align itself for you: 1) work on interesting project 2) to be paid salary for it.

It rarely happens. If working on interesting project is very important for you, you can do it as side project or start up. Or, seek out specific department in companies where such interesting work is happening. You might also have to sacrifice some amount of salary to work in such companies/startup.


I work on Primitive, a novel way of visualizing and interacting with code in VR: https://primitive.io/

Half of the technical work is built around compiler technology (and more generally the implementation of programming languages, such as the various runtimes). It's been fascinating to understand how widely-used programming languages are implemented, which I talked about in a blog post about inner classes in Java (https://blog.primitive.io/inner-classes-in-java-1804ed51b7de). Similarly, it's been great to look at large open-source codebases and try to understand them. For example, we dug around the internals of IntelliJ IDEA (https://blog.primitive.io/how-intellij-idea-knows-your-code-...).

It's true that we often use compiler APIs that are already available, but we still have to understand how those compilers work, and what language features we have to support in our data extractions. Right now, we're a small, scrappy team, but in the future, we'll surely have to build out more infrastructural technology ourselves.

The other half of the technical work is working with 3D graphics and in data visualization, another area of CS I really enjoy. Making code _accessible_ at a glance is always challenging, but when I get to use that visualization to understand new code, all the hard work is worth it.

Combining all this with the non-technical work a startup entails (business development, UX, etc.) means I get to really flex my mental muscles!


At my job? Nope. And I'm totally okay with that. I've worked on interesting technical problems in the past, and I've worked at companies with a huge social impact. I'm pretty have those behind me. Those things will eat me alive every time.

It's not that I don't care about my current job or that I don't do it well. It just doesn't involve anything even remotely interesting technically or socially. I work for a company that makes money. That's it. And I'm quite happy with that. I show up in the morning, do my job, and go home.

I don't have a wife or a family, but I do have me to take care of. And after years of neglecting myself physically and mentally, I'm taking the time to get some balance in my life. Get some exercise, spend more time with relatives and friends, more time with my girlfriend, and develop some of my own pet projects (both technical and musical) that I've been putting off for a long time.

You don't need an excuse to have a boring job that leaves you with extra time on your hands. It doesn't have to be because of a wife or husband or kids or a sick parent or anything. Taking care of yourself is a good enough reason to pull over into a slower lane or enjoy the one you're in now.

Most people are not really doing anything that interesting in the technology world. Many people who think they are doing interesting things are just hyped. The vast majority of the world's problems that can be solved by tech, have been solved. The only thing that's left is to implement them, and that's not super exciting a lot of the time.

If you feel the need to do more, you're going to find that need best met on your own or with a small group of friends working on projects. Most likely not at work.


My work is also similar to OP's: CRUD and figuring out business requirement (so called 'domain driven design'). It's kinda boring but the pay is good and there is almost no pressure. Some of my better coworkers are leaving for big data/ai/next big things startups, so to keep my mind from getting too cruddy I am doing the following: - Keep learning, reading old good algorithm books, trying new techs and skills to improve myself. My employer actually encourage this. - Sharing what I have learned with my coworkers so I can have better understanding and also help my coworkers too (sometimes). This is also encouraged by my employer. - Foster adoption of those techniques in company's own project. Even CRUD apps benefit from good type safe functional programming practice, or batching with akka stream etc... - Aside from those I also help my friend with his analytics startup as my Scala skill is useful for that line of work.

All of the above help me with finding a new company in case the current one goes out of business too.


I work at Cloudflare, and I at least feel that we work on interesting things. There, of course, still is components which are CRUD, but there are also people who work on hard crypto, low level optimization, networking at scale, managing petabytes of daily logs, etc.

The jobs exist, but you have to get pretty deep into the right technical universe before you're the right person for them.


I've been doing this gig for a long time, and have worked on my share of "interesting" problems, but even while working on interesting things, the work that I perform is the rote, mundane day-to-day tasks of moving data around, gluing libraries together, all to prepare some work unit for the "interesting" stuff.

Think of it this way - an architect designs a house, it's fun, creative, but the work of actually building a house comes down to sawing a lot of wood, and hammering in a lot of nails. Even if we come up with some really cool solution to some difficult problem, the work of implementing it will be like building that house. Computer development is closer to a craftsmanship position than anything else, as pretty much everything is a one-off.

"Interesting" is also subjective. Have you thought about what interests you? Do you have a hobby or activity which excites you? If you find a job that intersects with it somehow, you will have a much more interesting job, subjectively.


Seems like the issue is that any company will prefer to avoid a technical problem for $10k rather than pay $100k to do it in-house. I personally do a lot of interesting work purely because the stuff I'm doing cannot possibly be done externally (since I'm a scientist and systems engineer).

So I guess the trick then is to work someplace where what you want to do is exactly the business problem they're solving. Anything that isn't directly their offering is likely to be farmed out, and I think that will only accelerate.

I don't know the right software analogy, but I wouldn't advise a client to research new ways to manufacture PCBs if all they actually need is to have working PCBs. But if their business model revolved around a new PCB manufacturing method, it would make perfect sense for them to hire me to help them develop that new method.

Assuming it's similar with software, if you want to research making databases run faster don't work for a database consumer, work for a database provider.


I’m very fortunate to be trusted to work/research in anything I think could benefit the organization in the long term. One of the coolest thing I have done was to figure out a way to vectorize part of our CPU bound algorithm. I was able to speed up at least 500x using AVX intrinsics. All that was done in C to be used in java via JNI. It blew my mind away.


I only work on interesting technical problems in my free time. Nobody's really willing to pay for open-ended research.

(Luckily, interesting technical problems in computing don't actually require resources, other than time, and their interestingness is their own reward, so it's not like I need or expect anybody to pay me to work on them.)


I am working on a problem that I find interesting, but may not be super cool by HN standards.

I am working with Julia migration from 0.5 to 0.7(beta) for a huge codebase, and currently contributing to the LibPQ.jl open source library that connects Julia to Postgres.

It was borne out of project need, but being able to help the open source project is very exciting for me.


The technical problems I work on are interesting to me personally because I enjoy getting good at the particular subfield I am in. I don't think they're necessarily "interesting" in the sense of "advance the state of the art and publish a paper" but really that's a question for other people.


Change jobs? I was working in digital identity, working on fairly interesting things like fraud detection and federated identity. But honestly alot of it was still gluing code - various vendors to handle various parts of the processes mostly.

Now I'm at another SaaS company that builds a CRM. Definitely less interesting on a purely subject/industry level but I'm happily learning new things that are personally interesting/satisfying - finally a chance to work with React, ES6, DevOps, even ML stuff. And just started a book club as well, going over structure and interpretation of computer programs.

Plus I gave myself a 50% raise and better benefits all around at this company - win win win. Granted I was obviously underpaid at my last job.

Don't stay if you're unhappy - there are plenty of places to work at that should keep you technically interested as a software engineer these days.


Non-technical academic (Grande École in France) here. I'm at the edge of technical issues every day, though they fall just outside my responsibilities as security consultant and Risk Analyst (they are for the architects to deal with).

My technical knowledge/know-how (acquired over years of Linux, BSD, HN, etc.) still gives me an edge in understanding issues my clients face.

I'm not dealing with technical issues per se, but I can make the link between tech teams and management/non-tech: what one party expects from the other, whilst not sinking into a bottomless pit of unreasonable requests and expectations.

The work is fast-paced (~8 hours at most/project, over the course of ~3 weeks) so I have to adapt to a number of situations, where tech people might deal with said technical problems - and I can give them my 2 cents.

I'm also using my free time to work more on my machines, etc.


I’m working on a project that utilize RGBD camera (realsense) and radar to extract body measurements. I’ve been developing a react binding for Qt Quick (react-qml) which allow you to develop cross-platform native application faster and easier. Personally I feel it quite challenging and rewarding.


I'd like to think I'm working on something technically interesting: as part of my sabbatical I created "Expressions of Change": https://expressionsofchange.org/ As it says on the website: "The aim of the project is to improve the tools for constructing ever-changing computer programs by putting the changes themselves central in the programming experience." The idea is: if something is a large part of the problem domain, we better make it part of the solution as well.

The results are promising, that is: not ready for production yet by a long shot... but the kinds of things that I expected to work well in the "change as a primitive" world actually seem to work well.


Used to be developing hardware and software swarm tech for drones. shows. (yes, I'm that guy)

Company didn't want to spend millions in sustainable infrastructure and evolution (we found another company to do it, they threw big bucks! Wink!) and instead politics pushed things to wilder [IMHO, unachievable] ideas. But that's research nowadays: politics and money. Went into walking robots last year, and... similar result. Now in product development, gluing s/w libs and resoldering circuits from a CM overseas. What a roller coaster last 5 yrs. But it pays the bills.

Hard to do anything challenging today, once the MBAs and sales folks come in (now at very early stages) all challeneges get snubbed for the release date, presentation deck, ecosystem "messaging" and manufacturing.


>I have been feeling disappointed that I haven't been able to use my computer science degree to it's full potential.

Sometimes I feel this, which is exactly why I have multiple side projects which I can flitter between as and when the wind takes me. Like any subject, I think you need to remind yourself why you chose it and get back to the core of what you enjoy. I've not yet personally experienced burn-out in my job (and hopefully won't), but I can see people who have their work-job as their only interaction with computers and begin to resent it.

Depending on how much excess time you have, you can really float the boat out there. Time is the most valuable asset you have (which is what companies exchange money for), find a split between work, a hobby and socializing.


I've been working in games industry for almost 10 years now (mobile games), just started a new job and it's horrible. I was completely burned out in my previous company due to simplistic and boring projects (did I mention toxic management?). So I'm two weeks into my new job and I'm bored out of my mind already! The problems present at previous company are gone, but there is a whole stack of other problems, like enormous tech debt, complete lack of organisation, just chaos. I'm tired, I don't want to fix someone else's mess again. I don't want to force people to start doing things properly. They are quite happy with how it is, so why bother? Now, I can stay here, pretend it's fine (salary is decent) and just plow through. But I can't stand it. Just going to work everyday is a pain. I need to find something meaningful, mobile games are just a pile of garbage. I remember when I started, everything was exciting, making games - a job you'll enjoy every day, yeah, right, it became the same thing over and over. And I find it difficult to work for someone else, especially if they are incompetent or don't respect people who work for them. I was thinking about moving to PC games, maybe one of the big studios (although I've already heard enough about most of them, that I'm not really interested), so maybe indie games or completely outside the industry, simulation, VR? Working on lower level stuff seems interesting (embedded programming), but I don't have required skills. No skills, no time to acquire new skills and I'm completely stuck... I still believe there is something I could be doing, that would utilize my skills and make the world a better place (even if just a tiny bit...).

That was slightly off topic, wasn't it? ;)

Am I working on interesting technical problems? There were some interesting problems in the past, but I'd say just a few each year, which is definitely not enough. I still find it interesting to work on personal projects, even though they are not that different from the games I'm making at work. Just putting the game architecture together, so every part fits nicely into place, is still fun.


Welcome to the real world:-) In my view, that's where interesting side projects come in. Either "side of desk" projects at your company, if you're fortunate enough to work for one which encourages or at least recognises innovation and/or has some form of incentive mechanism, e.g. management who actually know something about technology and who might actually be impressed by your enthusiasm and extra-curricular activities and consider you for promotion or a bonus or whatever as a result. Or if you really are in a dead end job with none of that, then side projects in your own time that keep you interested in technology and your skills current and which might even help you get your next job.


At least Google/Facebook/Amazon/Microsoft seem to be hiring experts in all areas of Computer Science (compilers, machine learning, operating systems, networking ...), though the interesting jobs seem to be need a PhD or at least a Masters. If you have the degree, trying to get into a good group in any of these companies might be a solution to your disappointment. (you probably need to prep for jumping through some whiteboarding hoops, but still...).

At least in the USA (and probably Israel and China as well), there seem to be enough jobs that need solid academic credentials.

Alternatively. keep the CRUD expertise, move into the business side (which is fascinating if you have an interest in how the non technical world works).


I'm curious to hear the tips of people who've avoided the extreme boredom/feeling of uselessness that many of the people in this thread have voiced.

I'm working at a startup, about to go into college, and am worried about this myself -- I've already started feeling that boredom a little bit, even though I'm lucky to have a job this interesting at my age, and this is only my second real tech job. I'm planning on majoring in CS and MechE, which I think opens up some opportunities for combining coding and building physical things, which I hope I'll find more fulfilling.

I know I don't want to spend much of the rest of my life writing code that I don't really care about -- how can I avoid that?


Yes! (at least for me). I'm building a gamified iOS keyboard (self employed), and I have to build an auto–corrective, predictive engine for it. That was a detour for my main target, but is part of the MVP of a keyboard (as we are in 2018, and it's expected by every user).

The constraints of time and memory, really pushed me in revisiting a lot of data structures (mostly tries and DAWG), there is not much information out there, and not much libraries already build, so I have to get creative, read a few papers, tech blogs, etc and do it myself.

So, from what I'm reading here, the moral of the story is, probably you will find joy pursuing your own interests, don't expect to find tech–challenges in your average job.


I had a look at the website, but don't quite understand how this will work, as there are no animations of the keyboard in action.

It does sound undeniably interesting though.


thank you for your feedback, I will change the typing animation ASAP, with a real action video.


In my experience one of the main issues is those who hold the reins often do not have the technical expertise to envision something interesting. Therefore there is no directive to do something interesting, and thusly people do not innovate.

My solution to this is to 1) gain rapport with executive level people and inform them of paradigm shifting opportunities and 2) do the interesting things anyways, when no one is looking... This requires you to master your current position to a point that you make free time within your working hours. Automate, clean up, pay off techdebt until you find it easy to deliver enough to keep managers happy. Then start to work on toy projects to prove out interesting applications of things.


I've been in and out of that boat for years. There's something about doing basic work that just drains creative people. I've found some solace in choosing projects that have a social good component associated with them -- CRUD that feels good. I think a big part of personal happiness is learning to shift your source of joy from actions to outcomes they lead to.

I'm also working on an open source programming assistant to help automate that kind of joyless work so developers can focus on the novel parts of their projects. Hoping it helps people like you get back to what you value. https://github.com/opticdev


A couple of months ago I quit the tech startup I founded to focus full time on research. So far, I'm hugely enjoying it and really glad I made the (scary) jump.

https://octavian.ai if you're curious.


I am at a point where I consider using a different framework than the usual to glue things together "interesting".

It used to be even worse though - I spent almost two years maintaining and developing an 8-year-old JavaScript codebase. Sure, it was interesting, but in way I wouldn't wish upon my worst enemy.

Eventually I found an outlet for this need in my work after hours. If you're childless and your line of work is pumping out CRUD apps then you should easily have the capacity to spend an average of at least half an hour daily on interesting things. Embarrassingly enough sometimes I feel I've created more during these thirty minutes than a whole day doing the stuff that pays the bills.


We all use stackoverflow a lot. And a bit of github too. I am trying to build a website similar to quora using the stackoverflow data dump. But here I am gonna recommend users questions to answer so that he can improve his reputation by answering them.


I completely misread this the first time round, so, to clarify just in case: the idea, as I read it, is to surface unanswered stackoverflow questions.

(I thought it was something about listing answers underneath questions or something, woops.)

This is indeed a VERY interesting idea, as the whole of Stack Exchange has pretty much hit saturation point now, where 99% of questions have already been asked.

The main challenge is that only Stack Exchange has the page metric data :) indicating what pages of unanswered questions are being visited the most.


No, I didnt mean that. I meant to create a different application mainly for software developers in discovering very interesting questions for them to learn from and then show them relevant questions for them to answer hoping to get their reputation increased.


I've felt that way in the past, but IMHO the trick to doing interesting work is finding ways to make the job you're already at more interesting.

I started out as a simple PHP developer working on very boring server-side rendered CRUD apps, but pushed and pushed to get more responsibilities, and ended up redesigning those apps as a single-page web app with UX workshops determining the flow of the application. Later on pushed to be involved in management's research projects, which ended up landing me a job as principal architect of a hadoop-based IoT platform.

All the while the other developers at my company were complaining how boring their job was. You can lead a horse to water...


In college I took a break to work on a startup for a while... that folded, so finally finishing my degree, I went into the military. They actually paid me to play OPFOR in war games and jump out of airplanes. When I realized that you get pigeonholed by your initial choices, I decided I wasn't going to make a career of it.

The next step was government contracting. That was a pretty cool company where we actually got the title "Computer Scientist," and it was pretty exciting as we worked on some interesting big data analytics problems and actually did some computer sciency stuff with natural language processing and entity extraction.

And that was great, except they started to have management issues. So I took a friend's advice and applied to AWS, where I got to work on a fairly new service team. I started to appreciate all the cloud hype, here we had a service that let you request specialized hardware on demand, so you fire a big blob of JSON off and set up a whole network in minutes.

After a while, the stress of the pager was getting to me, and I was tired of working deep on the backend and not being able to explain what I did to regular people. So now I work in consumer finance. I work on a financial methodology optimization engine. The problems are surprisingly fun, though it's complex as all hell and I'm procrastinating as usual... (And, granted, most people can't follow me beyond "oh, I have a 401k" but still.)

Moral of the story: at no point would I say I had a dream job, every one of them had some downsides and no one job used my CS degree to its full potential.

But in all of them, there were definitely projects where I felt I made a notable contribution. Over the years, I've definitely got my money's worth on that degree. All I've ever done is looked for interesting jobs, not so much asking "is this is my life's passion" but "are these people doing interesting things?"

(Another thought: some areas like government and finance are shockingly primitive, technologically. If you find a company that has smart people working in an area that's primitive, you can be one of the first movers.)


Yes. But I understand you, and I agree. I was there. I quit my job in a big tech company a few months ago so I could work on more interesting problems. I started a company a few months, and it's been hard - exactly what I was hoping for.


I think answers here will be skewed, since people who work on trivial programming tasks often don't visit websites like this.

I've worked on moderately interesting problems in some positions, and I've also worked in positions where everyone with experience was sucked into fixing infinite streams of fuck-ups from junior developers and contractors, who end up doing all the actual development.

IMO, it mostly boils down to control. If you have control and you are knowledgeable, you can solve "boring" problems in interesting and fulfilling ways. If you don't have control over how you do your job, programming can quickly turn into glorified data entry.


> I think answers here will be skewed, since people who work on trivial programming tasks often don't visit websites like this.

This is a big assumption you're making, and given the answers, it would appear that assumption was incorrect from what I've read so far?

From what I can tell, most people don't find their work interesting but work for the money and find interesting things to do outside of work. The exception to this is probably those in leadership or research positions. At least that's what I have seen so far in this thread and also witnessed in my own experience.


I do. I gave up many higher paying opportunities and took risks. It is tough to turn down a good offer without a better alternative just because the work is displaying data on a web app. I've found the trick is find interdisciplinary teams. Look for jobs building medical/scientific research equipment, or renewable energy, or robotics. Also, the more experience that you get building CRUD apps, the more inertia your career has in that direction. Go to meetups, build cool things and show them off. Look at R&D grants from your state and cold email those companies. It will take time, but good jobs are out there.


Have been in that boat on several occasions. Eventually escaped to do a PhD and research. Intellectually very challenging and eventually satisfying ... but the money was dreadful. So I'm back in the biz end of IT, boring but well paid.

I think we need to look at how any given company makes revenue. In most cases, it isn't innovation, just same ol' day by day. The only viable escape seems to be to run away with a startup (circus). They can be real fun, but many do flame out and crash. Hard to pick the winners with a technical viewpoint. Again, it comes back to business fundamentals and investor vicissitudes.


We're not a boring company, but there is boring work to get done, and that sucks up a lot of time in a start-up where we should be focused on the more interesting stuff. Not only because it is challenging, but because our customers want it.

But, there is no way of getting the product into the customers hands, billing, support, marketing, etc. and all the other "boring" CRUD stuff that needs to be done to support the product.

This may explain why so much work is considered boring. Unless you have a highly specialized skill, and even then sometimes, expect the majority of your time to be taken up with more menial tasks.


Longevity : www.infino.me

Sadly, getting funded for such important missions seems hard somehow

My advice: get yourself working in a pharma company or a hospital. They need people with real software skills. The pay will suck, but you will be saving lives.


The last job I had where I did interesting things was my first job in the industry, fresh out of school. Pay was abysmal and it was part time, but the things I did actually helped people and made their lives easier.

Since then, despite my best efforts to create technology that actually improves things, the things I make mostly just end up being co-opted to game bullshit metrics.

I think the truth of the matter is that most of the work that keeps the world running is just plain dull, and about 80% of it is just to make the people at the top feel like they're actually doing something.


technology drives business, switch your thinking from interesting technical problem to an interesting business problem solvable through the application of technology.

There's many more options when you think in those terms. For example, decreasing ER frequent flyers through figuring out a way to measure and track patient's medication usage. That's a real problem that, solved, would save a hospital tons of money and dramatically improve the quality of life for many people (especially the poor/homeless schizophrenic community).


I'm twelve years out of college and I wrote a BTree for the first time since college this year. It'd been primarily CRUD up until this year, I've been with this job for upwards of six years, but it's been shifting into more hardcore data stream processing and I've been getting to write a lot of multithreaded high performance code utilizing cool things like hyperloglog's and cuckoo filters. It took twelve years but I'm finally getting to use a little of my comp-sci.


"figuring out business requirements"

Have you tried looking here for inspiration? The challenges here may be less technical, but that doesn't necessarily make them less interesting...


I spent the first year doing manual testing hired as a dev, switched jobs and spent the next 4 years mostly fixing bugs in legacy C/C++, migrating build systems and upgrading compilers. Wrote 1 new feature which was mostly a hack on said legacy code. I would say most of my work is boring as hell, but the job pays well with decent benefits so I stick around. Slim pickins out here in South Florida. I've also given up on finding work that is not mind-numbing AND pays well.


"Innovation is 1% inspiration, 99% perspiration" - Thomas Edison.

If there is a 1% interesting part, and 99% boring parts, that is normal. I often have a interesting idea, and try it - this is starts out fun and interesting. Then I have to prove it - getting the benchmarks to prove it starts interesting but all the special cases I need to check gets tedious. If at the end of all that my idea turns our to actually be good I then have a lot more work to roll it out everyplace in our code.


I feel it is sometimes helpful to see the other point of view. Lets say I had an interesting technical problem to solve and some funds, why should I give it to you instead of somebody else?

Also, as an aside, I've found that "interesting technical problems" stop being interesting when you are building a product. The sexy stuff is finished very early on, and then the vast majority of time is spent on polishing/bugfixing/documentation and decidedly non-sexy stuff.


I sometimes try to look for process improvements & optimizations. It allows you to use some of those problem solving CS skills even if the actual day to day work is mundane


I was a couple months ago, then I started my own thing and I feel great again. It’s called Sidepact and it’s actually really relevant to this problem! It’s a weekend program for employed engineers to start companies—to get people out of their local maxima. Check it out and apply if what you’re looking for next is to maximize fulfillment in your work and you want to own it :) http://sidepact.com


I do a lot of CRUD, and while it is really boring and very similar work, It all builds up to my global system that I basically developed from the ground up at the charity that I work for.

I have been able to invent my own projects along the way, such as mp3 to subtitles and a student portal for the college side of the charity. It's been really fun. However without writing a crud page for some new idea that someone has once a week I dont think I'd still be here.


> mp3 to subtitles

Interesting, how does that work?


Database technology for feeds. It's complex from a business and tech perspective. It does mean that I need to work long hours, but I really enjoy the challenge.


I work as a consultant at a multi-discipline engineering consultancy, where we get to work on cross-discipline projects involving both mechanics, hardware and software. It is quite interesting, although not in the "advanced CS"-way but more in the "I get to build a windmill"-way :)

I know that many of these consultancies exist where I am, so it should not be impossible to find something similar, wherever you are located.


There's a nice dictum from Hamming that goes something like, "In engineering, if you don't know what you're doing, you shouldn't be doing it. In science, if you know what you're doing, you shouldn't be doing it." You got a degree in computer science, but you are employed as an engineer. In most projects you should have at most zero computer science challenges. Once in a while you find a project where a quick back of the envelope calculation says that spending a certain amount of time up front trying to solve a particular research question is worth doing. That's unusual. The whole point of having a mature discipline of computer science is so that we can operate as engineers.

The interesting problems being wrapped in ready-made libraries and SaaS services is an engineering success. As a profession we have managed to take a hard thing and change the cost of it from some number of expensive engineers for some years plus maintenance on it to $29.99/month.

But that means that if you want to work on interesting problems of this kind, you need to be in a company that is building that switch from requiring an expensive team to off the shelf. And to identify that, you need to have a broad understanding of your domain, and where the pain points are that are shared but aren't worth the money for individual companies to solve.

Or you need to be at a company that is big enough that it can afford to work on those problems. Boeing, for example, has dumped a huge amount of effort into spline libraries beyond what the rest of the world has. At their scale and for what they do, it was worth the investment. Facebook wrote a replacement database backend (RocksDB) because the space savings it gave them over InnoDB far outweighed the cost of having a team build it.

It's a well known fact in other engineering disciplines that all the detailed physics and math you learn in college isn't what you use most of the time. The Engineering Commons podcast has [links](http://theengineeringcommons.com/episode-124-mad-skillz/) in one of its episodes to a number of studies MIT did on this subject.

Your other option is to say, "I don't want to be an engineer. I want to be a scientist." And then you have to look into the rather fraught career path of a researcher.


Haha no. Lots of problems here but every time they're solved we go back 5 steps when we get a new set of software from the vendor and have to solve them again. And trying to automate that just means more steps to do every time we get a delivery because we have to retrofit all those scripts into the new software set, which we never know what actually changed and if our scripts will even work with the new stuff.


I've been in the same boat... guess in any profit focused business eventually the cs stuff has to be wrapped up into some form of value adding service, and 'CRUDified' and delivered. I suppose which team you're on or maybe at a startup depending how early on you get into it, could impact how much time/opportunity you'd have to work on the interesting problems


I'm cobbling together a language that is stock standard C with classes. Just classes, nothing more. I'm calling it C+.


I'm a consultant, currently helping a bank move to the cloud, creating the base infrastructure needed to allow a few projects to get started. It can be slow at times, as you still need to connect back to the bank, but the challenges are very interesting, and getting closer to having a production load running out there is rewarding.


Instead of looking for interesting technical problems, how about looking for interesting business problems. I find far more personal value in solving real problems for people than I do in technical challenges. Also, you're more likely to find more money is present in creating things that offer meaningful business value.


No. We "moved to the cloud", everything became a "microservice", put together using existing libs, and I now spend my time trying to figure out why things running in obscure black boxes stop working in the middle of the night. I hate it. I wish I was coding instead of pushing buttons.


Yes. Every day I get home from my Node.js CRUD-app drudgery and learn something new.

Sometimes I work on my machine learning skills (CuDNN/caffe).

Sometimes I design high-performance FPGA boards that meet tight EMC tolerances.

Sometimes I build game engines in C++ with Vulkan.

I'd hate to do any of these things as a day job, that would take all the fun out of it.


If a job is "boring CRUD work" doesn't that imply an opportunity for automation?

I know it's not always possible to simply add "make my own job obsolete" to your own job description, but sometimes those who question how things are currently done are the ones who are asked to change it.


Yup, all the time. Nothing is stopping you from using your degree to it's full potential, you are waiting for someone to assign an interesting problem to you. There are tons of interesting and difficult problem out there. Step up, find what interests you and take a go at it.


job interviews are not just for companies to pass judgement on you, they’re your chance to judge them. Take full advantage of this when interviewing.

You should quit your current job and find a better one, as we’ve seen in this thread, many people are happy. Maybe it’s a technically challenging job, or maybe it’s a boring company but filled with meaningful work or inspiring coworkers. The job interview is your chance to find out.

In your next interview, mention that you wrote this post. If the interviewer responds “oh yeah, I read that and felt the same and decided to quit this job”, then great! youve learned that you shouldnt even bother finishing this interview. If on the other hand they say “oh, I read that and this place makes me happy” then it’s a good sign.

Take your interviewers off script and feel free to be straight and honest about what you’re looking for and what it’s like there. Nowhere will be perfect, but this is a great way to learn if this job will be a good fit, or another soul-sucking chapter of your life.

A word of caution: managers will bend the truth and tell you what you want to hear. Devs on the other hand will often be incredibly frank if you ask then a direct question.

(I had an interviewer at Google and I asked something like “you sound kinda down, are you ok?” and they told me about how they’re really depressed and their project is terrible and they don’t like their job)

When I interview, candidates will ask me questions like “wow, that problem-space sounds really interesting. Are you planning on adding machine learning etc?”. Recruiters will take this question and run with it, spinning an image of all the cool stuff you’ll get to work on at some future time. I just respond “honestly, no. It’s basically a CRUD app, the tech is nothing special but the area the business is in is very interesting and exciting and you might make a lot of money. If that’s not what you’re looking for, you probably shouldn’t work here since I can’t promise you’ll work on somethjng cool like ML and I’m not going to dangle that in front of you for the next three years before you bitterly quit”


Generally the technical stuff is fairly easy, at least compared to understanding the business requirements!

That said, probably 50% of my job is involved with interesting technical problems, combining cloud scale analytics and machine learning in the engineering sector.


Yeah. I don't know - it doesn't seem that hard to get into problems you enjoy. Learn technology that's in interesting spaces, write a book on it or something. Then find work that fits your interests. Maybe I'm over-simplifying it?


Well, someone wrote all those ready-made libraries/ SaaS services. If that's what you wish for, why don't you try writing one yourself? It might lead you to new interesting problems to solve down the road...


Yup, I work for a company that does power systems optimization software. I get to work on the core problem and find ways to improve performance. It's a lot of fun and it combines software and electrical engineering.


I arrived at a very similar spot after having spent about 10 years in tech. Many of the jobs I'd found myself in seemed to be comprised of busy work, or work that didn't actually contribute much to society as a whole. It was pretty disheartening, and I'd jump from position to position, looking for something "better".

Eventually I decided that my world was going to be of my own making, and that I didn't want to spent it unhappy. If anything was going to change, then I alone was responsible for initiating that change in my life and my perspective.

I ended up quitting my job and going to Europe, where I worked with traditional cheesemakers. I learned how to make cheese, milk and to take care of livestock. When I arrived back in NA, my wife and I moved to a more rural location, bought a small herd of livestock and began building our own dairy. For me, working with the animals, and producing these rustic, old-world styled cheeses brought a lot of fulfillment to my life that I hadn't found elsewhere.

It's now almost 10 years later and we've just expanded our operations again. Our production will likely be 4-5x what it was when we started, and we have an incredibly supportive and dedicated customer base that love our cheeses. Being able to talk with them, make them happy, and get their feedback on our cheese is one of my favourite times of the week.

The last 10 years have held some of the most challenging periods of my life. I've had to learn and master entirely new skill sets - marketing, plumbing, veterinary skills, MacGyver'ing equipment to work for just another day before we can get it fixed properly. We've also had our share of the bad times - in farming, the unexpected happens frequently, and we've teetered on the financial brink a couple times. Certain aspects of what I'm doing now have also become, "just a job" - I don't really want to scrape livestock poop in the pissing rain, but someone has to do it. (And sometimes that turns out to be someone we hire to do it for us.)

I still pick up the odd tech contract during our slow periods, though those are getting fewer and further between. Turns out that tech wages pay for things a lot more quickly than farm wages, and a 2 month contract can pay for some shiny new farm equipment much more quickly.

I often joke with my wife that our decision to strike off on our own and start our own business was either the best-worst decision or the worst-best decision in my life; I just haven't picked which one it is yet. :)

Link to some of our cheeses and ladies: https://imgur.com/a/VC2aire


I think that's where side projects come into play. I'm working on a language project on the side because, just as you mentioned, work consists mostly of CRUD APIs around tracking business resources.


Well, the most common technical issue I ever have to deal with, I guess, is "this has to work for a huge volume of data," but it's not like it's day after day of hardcore optimization.


Only doing interesting work in my spare time outside the office :(


Geek for science!

There are trade off for sure, but I would go back to building things in the physical world rather than program for any other reason. note: I have been happily at it for decades


What we’re asked to do on the job shows a lack of imagination among employers, more than anything.

If you want to do something cool, go do it! (on your own time, of course)

No one is stopping you, after all.


Though your job may be one thing, the Free/Libre and Open Source Software (FLOSS) community provides endless opportunity to do meaningful work on another thing.


Mechanical: how do you reciprocally sweep a plate the size of a golf cart chassis such that it moves through space up and down at at least 10 times a second?


Learn how to make no money from machine learning

https://vimeo.com/232544884

Money, Time, Fun. Pick two.


No, I'm only working on a boring problem. But since I can't say I've got a real computer science degree, I find it hard enough already.


As someone who is a student, I'm working on writing a new-kind of operating system this summer for GSoC. I find it pretty interesting :)


I suppose perhaps you can try and write a library or SaaS service that you find interesting? Or join a company that does?


I used to be the product lead for AR. This may seem interesting but in reality, it wasn't at all.


Wao. After all these responses, it would be interesting to know what are you thinking now.


I'm doing research so I'm working on interesting technical problems everyday :^)


It's a mix between technical problems and design but I'm working on making the law-making process more transparent and part of the challenge it to show meaningful diffs for each change. Concretely, we would like to parse each amendment, apply them to the text proposal and then apply the proposal to the current legislation.

TL;DR: putting the laws into git


Using Haskell everywhere--from web browser, to backend, to mobile apps.


Haskellize all the things!


I’ve spent the last three years (straight out of college) teaching high school computer science. I’m headed to graduate school in the fall, but I’ve loved teaching, and think it’s a shame that fewer CS people go into the field. (Pay isn’t as good as in tech, obviously—I think teachers at my school generally make in the $50-80k range—but from a meaningful-work perspective, things are so much better!) A few points:

* My colleagues and I sometimes gripe about parts of the job, but we all agree we’re never bored. We are shifting to a new environment (new classroom) every forty minutes; there’s a ton of meaningful human interaction; and the life of the school depends so much on the particular kids in your classes / the whole school each year. And the pedagogical questions are really interesting, too (more on that in a moment).

* I’m lucky to teach at a school that supports a four-year computer science curriculum and has given me the autonomy to to do whatever I’d like with it. There are plenty of areas I didn’t study in my undergrad CS degree (networking & concurrency, operating systems, distributed computing/cryptocurrencies, combinators and monads) that I’ve had the chance to dig into (read about, plan lessons about, develop assignments and demos about) in teaching my more advanced students.

* CS pedagogy nationally is in a strange place. There is a political push (and a good deal of funding) to get CS in every K-12 school. But very few people trained in CS go into teaching, and there is little consensus about how it should be taught or what curriculum should look like. Companies like College Board, Code.org, as well as corporations like Apple are stepping in to provide curriculum and training to teachers, but these curricula (in my opinion) leave something to be desired, partly because these companies have other interests. For example, Apple wants everyone coding Swift on iPads, and CollegeBoard wants people paying for AP exams. Things are in such a state of infancy now, though, that by getting involved in the community (going to conferences, blogging, creating high-quality materials, setting and example in your classroom), you have a chance to join the debate & help build a better consensus around how CS can/should be taught. There are a number of people doing awesome work already, and several really stellar CS programs at high schools across the country. But we need more!

* It’s really amazing having diverse colleagues whose interests span many disciplines: I have colleagues who have PhDs in physics and English and Classics, who direct plays, translate poetry, write novels... In the tech industry, the majority is young, male, white or Asian, and consumes a similar “cultural diet” of news sources, books, movies, hobbies, etc. It’s nice to be somewhere a little less homogenous.


Machine learning on circuit board autorouting


I’m academia and it’s still interesting.


as a C programmer, basically everything I've worked on for the past 10 years has been interesting.


No.


Thanks for pointing out how poorly this question is worded.


Nope, still rocking.


I feel I am working on interesting technical problems. However, it didn't come over night, and while there was certainly some luck involved, it also took a lot of hard work on my part, and actively looking for the challenges I wanted to be involved with. This is a little long winded, but here's how I did it:

I took a job right out of school in the early to mid 90s doing boring CRUD work. I did it for 2 years and made a good living at it. But I wasn't interested in it. I learned a lot by going on site with actual users, but I knew I wanted to get out of doing that type of work.

I was pretty passionate about Mac development and decided I should be making a living at it. I ended up applying to a few different small to medium-sized businesses where my couple of years at a (boring) Fortune 500 company looked good. I found one that was doing boring Mac development, but it was Mac development. I took the job, and the work conditions were horrid. I left after less than 6 months.

Here's where it gets interesting. I specifically looked for jobs that weren't working on business or productivity applications. I really liked graphics, video, and audio development. (I had been doing some in my spare time and even released some shareware that never made any money.) Eventually I found a small company that did Photoshop plug-ins and printing-industry graphics work. It wasn't as cool as game development or visual effects, but it was pretty cool. The company, though, was horribly mismanaged (by a husband and wife team that ended up getting divorced shortly after I left the company a few years later).

After seeing how poorly run the company was, I ended up starting my own company writing video plug-ins. I also started going to conferences related to Mac development, graphics, and video. I made connections at these events. I also met people in real life that had helped me with programming questions online. I signed up to be on user mailing lists where potential and actual customers hung out to see what the problems they needed solved were.

I ran my company doing VFX plug-ins for about 5 years. While the company wasn't going broke, it also wasn't making any money. I decided to shut it down, sold the assets, and found a job working on a well-known professional video editing suite. I've been at that job for over a decade and love it. It has given me numerous interesting projects to work on. It involves a lot of the same stuff that game dev does, but without the crazy schedules. (Well, usually.) I do interesting graphics and video work. (I could probably do audio if I wanted to, but the graphics stuff is keeping me very busy at the moment.) In addition to the boring parts of just cutting together clips, I've written hundreds of visual effects filters, transitions, and generators. I worked in 3D, VR, AR, etc. I've learned an enormous amount of human biology (why do we see things the way we do), technical specifications (29.97 vs. 30fps, color spaces, etc.), algorithms, artistry (can I make a real camera do this effect? If so, can I imitate it with a virtual camera?), craftwork, etc.

When I was getting ready to graduate college, I really wanted a job like this. I went to a pretty good school (so, yeah, a little bit of lottery winning in there), but there were enough students better than me that I didn't get picked by the cool companies. But I went on to study the things I thought I would have done at those companies on my own and eventually ended up back at one of those companies I didn't get accepted to originally.

Every painful step along the way taught me something. I learned a lot about users, business requirements, and the development cycle from the boring Fortune 500 company. It wasn't interesting stuff, but it was useful and important. I learned not to waste time with poorly managed companies at my first Mac gig. I learned a lot of graphics stuff writing Photoshop plug-ins. And I learned how to make connections, and figure out what users want from running my own company. And now I have what it takes to work where I wanted to work in the first place. It took me about 12 years from graduation to starting this job.


yea, mee too.


Most of my work seems to be boring CRUD work

Ditto! I operate a consultancy which does this for every company, most of which are non-profits. We do CRUD apps on nearly zero profit margin.

High tech fun stuff

We've another ad tech company, where we are writing lots of Rust and Go code. And some auxiliary products which are lot more fun.

I think it's quite difficult to find everything at once place.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: