Hello, I'm Peter Basár, a student of robotics in Prague with one semester to go.

I enjoy building software applications and currently mastering web development.

Skills and Experience

What I've done

  • Designed database and front-end (mobile and desktop) for an e-commerce site as a preparation for bachelor thesis.
  • Implemented communication protocol on top of unreliable UDP (User Datagram Protocol) for reliable data transfer with Python
  • Created and launched a web application liveqna.me on Heroku which took me over a month. It was a learning project through which I learned Django development.
  • Bought a domain, hosting, launched and designed this portfolio site
  • Responsive (but static) ecommerce website prototype

What I would like to learn

  • Learn React
  • Learn effective database management
  • Develop multiplatform application
  • Buy own server and experiment

More on Web Development

Web development was one of the first areas I have been trying out when starting out with programming but I've never cross the border of making static pages until 2021 When I started developing dynamic websites with Django.
My view has changed bit and after trying out several other areas which encompass robotics and I've come to the conclussion that backend development with some involvement in frontend is what I enjoy doing. I find direct and fast development of software for people to use very satisfying. I also enjoy having option to optimize for different things besides entertainment when confronting game development. This doens't mean that I will forego of everything I learned in other areas but rather I will use that experience to better tackle future problems of different shapes and forms in various industries.

What I've done

  • Learned basics of Unity and tried to program FPS, cooperative game as my first project. I mean, functionality was quite good already but more on that here ... I know ¯\_(ツ)_/¯. I dopped that project and continued to make mobile atmospheric adventure game Unlightend which can be downloaded on Android here. Goal of this project was not to attract and succeed on the competitive market of mobile games but to test the workflow of making a playable game and to most importantly finish it.
    I learnt a lot from this experience and my admiration goes to game developers who are working on massive projects. Game development can get really crazy.
  • Programmed Worms game clone in C from scratch for a school assignment.

What I would like to learn

  • AR/VR development
  • Realtime multiplayer networking

More on Unity

Reason why I decided to make a game was that I wanted to know more about the process of making a game and best way to learn it is by making one. I chose Unity engine because it was considered to be more beginner friendly as well as it had a lot of educational content and active community. I must say it it did not disappoint.
I knew zero about making a game, working with 3D environments and scripting behavior for different objects. Beginnings were really hard. But I learned the basics first and then followed a short tutorial about making a basic game by Brackeys. And then I started making my own game. I wanted to make something basic but it's hard to estimate the difficulty of something you have absolutely no experience with.
My plan was to release cooperative FPS game on Steam platform. When I was younger I used to play browser game Boxhead with my friends and thought that 3D version of similar game would be amazing.
More talk about the development and the experience. Long story short, my estimations were a bit off and the only way for me to release any game in under a month was to start from the beginning. Now with the little experience I had I was able to set achievable goals for the next game. Next game was supposed to be a mobile adventure game with various levels, slightly scary environment and zombies. Again, details can be found here.
In the end I managed to finish the game just in time and release it on Android couple hours before I went to college.
Game development can be harsh and is very competitive area to be in. I literally did nothing for a month but worked on the game. But game development can be also very rewarding and satisfying. In the end you are the creator of worlds unimaginable and impossible to reach in our life. Life is in my opinion very limiting experience. There are no superpowers to be found. For now, you cannot visit other worlds, you cannot live other stories but your own. I consider technology to be the spice for this life and although today with technology lots of these 'superpowers' can be replicated in some form it's lots of times on the edge of danger, hard to get or unreachable to most. And so I find simulated worlds undistinguishable from reality an interesting possibility.

What I've done

What I would like to learn

  • Improve my design and sketching skills
  • To use graphical tablets other than taking a picture of my sketches
  • Generative design

More on 3D Printing and Design

I started with 3D design at the same time I started getting interested in 3D printing. My motivation behind 3D printing and 3D deisgn was and is that it gives you incredible power to create and iterate on models and possible products. It's good to see something you designed on your own, to materialize your thoughts.
And so I bought a 3D printer and spent my summer tinkering with it.
I'm not giving 3D design/ 3D printing as much priority as I used to but I like to freshen up my skills from time to time.
I'm confident that I can create functional and estethically pleasing prototypes. I think that making a beautiful product is part of success.

I can quickly iterate on prototypes and in 2019 I worked on project under Elysium spa project whose purpose is to create intelligent wellness centrum with no humans as workers. Besides programming microcontrollers one of my responsibility was to create IoT demonstration devices or other designs like these. It was a successful and an amazing internship. I learned a lot about others, responsibility and myself.

What I've done

  • Implemented communication protocol on top of unreliable UDP (User Datagram Protocol) for reliable data transfer with Python
  • Developed object detection and recognition for robotic pick and place task robotic pick and place task.
  • Created and launched a web application liveqna.me on Heroku which took me over a month. It was a learning project through which I learned Django development.
  • Worked on a reinforcement learning university project in summer 2020.
  • Implemented license plate detection and recognition for a startup Parknito.
  • Completed college course on datastructures and algorithms with Python.
  • Completed coursera course on PyTorch (Coursera Deep Learning with Python and PyTorch code: DL0110EN).
  • ,Modeled and trained convolutional neural network which drives a car using imitation learning in PyTorch. Unity provided me with a simulator, communication with the car and camera capture.
  • Programmed functional/clickable chess board with rules from scratch using OOP.
  • Programmed flying cars traffic simulation using OpenCV for college course (academic writing).
  • Programmed basic deep neural network from scratch back in 2018. Using OpenCV I made real time digit recognition.
  • Played with OpenCV library and initialized communication between motor controller and face detection for a robot Proto. which follows faces and listens to commands back in 2017 *unfortunately not throughoutly documented*.
  • Trained several convolutional neural networks in TensorFlow (gender recognition, hand detection, emotion recognition). This work consisted mostly of gathering the data from internet: by hand with google and from kaggle datasets. Trained using cloud GPUs on Paperspace.

What I would like to learn

  • Learn more about localization techniques, vision, path planning using machine learning and conventional algorithms.
  • Learn other parts of machine learning like language processing, public data processing, LTSMs, RNNs and 3D reconstruction.
  • Have some experience with autonomous drones, cars and other robots

More on Python

Python is my favorite programming language and was my first one. I've been using it since 2016.
Before I started programming I really didn't have any idea about what programming really is and the power behind it, which is a shame. But I was lucky enought to pick it up in the end. I am thankful to one person that introduced me to programming. He showed me basic calculator in Pascal and explained me core concepts. Things started making some sense and here I am now.
Howerver, I have a memory of one class at primary school when our teacher introduced us to Logo programming, which is about programming movements of a turtle with a pen across the screen. I thought it was funny, quickly got the grasp of it and started playing on my own.
But it was just one class and I didn't really thought about it after that. I had no idea how that 'thing' was connected to programming.

Before programming, I was interested in Physics. Read couple of books, biographies, watched a lot of shows on the topic and fantasized about becoming a scientist. I thought that there was nothing more fascinating than getting to know the laws of nature and using that knowledge to advance humanity. This was at the time of late primary school days. But I went to Physics summer camp in 2016 and figured out that theoretical physics wasn't really my cup of coffee. There I met said friend who introduced me to programming.

What I've done

  • Completed college course on C programming (with basics of C++) including memory allocations, debugging leaks using valgrind a creating multithreading programs which communicated with Nucleo development board and other programs using named pipes in Linux environment.
  • Programmed Worms game clone in C from scratch for a school assignment.
  • Implemented multithreaded application which computes Julia set on PC and on development board, which communicates with the PC to show the results of the computation.
  • Attended two summer coding camps in 2017 and 2018. Organized by Trojsten, where I was programming using C++ (programmed data structures, sorting, path finding algorithms...).
  • Programmed MiniMax algorithm in C++ and applied it to TicTacToe game which you can download a play. Github link.

What I would like to learn

  • Have some experience with autonomous drones, cars and other robots.

More on C/C++

C++ was my second programming language. I started learning Python on my own but didn't really crossed the basic syntax.
Couple of my friends at high-school heard that I started programming and invited me to their private C++ programming club. They gave me some guidance, learning materials in form of an interactive progress map which had some problem to be solved after each new topic you learned and answered my questions. They also invited me to summer coding camp not so long after that.
It was at that summer camp, where I made my biggest leaps in programming. It wasn't just basic syntax and problems anymore. I learned an enormous amount about various algorithms from sorting algorithms all the way to path-finding. In couple of weeks of intense learning I surpassed my high-school peers.

I can still remember the first time I leaned about the concept of a node in path-finding algorithm. After I run that algorithm and watched it solve a maze I was blown away! Just a couple of months ago I didn't really have any concept of programming and right know I can program something that solves a maze? I really thought I can move the Earth at that time. Those are the rare moments in life when you really surprise yourself. It was a turning point for me. There's no going back after that. I became more confident and wanted to learn new things.

Some time later I started thinking about other things I didn't really understand and could be very useful. I started learning about Arduino. Got learning kit for Christmas. And I've got to say that first blinking LED was another shocking moment. But that's another story.
After that I went to another summer coding camp, made few projects, continued learning Python, made other projects which can be seen bellow.
At university I completed course on C programming. A more low-level look into programming. Memory allocation, debugging leaks, multithread applications , named pipes...

What I've done

  • I was an intern at Instarea under Elysium spa , where I worked with ESP-32, ESP-32-CAM, fingerprint scanners, RFID scanners, ESP8266 boards.
  • Learned to use MQTT protocol with Raspberry Pi and ESP8266/ESP-32 boards.
  • USB plug & play racing wheel implemented with accelerometer and microcontroller STM32F103C8T6
  • Sun following solar panel with Arduino Nano.
  • Control solution for multiple solar panel pack with Arduino Uno.
  • Robot with 2 axis and a mounted camera. Controlled using Arduino Uno and USB. (old project, not sufficiently documented)
  • Some basic work with Mbed Os and Nucleo development board for university course. Multithreaded application written in C which communicates through the serial port with the board
  • A pinch of programming experience with assembler, specifically with mips architecture

What I would like to learn

  • Robotic actuators
  • To be able to implement flight control system on a drone

More on Development Boards and IoT

My experience with development boards and more hardware oriented development began with my first Arduino kit during Christmas in 2016. I knew almost nothing about the ways technology interacts with the world physically and it was an eye-opening experience.
I mean, high level developing with Arduino using prepared libraries is nothing to brag about. I didn't understand what exactly I was doing on the hardware, but it was enough to be able to make use of various sensors and to complete some basic projects. Some of the projects I made with Arduino include talking "robot" with 2 axis, sun tracking solar panel, controller for sun tracking solar panels.
I was also an intern at Instarea and worked under Elysium spa project where one of my roles was to develop and test various devices which could be used for biometric authentication. I was working with boards like ESP8266, ESP32, ESP32-CAM, RFID modules and fingerprint scanners. My job was not only to develop these devices, make sure they communicate with the server through MQTT protocol but also to design and 3D print some possible cases like this one or these.
However, to be able to debug/troubleshoot hardware on your own or to some level understand the hardware you have to start from the bottom. Studying robotics gives me this opportunity and a way to understand and to look at a problem from different angles connecting hardware, physics and computer science.

Projects with articles

Other Projects