Ideas Into Software LLCSoftware engineer / IT Consultant
Nov. 2010Providing software engineering / IT consulting services with responsibilities ranging from technical analysis and design through solution architecture, implementation, as well as coordination with stakeholders and UI/graphic designer(s).
Some of the long term B2B contracts so far included:
• a 3 year B2B contract with a Jena, DE, EU company, whose founders are the forefront of OSGi and model-driven development;
• a 2,5 year B2B contract with a Silicon Valley, CA, USA company, developing software defined application deployment and management platform capable of controlling the most sophisticated applications and programmable infrastructures, during which I developed solutions utilizing products from and used by world's most well-known IT companies, such as Cisco, SAP, NetApp, Microsoft, F5 Networks, and more;
Some of the projects so far included ( see https://ideas.into.software/case-studies/index.html for more details on some of those projects ):
• Migration of OSGi GraphQL Servlet Whiteboard to support Jakarta Servlet API 6.x and OSGi Jakarta Servlet Whiteboard; utilized Java 17, GraphQL Java 19.5, GraphQL Java Servlet 15.0, Jakarta Servlet API 6.0, Gecko, Apache Felix, Eclipse Jetty 12, OSGi 8.1 ( including OSGi Jakarta Servlet Whiteboard API ), Junit, BND 6.3.1, Gradle 7.4;
• Migration of Apache Felix sub-projects to support Jakarta Servlet API 6.x and OSGi Jakarta Servlet Whiteboard; utilized Java 17, Apache Felix (including Apache Felix HTTP Jetty, Apache Felix Servlet API, Apache Felix Health Checks, Apache Felix Webconsole, Apache Felix Webconsole Plugins, Apache Felix System Ready, Apache Felix Inventory), Jakarta Servlet API 6.0, Eclipse Jetty 12, OSGi 8.1 ( including OSGi Jakarta Servlet Whiteboard API ), BND, Maven;
• Exporters for EMF (Eclipse Modeling Framework), i.e. specialized utilities - multi-format exporters - for EMF (Eclipse Modeling Framework), as part of “Gecko EMF Utilities” project, including ODS (OpenDocument Spreadsheet) Exporter for EMF, XLSX Exporter for EMF, CSV Exporter for EMF, with two modes of operation (ZIP and "flat" mode), R language Exporter for EMF; utilized Java 11, EMF (Eclipse Modeling Framework), FastCSV, SODS, Google Guava, Apache Felix, OSGi 8, Junit, BND 7.1.0, Gradle 7.4;
• Full stack development of application for amateur golfers; on the front-end utilized Dart, Flutter, FlutterFire ( including Firebase Messaging, Firebase Crashlytics, Firebase Analytics and Firebase Remote Configuration ), as well as plugins such as as auto_route, bloc, dio, geolocator, hydrated, in_app_purchase, google_maps_flutter, image_cropper, image_picker, intl, and other; on the back-end utilized Java 11, OSGi 7, EMF (Eclipse Modeling Framework), Eclipse MMT / QVTO, Gecko framework ( including Gecko EMF, Gecko EMF Utilties, Gecko EMF Persistence, Gecko Search ), Java RESTful Web Services (JAX-RS), Apache Felix ( including Apache Felix HTTP, Apache Felix Event Admin, Apache Felix Health Checks, Apache Felix Webconsole ), Eclipse Jetty 9, Firebase Admin SDK, Google Play Android Developer API / Android Publisher SDK, Swagger ( including Swagger Annotations, Swagger JAX-RS and Swagger Gradle Plugin ), OpenAPI Generator, Keycloak ( including oAuth authentication via Google and Apple ), Pac4J, Lucene Core API, Spatial4J / JTS, GeoJSON, Junit, BND, Gradle, MongoDB, Docker, Docker Compose, Grafana k6, Mustache; for CI/CD utilized Jenkins, Docker, Docker Compose, MongoDB, Keycloak, Ansible, Grafana k6;
• Swagger / OpenAPI GeoJSON support in REST API endpoints utilizing generated EMF model code; utilized Java 11, EMF ( Eclipse Modeling Framework ), Eclipse MMT / QVTO, Gecko ( including Gecko EMF, Gecko Search ), Swagger ( including Swagger Annotations, Swagger JAX-RS, Swagger Gradle Plugin ), OpenAPI Generator, Java RESTful Web Services (JAX-RS), JSON, Apache Felix, Eclipse Jetty 9, OSGi 7, Junit, BND 6.3.1, Gradle 6.6.1, MongoDB, Docker Compose, Bash, Dart, Flutter;
• Implementation of "OGC API - Features" standard; utilized Java 17, EMF (Eclipse Modeling Framework), Lucene Core API 9.7.0, Gecko ( including Gecko EMF, Gecko Search ), OpenAPI Generator, Jakarta RESTful Web Services (JAKARTA-RS), Jakarta Servlet API 5.x, JSON, Apache Felix, Eclipse Jetty 11, OSGi 8, Junit, BND 7.0.0, Gradle 7.4.2, MongoDB, Docker Compose;
• Converters for EMF (Eclipse Modeling Framework), i.e. specialized utilities – Converters for EMF (Eclipse Modeling Framework) – as part of “Gecko EMF Utilities” project, including Java Reference Type to EPackage converter, DTO to EPackage converter, DTO to EObject converter; utilized Java 11, EMF (Eclipse Modeling Framework), Apache Felix, OSGi 8, Junit, BND 7.1.0, Gradle 7.4;
• Automation of accounting data exchange; utilized Python, SQL, MariaDB, Docker, Kubernetes, NFS;
• Migration to new environment of custom-made MIS/ERP system; utilized Packer, cloud-init, Terraform, Ansible, PowerShell, WinRM, Hyper-V hypervisor, KVM hypervisor, Docker, Kubernetes, Helm, MetalLB load-balancer, NFS, GitLab CI/CD, MariaDB, Nginx, PHP, JavaScript, Bash, SQL, HTML, CSS, JADX, Android Debug Bridge (adb) and Android Gradle Plugin
• Deployment of helpdesk / ticketing solution; utilized Ruby 2.5.7, Ruby on Rails, Zammad 3.2.0, Nginx 1.14.0, PostgreSQL 12.1, Memcached 1.5.6, Exim 4.90, Freshdesk, Python 3, XML, Zammad API, Ubuntu 18.04 LTS;
• Technical audit of custom-made MIS/ERP system;
• Post-installation automation of SAP deployments utilizing Hibersap and SAP Java Connector; utilized Java, OSGi, SAP Technical Configuration ABAP API, SAP Java Connector (JCo / jConnector), Hibersap;
• Automated provisioning, configuration and management of Windows Server 2012 VMs on Azure Cloud; utilized Java, Spring, OSGi, PowerShell, Azure Cloud API, Azure Java SDK, WinRM4J, Windows Server 2012;
• Automated provisioning, configuration and management of Windows Server 2012 VMs on vSphere; utilized Java, PowerShell, Spring, OSGi, vSphere, Windows Server 2012, VMware VI (vSphere) Java API, Azure Cloud API, Windows DSC, Azure Java SDK, WinRM4J;
• Automated provisioning, configuration and management of Hortonworks Data Platform (HDP) cluster; utilized Java, Spring, OSGi, vSphere, VMware VI (vSphere) Java API, Hortonworks Data Platform/HDP ( including: Ambari, HDFS, HttpFS, MapReduce, Yarn, Zookeeper, Spark, Storm, Pig, Hive, Kafka, Flume, Oozie, Nifi, Hue, Zeppelin ), SAP HANA Vora;
• Automated configuration and management of A10 Networks software load balancer; utilized Java, OSGi, A10 Networks AX REST API, Apache HttpComponents;
• Automated configuration and management of Cisco ASA security device; utilized Java, OSGi, Cisco ASA REST API, Apache HttpComponents, Jackson 2, Apache Commons IO, Google Guava;
• Automated provisioning, configuration and management of F5 Networks software load balancers; utilized Java, VMWare Java API, F5 BIG-IQ & BIG-IP iControl SOAP & REST APIs;
• Automated management and querying of Systems, Software channels, System groups and Activation Keys in Red Hat Satellite Server; utilized Java, OSGi, Apache XML-RPC, Jackson 2;
• Automated management, querying and authentication of users, organizational units and groups in Active Directory server; utilized Java, OSGi, Apache Directory LDAP API;
• NetApp SVM content uploader with configurable timeout and cancelable operation; utilized Java, OSGi, NetApp SVM, NetApp Manageability SDK, SSHJ;
• Enhancing automated vSphere deployment feature of a software defined application deployment and management platform; utilized Java, Spring, OSGi, vSphere, VMware VI (vSphere) Java API, Apache HttpComponents, Apache Commons CLI, Apache Commons IO;
• On-demand, asynchronous collection of diagnostic information downloadable via GUI of Company's product; utilized Java, OSGi, Eclipse RCP, Eclipse RAP, Eclipse EMF, JCR (Java Content Repository), Apache Commons IO, Apache Commons Lang, Google Guava;
• Distributed systems’ monitoring and control utilizing Apache Zookeeper; utilized Java, Groovy, Bash, Apache Zookeeper, Apache Curator, Apache Commons Exec, Apache Commons CLI;
• Distributed systems' monitoring utilizing Riemann and RabbitMQ message broker; utilized Clojure, Java, OSGi, RabbitMQ, Riemann, Langohr (Clojure client for RabbitMQ), RabbitMQ-Riemann plugin;
• vApp cluster configuration management utilizing Apache Zookeeper; utilized Java, Apache Zookeeper, Open Virtualization Format (OVF), Apache Commons Configuration, Apache Commons JXPath;
• License management solution, including time-limited evaluation type as well as capacity- and time- limited subscription paid type of licenses; utilized Java, Java Keytool, Groovy, Bash, OSGi, Apache Commons Codec, Apache Commons IO, Apache Commons CLI, Apache CXF, Jackson;
• Automated collection and identification of 3rd party libraries' licensing info used in Company's product; utilized Java, Apache Commons IO, Apache Commons Compress, jarchivelib, OpenCSV, Google Guava;
• Integration of unified logging layer and centralized log management system into highly complex product tech stack; utilized Java, OSGi, Graylog/Logstash, Pax Logging, Logback, GELF4j;
• Integration of Apache Camel with Syslog for logging events generated by Company's product; utilized Java, OSGi, Spring, Apache Aries Blueprint, Apache Camel, RabbitMQ, Syslog, Graylog/Logstash, Syslog4j;
• Integration of Apache Camel and RabbitMQ message broker into highly complex product tech stack; utilized Java, Spring, Spring Dynamic Modules, OSGi, Apache Aries Blueprint, Apache Camel, RabbitMQ, ActiveMQ;
• Integrating Swagger into highly complex product tech stack; utilized Java, OSGi, Apache Aries Blueprint, Swagger 1.5;
• Integrating Spring Security LDAP with Active Directory server; utilized Java, Spring, Spring Security LDAP, OSGi, Apache Aries Blueprint;
• Migration and upgrade of highly complex product tech stack, consisting of hundreds of OSGi bundles and thousands of 3rd party dependencies; utilized Java, Spring, Spring Dynamic Modules, Spring Security, OSGi, Apache Aries Blueprint, Apache Camel, RabbitMQ, ActiveMQ, Apache CXF;
• Migration of highly complex Eclipse platform based product build automation from Ant to Maven-based Tycho; utilized Java, OSGi, Maven, Tycho, Mojo Executor, Tycho Versions, Maven Download Plugin, Maven Replacer Plugin;
• Apache XMLBeans library customization; utilized Java, OSGi, Apache XMLBeans;
• MS Azure Cloud API Automation and Management Java Client for for automated provisioning of deployments into MS Azure Cloud;
• Active Directory integrated DNS Java Client for automated configuration and management of AD DNS on Windows Server 2012;
• Windows Remote Management (WinRM) Java client for remote configuration and management of Windows Server 2012;
• Automated self-signed certificate generator and importer; utilized Java JCE (Java Cryptographic Extensions), Java Keytool, Groovy, Bash;
• For a Fortune 500 company, enhanced their internal self-service and ticketing application – functionalities developed included new front-end features as well as a back-end WS Proxy component; utilized Java, AspectJ, Spring (incl. Spring Sync), Thymeleaf with Ultraq dialect, Apache Commons Libraries (Codec, Lang, other), JavaScript (incl. Angular JS), CSS, HTML, Tomcat 6 Application Server, MySQL 5 DBMS;
• As a full stack developer, implemented new features as well as modified existing ones in a Digital Asset Management (DAM) platform allowing for meta-data analysis and discovery of video, audio, image and textual content, utilized mostly by media companies. Introduced to project two new JS & HTML5 only client applications for internal REST services' as well as a front-end built pipeline – a fully automated processing and build of front-end artifacts via Grunt and Maven; utilized Java, JavaScript (incl.: "Backbone" and "Marionette" frameworks), HTML5, CSS (incl.: "LessCSS"), JSON, REST, Bash, Freemarker, Tomcat 7 Application Server, Apache2 HTTP Server;
• For a Fortune 500 company, improved requirements elicitation and management process on a large, agile project; delivered a proposal of solutions (practices & process improvements) and tools for remediating defined problems, as a result a road-map was formulated and gradual optimization started; refined user stories through the introduction of scenarios and acceptance criteria for each scenario, with the goal of formalizing them using Gherkin language upon improving overall test coverage of the system; visualized product backlog via "SpecLog", software integrated with "Microsoft Team Foundation Server (TFS) 2012", providing an additional layer on top of the TFS, replacing flat-list view of the product backlog with visual view, allowing for evolving and refining the product backlog as well as easier comprehension of the scope of the system through mapping techniques such as story mapping and impact mapping;
• Conceptualized solution architecture – utilizing best practices and state of the art tools for knowledge management systems, including semantic (Web 3.0) technologies, NLP and graph databases, along with implementation suggestions based on ready open source solutions – for a system whose aim was to streamline the process of obtaining 'safety critical' certifications for software and devices in automotive, avionics and rail industries;
• Refactored parts of an e-learning platform as well as recommended solutions in order to modularize it and modernize technologies used in the user interface layer; utilized Java, Vaadin, SQL, XML, OSGi;
• Developed new features and introduced improvements in an airfare booking platform; utilized Java, Hibernate, Spring, SQL, XML;
• Formulated a solution architecture for a domain parking platform as part of scaling it to support up to 1 million of visits per day;
• Audited work done by previously hired company on a mobile e-commerce platform project; analysed problems, refined requirements and solution architecture; sourced company responsible for delivering complete solution;
• Implemented new and enhanced existing functionalities in an online banking application; utilized Java, SQL, XML, XSL, Oracle DBMS, WebLogic Application Server;
• Improvements and contributions to the "Kubernetes Maven Plugin" – a Maven plugin which fully automates building and pushing of Docker images to registry during Maven install phase, as well as deploying of any required infrastructure and applications to Kubernetes cluster during Maven deploy phase – utilizing Java, Maven, Docker, Kubernetes;
• Bug fixes and improvements to the "Jekyll::Linkpreview" plugin; utilized Ruby language and Jekyll static site generator;
• Various serverless tools; utilized Serverless framework, JavaScript, Node.js, AWS, HTML5 & CSS3;