Senior Back-end Developer
Senior back-end Developer
We are looking for a senior back-end web developer with at least a decade of experience.
What makes you the best fit for this position?
You know and appreciate development best practices: TDD, C.I., code versioning, OOP, design patterns and last but not least: refactoring techniques.
How we work
Our team are process-focused and are increasingly developing the capability to receive experienced mates without setting dictats about languages or technologies. (Yes we are truly microservicing our infrastructure).
We are facing a transition to agile, covering in integration tests legacy software and bringing out business value from progressively transforming them in microservices.
Our development flow is structured in the following phases:
- collect business requirements
- draw user stories (eventually we slice them further)
- write api documentation (we use json-api format and document in open api)
- write tests
- open a feature branch (we use git flow)
- automated deploy in stage
- beta testing
- production delivery
We practice TDD, and switched almost of our projects to continuous integration.
Of course we have legacy stuff to deal with, that we are patiently refactoring through "application strangling" and "microservicing" techniques so we need the ability to approach different languages in our stack from our mates.
Obviously we practice extreme programming so you will be guided by elder team members with pair programming and code review to learn how to deal with that within the right time.
Also we use to assign green field projects to new entries to integrate into our microservices based architecture.
Actually our stack of technologies includes:
- php (proprietary psr-17 almost compliant api first framework)
- java (spring boot)
- docker compose (local provisioning only)
- AWS codebuild, codedeploy, cloudformation, beanstalk, lambda, s3, ses, sns, sqs, cloudwatch
- open-api for documentation
- … and some other stuff.
We are going to introduce RUST, Elasticsearch, protobuf and kubernetes as well.
What we do
Our company leads an exceptionally complex business domain.
Our main focus is about organizing and delivery massive and multichannel group non-real time communication for business.
(Basically we send emails, faxes, traditional postal messages, sms and so few others).
We have recently developed a startup project enabling our customer to send realtime certified communications.
We also offer automated services for business grade tax assistance.
What you are expected to do
The following will be the common daily routine tasks:
- Define requirements, and agile stories with your peers and upper management
- Project from scratch new API exposing microservices, from dev-ops to interchange formats definition
- Progressively refactor some legacy monoliths into fresh new and shiny small tested microservices
- Have a daily standup meeting with your team
- Mark your progresses on kanban boards and slice your stories when needed
- Write integration and unit test
- Write the minimum required code to achieve needed functionalities
- Have time to propose and then study needed technologies (possibly ending up mastering and sharing them with rest of the team)
- Go home in time without having to worry about the last deploy consequences
- Follow and tutor other peers during our agile transition
Given this our greatest expectation is about people enable to accept legacy software needs the right time to be changed, since is delivering value.
Our perfect fit will be able to accept to write software that is not optimal bet every day better, since we understand and learn every day, and of course is mastering all the wizardry behind refactoring.
This announcement is addressed to both sexes, according to the law 903/77 and 125/91, and to people of all ages and all nationalities, according to the legislative decrees 215/03 and 216/03.