Lunatech is a challenging organisation with self-managing developers. In small teams we work on projects for our customers, both from customer location and from our own offices in Rotterdam, Amsterdam and Paris. We don’t have account managers or project managers: our senior developers are responsible for the successful delivery of their projects to our customers.
We build custom software systems for our customers. Our focus is on systems integration, backend systems and custom dashboards. We are a JVM shop with lots of Java and Scala over the last decade. We’re not tied to specific technologies: we look for what suits each project. To give a concrete example, we do a fair amount of Scala with Akka, Spark, Play framework and we often use Elastic Search, MongoDB, Postgres. Our source code is on GitHub.
We regularly work from our customers’ offices because we believe that that’s the best way to discover their real needs. On Fridays however, we all work from the office, in Rotterdam and Amsterdam, to share knowledge, get better at what we are doing, experiment with new technology and have fun together.
We are active in the community. We have conference speakers, published book authors, Lightbend-certified trainers (Akka, Scala and Spark), we sponsor conferences and host a monthly Meetup on functional programming in our office.
- 1 Discover
- 2 Architect
- 3 Build
- 4 Test
- 5 Release
- 6 Monitor and improve
Discover: Gather and document requirements for the new software or part of the software (a sprint), keeping in mind that those requirements might evolve over time.
Architecture and Design: Simplicity is essential and the design should be open to future changes.
Development: The part of the process where software engineers actually program the code for the project.
Testing is an integral and important phase of the software development process. This part of the process ensures that defects are recognized as soon as possible
Releasing starts directly after the code is appropriately tested, approved and sold or otherwise distributed into a production environment.
Monitoring and improving the software to cope with newly discovered faults or requirements is part of the process. That is why correct monitoring is needed to capture those new needs.