Ing. Jan Skála


Software • Developer • Web • Cloud • DevOps • Security • Consulting

Portfolio


About


I started programming when I was at elementary school. It was more like block programming, a software called Baltík. I learned some basics: conditions, loops, coordinates, algorithms and stuff like that. Then I switched to C# and started doing desktop apps. When I started working in TheNetw.org I discovered a framework DotVVM. Through that I started experimenting with web apps. It really helped me to get around basics of web development without taking deep dives into JavaScript, which I did later anyway. Today I focus on creating web API's or other backend services. I enjoy working with Azure and building cloud solutions, taking advantage of serverless solutions like Logic Apps or Azure Functions.

I am not just a tech guy. I also have passion for music. I play the piano in a band called JGDIX. I like jazz, swing and boogie-woogie. I love jam sessions and improvising. I have played since my early childhood. I didn't know how to read back then, yet still I managed to play somehow. Maybe I just didn't hear my mistakes, I was three years old so maybe that's the case.

Contact Me


Electron Master


This app was originally just another school project. I only wanted to fulfill subject requirements. But while coding this I realized other students could use it as well. The app is supposed to compute electron configuration for each element. In atomic physics and quantum chemistry, the electron configuration is the distribution of electrons of an atom or molecule (or other physical structure) in atomic or molecular orbitals. Pretty simple task, but one can get bored after a while, so I made this tool for everyone who needs it.

I was happy when I heard that other people from the school use it too. Either to check their homework or just for practicing. Later I added an integration with Wolfram. So now you can even get some basic info about the element.

Close Project GitHub Download Now

Drivers Backup


Drivers Backup allows you to save your drivers locally. It was created in order to help Windows users during re-installation process. Or if you want to transfer one driver from your device to another. It can be used on Windows 7 or higher on any PC or Windows tablet.

Close Project GitHub Download Now

TALXIS Integrations Platform


While I was working for NETWORG I was tasked to create an integration infrastructure for small business companies. TALXIS Integrations Platform Provides (not only) Logic Apps connectors with reasonable APIs and triggers for legacy or badly managed apps and secures them with modern security standards.

Flow Monitor

Part of the Microsoft Power Platform is a product called Power Automate (previously called Microsoft Flow). In NETWORG we were used to deploy Power Automate Flows as part of solution definitions along with other functionality. Unfortunately there was no central monitoring tool which would allow us to monitor multiple flows at once. And so, I was tasked to create one. I used the non-public Microsoft API, I reverse-engineered it's functionality using browser developer tools. After a short time I created a first version, which easily downloaded status of all flows from a given tenant and environment and reported it into Azure Log Analytics. From there it was very easy to setup automatic alerts, gather and further analyze data.

Data Feed

Data Feed is one of the key connectors for TALXIS Integrations Platform and one of connectors I created. It provides aggregated set of functionalities for company data: subject identification, full-text search, company logo lookup and address normalization. All those integrated services are exposed as a common data model.

Close Project Show

Chemiklání


My friend Jan Hrubeš studies chemistry at University of Pardubice. He organizes a competition called Chemiklání, which is a team competition for students who are interested in chemistry. He and other organizers were struggling with having no information system suiting their needs. They used Microsoft Excel with set of macros in order to achieve some basic functionalities like managing teams, tasks and score for each team.

Problem is that with growing number of participants, this system became very confusing and a single typo could have huge negative consequences latter. Thus, we came with an idea of creating an Information system, capable of managing teams, tasks and easy to use form for editing results. Now the users can filter data they need to display. The system also warns them if they edit some data, someone else is or was editing before.

I didn’t have much time to develop this solution so I was looking for a framework that would help me build a proof of concept in a short time. Back then I was working at Riganti. Among other things they develop their own framework DotVVM, which is very easy to use especially if you came from technologies like Web Forms, Desktop or mobile apps, which I definitely did.

Close Project GitHub

RTD - Car Racing Game


I worked on this with three other people. Michal Filo, Daniel Hanák and Vít Neckář. It was my first experience with game development. We had to use Unity, but it was up to us which scripting language. We used C#, because I already had some knowledge of that, and others were experienced in Java.

We all enjoyed the development. I always wanted to try game development, but never had the courage or skills. My role in a team was to develop in game mechanics: car physics, projectiles, Tower AI, shields, targeting and stuff like that.

Later I helped Michal with multiplayer. Unity tools for multiplayer are not really optimized. We decided to take advantage of RPC and make partial computations on client side as well, not just on the server.

Close Project GitHub

AI for Reversi board game


This one was really fun to do. Another school project, college this time. The task was to implement an AI that beat other AIs in Reversi board game tournament. All participants were also students, my classmates. It was challenging to invent something new. Everyone was implementing some kind of minimax algorithm. We had 1 second for computation for each move.

I decided that I will improve the evaluation function. I used a matrix that represented a value of every square. So instead of just counting the captured pieces I also counted with their position. The squares near the corner were ranked with the lowest number for obvious reasons.

Close Project GitHub

EduARd - E-learning platform using augmented reality


EduARd is an E-learning platform. Teachers can create digital presentations with GPS points and quizzes for their students. The platform offers web editor for presentations and mobile apps for browsing, which work offline and bring augmented reality experience.

I successfully defended my bachelor thesis on this project. I really liked this project from the very beginning. Mostly because I have worked with my classmates, all of them are very talented and experienced developers. My role in the project is DevSecOps. I am responsible for designing the backend API, setting up CI/CD pipelines and securing the application processes. I implemented the REST API in .NET Core and documented it with Swagger.

As the project progressed and the backlog was slowly growing, I realized that we need some sort of coordination, even for such a small team. I learned some good practices in TheNetw.org. So, I started organizing issues into milestones and slowly made our project compliant with the agile manifesto for software development.

Close Project Show

Tidepool to Nightscout data integration


This tool helps syncing data from Tidepool to NightScout. Currently normal bolus, carbs, physical activity, basal schedules, bg targets, carb ratios and insulin sensitivities are supported.

What is Tidepool

Tidepool is a nonprofit organization dedicated to making diabetes data more accessible, actionable, and meaningful for people with diabetes, their care teams, and researchers. More

What is NightScout

Nightscout (CGM in the Cloud) is an open source, DIY project that allows real time access to a CGM data via personal website, smartwatch viewers, or apps and widgets available for smartphones.

Nightscout was developed by parents of children with Type 1 Diabetes and has continued to be developed, maintained, and supported by volunteers. More

Close Project GitHub

University Self Service Library


This project’s goal was to create an information system allowing management of libraries provided by university departments. Besides core functionality the system also provides self-service features. The output are 4 applications:

Web application displaying data and authenticating users using existing CTU credentials.
Desktop application (kiosk) showing the web app in an embedded browser and integrating with connected hardware: (NFC Reader, QR Code scanner).
REST API service communicating with kiosk.
And finally, Background Service reminding users to return publications they borrowed.

I successfully defended my master's thesis with this project. The core parts are written in C# and I used MongoDB as a database. The Web application is a server-side Blazor app, I also used Blazorise for creating a smooth front-end experience.

Close Project GitHub

Heart Rate Detector


Measure, evaluate and share heart rate detected by a smartphone camera

Heart Rate Detector is a mobile app with the possibility to measure, evaluate and share heart pulse detected by a smartphone camera. The application allows both patient and doctor to collect recorded data over time and work with them both on a scale for the doctor taking care of the patient and in an anonymized form on a mass scale.

Other functionalities are exporting data in CSV format, viewing patients' history, or sending invitation codes to connect patients with a doctor. The application is available free of charge for users, enabling improvement and monitoring of health care without any additional cost for a patient or a hospital.


Close Project GitHub Show

Beat Savior


Beat Savior is a mobile app that helps to save lives

We built an application that notifies nearby paramedics about a resuscitation emergency. The app will tell its user where AEDs are located and will help to save more lives by bringing all the resources to the emergency spot as fast as possible.

My role in the team was to provide backend API and data for the mobile app. I created an algorithm that is responsible for steering the rescue mission. It can dynamically react to the situation and assign roles to the rescuers. The backend also provides a map with AEDs and other important information.


Close Project GitHub