Technologies
Application development
Front-end
- HTML5, XHTML, HTML4 - document structure and content.
- CSS3, CSS - cascading style sheets.
- JavaScript ( vanillaJS ) - To avoid overloading the website with unnecessary scripts I always try to use pure JS. Of course, there are situations when such actions are not profitable and only then I use for external Frameworks.
- WebComponents - integrated with any modern browser tool to create your own universal components. Components supports: templates, reactivity, objects are hermetic.
- WebSockets - when a WEB application requires constant communication with the server.
- WebAudio - audio recording, processing and playback.
- WebAssembly - if the application needs a lot of computing power and JS is too slow.
Back-end
- PHP - is my main back-end programming language. I use it to create CMS tools, websites but also as a support for back-office or CRM applications.
- C/C++ - if I need to write something that is small and fast.
Desktop applications
- Embarcadero C++ Builder / Delphi 10.X - cross-platform environment that allows to create native applications for all popular operating systems.
- C# - Visual Studio Windows Forms (if there is such a need to write something in it).
- Java + Swing - only small applications (more as a hobby).
- OpenGL - 3d graphics creation.
- SDL - universal cross-platform libraries for graphics, audio and external devices.
- BASS - libraries for efficient audio signal processing and playback
Mobile applications
- Progressive web apps (PWAs) - an excellent tool for simple applications that do not require lo-level access to hardware or do not need much computing power.
- Embarcadero C++ Builder / Delphi 10.X (FMX) fast and reliable technology to build cross-platform apps.
Communication between systems
When there is a need to integrate an application with an external system then I can use:
- REST-API - a simple way to communicate between systems working in network. Communication based on HTTP/HTTPS, usually using JSON format for data transfer.
- SOAP - an older, very formal and powerful way to exchange information between applications.
- JSON, CSV, XML, EXCEL, ODT, TXT - data exchange formats.
- TCP/IP, UDP - good solution for fast and continuous communication between servers or applications.
- RS232 / RS485 / RS422/ I2C - serial communication usually used for communication with peripheral devices such as fiscal printers, ID card readers, automation controllers (also via WiFi or Ethernet).
- MT940 - specialized format for exchanging information, e.g. from bank statements.
API, data sources, external services
- Google Maps API - provider of a map service system,
- MapBOX API - second very good provider of a map service system,
- Deepl.com - API for automating text translations based on neural networks, very good for specialized texts,
- Google Translator API - for translations,
- Przelewy24, dotPay - online payments systems popular in Poland,
- Stripe.com, PayPal.com - universal payment systems with international range,
- MDSWS - Polish database of tourist offers.
Systems and platforms
I develop applications running under the control of the following operating systems or platforms:
- Microsoft Windows,
- Linux,
- MacOS / iOS,
- Android,
- AVR - Microchip Studio / KiCad,
- 8051 - Small Device Compiler / SDCC,
- DOS / FreeDos - Assembler / Pascal / C++.
Databases
Applications that require cooperation with database I build using:
- MySQL - popular cheap to maintain database that gives most of the necessary functionality needed to work on large collections of information.
- Oracle - for use where it is required.
System design
When designing more complex applications I use tools like:
- Visual Paradigm - UML diagrams,
- Swagger - preparing API documentations,
- MySQL WorkBench - database structure / ERD.