… in a nutshell

Image for post
Image for post
Photo by C Drying on Unsplash

My personal approach to the topic

In 2019 I was working for tribe29 GmbH. The company develops a well-known IT monitoring tool called CheckMK. The software uses Python plugins called checks to implement monitoring functionality. I already knew about functional programming and it’s benefits of potentially improving performance and memory consumption significantly. However Python does not support the functional programming paradigm natively. Python focusses on supporting the imperative and object-oriented programming paradigm. Nevertheless I wanter to learn more about how one can apply functional programming concepts in Python and read the book Functional Python Programming by Steven F. Lott.

Not much later…

… in a nutshell

Image for post
Image for post
Photo by Romina Farías on Unsplash

tl;dr (too long; didn’t read)

This book is a must read for every Pythonista! If I had to choose one single book to recommend for people dealing with Python I’d choose Python Tricks: The book — A Buffet of Awesome Python Features by Dan Bader. I highly recommend to read this book as early as possible. In 300 pages one learns about essential functionality in an higly interesting, pedagogically impeccably prepared easy to read book with a lot of real-life examples and easy to look up key takeaways.

My personal approach to the topic

I’ve met Dan Bader in person at the PyCon Munich 2016. He is a very smart and…

… in a nutshell

Image for post
Image for post
Photo by Luca Martini on Unsplash

My personal approach to the topic

In 2019 I had to decide wether to choose TypeScript or JavaScript for the frontend development of a web interface for a MVP in the industrial domain. In the backend I was sure not to go with TypeScript nor with JavaScript. In the frontend I was not quite sure wether to go with TypeScript or with JavaScript. I already implemented some JavaScript in personal website projects but I wouldn’t have not called myself a professional frontend developer. I knew however that the lack of typing can become a problem. However as long as little, easy logic would have to be…

How does protocol version 5.0 differ from version 3.1.1?

tl;dr (Too long; didn’t read)

MQTT v5.0 introduces some new features and introduces foundational changes in comparison with MQTT v3.1.1.

In summary:

  • New feature: User Properties
  • New feature: Shared Subscriptions
  • New feature: Payload Format Indicators
  • New feature: Content Types
  • New feature: Response Topic (Request-Response Pattern)
  • New feature: Correlation Data (Request-Response Pattern)
  • New feature: Response Information (Request-Response Pattern)
  • New feature: Topic Aliases
  • New feature: (AUTH packet)
  • New feature: Flow Control
  • Additional Reason Codes: Overall there are 128 reason codes now (MQTT v3.1.1 had 19 reason codes)
  • CONNACK packet: Return codes for unsuportted features
  • Changed feature: Clean Start (instead of MQTT v3.1.1 Clean Session)

Session Expiry Intervals

It’s possible to…

About the history of ROS2 chaos engineering tooling.

Image for post
Image for post
Photo by Tarik Haiga on Unsplash

Intro — Why should you care about chaos engineering ROS2 systems?

In 2017/2018 I worked for Roboception GmbH, a company providing 3D vision hardware and software solutions for the robotics domain.

I was heavily involved in DevOps, the improvement of the software architecture, the improvement of the software development process and test automation. Besides other tasks I had one task was to implemented an update mechanisms for an embedded single board computer running U-Boot and Ubuntu included in probably the world’s first 3D sensor for robotic applications, called rc_vizard.

A de-facto IoT communication protocol brought to the point.

Image for post
Image for post

What is MQTT?

According to the official website

MQTT (Message Queuing Telemetry Transport) is an OASIS standard messaging protocol for the Internet of Things (IoT).

OASIS standard means, that the specification of the protocol has been created and is evolving involving individuals, organizations and governments in an open, non-prioritary manner.

Why should I care about MQTT?

MQTT is the de-facto standard for inter-device communication in a lot of domains like

The missing tool in the Python CI/CD toolkit.

Image for post
Image for post
Photo by Nadir sYzYgY on Unsplash

Intro — Why should I care about Test Impact Analysis based testing?

In 2018/2019 I worked for the company creating a well known open source IT infrastructure monitoring software called CheckMK. The company Matthias Kettern GmbH was founded by Matthias Kettner and renamed into tribe29 during this time.

Most of my time I’ve spend maintaining network switch and server monitoring components, called checks. A check extends the systems core functionality with beeing able to monitor additional hardware and/or software. In case of a network switch this is e.g. a switch device and the associated firmware running on it. However I’ve written some software-only checks as well. Each check is a collection of…

Reasons for considering Signal for internal, informal, ad-hoc communication.

Why do you want to use an instant messenger in your StartUp?

In most StartUps I’ve worked so far there was need for ad-hoc, internal communication. Walking from one side of a building into another on was considered unnecessary overhead :) Communication included pper-to-peer text messages as well as voice calls. However in the (post) Covid-19 age video calls are getting more and more important as well.

In software development you’ll have to communicate sensitive data from time to time as well. But development is not the only domain affected. In management it might happen that some potentially sensitive contact data of business parterns land in the app. Beeing in fire-fighter mode…

The foundation of Kubernetes based cloud-native applications

Image for post
Image for post

The context

Microservice architecture “arranges an application as a collection of loosely coupled services.” Microservice based applications can be run using lightweight container runtimes but usually they are cloud-native as well. Cloud-native means that the applications “(are scalable and run) in modern, dynamic environments such as public, private, and hybrid clouds.” The majority of cloud-native applications are developed to run on cloud provider infrastrcuture (e.g. compute resources) and using cloud provider specific technologies (e.g. blob storage, messaging brokers, etc.). The most common platforms are Amazon AWS, Google Cloud Platform (GCP) and Microsoft Azure.

What’s the problem?

Cloud-native applications…

Declarative configuration of microservices made easy

Image for post
Image for post
private screenshot

What’s the problem?

Often service need to be run in different environments. The most obvious example w.r.t. the service development lifecycle which implies different environments development, testing and production. But in case services are deployed on-premise for different customers there is a need for individually configured services. This implies the need for environment specific configuration, e.g. secret keys, database credentials, etc. Having to change the service for every environment has a lot of disadvantages. How to enable a service to run in multiple environments without modification?

The solution!

The Externalized configuration pattern solves the problem. “Externalize all application configuration including the database credentials and network…

Florian Kromer

Software Developer for rapid prototype or high quality software with interest in distributed systems and high performance on premise server applications.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store