Project types

Before the project: sales

We don’t take every project. Bad matches include: People who want to pay with equity, companies unlikely to understand our working methods, unreasonable and/or arbitrary deadlines, companies competing with our existing customers and so on.

Our sales workflow is mostly executed by Àlex and complemented by someone from the tech team doing the estimates for the quote (usually Xavi and/or Jordi).

End-to-end development

We like to work on all the phases in the product lifecycle: from the conception of the idea to the maintenance. We are a one-stop shop.

However, in some cases we're hired to jump directly into the phase of development, to complement an existing team.

But when we do play with our rules, we do it as follows.

First, we design and conceive the idea together with the customer, defining the user experience (UX) & screens. This is done using Middleman, HTML5 and CSS3, and we call it layouts or “maqueta”, Spanish. We upload these to a design server so clients can see how it looks like on a real browser and play around with it.

Once the layouts are approved by the customer, we start the development. We can’t start the development otherwise, and we only develop what has been defined in the definition document or what exists on the layouts.

Similar to what we do with the layouts, we normally work on a test environment, shared with the customer with a public URL and protected with a username/password, so that they can validate the results in real-time, show it to investors, etc.

We have been working both with AWS and DigitalOcean as hosting providers. We have worked with PaaS alternatives as Heroku, EngineYard or Cloud66, and normally Xavi and the client's team will agree on a set of tools we will use in the project. However, we've got experience with other platforms like Microsoft Azure, Google Cloud Platform and more.

We ask the clients to contract the hosting services themselves and give us access to them, so we can manage them without having to charge them for the overhead.

Halfway through the project, we offer them the maintenance contract for the post-release phase.

Maintenance & ongoing development

We don't believe in maintenance projects per se. We believe that software is never finished, so even if the main release has been already delivered, we usually keep working on the project for as long as clients want.

What we don't do is to work with bank of hours models or on-demand.

We work with a minimum commitment of two full-time software engineers per project, plus the Tech Lead and Project Manager roles, who do a fraction of that time. Usually, for every 40h of development, we do 10 of project management plus ten of tech lead.

Our techstack

At MarsBased we like to use state-of-the-art technologies. For that reason, we are always searching and testing new features of our current technologies and experimenting with new programming languages and frameworks.

However, there are a few principles that we always apply when we decide to choose a new technology or a new library for a programming language:

  • Use the technology that really fits your needs for a given project. All technologies have their advantages and drawbacks. There’s not a one-size-fits-all solution to every problem.

  • Prefer technologies that embrace readability as one of their principles. We believe that the code needs to be peer-reviewed, so we have to spend a lot of time reading code.

  • Choose technologies that increase your productivity. We want you to be happy, and we know that it can only be achieved if you feel productive.

  • Prefer technologies with a strong community behind them. They are likely to be better battle-tested and they will get improvements over time.

  • Be sure to check the license terms of a technology before start using it. We always work with Open Source technologies.

Our current techstack is Ruby on Rails, Python or Node.js for the backend and Angular, Vue.js or React for the frontend.

Last updated