So technically I am a junior developer at my company but I am the first one so I am deciding a lot of the architecture of the platform. They contracted alot of work before, in Laravel. But I only know Rails with a React frontend. What should I be looking for dev workflow? We dont have a dev, staging, prod environment flow setup (contractors straight push code to production)- should I be thinking about that? Docker? Cronjobs? So many questions I thought a senior developer would know but its just me haha
This is an awesome opportunity for learning!<p>Much of what you should do depends on your specific situation, company type, and if you anticipate other devs eventually joining you.<p>The specific stack and container technologies that you choose for the architecture will vary greatly depending upon your scenario, but I will say that picking something stable, with a large community that other devs are familiar with will make your life easier in the long run.<p>Since you are currently alone, something that a solo developer can be quickly productive in (like Rails + React) would be ideal!<p>For workflow, you need some sort of beta/staging environment so that code isn't going directly to production. This is simple to setup and has big pay offs: you can use it to showcase new features to stakeholders and gathering feedback before "pushing to production", as well as increasing stability. In the future with other devs you could scale this to a full pipeline with auto CD/CI etc<p>I would also recommend trying to keep fairly decent documentation. If other devs join you in the future, they will greatly appreciate this. If you leave this job and they hire another contractor or dev, they (and hopefully your company) will appreciate this.<p>If you have to manage a lot of cloud servers or network architecture, I would highly recommend taking the "Infrastructure as code" approach. It's pretty simple to get up and running on Digital Ocean with just a few lines of Terraform, and the benefits to devops are huge<p>Best of luck!
my priority would be to get a staging area setup, having anyone push directly to production is going to cause you endless stress if something breaks in the future and you can't rollback to a stable release.<p>I love this story of how a junior delete the whole production database. <a href="https://www.reddit.com/r/cscareerquestions/comments/6ez8ag/accidentally_destroyed_production_database_on/" rel="nofollow">https://www.reddit.com/r/cscareerquestions/comments/6ez8ag/a...</a><p>imagine in 2 years that happens to you when you're not the junior anymore.