Development of maintainable extensible modular software on demand

I am an experienced freelance developer developing software on demand. My goal is a quality and maintainable code divided into functional units that can be easily used in future projects.

C++

Software development in language C++ for operating systems Windows and Linux.

HTML5 / CSS3 / JS

Development of responsive websites, applications, but also blogs and e-shops.

PHP / Node.js

Server software development in languages PHP and Node.js.

Cordova

Development of cross-platform applications in JavaScript, mainly for mobile devices. One application for multiple operating systems.

Installation

Installation, configuration and commissioning of developed applications, websites and servers.

Support

Customer support including development of new versions and functionalities based on requirements and experience.


Martin Svoboda

IT Freelancer

I am an experienced freelance developer who works as IT contractor, on standalones projects on demand and on open source projects published on GitHub.

My programming languages are C++, JavaScript, TypeScript, Node.js, HTML, CSS, PHP, MySQL, PostgreSQL and SQLite. I continuously improving in other programming languages and frameworks.

My goal is a quality and maintainable code divided into functional units that can be easily used in future projects. The development of new projects developed by using previously developed components is faster and cheaper.

On larger projects for more developers I cooperate with other freelance developers who are actively involved in software development.

FOLLOW ME
Martin Svoboda

References

CUSTOMERS AND PROJECTS ON WHICH I WORKED AS A FREELANCE DEVELOPER

  • IXPERTA s.r.o.

    As part of the contract I work as C++, JavaScript (Node.js) and ORACLE Digital Assistant developer on various projects. I worked on the development of a digital assistant on the ORACLE Digital Assitent platform. I implemented the logic of the assistant in YAML and the connection of the digital assistant with the artificial intelligence SentiSquare for processing of the Czech language in Node.js.

    I also worked on the "Virtual Showroom" project for online car sales. I participated in the development of a backend server in Node.js with TypeScript.

    I currently work on an internall tools for reading and parsing data from Confluence. It is a backend server in Node.js with TypeScript.

    Details

  • SODAT Technologies, a.s.

    As a C++ developer, I worked on the development of Windows service, including its automated tests. I participated in the implementation of communication with the file system driver, network driver (including analysis of HTTP/HTTPS traffic) and communication with the backend server over gRPC and Protocol Buffers.

    Details

  • Atos Convergence Creators s.r.o

    As part of the contract I worked here as a C++, SQLite and PostgreSQL developer of communication servers for Tetra radios. I implemented sending status messages and short data services (SDS). I also participated in the implementation of call connections and their recording.

    Details

  • DHO s.r.o.

    My task was to develop a "GPS server" in C++ for communication with GPS units (Finder, Level, Patriot, Princip, Teltonika, TK103) located in vehicles. Received GPS data were stored in a MySQL database for later processing and generation of a book of journeys.

    Details

  • MarsTech

    Implementation, launch and maintenance of mars-gamer blog about playing computer games, gaming devices and everything related to gaming on WEDOS webhosting.

    Details

  • MarsTech

    Development and maintenance of website www.marstech.cz for presentation of offered services, references and open source projects.

    Details

Open Source Projects

I ALSO WORK ON MY OWN OPEN SOURCE PROJECTS THAT ACCELERATE MY DEVELOPMENT

I often encounter the need to implement similar or the same functionalities. Therefore, I develop my own open source projects implementing basic functionalities such as logging, active and passive configurations, work with threads, DLL management and more. All projects and detailed information about them can be found at my GitHub profile Mars2004.

MarsTech C++ SYS

The MarsTech C++ SYS project integrates most of my other projects into one static library and a dynamic (shared) library.

It implements objects that provide access to the implementation of individual projects through their interface. You can see how much work and time can be saved by using MarsTech C++ SYS at usage example.

Learn More About Project

MarsTech Error

Perhaps every program in any language has to deal with error codes and exceptions. The project defines the type for error codes and individual error codes and implements its own exception including its handling.

Of course, you can use the operating system and the operating system error definition. Unfortunately, most operating systems have their own list of error codes that are not transferable to other operating systems. MarsTech projects are designed to be used with a minimum of effort on different operating systems.

Learn More About Project

MarsTech Logging

Logging is an important part of debugging and troubleshooting. Ideally, when errors do not happen and logs are not needed, but publish a program without good logging is very bold to stupid.

This project does not implement logging itself. There are plenty of quality logging frameworks and there is no need to develop a new one. Unfortunately most of logging frameworks are not ready for unit testing and dependency injection and therefore MarsTech logging is just an envelope over the logging framework spdlog.

Learn More About Project

MarsTech Headers

Smaller project which contains C ++ header files only. Most classes, macros, and functions are generic and do not fit into any other project.

On the other hand, most of these classes, macros, and functions are used by other MarsTech projects.

Learn More About Project

MarsTech Dependency Injection

C++ knihovna pro usnadnění implementace dependency injection v projektech. Jedná se o techniku používanou při implementaci kódu, který lze snadno unit testovat.

Knihovna obsahuje hlavičkové soubory definující makra pro snadnou implementaci dependency injection factories a injectors. Téměř každý unit testovatelný objekt (třída) v C++ má vlastní implementaci faktorky nebo injektoru.

Learn More About Project

MarsTech Threading

C ++ library for threads handling and synchronization. It implements threads, worker threads, events and thread pools.

Although the C ++ standard includes threads and sync objects, they are not yet ready for easy unit testing and require frequent repetitive code. The use of real fibers in unit tests is very complex.

Learn More About Project

MarsTech Configuration

C ++ library implementing active and passive configuration. Passive configuration is a setting that a program/application reads once at a startup, active configuration can be changed by the program. It can also be used to maintain status information.

Most of projects implement their own configuration. For each program/application again and again. This is inefficient in time. Initialize MarsTech configuration by the list of identifiers and their default values ​​(the type is derived from default values) and you have the configuration implemented. No need to develop it again.

Learn More About Project

MarsTech DLL Factory

C ++ library for working with dynamic (shared on Linux) libraries. Just have an instance of MarsTech DLL Factory and you can work with dynamic libraries. DLL factory ensures that the dynamic library is loaded and held.

Working with dynamic (shared) libraries can be complicated and can cause application crash when used incorrectly. DLL Factory solves most of problems related to dynamic libraries and makes work with them easier.

Learn More About Project

MarsTech Module

C ++ library for modular software support. It includes the implementation of Module Manager, which controls the start and stop of plug-ins.

I often see software that tries to be universal and have all the functionality in one place. Unfortunately, such software is difficult to maintain, test (automated testing is almost impossible) and it is difficult to add new functionality to it. Sooner or later such software needs to be re-written. Thanks to modules that implement individual functionalities you can just add new module or change existing one.

Learn More About Project

Contact Me

SEND YOUR MESSAGE

Your message has been sent to us.
Failed to send your message.