As the old Chinese sayng goes, 下棋找高手,弄斧到班門 (baidu)。下棋找高手,弄斧到班門。----中國科學院 || Basically one needs to get trained properly or work at a place that has some good technology and process so that he or she can really understand what' the proper way to do the work, and work with people.
Got right training at the beginning of the career
My own exp at the my 1st employer (Unigraphics Solutions, EDS PLM Solutions, UGS, Siemens Industry Software, same company the name change was due to the ownership and corp brand change), and later Mastercard seemed confirmed this Chinese saying. I learned much on software development while at the UGS. And later at Mastercard I learned about customer production support, production release and deployment, at other places it could be DevOps team or Site Reliability engineering type of work, at MC it's called BizOps, and I also acted as tech lead role there.
In case you are wondering what exactly UGS does, after reading the Wikipedia entry here. I would say it's a software company that was founded 10 years before Microsoft was founded in 1976, at one time created its own OS and hardware, and those folks know a thing or two about software and software development. At the very beginning of my career, I saw the "punched card" above at one of the spare room or storage room in year 2000/2001 when I was working there. That's how the software was written and integrated then :-)
Job Title
One thing I noticed there is it's quite hard to be promoted to the "Senior Software Engineer" title at UGS. It needs both years of work, and the recommendation of colleagues. Note it was in year 2000 till 2008. In other words, unlike the job title nowadays, "Senior Software Engineer" really means someone who is senior and has a lot of experience. Nowadays though, in many places, big or small, the lead/staff software engineer, principle software engineer are fairly common. So there is that. At one time, I ever got into a discussion with two "Senior Director of Software Engineering" at Ascension, regarding the difference of lead vs staff software engineer, and my preference for lead vs staff. Maybe we should all go with the "Member of Technical Staff" which is invented in the Bell Labs (I assume).
The next job I would like to have, if I decide to do more serious engineering work anyway - probably some company like Apple, or more likely a remote friendly company who is a both serious/meaningful and fun/rewarding place, since I don't have any intention to move to the bay area or Austin, where the engineering center of Apple is.
My observations on different workplaces in the area
Without that being said, I did worked at quite a few places in the St. Louis area, mostly as full time employee, but sometimes as IT contractor, and I believe it's probably a decent idea to share my own observations and experiences. Note I intended this to be a straightforward (or honest) opinion from me, as practical as possible. You may refer to glassdoor.com or indeed.com to get others' opinions. Disclaimer: when I evaluate a company, please note I am not evaluate its employees. For the most part I am talking about the culture and the management style.
======
Ameren: I interviewed and got an offer there once. But unfortunately the offer didn't come as speedy as the one below. And at the time I already accepted Ascension's offer. Later I got one more interview (probaly in year 2019) but that one didn't yield an offer. If there is 後悔藥,I may go there :-) One of the few commercial companies in the area that offers pension and I believe their pension is solid. We are not ditching electricity, even with all the EVs, right?
Ascension: they are the parent org of the largest catholic hospital chain in the US. In terms of all hospital chains, I think they are distant 2nd behind Kaiser Permanente whose presence is mostly in California and west coast. Ascension's presence is mostly around mid-west, Texas and east coast from New York to Florida. I worked there for about 2.5 years. I should probably stick around a bit longer to make sure all my 401k (403b to be precise) vested. In general healthcare is not the most agile or nimble place to work, and Asc is no exception. In the time I was there, and after I left, I heard some crazy stories in terms of the corporate strategy shift, hiring/firing, and so on. The direct reason I left Ascension was I got a bit tired of my architect job, and felt I like go back to do more coding.
This is one of the projects I have some contribution (not much direct contribution, more like a caretaker, or pseudo type of role). The company probably spent millions of $ on the app, but I noticed it never really went to production. It was an executive’s pet project. The project has some dependencies on back end from a vendor. A new software development manager was hired before I left, and dare I say his performance testing plan (or scenario) was not realistic either. That being said, the dependencies on vendor for web service and data are also a big unknown at the time.
Btw, this reminds me it the failure rate on healthcare project is high, another one is MyMercy at Mercy that I worked on in year 2014 and 2015. One question I have: what's the percentage of Software Dev project failure rate in the healthcare industry? Do we have any survey or data?
Bayer (formerly Monsanto): I interviewed there twice. No offer. One employee and one recruiter left me impressions. After the 1st interview (more than 10 years ago), the employee pointed out a silly mistake in my resume, it was a typo. None the less, very few people in America will point out your mistake, mostly because they don't care or they feel not polite to do it. But no feedback means no improvement. The 2nd time, the recruiter Ray is a great person. Bayer (formerly Monstanto) is the pioneer in terms of AWS adoption in the area. Their CTO left for another company in the area (RGA - Reinsurance Group of America).
Charter/Spectrum: their main IT office is now in the Riverport Drive, it's actually the very 1st building I started work for Unigraphics back in year 2000. I got one interview there (forgot which year). The tech lead (or architect) was pretty much a snob (over the years, I have done quite a few interviews, on both sides of the table. I did many tech interviews when I was working for Asc). I recall another similar situation at Reuters back in year 2009: a guy was quite arrogant there as well.
Centene: another healthcare place, this one is Medicaid insurance and some Obama care. I interviewed there twice: different time and for different positions (dev at their Chesterfield/Town and Country office via recruiter, and DevOps at Clayton). Overall I felt both teams are quite arrogant and obviously there was no match. The 1st time they left me there, when I was supposed to meet a director. But the director never showed up. At the same interview I learned a bit about how they handle multi-tenant for their core app (Medicaid management), essentially they setup one code and one DB (Oracle) for one state. They probably have a dozen or 20+ states and thus they have 12 or 20 code bases for each state. Obviously in a company like MC this would be laughable and will not work for the loyalty platform I worked on: we have way more than 20 customers. Incidentally at Asc, we did one database for one customer for the Covid Fast Screen app for our customers too (one code base though).
Later (last year or two) a friend (a former colleague) asked me whether I was interested in their team at Centene. I politely declined :-) Also Centene, along with Express Script and MasterCard, used to be on the top 3 hard working (or expect you to work hard) workplaces in the area. The rest of the places are mostly reasonable: 9 to 5 means 9 to 5. I worked at MC and I can say most positions involves some work: or some politics. Btw, regarding overtime, I talked a bit here, and also please refer to this Tweet (in Chinese) which is line with my view.
Cigna (formerly Express-Script): did I say it's one of the hard working places in the area? The rumor I heard from a friend is at one time they pushed him (or his coworker) to work 120 hours per week. Horrendous place even for a few weeks, right? The reputation may have changed since the Cigna acquisition. I never worked there or interviewed there. But I almost got one interview there once (in year 2019?).
Emerson Electric (or the new co formed after White Rodgers, their former climate control division): I applied there once through recruiter (the White Rodgers or Sensi division, now called Copeland). That's about it.
Enterprise (now official brand is Enterprise Mobility): it seems they don't treat contractors very well. I worked there at year 2013 as contractor and testify :-) I was told it's going to be contract to hire, which is also my intention and expectation. At one time, I even got a manager. Note at Enterprises contractor doesn't have a real manager (other than the person who approves the timesheet and thus the paycheck). But the project got cancelled in the middle, the only little nice thing is they gave me two weeks notice. In the US, it's common practice employee gives 2 weeks notice before leaving, but the employers usually don't. They could give severance pay etc., but they usually ask the employee to go immediately.
I work for them as employee now (different divisions inside the company), and I think they treat employees decently well. Hopefully a decent place to wind down one's career and so on (maybe I should delete this comment :-) I think Reed Hastings of Netflix summarized this "family vs sports team" for workplace very well :-)
Equifax: onsite interviewed there once (2018). No offer.
Government and government contractors: the federal government, from the Department of Agriculture (USDA), Federal Reserve, to USPS, to Boeing and their vendors. No comments. Never interviewed or worked in that sector. My gut feeling is they are similar to Enterprise, from organization point of view (big bureaucratic).
Mastercard: probably one of the highest paid place in the area (if we considering the bus and 401k match). On the other hand, you know the money is not free, right? Expect more stress from the work (both technical work and politics). Once I worked 2 out of 4 days in a thanksgiving break. That alone was the direct reason I got into fight with my wife. Money cannot buy everything. Remember their ads slogan: There are some things that money can't buy; for everything else, there's Mastercard.
Mercy: they pay better than BJC, may be similar to Ascension. It has similar problems as Ascension. Although my boss and coworkers are all good people.
Panera Bread: interviewed there twice, neither yield an offer. Should I say they are snob (I mean the corporate people, not the store people). The 2nd time interview was done via Zoom, as it was during pandemic. Their CTO is from Mastercard and it seems he brought over quite a few people over (is it legal?). Store people are all nice, and once I even saw the interviewer and their former CEO and founder Ronald M. Shaich at their Sunset Hills store.
Remote or WFH: this is a viable option now, because there are many companies that welcome remote workers in recent years, initially due to the pandemic, and now it's become a norm for many companies now. Some companies that are remote friendly include Affirm: maybe they are looking for people from Square and Mastercard? :-)
Siemens: I heard in recent years they are not as good as 23 years ago when I started there. It seems they are all work from home now and the Riverport Drive office (built in year 2001) is on the market. And it seems they rarely hire any entry level people in recent years.
Square Inc. (Block): the payment company founded by Jack Dorsey and Jim McKelvey. I actually interviewed for a DevOps (SRE) position a few years ago. A decent company, and the payment industry is a good place to be in terms of job stability and pay (think Mastercard :-).
Unidev: my suggestion is don't go there. I went there due to quite unique circumstance :-) They do have one fantastic person though (hint: her current title is "Secretary & Treasurer").
Unigroup: I worked as contractor there. They treated contractors better than Enterprises.
======
Bonus questions:
Is it okay to step back or go down career ladder in one's career?
The answer is yes. You do what's suitable for you and your family. Listen to your heart, and equally important or not more, listen to your spouse or better half :-) In fact I heard from one of my favorite (former) coworkers and he did that once in her career. And yours truly made this move in year 2021, too.
Some Interview Advice
Starting salary
Also it seems the starting salary for the entry level position in the area doesn’t go up much. My starting salary for software engineer in fall 2000 was $56,000. And nowadays I think the average is probably 60 k or 70k. If we consider inflation in last 20+ years, the starting salary didn't grow. That's probably many young people left for Silicon Valley, Seattle, Dallas, or Austin for jobs.