Ask HN: How do I find a meaningful software engineering job?

118 points by gregorygoc ↗ HN
Currently I'm working as a Software Engineer in a consulting company whose primary expertise is AWS. My day of work is mainly composed of integrating with AWS REST APIs and "designing" scalable distributed systems. I'm quoting designing, because it's really just a matter of composing AWS Services to fit customers needs (provided clients are willing to throw money at cloud services - and most of the times they are).

I just feel that's not something I would like to double down on. I have always enjoyed digging into lowish level libraries like MapReduce or LevelDB and figuring out how it works with layers of abstraction peeled off. I would love to contribute to such a project and I always envy and look up to Jeff Dean and his opportunity to build such a beautiful low-level software and libraries.

Anyway, are there companies which have interesting technical problems to solve and not consider outsourcing them to other vendors? Maybe I should get a job in a company which has a well established product (preferably something used by developers) and has some room for creativity? What are those companies?

87 comments

[ 3.4 ms ] story [ 146 ms ] thread
The sad truth is that the most meaningful job will be the one you design yourself. Did you consider quitting your job and doing something on your own?
would it be worthwhile to get a job at orgs like AWS?

fulfillment is a really 'problem' to solve not just in career but life in general.

I'm a late-career software developer. 30+ years in the trenches doing this...

I've done "meaningful" work at companies that treated my like a consumable resource, and less meaningful work at companies that treated me like a person. I prefer the latter. My suggestion is don't jump at the first interesting work, look more for culture and career opportunity. You can find both, those jobs are not quite as rare as unicorns.

Good luck in your search.

This!

The people you work with matter most, above all else.

Does it though? I've worked with a really fantastic team and manager before, but the utter meaningless of the work, day after day, got to me in the end and I pulled the pin on it.
I agree. I’ve also had both, and hands down I’d take the less than “meaningful” job where I’m treated like a human being.

I’m extremely fortunate as the job I hold right now is a decent balance. It’s not totally meaningless and I think we are helping people in a lot of ways but I don’t think we’re saving the world. However I do work with a great team and everyone treats each other with respect and the company leadership genuinely cares about retaining their employees and treating them well.

I must be rare because I wouldn't mind being treated as less than human. McDonald's was one of my first jobs- and one thing I learned there was that I can chose one of two things: (1)be upset that incompetent bosses are treating me like shit and move on to another job without having learned anything, or (2)I can simply not care about Michael Scott-type managers and just focus, like a robot, on getting really good at my job. Then, in the future, I can move up and become one of the best managers anyone has ever seen thanks to knowing what not to do.

In my opinion, people care too much about work politics. Yes people suck, but sucky people will be everywhere. Learning to cope with difficult people is a skill that everybody absolutely needs to learn at some point in their lives.

> Yes people suck, but sucky people will be everywhere. Learning to cope with difficult people is a skill that everybody absolutely needs to learn at some point in their lives.

I agree with that. And on the point of managers: I’ve had my fair share of shitty/toxic managers. So I guess I spent a decent amount of time being treated that way and eventually it wears thin and you start trying to look for a more humane workplace rather than chasing money or “impact”.

I'm also a late-career dev like the OP and agree with everything said.

I'm going to add that if you want meaningful work, work on a side project. Even if it doesn't pan out, it's a great learning experience and could open doors and ignite conversations with people leading to much better and fascinating opportunities.

I work at a midstage well funded startup where I'm paid well, treated nicely by my coworkers, have a great work life balance, and a clear career path for advancement.

But we do the typical tech wankery bullshit, and the banality of it eats away at you. Maybe the goal is to get accustomed to this and accept that my job is better than 99% of the world, but christ if I'm going to spend the next 20-30 years of my life doing this and filling it with hobbies that also don't have meaningful impact, why even bother.

> if I'm going to spend the next 20-30 years of my life doing this and filling it with hobbies that also don't have meaningful impact, why even bother.

I understand those thoughts and feelings because I have them myself. That being said, why do you feel like your hobbies also have to be meaningless or have no impact? Volunteering can be a hobby. So can doing something like coaching a kids’ sports team (if you like kids) or mentoring someone or something else along those lines. For me, my job is a way to help my family and other people who are way less fortunate than I am.

Also, and I know this is a “typical” response around here: Have you considered the idea that you may be suffering from depression? Most of the time when the, “why does this shit even matter” feelings hit me it’s because I’m hitting the depression stage of manic depression/bipolar.

>Volunteering can be a hobby. So can doing something like coaching a kids’ sports team

I do volunteer, I'm active in tutoring underprivileged kids for their SAT/ACT's, and otherwise help immigrants fill out their N-100 forms. I take Arabic classes in my spare time, and I fill my free time with various other hobbies (rock climbing, hiking, etc). And that's great that I have an impact on a local community, but in the end, why does it matter? Any bozo with two brain cells to rub together can have an impact on their local community. Aren't all these hobbies just escapism from the fact that my life is centered around this 40 hours a week that I spend debugging gevent or rewriting yet another RPC service?

To me, the acceptance of the reality of "it's extremely unlikely that I'll anything that has a meaningful impact on a large group of people" is the saddest thing of all.

I call it "Nothing matters, everything matters" dilemma.

Every little thing you do has some sort of meaning (even those hours spent debugging) if you choose to give it one.

On the other hand nothing really matters on a large enough scale not the things Bezos, Putin, Musk or any other human does.

Everything is ephemeral as Ecclesiastes already found out.

I think I'd be even more depressed were I put Ozymandias shoes.

There's something else here here. Sure, ultimately everything is ephemeral and futile. But still, there's some ordering to things. The ordering that makes me doing yet another CRUD form that will make some executive slightly richer at the expense of someone else strictly less meaningful and valuable than the stuff Musk does. So even though nothing ultimately matters in the longest of runs, we still have to do things, and we still end up valuing some kinds of things over another.
I go the route of Camus and absurdism:

Perhaps nothing matters, but I will carry on anyway because there is still a chance that something matters.

And really I just want to spite nihilism because it’s self-defeating.

You may find value in studying some stoic philosophers. They have been pondering this question for a long time and have many insights that I have found valuable.
The chance of you actually working on something that impacts society in a large way is pretty nil. Even billionaires are lucky if they can have that kind of impact.

For me, thinking smaller and looking at how I can have an impact on my family, friends, and local community is what I have found to be most fulfilling.

(comment deleted)
Very much my experience too.

The only thing I found that worked for me in the end was what I call the "just work less" approach.

How?

Cut expenses to the bone, and then cut some more. Go contracting. Aim to work for money maybe three months a year.

I found the non-work portion of the year involved travel, reading, family, writing, and tech projects done for the hell of it. It worked, and my life felt much happier, and more in balance.

One of the biggest problems with the industry (aside from the generally meaningless nature of most of it) is the traditional 40 hour week. It just burns people out too fast.

This is an interesting dichotomy to present (meaningful versus friendly work culture). I imagine there are also people who prefer the former. I am not judging at all -- find the dichotomy pretty accurate.
I’d be curious to learn more about you. Shoot me a mail, it’s in my profile.
Same here. DM me on Twitter or email my username at Gmail if you can't use Twitter
You can do mapreduce on Lambda and S3, https://github.com/bcongdon/corral

Read up on Brendan Gregg's work. Start benchmarking your systems. The difference between science and fucking around is measurement - paraphrase of Adam Savage.

The title asks about _meaning_ but the first question you ask is about _interesting_ technical problems. This seems to be a potential discrepancy to me. Unless you find deep meaning purely in the interesting nature of technical problems, then it might be worth considering that difference and why that word is hanging in the title yet seemingly not discussed much in the body of the question.
Meaning is incredibly fickle, certainly not an inherent quality of pretty much any work.

The work you do today seems to enable a range of businesses to get on with doing whatever it is they do by letting them leverage some incredibly powerful technology. That sort of enablement seems like something I'd find meaningful. But you're not me, and I'm not you.

If you want to work on more deep technical problems, for the sake of the technology itself (at the cost of being rather further removed from the real-world applications your work enables), go look for that, that's perfectly reasonable. But be careful about assuming that this will necessarily feel more meaningful.

I agree that this "meaning" is a hard thing to put your finger on.

But you know it when you see it.

I think it's maybe not so much about the actual work as how you feel about the work. I have worked on side projects that are not too dissimilar to the day job, but have felt far more meaningful to me - it's sometimes hard to define exactly why though! I used to think it was about helping others, and it is true that does feel meaningful, but I think there's more to it than that.

I've felt similar cravings for meaning in work.

What helped me (may be different for you) is to understand my personal values and places to invest that aligned with those values.

For me, I realized I value - working to create sustainable/profitable companies - quantitative reasoning - proactive communication - goal oriented planning

From there, I worked for couple of small companies but left after I realized they were chasing billion dollar valuations and/or practicing irrational product management. Since then, I joined a small data engineering team in a medium sized cyber security company and started trading stock options on the side.

Overall, I focused on doing work in environments that aligned with my values. If there wasn't alignment, I moved on.

Great question mate. Best of luck!

Check out the U.S. Digital Service. Software engineers who change lives and work on really interesting projects.

https://www.usds.gov/

(I'm biased, see username)

Do you think there will ever be an effort to expand the USDS outside of DC or even allow remote? It sounds like a great place to work.

Semi-related: have you seen the work the USDS does significantly affected by political shifts?

Look at Code for America. Also, look at positions at your local governments. Some city and state governments have been getting things together.
Meaning is something you create or find, it’s not intrinsic to the activity.

Right now there is someone complaining about doing “boring front end crud stuff” - an established product - who wants your job.

There is also someone doing “boring detail level stuff” who wants your job.

To put it another way: why is a low level library more meaningful than yours?

I think you are right that it's not the work itself that imparts the meaning.

The interesting question is why does some work feel so much more meaningful than other, similar, work?

If you can figure that out bottle it please and send me some!

Okay, here is my process:

1. Get a lot of sleep

2. Drink caffeine

3. Take a moment to think about the larger social impact of what you do -- it definitely has some impact

4. Focus on the problem just ahead of you, get absorbed in how interesting it is from a certain perspective

And that's it. If you're doing anything remotely technical, these are usually easy. But this can be done even if you're trading commodity futures.

(Trading commodity futures is an important economic activity, and you're rewarded for reducing demand when its not needed and increasing demand when it is needed).

Meaningful jobs are hard to find.

You're better of working a less meaningful job that pays well, invest that extra money, and getting out of the industry (or FIREing) as fast as possible. Then you can work on your own stuff.

Cynical as it might sound I actually think this is a good approach. :)

Even if you can't RE you can go contracting and reduce hours dramatically, or do some other work outside of the industry.

If I may suggest a life tip, stop actively looking for meaningful work at once. Or give your career a pass and work for a non-profit you truly believe in. Some jobs are meaningful; some are less; some aren't at all.

The more important part actually is to have people who appreciate who you are and what you do around them. Your boss and colleagues; but also end-users. If you ever get to meet end-users telling you how you much you've been improving their lives, that is certifiably fulfilling and meaningful. (If you don't take it from me, take it from Randy Paush.)

Also, consider building a family at some point. YMMV, but if you're looking for something meaningful to do in your life, I cannot find words to state how much more fulfilling making a spouse happy and educating a child is compared to work.

In my experience, meaning comes from within: finding interesting problems that matter to you. If you know what that is then getting there is much easier.

If you think you really do like LevelDB try writing your own version of it from scratch. This will test your understanding of the fundamental principles. It will also test your motivation. Then try to explain to someone else how to do what you did.

Once you truly understand LevelDB then pick a thorny problem they are working on, propose a solution, gather feedback, and solve it. Wash, rinse, repeat. A couple years from now you could be the LevelDB expert you've always wanted to be.

Then a few years down the road maybe you'll find some key insight that everyone was missing and write your own database that solves that particular issue and you'll be the one that someone else is looking up to.

meaning from the human perspective also comes from within, you can complain about the culture at a job, but you also have to recognize that you are a part of it, and if it's not meaningful to you, you can either leave, or learn about people and try to lead by example and determine if they can change with you in a way that respects your own experience and understanding and reflects theirs. This is so the culture can be community strengthening and building, and allows people to grow in ways they choose, enough to feel like they are more than a software component (cog in the machine, etc)
His problem though is not with side projects is it? It's the 40 hours cranking out meaningless crap in the office that's the issue here.

I've had no problem finding meaning in my side projects - the job I do for money though always seems to degenerate into a daily grind.

I think it does have to do with side projects if that's the avenue OP wants to take to find meaningful work.

> I would love to contribute to such a project and I always envy and look up to Jeff Dean

Instead of being jealous, be the Jeff Dean you want to be!

> Maybe I should get a job in a company which has a well established product (preferably something used by developers) and has some room for creativity?

I'm being glib but it's honest advice: one way to get the kind of work you want is to be the expert people need. Rarely does a team hire someone from outside with zero knowledge of a critical, low-level system and pay them to learn it. More often than not they want to hire someone with the skills and experience they're lacking.

The hard part is finding the motivation. A good chunk of line-of-business applications are valuable but do not require, "creative solutions." They need people who understand the problem domain so well that they can translate business rules into systems and can anticipate users' needs.

The low-level work is a lot more fun and personally satisfying for people but you have to be pushing the envelope to get it. If you have the personal motivation to be obsessed with LevelDB for a couple of years before landing that dream job... success may be much more likely.

Find someplace that challenges you. When you don’t feel challenged, move on. Rinse and repeat.

I like this question because everyone has their own answer. It all depends what you want out of life.

The most meaningful work I do is open-source projects in my spare time (or occasionally at work when open-source projects I'm already interested in align with my wrkplace's goals). It sounds like you might already be in a position where you're getting paid well and putting at most 40 hours a week into your day job - have you looked into saving your mental energy for other projects?

This doesn't work for everyone, of course (I'm young and single so it's easier for me) but if it's an option for you it seems worth exploring. Even extremely technically challenging jobs are going to be constrained by either "We need to solve this incredibly boring problem so a customer can pay us a few million more" or "We didn't do that enough and now we ran out of funding for the technically interesting work, sorry".

Join FAANG and you will get to work on projects that will impact millions of lives.
> Join FAANG and you will get to work on projects that will impact millions of lives.

Yes but that doesn't necessarily you will find your work will be meaningful.

I work at Google and of the coworkers I've discussed this with, their motivation is to retire or support their family. There's a joke inside Google that you get paid to just move protos.

I worked at AWS. There anyone I talked about this said they worked there because it was good for their resume.

I work on a very impactful project but don't really find it meaningful; my immediate work is just a small part of what makes the machine work. Nevertheless, my work funds my other pursuits which I find meaningful. This seems to be true of nearly everyone I've talked to no matter where they work.

> Yes but that doesn't necessarily you will find your work will be meaningful.

I agree with this sentiment. I work at Microsoft, in a customer-facing position, and finding meaning is a daily struggle.

Ultimately, it depends on what you make of your days in the broader sense of things, not the actual work you perform.

Protos = protobuf messages?

Curious what that joke means

> Yes but that doesn't necessarily you will find your work will be meaningful.

Agree.

> I work at Google and of the coworkers I've discussed this with, their motivation is to retire or support their family.

My plan is to retire early pure and simple.

The key is to find the place where interesting technical problems intersect with the immediate practical needs of the business. Then take the tech to the boss and sell it. I'm working on such a project now.

If you can't find interesting problems like that, you need to open up, because they're everywhere, for coders anyway.

If the boss won't buy it, either fire him and get another, or come up with a more compelling pitch.

It sounds like you are trying to get meaning from your work. I struggled with this problem for a long time. I have seen two broad solutions solve it to varying degrees of success:

1. Sacrifice earnings and / or stability in favor of meaning. You must be willing to compromise and you may have to bounce around through a few jobs until you find something meaningful, or you may have to start your own thing.

2. Stop looking for meaning in your work, and find it somewhere else. The people I’ve known who make this work the best are parents. However, I know some who are not. If you live in the SF Bay Area and work in tech, there is pressure to make your work your whole life, and that means that if your work feels meaningless, your life feels meaningless. It’s not the only mode of living.

Number 2 is a big one.

I'm still trying to figure out my own way through it all, but a good example of this are people who live outside of the "hubs" and work regular, townspeople jobs. They earn mid-range incomes and do fine by engaging in life outside if it.

It's not a bad way to live— but it's a matter of priorities. Hell, I live in a major city, don't have a car, and work pretty steadily.

The people I've known who are construction workers, police officers, etc— they get out and around far more often than I do. And they can afford to.

Number 2 is the way to go in my opinion.

There is a large focus on how you make your money in the US. Most people judge and are judged by the amount of money they make, how they make it, and what they spend it on. Instead of calling it how it is, people work under the assumption that doing 'meaningful work' makes up for that obsession.

If you happen to find work the is personally fulfilling, then you are lucky. I would suggest that instead of chasing the work for fulfillment, find out what actually makes you fulfilled and then find a way to achieve that.

For me, I am most fulfilled by 1) creating stuff, and 2) being outdoors. While coding/programming falls under 1, I prefer making studio art (painting). So I do whatever work I need to do to afford to make art and spend as much free time outside as possible. Camping, hiking, etc.

If you are fulfilled by helping people, you can donate your time to a local shelter/habitat for humanity/kids group/etc. If its parenting, then focus on building a killer family life.

Ultimately, and this is the cynicism in me, life is meaningless - therefore we are free to create meaning how we see fit.

Trying to shoe-horn the 40 hour+ work week into personal fulfillment is a hallmark fantasy. How do you keep people coming back and creating profits for a company, 40+ hours a week? Try to sell them on the idea that they are 'making a difference' and 'changing the world' and will be 'fulfilled'. It's all smoke and mirrors.

Try reaching out to professors or research labs at universities. I work with a professor who would love to hire more Software Engineers with industry experience. It is by far the most meaningful and interesting work I've done in my career.

There are tons of interesting projects going on within academia that unfortunately don't take advantage of any software engineering best practices. Many projects are prototypes hacked together in MATLAB and I know in our lab we are looking to build more robust products that are open source and extensible for other researchers to use.

I second this. A cursory glance of the faculty research pages of your local university's biology / physics / chemistry / etc departments will show you just how many half-engineered research software tools are in need of a dedicated engineer.
(comment deleted)
(comment deleted)
As someone who works in a central service unit not directly affiliated with academic research, I was given the chance to touch the lives of probably generations of students.

Emphasis on "touch", not necessarily "change". Still, it sometimes gives me goosebumps when walking through the halls and seeing all the people who are "forced" to use my work.

Pay is not great, but conditions are otherwise excellent.

(Founder/ Dev/ Lead of an electronic exam infrastructure at a large German university)

What is meaning?

What caries meaning.

My realization has been that software development has very little intrinsic meaning to itself, it gains meaning when seen in the contexts of it's application. You need to find a field where you can apply your skills, that has more meaning.

If you find meaning from digging into low level libraries, that's great. Most people would think of meaning as having shared values with the business you're working for and it's end users / customers. Prioritize finding end-users who you genuinely care for and whose lives you want to improve is one way to find meaning.
Who is to say interesting technical problems are meaningful? All of the amazing technology developed at google ultimately is meant to show people ads. Where is the meaning in that?

The meaning of a thing is derived from its use. Most software projects can be meaningful when a real effort is made to maximize the benefit to the user.

Maybe what you’re looking for is not meaningful work but interesting work?

> Where is the meaning in that?

Advertising business delivers extremely important value to our society.

1) Adverting helps customers and sellers find each other.

2) Advertising sponsors publisher businesses that otherwise would not be able to financially support itself.

If i understand correctly, you would like to go from being the person who assembles the magical widgets for the customer, to being the person who makes the magical widgets in the first place. So, perhaps you could look at the magical widgets you use, decide which ones you admire the most, and look into the companies that make them, and their competitors and disruptors.

This isn't guaranteed to succeed. Lots of the widgets come from Amazon, which is a famously hellish place to work. Redis is great, but you might need to move to Israel to hack on it. PostgreSQL is amazing, but there isn't a company behind it, and 2ndQuadrant will probably only hire you to work on it if you're already a contributor! But there are many other magical widgets out there ...

> PostgreSQL is amazing, but there isn't a company behind it,

There are several companies behind it, and most of them are looking for people.

> and 2ndQuadrant will probably only hire you to work on it if you're already a contributor! But there are many other magical widgets out there ...

You don't need to have any sort of major contributions. It does help to have some small patch or patches in, that show that a) you enjoy working with the community with all its quirks b) that you are successful. IIRC the patch that got me my first job offers to work on PostgreSQL was a day's work or such.

How about fighting climate change? We are currently transitioning from fossil fuels to renewables. The problem now isn't the technology, but the scaling. How do we go from <5% renewables to >90%? Solving that scaling problem involves a ton of software, and we need all the smart software engineers we can get.

Previous post: https://news.ycombinator.com/item?id=15127154

Also, here's my favorite climate change joke: "They say we won't act until it's too late... Luckily it's too late!"