Fran Hrženjak
Verified Expert in Engineering
Full-stack Web Developer
Zagreb, Croatia
Toptal member since December 10, 2013
Fran is a full-stack web developer who also occasionally develops for Linux command line, mobile and desktop apps, and hardware devices on the Arduino platform. He enjoys working with the Django web framework and Python in general. He is proficient in PHP and has substantial experience working with WordPress and Magento.
Portfolio
Experience
- Django - 12 years
- Python - 12 years
- Django REST Framework - 10 years
- Git - 10 years
- REST APIs - 10 years
- Test-driven Development (TDD) - 7 years
- GitHub Actions - 3 years
- Dash - 2 years
Availability
Preferred Environment
GitFlow, GitHub, Linux, MacOS
The most amazing...
...software I've written is code for controlling a 24 ton telescope with high precision. In 2018 the telescope was ranked third worldwide in its niche.
Work Experience
Solutions Architect
Croatian Air Traffic Control
- Created a cross-platform application from scratch for iPadOS and Windows. The app also works as a web app.
- Made extensive use of the Django admin with some special features developed to make the configuration easier where standard browser inputs would be awkward to use.
- Contributed to a clever multiplatform setup schema from the browser, presenting different options depending on the detected OS and device (Setup.exe for Windows, PWA for iPadOS, web app otherwise).
- Worked on sound effects for time-sensitive events in the application (received messages with timed expiration).
Senior Django Developer via Toptal
Consumers Unified, LLC
- Participated in breaking up a monolith codebase into manageable microservices and worked on further development of the product within the microservice approach.
- Developed the back end and influenced the front end of an interesting wizard-style questionnaire for gathering visitors' needs and recommending a suitable partner.
- Tracked bugs and maintained a production site in working order using a mix of internal and commercial tools and services.
Tech Lead
Astro.hr
- Architected and led the development of computerizing a 24-ton telescope using many different technologies.
- Developed low-level command-line control software and APIs in Python.
- Led the development of several device drivers for Windows in C#.NET, utilizing the previously developed APIs.
- Constructed and assembled multiple auxiliary hardware devices for the telescope (e.g., wireless controller for dome doors, focuser, ventilator controller, lights controller, etc.) using Arduino platform and Eagle PCB design software.
- Updated a Linux device driver written in C for position encoders to work on a newer Linux kernel.
- Architected and led the ongoing development of a search and retrieval system using PostgreSQL, Django, and Bash. This system facilitates the precovery of asteroids by searching through previously made images of the sky.
Freelance Developer
Changeset.hr
- Consulted clients, chose technologies, and established project tech details.
- Created efficient HTML/CSS/JavaScript front ends from PSD files.
- Explored the various aspects of WooCommerce, created a payment gateway module, and developed various customizations for several projects.
- Created a plugin to allow WordPress admins to order users with a drag-and-drop feature.
- Created a full-layout template system operating on top of Visual Composer in WordPress.
- Mastered Debian/Linux services and created two custom hardware-interfacing services for position encoders readout.
- Created a number of WordPress sites with various designs and features, ranging from simple corporate blogs to eCommerce sites with complex layouts and custom data structures.
Co-founder
Backre.st
- Created a site for back-end services to allow users to create REST APIs using a web interface.
- Became very knowledgeable about REST and gained experience building complex RESTful APIs.
- Used MongoDB and PostgreSQL together for a Django project.
- Studied the challenges of authenticating secondary API users.
- Created a custom server-side JavaScript validation system for user-input data.
Senior Developer
Kolektiva Web
- Developed sites and modules for several sites powered by Magento professional edition sharing the same codebase.
- Fixed bugs specific to the cloud setup, such as mysteriously missing orders, inventory oversells, etc.
- Migrated large databases, several gigabytes in size, with sensitive data.
- Worked with various business-enhancement APIs, including affiliate services, smart newsletter services, visitor behavior tracking, etc.
- Set up Jenkins and Mercurial for continuous code integration in a scrum development team.
Developer and Tech Lead
Hi-Tech
- Developed many different projects using PHP, mostly with WordPress.
- Created several Facebook apps with Django and Fandjango apps.
- Developed front-end skills thanks to my colleagues' help. Built front-end and back-end projects.
- Took care of the company's product quality level for both the back end and front end.
- Led the development team, worked with the sales department, and offered support during client meetings.
- Translated the wishes of the clients into needs and made technology decisions accordingly.
- Tried several PHP frameworks, CMSs, and shops, including eZ Publish, CodeIgniter, Template Tamer, PrestaShop, and more.
Experience
Astronomical Observatory in Tican
https://en.astro.hr/This is an ongoing multi-year effort, and a combination of professional and volunteering work.
The telescope has started working full-time in 2017, and in 2018 it has been ranked third worldwide by the number of confirmation and follow-up measurements of all newly discovered asteroids.
Air Traffic Controller Training System
Before this project, the candidates and instructors who set up and run the games communicated using ad-hoc solutions such as WhatsApp or Viber or sometimes physically walking up to each other to communicate changes in the game. This was very inefficient and often ruined the element of surprise that the instructors were trying to create for candidates.
To facilitate better communication between candidates and instructors, the client envisioned a centralized system to which every pilot would connect using their PC, and every instructor would connect via a custom mobile app.
My job was to take the client's specifications and talk with the client to understand their problem fully. After this, I put together all the technologies and techniques that will be needed for the project, i.e., I architected the solution. Finally, I integrated a design and implemented the system.
Django Source Code Contributions
https://github.com/django/django/pull/11504I am proud of the achievement, and hope to contribute again in the future.
Original bug report: #15910
I worked from a newer report, but same bug: #29087
Danish State Visits and Urban Danish Solutions
https://www.urbandanish.solutions/Each site features:
• Public section, with content and structure fully editable via CMS
• Registration and logistical information for participating company representatives
• Elaborate administration interface that aids the organizer team
There are three sites thus far:
https://hr2014.urbandanish.solutions/ (previously https://danishstatevisit.hr/)
https://danishstatevisit.dk/indonesia2015/
https://danishroyalvisit.dk/italy2018/
Developed in Django/Python. The front end was outsourced and is based on Bootstrap.
As of 2019, the project is still public and has been forked/pivoted to another type of events (organized by Danish Embassy in Zagreb). These events are more focused on a single industry at the time, e.g:
https://www.urbandanish.solutions/smartcities2017/
https://www.urbandanish.solutions/smartislands2018/
https://www.urbandanish.solutions/watercroatia2019/
Screenshot are available here: http://changeset.hr/portfolio/danishstatevisit-hr
Front Page Slider for McDonands.hr
Google Maps in Django Admin
BuraZnanja (gust of knowledge)
Bellaloopa
Real-time Device Management System
Several key features include:
• Implementation of a dummy PLC reader module designed for testing purposes.
• Utilization of Celery for background tasks
• Incorporation of a graphical representation illustrating the uptime and downtime of each device
• Provision of a feature to download the graph mentioned above as a PDF generated on the server side
• Full containerization of the project through Docker Compose, facilitating swift local deployment
I can provide a concise file containing PLC reader classes upon request. This file illustrates class inheritance, type annotations, and commenting. The class in use, whether FakeReader or PLCReader, is determined by the project settings file, where it is configured as a string value for dynamic import. This approach resembles how Django configures middlewares and other dynamically loaded elements.
Skills
Libraries/APIs
jQuery, Facebook API, Arduino RTC, Django ORM, Django-reversion, Django-taggit, React, Sage, REST APIs
Tools
Mercurial, Git, PyCharm, PhpStorm, Docker Compose, IntelliJ IDEA, GitHub, Adobe Photoshop, Sublime Text, Vim Text Editor, Apache, NGINX
Languages
Python, CSS, HTML, C++, Java, PHP, JavaScript, Bash, ECMAScript (ES6), Bash Script, HTML5, CSS3, C#.NET, C#, C, SQL, CoffeeScript
Frameworks
Django, Django REST Framework, Flask, Django Channels, .NET
Paradigms
Object-oriented Programming (OOP), Model View Controller (MVC), REST, Test-driven Development (TDD), Procedural Programming, Unit Testing, API Architecture, Agile Software Development
Platforms
Debian Linux, Raspberry Pi, Django CMS, MacOS, WordPress, Linux, Arduino, Raspberry Pi 3 GPIO, AWS Lambda, Amazon Web Services (AWS), WooCommerce, Magento, iOS, AWS Cloud Computing Services, Azure, Docker
Storage
SQLite, PostgreSQL, MySQL, Redis, MongoDB
Other
APIs, Dash, Websites, Back-end, Full-stack, Minimum Viable Product (MVP), Full-stack Development, Digital Electronics, Embedded Hardware, GitHub Actions, CI/CD Pipelines, PWA, API Design, Server-side JavaScript, Private Clouds, GitFlow, Electronics, PLC, Cloud Computing, Cordova, Progressive Web Applications (PWAs), SDKs, LDAP, Single Sign-on (SSO), Google Sign-in, Open Source, Architecture
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring