I don't develop more than 30% of my time but I love it none-the-less. I'm 62 years old.<p>I find software architecting, developing, and operational troubleshooting to be fun, requires a holistic view of a problem set, requires creative problem solving and more.<p>I find development an outlet to create (make) stuff. I work at a university on the east coast of the USA and am on a high performing team that has not lost a member for at least 5 years. We love each others talents and respect each other's abilities.<p>I expect to work full time till I am at least 67 and hope to be able to work part time till I am ~70.<p>Edit: 62 years old not 63
The best part for me about being an open source web developer is that the capital required to bootstrap yourself into working is as low as $100 or even nothing at all.<p>A few months ago, I had an idea for a side project that could lead to a lucrative business. I ordered a used Thinkpad with no operating system from eBay, and off I went, developing the same sort of website I do on a $1,500 MacBook at work. If I already had a laptop lying around, I could have just reformatted it and used it without spending a dime.<p>When I lost my job in the city and had to move back home in 2011, I didn't have a computer except for an old Windows desktop. I pulled it out of storage, formatted the hard drive, installed Linux and Rails, put my resume on Craigslist, and within a week I had signed a contract with a company as a remote developer. I was lugging that desktop around everywhere -- on trips to visit family, to co-working sessions in hotels, to my new employer's office -- looking just as goofy as I wanted to, but didn't care, I was working again.<p>Edit: I see my post is gaining upvotes quickly. If any open-source project maintainers are reading this, thank you! My story would not have been possible without your time and effort.
When I was at school we had to interview our headmaster, and somebody asked him if he thought his job was difficult. His answer has always stayed with me:<p><pre><code> "Compared to lying on a beach drinking cocktails, it's difficult. But compared to a coal miner, it's ridiculously easy."
</code></pre>
Would I rather be a software developer - even one who is building boring CRUD apps - or a coal miner?
Perhaps this is true if you 'can relocate to SF' + is american/won the h1b lottery, end up working in a company with 6 hours/day policies, 20% time and plenty of money to burn.<p>All other mortals are in a way or another struggling. Pulling all nighters(because it's expected), having long periods of stress + burnout.<p>The advantages I see are that the money is good and that people(me included) love programming. Having a job doing something you love is definitely a blessing. The biggest of them.
In my mind, there are three really standout things about being a software engineer:<p>1. The multitude of small wins that you get throughout the day as you solve problem after problem, all from the comfort of your chair while you drink coffee and listen to music.<p>2. Creating something from nothing, not unique to software engineering but it is super satisfying to see something that didn't exist before start to form in front of you.<p>3. Whenever I see some one do data entry or some other laborious task, that I can automate in under 15 minutes, it makes you appreciate the fact that I know how to solve this problem in a more efficient way. People dismiss this because they don't understand that it takes me 15 minutes to write a program that inserts 1 row or 1 million rows, the work stays the same, this is not true for manual labour.
Good post! I completely agree that programming is very creative. Fred Brooks said it really well in "The Mythical Man-Month" I think:<p><i>The delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of imagination. Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself.</i>
Those are some rose-colored glasses. I could easily make a list of the best things about being in the hospital, too. I'd estimate that my 18 years in software development have been about 25% good, 25% tolerable, and 50% team/boss-induced inhumane mental torture.<p>The one thing I can't argue with is the money. Everything else has been highly volatile.
I think "CRUD" applications are getting an undeserved bad rap.<p>There's always interesting challenges involved, which sadly gets dismissed as "business logic".<p>If CRUD apps were really so brainless, there would have been a race-to-the-bottom plethora of platforms/tools by now that allow domain experts to create their own applications.<p>Another way to look at is that CRUD apps put food on the table for you guys. Be grateful!
- The feeling that everything "new" is something that essentially already exists but that you now need to relearn, because it's different in the most subtle and annoying ways<p>- The knowledge that there is often no physical, tangible output to your work (as XKCD put it, you press buttons to make a pattern of lights change until it's "correct")<p>- The damage done to your body from sitting at a desk for most hours of the day<p>- The knowledge that, in some areas of some countries, billions of dollars are invested in what are essentially clones of existing "social" tools that while promising to connect us actually manage to isolate us, and that the whole concept of "value" seems a bit screwed when you focus on these examples<p>Oops! Sorry, I thought the article was "worst part about being a Software Engineer". Best bits?<p>- I get to browse HN from my desk while my code is compiling
I write software in-house for a company that does other things. The company has a strategy of bespoke software rather than using the industry standard software in order to get a competitive advantage (i.e. we can do things our competitors can't).<p>That means I get to not only work with bright developers but other bright people doing other jobs, learn about their jobs, help make their jobs easier and then move on to another area. Very few jobs offer you the ability to regularly switch the area you work in. It used to be claimed that a good manager could manage anything, I'd suggest that a good developer can design software for (almost) any industry.
The best part about being SE are:<p>1) Iteration: We get to practice our stuff on real entities (language, OS, databases, etc). Do architects get to "practice" actual work at their home? Do new doctors get to try experimental surgeries? Do amateur civil engineers get to build those iconic bridges? They can do computer simulation ... but it is actually a software.<p>2) Hackathon: Can't imagine this happening in say medical field, mechanical engineering, law etc. Software Industry is one of few industries where this can be done.<p>3) Changing the world quietly: Many in my relatives are not programmers. It is hard to explain to them in what ways software is changing the world.<p>4) Open source: Imagine Coca Cola sharing its secret recipe. It won't but we as SE get to learn from open source projects. Now there is a cultural aspect to this but the point is that we as SE can experience it more than other professions.
I really appreciate this article. It feels like envy has become a major driver over the last few years in the US--it's obviously always been around, but now it feels like both an obsession and something that is broadly socially acceptable to indulge in.<p>Thinking about the good and what to be grateful for sounds like a much better recipe for happiness than things like the share-my-salary movement. (I'm not opposed to the latter. It may result in modest comp bumps but I doubt it leads to lasting happiness bumps).
I love being tech lead or team lead or project manager or whatever you want to call the mid level just above software dev. I feel I can have more impact in that area, meetings aren't bothering me too much yet (after a little over 3 years), and most of the problems can be circumvented by being smart, just as in software dev.<p>Think about the scope problem. You never have enough resources to achieve all the goals the customer/boss/group of people who only go from meeting to meeting wants. Yet by asking smart questions you can actually figure out what is most important to them (even if they don't know) and then decide based on what you want, what they want and what your team wants the best path to go on.<p>And then some of your devs try to be smart and also reprioritize based on what they think. But for some reason that's making it more fun not less. A reasonably smart dev is a much better stubborn goat than a compiler who doesn't want to understand your code, because he gets stubborn on much more reasonable ground and sometimes surprises you by being a lot smarter than you are.
> yet my income is in top 20% in the US and even better % in the world<p><i>"even better"</i> is a gross understatement.<p>If you're in the top 20% of the US by annual family income, you're literally making more than 99.9% of the world.<p><a href="http://www.globalrichlist.com/" rel="nofollow">http://www.globalrichlist.com/</a>
What are your experiences with creative jobs? I'm currently making 1.5 times median income (compared to the rest of the country) as a Java back-end programmer. But it's not the most exciting job because all I'm doing is keeping legacy code alive and implementing new business specifications.<p>I have thought of going back to my old job as web-developer, doing cool stuff with Node, Angular and all the cool cutting-edge technology. But I'll only earn a median income if I do that.<p>Or go straight into management and earn 2 to 2.5 times median. But that seems even more boring.
The best part for me is the money, benefits, the flexible hours, the free food, the mental stimulation, and the occasional expression of creativity.<p>I don't believe that we change the world, or that we contribute to society any more than the person working behind the counter at a fast food join, the janitor, or other jobs that are so frequently devalued compared to ours. I believe that my job is far less valuable than someone doing social work or a nurse, for instance.
Wrt to the title, I would like to add here that:
We can fix bugs, even after something is finished!<p>Same cannot be said for other professions like Civil Engineering, Doctors etc.
> No matter how much I have or achieve in life, there is always going to be somebody smarter than me, who has more.<p>I wish more people understood this concept. I'd even go as far to say it has nothing to do with "somebody smarter than me." Certainly there are people out there not as smart as I who make more and have nicer things. But don't dwell on such comparisons. If you are happy with what you have, that is what matters.
It sounds like you've hit the jackpot. Especially the part about the fun job, I don't think that's that easy to find in the software industry.
I think that software engineering, like accounting and lawyering, is useful in a wide variety of domains.<p>The most interesting/best part of software engineering for me is that you can work across problem spaces fairly easily. (Of course specialization helps in remuneration.)
I recently bought a car from a man who had a stroke. When I explained what I did for a living, he pointed at himself, drummed his fingers in the air like he was typing, and when he hit that Enter key, said, "Yeah!", while doing a pose. He had been both a developer and manager. To forget everything in life except that moment when you really nail some code is inspiring.
Best part? You have to ask me is that, software is built on a beautiful and powerful abstraction, namely turing machine, if you understand the basics, a lot of knowledge are actually transferable, from seemingly very different positions. After all every operation you do is captured by the underlying mechanism, so nothing intimidating if you are willing to dig it up.
For me: new hardware.<p>There's nothing I like more about this business, than to get code working on a new piece of gear.<p>It just keeps coming and coming. So fun!
My biggest satisfaction is the ftuits of automation my software brings, manual labor that used to take hours and prompt to errors due human interaction now is done in seconds with no error marging, saving many work hours to employees so they can go home early and stress free, I almost never get recognition for it, but is worth it.
Software engineering is not a flat domain.<p>I work in a web-based e-commerce outfit with 30+ other SEs who are all really into their work, smart, and committed to doing the Right Thing. This is a good gig.<p>If I was working on a COBOL app on a mainframe where all the documentation was in German - and I was offered the chance to interview for that gig just a year ago - I doubt I would have as much fun.<p>As a Ruby/Go/Rust/Python type of developer, I suspect - but can't be certain - my days are more fun than a Java developers. They all seem miserable, anyway.<p>I don't wear a tie. I don't wear a suit. Nobody cares if I'm a few minutes late in as long as I make stand-up. Nobody cares if I work from home if I feel like it as long as I make core meetings in person.<p>Would I get that writing J2EE code for a large corporate? Probably not.<p>Would the people who enjoy those environments enjoy working in a startup? Or a games dev house? Or where I work? Probably not.<p>I think the best thing about a Software Engineer is we kind find places that fit us culturally more easily than many other industries: medicine, law, most heavy industry, etc. all have a very strong culture that absorbs almost all players in that field.
Once I got to play with long strips of colorful blinking LEDs that I had to drive from our warehousing management system. It was the best few weeks in that job.<p>Also I don't have to worry about money.
For me, the best part is interviewing for new jobs. You have not lived till you are asked to reverse sort a binary tree, whilst skipping on one leg, having to show you are passionate about the job!<p>The disappointment was that the actual job did not entail data structures, Algorithms or even skipping! Just CRUD web apps.