Coding by the water

Coding by the water

At the edge of the Hafencity directly on the water we code accompanied by the sounds of seagulls, rippling water, and the murmur of tourist voices. The atmosphere is without a doubt unique: we love it!

Defined processes - but with flexibility

Defined processes - but with flexibility

While we routinely follow defined business processes we critically examine these for each project and redefine them as need be. So some teams may be using the Scrum method and others Kanban, but other methods are also possible if and when the situation requires it.

Working Without Artificial Barriers

Working Without Artificial Barriers

The choice of technology is not an end in itself. We choose the best forms of technology for each project as regards performance, infrastructure, and security. This benefits not only our projects but ultimately our teams as well who help make the decision.

Hardware and Software Catered to the Individual

Hardware and Software Catered to the Individual

Whether it’s Windows, Linux, or macOS. Apple, Dell, Lenovo or any other manufacturer: each colleague chooses their own work instrument according to their own personal preferences and tastes. This way everyone is happy and can get to work in their accustomed environment.

Let’s get serious: what do we do?
  • Our focus is on cross-industry software solutions with a wide range of technology stacks. Our reference portfolio covers a wide spectrum: cloud-based enterprise platforms, cross-media marketing tools, energy subsidy calculator, and online shops. In addition to our professional expertise - which by the way doesn’t just begin with A as in Apache and end with P as in PHP, but rather extends to many programming languages, frameworks, and database systems - customers also value our flexibility.
How do our teams proceed?
  • At alemo we have several agile teams working at the same time. We choose the appropriate project management method, typically Scrum or Kanban, according to the needs of the customer and the technical requirements of the project and define the technical basis. In doing so interoperability, pre-existing infrastructure, and target audience all play a role. Implentation is carried out by the project team here in company or on site with the customer.
What else do we do?
  • In addition to software development our portfolio includes requirement analysis and consulting as well as test and quality management in the areas of project and process management and in the area of e-commerce sales marketing, Google AdWords management and optimization, Amazon shop management, and much more. Our focus is always on the project specific requirements and targets as to scalability, security, and flexibility.

Depending on the project and starting point we typically use Scrum or Kanban. Choosing the appropriate process work flow is based on the requirements of the project.

PHP

We use PHP almost exclusively with varying frameworks, such as Zend or our in-house-developed Halo framework

RabbitMQ

For certain projects we fall back on RabbitMQ in order to be able to notify users dynamically and efficiently. In this area RabbitMQ has established itself as reputable solution and is used by many big companies and in many projects worldwide.

C#

Along with PHP the .NET platform technology stack is the one we most commonly use. Usually the programming language of choice is C#

Angular

Angular and AngularJS are employed in many of our projects.

Docker

In the development phase we make our lives easier with Docker. Its use, of course, depends on the project itself and isn’t practical for every project.

Jira

Because we like lean workflows and prefer not to waste precious time on organizational matters we use Jira in combination with Bitbucket server. Our teams love the provided setup: it saves time, aids work, and increases efficiency and satisfaction.

git

The efficiency of git as version management is indisputable. Without thematic branches and pull requests (in combination with Bitbucket server) our QA wouln’t be nearly as good as it is.

Composer

Occassionally we have to use many libraries, so we make it easy on ourselves and integrate the libraries using composer. Quick and easy!

Bitbucket

We use Bitbucket to view collective results, make comparisons, or suggest improvements. Bitbucket is used in our daily process for quality control as well for learning factor and team cooperation.

PHPUnit

For many tasks we follow the principle of test-driven development and begin with the unit test. Because many projects are based on PHP, PHPUnit is the solution of choice. At the end of the day PHPUnit, like most test driven development, is about establishing another quality control component and more stable and secure software.

Mocha.js

We also extensively test our JavaScript code. For this we use Mocha.js, an easy to use test framework for JavaScript applications

PostgreSQL

For most projects we use PostfreSQL in place of alternative database systems. However these skills are easily learned where proficiency in other relational database management systems already exists (e.g. MariaDB).

Python

Since we also program for specific hardware and embedded systems Python is, in that case, the programming language of choice. As a matter of fact Python is the only script language that is already natively available on most embedded systems.

GraphQL

The facebook-developed query language provides for a more efficient communication between server and client applications and allows a more clear separation between frontend and backend development.

Jenkins

These days many of our projects benefit from Jenkins - from test automation to continuous integration.

Symfony

In addition to our own framework, which is primarily employed in older projects, the use of Symfony is growing as the basis for our current projects. This way we can concentrate entirely on the application logic.