We have a pretty small web project. It was built quickly and now it’s pretty unmaintainable, has no tests, plenty of regression bugs etc. So it’s time to rewrite it according to software craftsmanship principles.
We are looking for a backend developer. Someone who can carry tasks from beginning to end: gather requirements, talk with non-technical stakeholders explaining all the tradeoffs, discuss the desired solution with the rest of the team, design CI/CD pipeline, design the software according to DDD and finally implement it together with other backend developer(s) and a frontend developer.
We plan to use java 8/9 and/or kotlin, spring boot, aws, gradle, flyway, postgres. Most probably it will be a monolith built according to DDD to allow relatively easy future migration to microservices if needed. Nothing is set in stone yet though, so we are open to other ideas.
Spring and java expert
Clean code and DDD
You know wide range of algorithms and data-structures
You know “big O” notation
Understanding sql and no-sql databases
Nice to have:
You can set-up AWS infrastructure using Infrastructure as Code approach, including redundancy and deployment
Solr or Elastic experience
Cloudfoundry UAA or AWS SSO or any other tool for integrating custom application with clients’ authentication provider
What do you think about hibernate?
How do you test your SQL / repositories / DAOs?
You have OrderService, OrderRepository, OrderController, ClientController, ClientRespository, ClientService. Each Controller has corresponding DTOs for in and out communication. What is your package structure for that project? Why?
Do you have your favourite utility libraries you often use in your projects? Name them. Why do you use them?
What code coverage level would you set in jenkins to let the build pass? Why?
What class visibility do you use the most? Why?
If you can please show some of your activity, links to github / your opensource / blog / youtube videos / code you are proud of etc.
We need three operations that we will be using frequently: 1. Create a cave that is not connected to any other cave; 2. Dig a tunnel between any two caves; 3. Check if two caves are connected; What datastructure would you use to model that problem? Why?
What’s your favourite programming language? Why? What do you think about most popular jvm languages (java, groovy, scala, clojure, kotlin)?
More than 30 hrs/week
1 to 3 months1-3 monthsProject LengthDuration
I am looking for a mix of experience and value