Podstawy programowania zacząłem zgłębiać już w dzieciństwie próbując swoich sił z prostymi programami pisanymi w zasadzie w archaicznych już językach takich jak: Basic, Pascal, a nawet Asembler. Następnie, po ukończeniu III Liceum Ogólnokształcącego w Tarnowie na profilu matematyczno-informatycznym, udałem się na Politechnikę Krakowską otrzymując stopień inżyniera, a na Politechnice Wrocławskiej stopień magistra inżyniera. Poszerzyłem dodatkowo swoje horyzonty studiując za granicą na Uniwersytecie w Las Palmas de Gran Canaria.
Niemożliwym jest opisanie w kilku zdaniach tego, czego się nauczyłem przez długie lata edukacji, ale warto wspomnieć, że na samych studiach miałem do czynienia z większością języków programowania wysokiego poziomu (Java, C#, JavaScript, PHP, Python, C++), najważniejszymi językami niskiego poziomu (C, Asembler), a we własnych projektach upodobałem sobie język PHP zarówno z użyciem frameworków (Laravel, Symfony, CakePHP) jak i bez nich. Nie mogło również zabraknąć operacji na bazach danych (MySQL, MariaDB, Oracle, SQLite) – faktycznie prawie każda skonstruowana przeze mnie aplikacja korzystała z nich w większy lub mniejszy sposób. Co więcej: nie ograniczyłem się tylko do jednego typu aplikacji, a można by wręcz powiedzieć, że zdobyłem wiedzę i doświadczenie praktycznie z każdym ważniejszym rodzajem oprogramowania, np. tworzeniem aplikacji mobilnych (staż w firmie Comarch), strumieniowaniem multimediów przez Internet przy użyciu narzędzi JavaScriptu (praca inżynierska), sztuczną inteligencją i przetwarzaniem języka naturalnego (praca magisterska), programowaniem niskopoziomowym (większa część studiów I stopnia) czy praktycznymi zagadnieniami związanymi z prowadzeniem i rozwijaniem projektów informatycznych (własne projekty).
W swojej firmie zdecydowałem się postawić na najwyższą jakość, opierając się na zasadach SOLID, KISS oraz wielu innych dobrych praktykach, które są (albo raczej powinny być) powszechne wśród programistów. Dla mnie kod, który nie posiada odpowiednich testów jednostkowych jest niedokończony. Kod, którego klasy posiadają więcej niż jedną odpowiedzialność jest niedokończony lub źle zaprojektowany. Aplikacja, która działa kiepsko mimo perfekcyjnego kodu jest do poprawy. Dzięki wspomnianym wyżej zasadom mogę zaoferować Klientom aplikacje, które będą działały niezawodnie przez cały okres eksploatacji i nie będzie z nimi żadnego problemu.