Services

OSGi development

OSGi development, including OSGi R8.1 and R8 specifications' implementations, and migrations

From simple projects to those consisting of hundreds of modules, both OSGi and non-OSGi, I will help you with any of the OSGi Core, Compendium and Enterprise specifications' implementations, including Apache Felix and Apache Aries, as well as migrating to OSGi, including migrating from Spring Dynamic Modules to OSGi Blueprint and/or OSGi Declarative Services.

Some of the recent projects include upgrade and refactoring of 30 Apache Felix sub-projects to support Jakarta Servlet API 6.x and OSGi Jakarta Servlet Whiteboard.

Some of the articles I published–based on work I conceptualized, developed, then open-sourced–were praised by OSGi Alliance (https://www.osgi.org/) itself, as well as various recognized software engineers / computer scientists, working with companies such as Adobe, etc.

I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution.


Application Integrated Programmatic Infrastructure Automation

Enhance your product or service with integrated programmatic infrastructure automation capabilities

  • augment your existing product or service–be it Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), or other–with integrated programmatic automation of provisioning, configuration and management of infrastructure capabilities
  • manage software defined infrastructure more efficiently and cost-effectively via a custom automation solution–instead of e.g. Chef, Ansible or Puppet–so it can integrate into your existing product, service or higher-level programmatic orchestration tools
Application integrated programmatic automation of provisioning, configuration and management of:
  • VMs (Linux, Windows Server) and services on private cloud (VMware vSphere) or public cloud (e.g. Azure)
  • Cisco Networks ASA Security Device
  • F5 Networks BIG IP, BIG IQ
  • A10 Networks vThunder
  • Hortonworks Data Platform (HDP) cluster
  • Red Hat Satellite Server
  • or any other part of infrastructure, even without API (RPC, SOAP or REST) via Direct Integration

I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution.


Build Automation

Maven, Tycho, Docker build automation, including custom Maven / Tycho plugins

Build automation is not only the absolute prerequisite step for both Continuous Integration (CI) and Continuous Delivery (CD) to be implemented in your organization, but brings numerous benefits of its own, including eliminating a source of variation and thus defects, providing living documentation of assumptions about the target environment and of dependencies on third party products, increasing efficiency as well as product / service quality, and more.

Perhaps you're just starting transitioning to DevOps, or have a legacy product which you'd like to include in your CI/CD pipeline, or your existing build is not yet fully automated–requires human intervention and/or does not have all of its steps repeatable–or you’re not using yet Tycho for your Eclipse products / RCP applications / plug-ins / features / p2 repositories, or require custom Tycho or Maven plugins?

I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution, whether it is:

  • Automating Maven build
  • Automating Docker container build as part of Maven build pipeline
  • Creating custom Maven plugin
  • Automating Tycho build
  • Migrating Eclipse product / RCP application / plug-in / feature / p2 repository build to Tycho, or
  • Creating custom Tycho plugin

Documentation & Architecture Automation

Living documentation including Documentation as Code and Architecture as Code

Misinterpreting Agile Manifesto's tenet of valuing working software over comprehensive documentation for many years resulted in projects having simply no documentation, thus significantly, and paradoxically, decreasing agility of a given team / project.

Understanding software must include its surroundings–architecture, dependencies, knowing how to deploy, common issues, etc. These must reflect the latest changes applied, therefore manually produced documentation is usually out of question, because, quite simply, it goes stale too fast and hinders instead of helping.

Answer to this is living documentation–meaning, both documentation and architecture versioned and stored just like code and automatically generated whenever latest changes must be reflected. We can even go further and treat our source code as the single point of truth and with proper tooling automatically generate from source code multiple architectural views, representing different levels of abstraction. If our product exposes a REST API, same approach can be applied to obtain an up to date API documentation.

Benefits of this approach are numerous, including significantly improved intra- and inter- team communication, increased efficiency and agility and better product/service quality. In addition, automated API documentation–which is human as well as machine-readable by default–facilitates automated contract / API testing, generation of API clients and servers, and much more.

From simple projects to those consisting of hundreds of modules, both OSGi and non-OSGi, I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to integrate one or all of the following into your existing projects:
  • Architecture as code
  • Documentation as code
  • REST API Documentation–any JAX RS implementation, static, build time or runtime generation

Business Automation

Facilitate great products/services and a healthy organizational culture with automation

  • leverage automation for individual tasks, processes or entire value streams
  • minimize time spent on menial tasks by either fully automating them or making them easier to perform
  • improve consistency and reduce probability of error by eliminating need for manually executing repeatable, tedious tasks, those which don’t require critical thinking or problem solving, as well as those with high margin of human error
  • focus on important, innovative work which adds real value
  • increase efficiency, productivity, and morale among your team or organization
  • boost projects’ success rates [1]
  • cut costs by a margin of 10-90% [2]
  • ensure profitability and competitiveness even in the toughest market conditions

I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution.

[1] Based on Gartner research from 2004, companies who implemented BPM saw 95% success rates with their projects (compared to numbers closer to 25% for overall IT projects and ERP projects) and things only got better since then; however, business automation does not require BPM or documenting and mapping all processes in your organization; significant benefits can be reaped by focusing on individual tasks or processes without the need to introduce full-fledged BPM solution into your team or organization

[2] (…) The value of the potential benefits of automation, calculated as a percentage of operating costs, ranges from between 10-15 percent for a hospital emergency department and a grocery store, to 25 percent for aircraft maintenance, and more than 90 percent for mortgage origination. (…), from "A Future That Works: Automation, Employment, And Productivity" by McKinsey Global Institute


Micro-services

OSGi, Docker, Kubernetes, Serverless based microservices

Micro-services, microservices, μservices, SOA 2.0, etc.–regardless of which label you use, the widespread cultural and technical adoption of Agile methods, DevOps culture, cloud, containers and CI/CD methods makes it possible and ever more efficient to build truly modular, large-scale, service-optimized software systems for both internal and commercial use.

The approach to distributed systems embodied by microservices promotes the use of finely grained, autonomous services, having their own lifecycles, collaborating together, modeled around business domains–thus avoiding problems of traditional tiered architectures, with benefits such as independent DURS (Deploy, Update, Replace, Scale), fault and resource isolation, technology heterogeneity, greatly improved efficiency, and many more.

From simple projects to those consisting of hundreds of modules, both OSGi and non-OSGi, I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution, whether it is:

  • Refactoring into microservices
  • Migrating to OSGi
  • Migrating to Kubernetes
  • Migrating to Serverless
  • API Development
  • API Integration
  • API Documentation

Migrations

Future-proof your platforms and development environments

Transforming your legacy application or system into modern, newer or changed version, with similar or extended functionality, is sometimes the only viable option. The alternatives–such as complete rewrite or replacement with proprietary / licensed product–might be out of question.

The benefits a well executed migration process brings are numerous, including future-proofing your platforms and development environments, enabling development of new features, enabling Continuous Integration (CI) / Continuous Delivery (CD), saving time and money, and much more.

From simple projects to those consisting of hundreds of modules, both OSGi and non-OSGi, I will work with you to clearly understand your needs, as well as your existing product or service, scope the project, then perform any necessary engineering work to deliver the final solution, whether it is:

  • Migrating to microservices
  • Migrating to OSGi, including migrating from Spring Dynamic Modules to OSGi Blueprint and/or OSGi Declarative Services
  • Migrating to Cloud (incl. migrating to cloud-native databases such as CockroachDB)
  • Migrating to Kubernetes
  • Migrating to Serverless
  • Migrating to centralized logging
  • Migrating project build (e.g. Eclipse project build to Tycho, Ant to Maven, etc.)
  • Migrate dynamic CMS / WordPress backend website to static

Consulting

Turn your business idea into working software

Tap into the 15+ years of experience and expertise gathered from my work with clients from the USA, UK and EU across many diverse industries.

From conceptualization through delivery, utilizing efficient and innovative methods and techniques for requirements gathering and analysis, I will work with you to clearly understand your needs, scope the project, then perform any necessary engineering work to deliver the final solution, whether it is:

  • Integration, including: API integration (RPC, SOAP or REST), Direct integration–when no API is available, Enterprise Application Integration, Programmatic Infrastructure Automation Integration
  • Automation, including: Programmatic Infrastructure Automation, Build Automation, Documentation Automation, Business Automation
  • Micro-services
  • API Development
  • Serverless Computing
  • Cognitive Computing
  • Customization or enhancement
  • Refactoring or migration