Ducommun dit Boudry

Software Consulting and Development Swiss Made

What we can do for you

An overview of the typical development solutions we provide.

Tailored Software Applications

Our broad experience in software, backed by a solid theoretical foundation, enables us to design and build complete real-world products.

We believe in choosing the right tools for the job. We always select languages and frameworks considering the project requirements, the skills of the other developers on the team, the future evolutions and ... the overall elegance of the solution.

We are comfortable using many programming paradigms: imperative, functional, object-oriented or reactive.

Modern programming languages are no secret to us: C/C++, Java, Scala, Python, Ruby, C# or PHP.

Also including languages such as: JavaScript, CoffeeScript, LiveScript, TypeScript, ActionScript or Shell.

We adapt to new languages with ease and in fact we have done a few things with less common alternatives too: Go, Rust, D or Haskell.

Sometimes we design new domain-specific languages (DSL) perfectly adapted to the task at hand.

Web Applications

The trend today is to switch from traditional native applications to online web-based solutions, compatible with mobiles, tablets and desktops.

We design and implement web applications that are multi-platform, cross-browser compatible (e.g. IE, Firefox, Chrome, Safari, Opera), secure, scalable, evolutive and user-friendly.

It is possible today to build clean, robust and maintainable web applications by using the latest frameworks, programming languages and design methodologies.

Some best practices and useful components are distributed databases, stateless servers, mvc/mvvm patterns, web services, actors and stream processing.

Embedded Applications

Embedded applications were a privilege reserved to big corporations in the past. Today we are observing a massive revolution.

We prototype and implement solutions that sense the environment, collect and report observations, detect anomalies, discover and act on the physical world.

Thanks to Arduino, Raspberry Pi and the hundred other valuable players in this ecosystem, it is now becoming extremely easy to prototype and develop small hardware solutions that are changing already or will change the way we interact with the physical world.

Surveillance, monitoring, home intelligence, precision farming, goods handling and other kind of automation are the new exciting opportunities today.

Minimum Viable Products

As Einstein once said (albeit not so clearly): « Everything should be made as simple as possible, but not simpler ».

We have the advantage seeing your project with a pair of fresh eyes. As someone external to your organization, we provide a "thinking outside-of-the-box" mindset.

To ensure the rapid success - or early failure - of a risky project it is crucial to reduce its scope to the minimal set of features accomplishing the business objectives.

  • Not sure yet if the idea will work?
  • Budget is too small to cover all features?
  • A usable solution was expected yesterday?
  • Business requirements are partially defined?

... in all these cases, this agile methodology is particularly recommended.

Intelligent Deployments

Online applications lead to complex deployments. Handling manually a dozen servers or more becomes an error-prone and time-consuming task.

We developed and used solutions to simplify and automatize this in the past. We design and implement professional deployment strategies suitable to your needs.

Thankfully today this is not a brand new problem anymore and several powerful open-source tools have matured, namely: SaltStack, Chef, Puppet and Ansible.

  • Always online aka. zero down-time?
  • Unified system maintenance?
  • Always up-to-date with security patches?
  • Automated backups?
  • Dynamic scaling of resources?
  • Multiple hosting providers?

These are the concerns addressed by the tools listed above. It becomes obvious once in place that this is how system maintenance should ever have existed.

Outsourcing

After 5 years of experience working in China for a software venture opened our perspective on outsourcing opportunities.

We have trusted connections in China and with freelancers around the world. We can leverage these to offload the time-consuming - albeit simple - tasks and parallelize the project deliveries.

The most valuable lesson we learned: "Outsourcing is not a magical word that will reduce the costs".

Some challenges are to take into account the cultural differences, communicate frequently on a very sharp and technical level, as well as prepare contingency plans.

When done the right way, outsourcing provides many benefits such as: 24h/day teams, scalable work-force and cost-effective manual labor otherwise impossible (e.g. "Mechnical Turk").

What we like to use

A few selected technologies and tools we are actively using to build great products.

BigData

  • Distributed filesystem: Hadoop
  • Distributed database: Cassandra, MongoDB, HBase
  • Distributed computation: Spark, Hive, Pig, Mahout

Real-time Processing

  • Full-text search: Lucene, ElasticSearch, SolR
  • Continuous stream processing: Storm, S4
  • 3D visualization: WebGL, OpenGL, DirectX

Web (server)

  • Framework: Play!, Meteor, Django, Sinatra
  • Webservice: REST, Thrift, WSDL
  • Database: MySQL, PostgreSQL

Web (client)

  • Modularity/efficiency: Require.js, Jade, Less
  • Library/framework: Bootstrap, jQuery, KnockoutJS, AngularJS
  • Advanced visualization: D3, Three.js, Easeljs

Hosting & Deployment

  • PaaS provider: AWS, Heroku, App Engine
  • Automation: SaltStack, Docker
  • Operating system: Debian, ArchLinux

Tools

  • IDE/editor: SublimeText, IntelliJ IDEA
  • VCS/build: Git, Ant, Ivy, Maven, Sbt, Grunt.js, Bower
  • Team work: Confluence, Bamboo, Stash, Jira

How we will work with you

Our flexible offers in the life-cycle of your project.

1. Consulting

You have many complex use-cases and constraints to take into account? Backed by years of professional experience we offer a personalized collaboration to formalize or refine your business requirements.

We will formulate for you the realistic options with tomorrow's technologies applicable today.

One of the hardest decision in a new project is finding an optimal trade-off between the needs, the costs and the resulting business value. We are here to help you overcome this difficult choice!

2. Prototyping & planning

You have the business requirements? It is now possible for us to write down your project's plan including components, road map, and time estimation.

If necessary we can pilot a research or prototyping phase before you validate the proposed planning. We recommend it particularly if potential risks have been highlighted during the definition of the project.

3. Architecture & development

Your project plan contains the objectives, deliverables and detailed schedule? Now the most rewarding step can start!

This include designing the architecture to sustain the range of planned features as well as future evolutions.

Then each individual component will be implemented using an horizontal development approach as much as possible. This way, a usable system - albeit incomplete - is available for a test drive sooner.

Each milestone along the way to a final solution will lead to a discussion and validation with you to ensure expectations are met. Adapting the plan as the project move forward is perfectly normal. In fact, waiting the last minute to do so is a recipe for disaster.

4. Support & maintenance

An unexpected situation occurred? You quickly need new features? You want guarantees that your project stays up-to-date with the latest technologies and security patches? No problem! These are services we gladly provide too.

When applicable to your project we can offer training so that your team can exploit the full potential of the delivered solution.

We can also write detailed documentation to explain how to perform maintenance if you want to take over this task internally.

Once the project arrives at maturation and if you wish it, we will be happy to organize a knowledge transfer to ensure that your team of engineers can take over smoothly the future developments.

Contact us

Tell us what we can do for you:

About Us

Company
Ducommun dit Boudry Software Consulting
Time zone
Central European Time
Location
Geneva, Switzerland