Ask HN: How do I find a meaningful software engineering job?
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 ] threadfulfillment is a really 'problem' to solve not just in career but life in general.
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.
The people you work with matter most, above all else.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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!
https://www.usds.gov/
(I'm biased, see username)
Semi-related: have you seen the work the USDS does significantly affected by political shifts?
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?
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!
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).
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.
Even if you can't RE you can go contracting and reduce hours dramatically, or do some other work outside of the industry.
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.
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.
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 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.
I like this question because everyone has their own answer. It all depends what you want out of life.
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".
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.
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.
Curious what that joke means
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.
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.
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.
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.
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.
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.
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 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.
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?
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.
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 ...
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.
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!"