The first couple years of my career were relatively normal. Full-time software development work involving teams, not always local or in-house teams, but I had at least a couple of other engineers to work with. After 2015 work was sparse. I couldn't catch a break most of the time with interviews and had to settle for solo freelance work to tide me over. It helps fill a few holes in unemployment, though.<p>However, I am always applying to full-time jobs, and want to know what to expect going back to work with a team of developers.<p>My past team experiences:<p>There was no unit testing and engineers weren't really expected to own their testing. The philosophy in every workplace I've been was "that's what manual QA is for". I hear manual QA testing is on the decline- is this true?<p>Code commits are like throwing an update over a wall and let the lead developer worry about it. You submit a PR and lead reviews your code. No automated CI as far as I know.<p>In fact I don't recall anything that was heavily automated. There was not a lot of big oversight with the dev process as everyone above senior or lead level was completely non-technical.<p>When off-shore devs were involved it was usually handled poorly. A miss in communication could mean losing a day of work because one overseas dev might accidentally un-do the merge by the time we step into work in the morning.
Your past experiences still are true in many places. There definitely are scores of companies with poor culture and processes still in place. Startups.. start up all the time, and I presume many will be rediscovering america on industry knowledge (e.g. the benefits of source control) as they transition from university student projects, garage projects, etc. to businesses. In my gig we have been chasing the unicorn of automated test for years, but in practice most tests are still manual as there's never the time to do it properly in between releases and the product portfolio is large.<p>On the plus side, if you're taking mature systems such as GitHub Actions, it has never been easier to chain together automatic verification builds, unit test runs and code quality checks on code when it's committed, so there's that.