Interesting question. Yes and yes :D
Because our company had been around for 25 years we have a variety of technology implemented across the product
Who is responsible for managing the pipeline? Do you have a dedicated systems engineer or is it the role of the developer?
Hi Vendee,
In our team, we mostly use C# and Typescript (React) and we use the microservices architecture.
We also have a monolith system that we are improving. There are occasions that we also need to touch this monolith system.
So what we call our monolith is a legacy product spanning from ASP Classic to WebForms to MVC, and newer parts of the product are SPAs with React Front-Ends and .NET Core backends.
All of them are in the cloud though.We don't have dedicated system engineers, but we do have a Platform team that focuses on DevOps tooling for the teams that build out products
1. For the languages, we primarily use C# and Typescript but we are not married to them. We adopt technologies when we see that they fit to our needs.
2. Yup CI/CD is implemented. We do not have dedicated DevOps personnel. Instead, all developers have the power to utilize all our DevOps tools.
3. We both have monolithic and microservices :D
Are all your developers fullstack? I am purely a back-end developer so I am not sure if I have a place in your company
How about pair-programming and TDD, is it highly encouraged?
Yup, we are full stack developers but we also acknowledge that most of us specializes in some specific areas (e.g. T-shaped or comb-shaped skillset).
For context, I am a backend developer before joining PageUp but I now have the opportunity to try frontend here as well :D
Many of our developers are fullstack, but I would argue there's a place in the company for everyone. There are teams focused on front end products and there are teams focused on legacy tech.
I was hired as back-end developer too and don't have front-end experience. I'm in the process of learning React and contributing to the project. As long as you're open to learning, you are very welcome.
Pair programming one of our valued tools -- we encourage pair programming to quickly share contexts and knowledge about products, but devs would also often be executing user stories on their own. :)
If its ok with the original poster, i have a followup question. How is TDD factored in the development schedule, how is this estimated?
As for TDD: we encourage classicist TDD for the design phase of less understood products, but we will sometimes use Outside-In approach where TDD become focused on public consuming objects (e.g., controllers, services) instead of the implementation details.
Automated tests are a first class citizen of our tech stack, whichever style you use, however.
So PRs that are poorly tested would likely be rejected, or time allocated for automated tests. This is quite important to us.
Okay every interesting to know. I would like to join a company which adheres with clean code principles
One thing that is worth mentioning is that we also don't have QA engineers and ensuring quality is a shared responsibility. Automated tests are very important to us as it allows to capture issues fast.
Perfect! That is the ideal team set-up. No QAs, just automated unit,integration, component level tests and of course end to end tests :)
We use cookies.
Some are necessary to operate the website and its functions. Others help personalise, improve content and services to show you the most relevant job opportunities. With the decision "Accept essential only" we will respect your privacy and will not set cookies that aren't necessary for the operation of the site
.