I work as a software engineer for an RF Testing Services and Consultancy company. I create software which automates the wireless device testing process, mostly cutting down an operator's minimum wage manhours from 100 hours of manual testing to a reasonable 1-2 hour setup + 98 hours of watching online videos.
We take that same software package and sell it to other competing RF test labs. Annually, the development team produces $4-6 mil in revenue, but all of that has been generated off of the products that I support. Technical expertise of course requires coding experience, but you also need to have Bluetooth RF, or LTE, or OTA or some kind of specialized knowledge about the underlying technology we are testing over, and general knowledge of hardware remote control interfaces.
Most of my day to day work is primarily involved assisting customers that have issues getting their wireless device to connect to the test system rack, and involves a lot of debugging skills, and requires a thorough understanding of both the software script and the hardware equipment involved, plus some basic understanding of serial communication. Generally, it means majority of the issues are not my fault, but they are my problem.
You also need to read the technology specification a lot, which is also undergoing change requests and needs our software to stay updated in order to be compliant with the requirements for certified testing. There are technology governing bodies which lay down the rules and specifications for testing compliance which we're constantly battling with to keep test requirements high (aka more testing for us to do, so more money)
On top of my actual job listed above, being at this company for 8 years means I also know a lot of the support database systems and underlying tools used in part of the project management process. So I also perform a lot of help desk support when our support personnel can't handle the problems. This is pretty specific to the tools, but general knowledge of the project process is necessary, and SQL commands are super handy for querying the data directly and determining why certain information isn't coming out as expected. Helping other employees be able to get their tasks done can be a huge interruption for more essential development work, but it keeps the lab operations humming along which is where the real money is made in the wireless testing market. The products I support, while it's a nice line number in our budget, there are only so many labs that can pop up at a time that are able to buy a fully automated test system, so the market cap is pretty limited.
Future prospects, there's no more up I can really go unless I'm displacing an existing manager. A person can work on a new product, but you're still called up to support your old products. Day to day the work is not especially difficult, unless you don't have the knowledge of the software / technology / specifications in your head, then it could get fairly challenging. Nothing a few weeks of reading the technical specification manual won't resolve.
Benefits. I can dress in a t-shirt and jeans to work, no effort needed. I can roll in to work whenever I want, and I get to leave when I feel like it. That being said, I usually roll in between 9-10 and leave between 7-9 pm. Coffee is provided free. If you try to sleep overnight at work HR will hassle you, and if your PTO gets too high they hassle you about work-life balance. Generally, employees around here need to be able to fill in for multiple roles because the team size is fairly small, 10-15 per team
This job gives me enough income that I can plan out a comfy living, which is good enough for me. FI is great security, and a worthwhile goal. RE has no appeal to me at this stage in life.