Agile Software Development
This is a summary of the services we provide within the software development branch.
Implementation & Maintenance of Large Software Systems
Programming languages
We work mainly with Enterprise Java, as well as C++, C#, JavaScript / TypeScript, Kotlin, PHP and Python
We also work, but less often, with C, Go, Groovy, Objective-C, Ruby, Rust, Scala and Swift
We know uncommon languages such as for example Haskell
Web technologies
Frameworks such as Angular, React and Vue.js, Flux/Redux, Ember
Java-frontend technologies such as Spring MVC, JSF and JSP, JavaFX, SWT, Swing and Vaadin
ASP.NET and Node.js
Grails on Groovy, Rails on Ruby, Python with Flask and PHP with Symfony
CSS with Less and Sass, PostCSS and CSS-in-JS
Frameworks
O/R-mapping with Hibernate/JPA, Doctrine and Entity Framework
Inversion of Control with Spring, CDI, Simple Injector and Unity
Application development with Spring Boot, .NET Core, Micronaut and Quarkus
Enterprise integration with Apache Camel and ESBs, TIBCO
Messaging with Kafka, ActiveMQ and RabbitMQ
Stream programming with Apache Flink and Spark
Rule engines with Drools
Reactive applications with Akka, Spring and Reactive Streams
Component models with OSGi and Java modules
GUIs with Qt
Tools
Search engines & tools such as ElasticSearch/Logstash/Kibana and Solr/Lucene/Hibernate search
Shell scripting with Bash, Zsh, Powershell
Compiler construction with Yacc/Bison/JavaCC/ANTLR and f/lex
Complex e-commerce solutions based on the hybris Commerce Suite and the hybris Commerce Accelerator
Architecture & Design
Domain-driven Design (DDD), object-oriented analysis and design (OOAD)
Distributed systems with REST & SOAP, GraphQL and OData
API management with OpenAPI and Apigee
Event-driven architectures, event sourcing and CQRS
Serverless architectures
Responsive web design, progressive web apps & user experience (UX)
Architecture rules with ArchUnit
Automated Test & Quality Assurance
Test-driven development and test automation with Continuous Integration systems like Jenkins and Bamboo
Test tools like JUnit/TestNG/FitNesse, Hamcrest/Mockito, Concordion, Behat, JGiven, AssertJ & FEST, Selenium/Geb, Jest, Mocha and Jasmine
Quality management with SonarQube PMD, FindBugs/SpotBugs, CheckStyle and *Lint
Code reviews and software verification
Performance testing & tuning, analysis of concurrency and memory leak issues
Operating & Development Environments
Java application servers like Oracle WebLogic, Tomcat, Jetty, WebSphere and Wildfly
Portal servers like Liferay
Operating systems like Linux, Unix, macOS and Windows
Build systems with Gradle, Maven, Ant, Ivy, npm, Grunt, Gulp, Phing, Composer, yarn, CMake, NAnt and NuGet
Version control with Git (GitHub/GitLab/Bitbucket), SVN, ClearCase, Mercurial, TFS, Jazz
Artifact management with Nexus/Artifactory
Wikis and bug trackers like Atlassian Confluence and Jira, Jetbrains YouTrack, Trac, MediaWiki
IDEs like Eclipse, IntelliJ, PHPStorm and CLion
Development for mobile devices on iOS and Android
Cloud- and SaaS-platforms such as AWS, Azure, Google Cloud Platform, OpenShift und AppExchange
Services, Processes & Requirements
Best practices software development with Scrum, Kanban, scaled Scrum (SAFe, LeSS) and techniques out of Extreme Programming / XP
Support as a Scrum Master and Product Owner
Language- and tool-agnostic implementation of business software
Restructuring of ongoing third-party projects as well as troubleshooting and refactoring of legacy code
Agile requirements engineering, user stories/story mapping and event storming
Firefighting
Trainings, workshops and know-how transfer
IT Rescue
Inventory, due diligence review
Roadmap for modernization tailored to the customer with diverse technologies in various industries
Consulting on modernization strategies, e.g. according to the Strangler Pattern or with in-place modernizations
Support in prioritizing existing business features
Establishing cloud readiness
Intelligent concepts for the conversion: Temporary adapters that hide the migration for client systems
Paradigm shift and introduction of best practices in software development and requirement management
Quality assurance and risk minimization by increasing the degree of automation