I started programming in 1973 at college working for the college in Cobol working on various programs the college needed. I wrote two compilers in my spare time for fun. The first took Basic and generated CDC assembler. The second took PL/I and did the same. This one gave me two independent study credits as the school no longer had to buy IBM mainframe access to run their course in it.
I designed and built my own processor with eight instructions, four registers (only two implemented), and 4K memory (only 64 bytes implemented). It had toggle switches to place data into memory and lights to display the data. It supported single step running to allow looking or modifying the registers or memory after each instruction. All registers had memory addresses including the PC. I never did much with it because ICs came out and they were cheaper.
For my two real jobs after college, I worked in the embedded software area writing the real time OS and compilers first for a multiprocessor IDE the company used to develop its government contracts, next for an Asynchronous Transfer Mode network switch, and finally for a voicemail system. While still coding, I managed software and quality groups, plus controlled the overall software architecture.
Now that I am retired I play with Kotlin. I have used close to two hundred languages over the course of my life, created apps on multiple custom hardware processors, Android, Apple, CDC, DEC, IBM, Unix (plus derivative), and Windows.