Software Development
Early Programming at University
Even back in my university days studying Computer Science at Politechnika Opolska, I always had a knack for the nitty-gritty. I found myself drawn to the intricacies of programming, whether it was:
- Wrestling with the low-level intricacies of Assembler (especially that old 8080!)
- Getting to grips with the object-oriented world of Java and C++
- Crafting solid bits of code in ANSI C
I found it all rather engaging. That was also when I started taking my first steps into the world of Artificial Intelligence, even building my own neural networks using good old Matlab. I even dipped my toes into the world of industrial automation with languages like SAIA and similar technologies. I always enjoyed tackling the algorithmic challenges, wrapping my head around things like O() notation and generally trying to write efficient and well-structured code.
piweczko.org Project
Moving on from the academic side of things, during my time at university, I also got stuck into a proper real-world project with my colleague, Tomasz. I was the main developer behind an entire portal for beer enthusiasts called piweczko.org. This venture actually saw significant traction within the beer-loving community, building a dedicated user base and becoming a go-to resource for many.
As the lead developer, I was responsible for delivering the entire full-stack product. This involved:
- Architecting the PHP backend
- Designing the PostgreSQL database schema
- Implementing the front-end features
This involved writing countless PostgreSQL SQL scripts to power all aspects of the site. It was a challenging experience, especially juggling it with university studies, but it provided invaluable practical experience in all stages of software development, from initial concept to a live, functioning product in the market. I truly believe that tackling such a demanding project was the best possible learning curve for becoming a well-rounded Software Engineer.
Transition to Systems Engineering
Despite the rewarding experience of building and running a full-stack product like piweczko.org, I deliberately chose to pursue opportunities in Systems Engineering for the subsequent years. This decision was driven by the exciting prospects that arose at the time, but my passion for coding never truly faded. I continued to enjoy tackling smaller coding tasks for professional purposes, finding it incredibly satisfying to automate repetitive work and build useful tools.
My scripting focus shifted towards:
- Bash and Perl, which were particularly handy in the Linux environments I was working in.
- Later on, I embraced Python for its versatility and power, using it to build scripts that streamlined daily tasks and, crucially, to construct complete CI/CD (Continuous Integration/Continuous Delivery) pipelines.
It was during this period that I first encountered Jenkins and its ecosystem of tools, which became instrumental in automating software delivery. It was also during this diverse period that I had the distinct pleasure of wrestling with the sheer elegance and intuitive nature of technologies like Lotus Script and WLST (WebLogic Scripting Tool) – experiences that truly broadened my definition of what constitutes a ‘developer-friendly’ environment.
Recent Django Development
More recently, I’ve found myself back in the delightful world of Python, and I’ve thoroughly enjoyed diving deep into the fabulous Django framework for building web applications. This return has been a fantastic learning curve, really solidifying my understanding of:
- The MVC (Model-View-Controller) architectural pattern
- How all the elements of a professional web application knit together
- The various challenges that come with it
I’ve also embraced the evolution of web design, getting to grips with modern technologies like Bulma, Bootstrap, Tailwind CSS, and the rather clever HTMX. I’ve put these skills to good use by building a number of web applications, some for my own personal projects and others as bespoke solutions for clients. While NDAs prevent me from going into too much detail about the professional ones, I can certainly highlight some of my personal creations:
- Beryl: A personal collectibles manager for things like books and vinyl records.
- Jaspis: A LEGO investment app designed to track assets, monitor prices, and integrate with selling platforms.
- Amber: An aspiring framework intended to simplify the creation of mailing list systems and landing pages for newcomers.
- Velowerk: A customer portal in development for bike shops, aiming to connect bike owners with local workshops.
Looking ahead, I’m committed to continuous growth, always eager to learn new technologies, and to further advance my skills in the ones I already know and love. The ongoing story of my development journey, including more details on projects like Velowerk, will continue in my Dev Journal.