A week ago I saw an article on Hacker News titled – What’s awful about being a {software engineer, tech lead, manager}?. The article was spot on and it got a lot of attention. It also left me feeling depressed about my profession.
My great grandmother used to say: “Don’t compare yourself to people who have more than you do. Compare to those who have less.”
Her point, I believe, is very important. No matter how much I have or achieve in life, there is always going to be somebody smarter than me, who has more. It’s easy to get trapped in the negative thoughts and to forget just how good we have it.
That is why I wanted to write down a list of things that I believe are great about being a Software Engineer. Since I don’t have a ton of tech lead or management experience, my list will only cover Software Engineering 🙂 .
- Opportunities
- Money – I am a regular Software Engineer, yet my income is in top 20% in the US and even better % in the world
- Location – Software Engineers are able to find employment almost anywhere
- Impact – Sky is the limit, you can literally change the world
- Reach – Products are used by millions of people
- Options – Many paths to pursue, choose your own adventure
- Demand – Shortage of Software Engineers is probably here to stay for the next 10+ years
- Business – Easy to start your own service or product business
- Learning
- Never ending supply of fun things to learn
- The job itself keeps the brain active, no need to do puzzles
- Blogging – a fun way to share and learn
- Cool Perks
- Flexible work schedule
- Snacks and Catered Food
- Work From Home options
- Travel opportunities
- Comfortable work environment (compared to a construction workers, for example)
- Access to expensive software and equipment
- All other “standard” benefits like medical and paid time off
- Fun Job
- Sure we still have to work for a living, but at least our days are comfortable and fun
- Often I enjoy my work so much, I have to set an alarm to go home on time
- Debugging is a lot like playing a detective
- Creative
- Writing clean code is a creative process
- Instant feedback from your work, you can “see” your code “do” stuff
- Various cool side-projects to pursue
- Being able to automate the boring stuff
- People
- Working with smart people
- Networking with even smarter people. (May vary by location, but in the San Francisco/Bay Area it’s fairly easy to meet some of the greatest minds of our time)
- Altruism
- Teaching and helping others
- Volunteering for Non-Profits
- Contributing to Open Source