Resume
Website logo

Hey there!

I am Norbert Csörgő

myself

Intro

🚀 Welcome to my digital space! 🚀

Greetings! 🖐️ I'm Norbert, a passionate mobile developer with a knack for crafting seamless, user-centric experiences. Navigating the dynamic world of app development, I've honed my skills across a spectrum of technologies and methodologies. Quite a ChatGPT answer, huh?

Joke aside, my expertise spans the Flutter framework, where I've delved into the depths of state management, robust architectures, and intuitive app design, while creating efficient and maintainable code. I also ventured greatly into the native world of Android and iOS, exploring the various differences between the frameworks, focusing on their respective best practices and applying them throughout my codes.

Beyond mobile development, I prefer to utilize Rive, an animation tool to bring ANY idea to life, and also various frontend technologies and tools, such as NextJS for intricate and scalable websites and Webflow for the rapid and low- to no-code projects.

Below you can read more about my expertise through the different fields. If you have any ideas, questions, comments or just want to chat, hit me up! Let's turn ideas into interactive realities! 🚀✨

EXPERTISE

flutter_logoFlutter

Flutter is an open-source software development toolkit created by Google. It is used to build natively compiled applications for mobile, web, and desktop all from a single codebase. This can significantly streamline the development process, reduce costs all while making the process a joy for us Flutter enthusiasts :) It has gained widespread adoption in the tech industry due to its versatility and efficiency. Major companies across various sectors have embraced Flutter, like Google - surprise -, Alibaba - one of the biggest B2B online markets -, Tencent - one of the highest grossing multimedia companies in the world - and BMW- significant company of the automotive industry - leading the charge in its utilization.

For my rambling on why Flutter...

Why Flutter?

Know more

Single codebase

Single codebase illustration

Deploy to iOS, Android, web and desktop simultenaously, decreasing development time and effort.

Hot reload

Hot reload illustration

See the results of code changes in real-time without restarting the entire application, making the development process faster and more efficient.

Component reusability

Component reusability illustration

In Flutter, widgets are everything, and everything is a widget 😮(at least UI-wise), create (or use the built-in) widgets for your UI element needs.

High performance

High performance illustration

Apps are compiled to native machine code, providing high performance on all platforms with a smooth user experience.

Consistent UI

Consistent UI illustration

You can control every pixel (literally) for the end-look you desire, aligning perfectly with your brand identity, across all platforms.

Dart

Dart illustration

A modern, object-oriented language that is easy to learn and well-suited for developing with many built-in and extendable capabilities.

Open source

Open source illustration

Flutter is continually evolving and benefiting from contributions from developers worldwide, ensuring that the framework stays up-to-date with the latest technologies.

Internationalization

Internationalization illustration

Built-in support for accessibility features and straightforward internationalization options, making it easier to create applications that are inclusive and accessible to users globally.

Community

Community illustration

Growing and active community of developers, rich ecosystem of packages and plugins, making it easier to integrate various functionalities into your Flutter app.

all resulting in...
Cost-efficient Development illustration

Cost-efficient Development

Faster Time-to-Market illustration

Faster Time-to-Market

Consistent UX illustration

Consistent UX

Personal competencies, highlighted pet projects

In the ever-evolving Flutterverse, I've become greatly immersed in the core aspects of app development, such as overall architecture, app design aspects, state management and networking. This experience has not only elevated my technical prowess but has also fostered a keen intuition for anticipating and adapting to the evolving needs of users in this dynamic digital era. Armed with this comprehensive skill set, I am able to craft groundbreaking digital experiences that transcend conventional boundaries and set new standards in the realm of app development.

architecture logoArchitecture

My strategic planning focuses on optimization for scalability and performance to enhance the app's speed while accommodating future updates seamlessly, all while ensuring a modular and maintainable codebase. My primary patterns are the Repository pattern, BLoC pattern while adhering to Clean Architecture principles. I am also accustomed to the MVC, MVP, MVVM, MVI and other less-known patterns. This approach to Flutter architecture revolves around simplicity, efficiency, and a commitment to staying current with industry trends, complemented by the tools at my disposal, resulting in the delivery of high-quality applications that meet the evolving needs of mobile development without compromising maintainability.Architecture decoration

app design logoApp design

I leverage Flutter's extensive set of widgets and UI components to craft cross-platform mobile applications that adapt to various devices and screen sizes. Given a design, I can transform complex ideas into elegant interfaces, employing the wireframes, prototypes, and mockups. One of my distinctive strengths lies in the realm of custom animations. I bring life to applications through the integration of bespoke animations that enhance interactivity and engagement, contributing to an immersive user experience. For the ultra-super-extra animations that would surpass the framework's capabilities I prefer to use Rive. (Sometimes it is even simpler to do it as well)App design decoration

state management logoState management & Dependency Injection

In my extensive experience with Flutter development, I gained proficiency in both state management and dependency injection, making them an important aspect of my expertise throughout any kind of development, even outside Flutter.State management decoration

But why are these important exactly?

Maintainability

Maintainability illustration

More maintainable codebase by promoting modularization and reducing code duplication.

Testing

Testing illustration

Easier and efficient testing process by allowing for the isolation of component.

Scalability

Scalability illustration

The foundation for scalable Flutter apps that can handle increased complexity seamlessly.

Debugging

Debugging illustration

Makes it easier to identify and rectify issues within the application.

My picks of the contemporary packages available:

(Excluding Provider from the list, considering its inherent status as the standard dependency injection option in Flutter)

Flutter BLoC

Flutter BLoC logo

A clean and organized way to handle application states, events, and transitions, enhancing code maintainability and readability.

RxDart

RxDart logo

Streamlined asynchronous programming, including managing streams of data, handling user inputs, and creating responsive and dynamic user interfaces.

Flutter MobX

Flutter MobX logo

Simple state manegement and state updates by automatically tracking dependencies and triggering updates when needed.

Riverpod

Riverpod logo

Simplicity and performance. Offers a provider-based approach to managing state and dependencies in a declarative and efficient manner.

Flutter Hooks

Flutter Hooks logo

A functional approach to widget lifecycle management, allowing developers to build reusable and composable logic for their widgets.

GetIt

GetIt logo

A simple yet powerful service locator approach to dependency injection, facilitating the retrieval of dependencies throughout the application.

networking logoNetworking

Networking is a critical factor in the success of modern applications, encompassing tasks such as implementing secure communication protocols, optimizing data transfer, and ensuring the scalability of network architectures. My knowledge involves implementing RESTful APIs, handling HTTP requests, all while optimizing for performance. This of course includes managing authentication, and handling data serialization. Additionally, I can leverage GraphQL to optimize data fetching, reducing over-fetching or under-fetching and enhancing client-server communication.Networking decoration

My approach involves caching strategies to reduce redundant network requests, minimize latency, and improve overall app performance. Techniques like pagination, and lazy loading are implemented to optimize network requests, resulting in faster response times and improved scalability.

I am adept at integrating third-party services seamlessly into Flutter applications, incorporating various APIs, SDKs, and plugins. Whether it's integrating payment gateways, social media authentication, or leveraging cloud services, I have a successful history of facilitating smooth interactions between Flutter apps and diverse third-party ecosystems.

native communication logoCommunicating with native

I can also seamlessly connect Flutter with native code using method channels and event channels. Method channels for creating a smooth bridge for two-way communication between Flutter and native modules, allowing the invocation of functionalities on both sides, and event channels for real-time data exchange, enabling efficient handling of events and updates.Communication decoration

As a lifelong learner, I am committed to staying abreast of the latest Flutter and overall mobile app development advancements, design trends, and best practicesThis dedication to continuous improvement underlines my enthusiasm for pushing the boundaries of design innovation within and outside of the Flutter ecosystem

Check out some of my pet projects:

Din app home logoDino app

Welcome to the interactive world of prehistoric board gaming! I don't know about you, but I am kind of into board games. That's why I created an application for this purpose alone. There is a specific board game with a complex score system that is hard-to adhere to, mostly due to us not remembering stuff.... aaand that's how we got here! The app keeps track of the points for us, crafted with cutting-edge technologies like flutter_mobx, flutter_hooks, rive, and lottie. Let's read some more though, yayy!

Expense tracker home logoExpense Tracker

One of my featured and most extensive projects is my personal expense tracker (because there aren't a ton of them on the market already...) that combines cutting-edge technologies to deliver a user-friendly and efficient expense management experience.

BME Animations home logoBME Animations

I had the chance to present multiple times at the Budapest University of Technology and Economics for their Flutter subject in various topics, such as integrating with Firebase but more importantly elevating the user experience with animations. Flutter's animation capabilities empower developers to create fluid and visually appealing user interfaces, making it the perfect choice for crafting immersive applications. The flexibility and ease of use offered by Flutter allow for the seamless integration of various animation widgets, enabling developers to bring their creative visions to life.

EXPERTISE

Native mobile

Opting for native development, whether for Android or iOS, offers unique advantages in certain scenarios as native apps can fully harness the strengths of each platform, ensuring a smooth user experience. As such, complementing Flutter with knowledge of native development is invaluable. Understanding native development also provides a broader understanding of app architecture, which in turn aids in troubleshooting issues, optimizing performance, and customizing app behavior.

When is native appropriate?

When is native appropriate (in my opinion)?

Hardware-dependent Functionality

Hardware-dependent Functionality illustration

Deep integration with device-specific hardware features, like specialized sensors or peripherals

Legacy code Integration

Legacy code Integration illustration

Projects involving integration with existing native codebases or libraries

Specialized Development

Specialized Development illustration

Certain specialized domains, like augmented reality (AR) or virtual reality (VR) applications

Preference

Preference illustration

Personal or team preferences, many companies still choose to remain native-only

Personal competencies, highlighted pet projects

android_logoAndroid

My expertise in Android development is primarily centered around my proficiency in Flutter. Despite being primarily a Flutter developer, I possess a deep understanding of its main languages, the Kotlin & Java duo and the Android ecosystem, particularly excelling in key areas such as seamless integration of APIs, harnessing the power of ARCore for augmented reality experiences, managing state efficiently or implementing visually appealing and interactive views. I am a big advocate of Jetpack Compose's declarative UI for building modern and responsive user interfaces.Android decoration

Gaining thorough knowledge on traditional Android architectural patterns was one of the first of my long list of musts for native Android development, as such I am confident in using them in action, be it the Model-View-Controller (MVC), the Model-View-Presenter (MVP), the Model-View-ViewModel (MVVM), the Model-View-Intent (MVI) or the not Android-specific Clean Architecture pattern.

apple_logoiOS

My iOS skills are based around my expertise with Swift, SwiftUI, and UIKit, a versatile skill set for creating robust and user-friendly applications. As with Android's Compose, I am also a big advocate of SwiftUI's declarative syntax. I have hands-on experience utilizing CoreBluetooth to establish seamless communication with third-party devices, creating applications that extend beyond the iOS ecosystem. Embracing the latest advancements in technology, I also had the chance to dive into Ultra-Wideband (UWB) technology, staying at the forefront of iOS development.Apple iOS decoration

play_store_logoapp_store_logoPlay Store & App Store publishing

I acquired thorough insight in the deployment of applications on both the Play Store and the App Store, employing tools such as Fastlane to streamline the process efficiently. I also managed in-app subscriptions with coupon systems and coordinated testing phases prior to public releases. My comprehensive understanding of the app publishing ecosystem positions me as a skilled professional capable of navigating the intricacies of mobile application deployment and optimization.

Check out some of my pet projects:

TuristApp home logoTuristApp

Are you an avid traveler or a tourist exploring new destinations? Look no further! This is your go-to guide for an enriching travel experience. Packed with innovative features and cutting-edge technologies, this app is designed to make your journey memorable.

Commsignia uwb home logoCommsignia UWB

During my previous employment at Commsignia I had the opportunity to develop an initial PoC version for an end-to-end Road Safety solution that leverages Ultra-Wideband (UWB) technology in conjunction with 3rd party devices and iPhones for triangulation and positioning. The solution was designed to enhance road safety by protecting vulnerable road users, particularly pedestrians.

EXPERTISE

Creative Toolbox

Painter decoration
THE Animation Tool

I use Rive every chance I get when I need to make an animation that would be too complex to code, because it can be done in a fraction of the time.

  • Intuitive Interface: clean, organized and easily navigatable design environment
  • Extensive Runtime Support: Web (JS), React & React Native, iOS & macOS, Android, Flutter, Windows, Unity...
  • Performance: designed specifically for real-time interactive animations, making it faster, smaller and more efficient than Lottie
  • Interactivity: forget standard animations, with Rive, you can create animations that react differently based on the user's actions, such as tapping something, hovering over something, scrolling, cursor position and even triggered programatically after e.g. an unsuccessful network operation
  • Animation Fusion: blend animations effortlessly, allowing for smooth transitions and creative combinations
Have you heard of Duolingo? Yeah, they use Rive.
Check it out
Figma logoFigma
The Design Collaboration Platform

Figma is my preferred tool for design collaboration and prototyping. As a developer, its user-friendly interface and real-time collaboration make occasional design tasks a breeze. It facilitates smooth integration between development and design workflows, allowing me to make small edits and collaborate effectively with design teams.

  • Collaboration: real-time feedback and edits
  • Cloud-Based Design: access designs from anywhere, anytime, with the power of cloud-based storage
  • Plugins Ecosystem: extend functionality with a vast array of plugins to customize your workflow
  • Vector Editing: powerful vector editing, ensuring pixel-perfect creations every time
  • Version History: navigate and revert to previous design versions, providing a safety net for experimentation and design evolution
Uizard logoUizard
An Occasional Design Ally

Although it's not my primary design tool, I've found Uizard quite handy due to its AI-powered features.

  • AI-Powered Prototyping: Uizard's standout feature is its AI-driven approach to prototyping which has been particularly useful to transform concepts into prototypes without delving deep into intricate design processes
  • Interface: navigating through Uizard's features is straightforward and efficient
  • Time Efficiency: Uizard's automation capabilities allows making quick iterations on designs without getting bogged down
Photoshop logoGimp logoImage editing
My Raster Editing Companions

Sometimes it is much more quicker to edit images myself, thus I've spent a lot of time editing images, combining, cutting, and retouching. For all that, Photoshop and GIMP are my favored tools in design.

  • Extensive Feature Set: both Photoshop and GIMP offer an extensive array of features, from advanced selection tools to powerful layer manipulation
  • Layer Management for Complex Compositions: they excel in handling complex compositions through effective layer management, a must for intricate designs that require multiple elements and adjustments
  • Experience-driven Efficiency: through lots of practice with Photoshop and GIMP, I've become more efficient using these tools, which enables me to smoothly switch between different projects
I know, I know. Reading again. STILL! For more details...
EXPERTISE

web tech logoWeb technologies

Low-code solutions

With extensive hands-on experience in low-code tools like Webflow, Memberstack, Zapier, and Airtable, I accumulated a deep understanding of their capabilities. Webflow for simple and visually appealing websites, Memberstack for easy membership management, Zapier for all kinds of automation, and Airtable for database handling.

For my views on low-code

Swift deployment

Swift deployment illustration

Rapid development and deployment on low to no-code platforms equals faster time-to-market

Cost efficiency

Cost efficiency illustration

Reduced need for developer involvement, lowering overall costs

Independence

Independence illustration

Manage and update the websites independently through the tools' interfaces, minimizing the need for ongoing IT support

these are great but......they introduce certain disadvantages

Limited customization

Limited customization illustration

These tools may impose constraints on some features

Suboptimal performance

Suboptimal performance illustration

They may not deliver the same level of performance optimization as custom-coded solutions

Scalability issues

Scalability issues illustration

As time passes, requirements might outgrow the platforms' capabilities

Security

Security illustration

Vulnerabilities may arise due to the shared infrastructure and limited control over the underlying code

Cost over time

Cost over time illustration

While cost-efficient for simpler projects, complex websites might incur unforeseen expenses, potentially negating initial savings

For intricate projects

In contrast to the simplicity offered by low-code solutions, traditional web development involves utilizing a stack of technologies and frameworks to build highly customized, feature-rich, and performant websites. For this approach - often preferred by experienced developers and teams handling complex projects - I tend to leverage the power of Next.js, Vue.js, React, TypeScript, CSS, HTML, and JavaScript.

dynamic build logoBuilding Dynamic Web Applications

In my journey with web development, I've found React to be an invaluable ally. Creating interactive user interfaces is truly a breeze with the modular approach of React. When it comes to server-rendered applications with improved performance and SEO, my number one option has been Next.js. Its features, such as automatic code splitting, prefetching, and serverless functions for backend logic, simplified the development process. Dynamic routing and data fetching further optimized the experience, and I found myself drawn to the efficiency it offered.Website decoration

I also had the chance to dive into Vue.js a couple of times and found it quite appealing and easy to pick up after my previous experiences.

experience logoEnhancing User and Developer Experience

In my projects, TypeScript has been a game-changer. Adding static typing to JavaScript enhances code readability and maintainability through the use of interfaces, types, and generics. Making cool-looking designs with CSS is also an adventure, be it Bootstrap or Tailwind, I've mastered bringing designs to life. Even though it is almost just plain unnecessary to talk about HTML, as extensive knowledge on the matter should be and is a must for web development, I am proficient in structuring web pages well, making them accessible and SEO-friendly, especially with semantic tags.Experience decoration

How I like to choose

How I like to choose

Points for low-code

Time to market

Time to market illustration

When speed is paramount, and a quick launch of a simple to moderately complex website is the top priority

Limited resources

Limited resources illustration

When lack a dedicated development team or have budget constraints, low to no-code platforms reduce dependence on specialized skills

Agile mindset

Agile mindset illustration

When you can adapt to constraints working with these tools, as certain design / functionality limitations may arise only when the site is already being built

Advantages of developer projects

Complex functionalities

Complex functionalities illustration

When your project demands highly customized or intricate functionalities

Scalability

Scalability illustration

When your business anticipates significant growth and scalability is a critical factor

Full control

Full control illustration

When you need complete control over the codebase for security reasons, compliance, or to implement specific optimizations

Unique design

Unique design illustration

When you have unique design elements or unconventional user experiences

Mission-Critical Apps

Mission-Critical Apps illustration

When performance, reliability, and security are must-haves

EXPERTISE

Other noteworthy tools from my chest

Wrench decorationWrench decoration 2
VSCode logoVS Code
A Practical Choice for Flutter & Next.js Development

When it comes to coding, I stick with Visual Studio Code. It's lightweight, straightforward, and just gets things done.

  • Clean Interface: VS Code keeps it simple so one can focus on the important stuff
  • Extensions: various extensions to enhance the developer experience
  • Git Integration: version control made easy, integrated into the editor
  • Broad language support: multi-language projects-all under one roof
Git logoGit
Should I even mention it?

I've used Git with GitHub, GitLab, and Bitbucket. Git is the go-to for teamwork in software development, it has become such a standard tool that even this amount of description seems unnecessary.

  • Branching and Merging: manage parallel development with Git's branching and merging capabilities, contributing to projects without the risk of conflicting changes
  • History Tracking: track project history with a detailed timeline of changes, contributors, and the evolution of the codebase
  • Collaboration and Code Review: effective collaboration by allowing developers to propose changes, comment on code, and conduct thorough code reviews
Firebase logoFirebase
Empowering Modern App Development

Firebase stands at the forefront of modern app development, offering a comprehensive suite of tools and services that streamline the development process and enhance the functionality of applications.

  • Numerous services: Firebase offers a great number of services readily available, such as a Real-time Database, Authentication, Cloud Functions, Firestore, Messaging, Hosting...
  • Scalability: built to scalability, adopting to the growth of your applications
  • Integration: easy-to-integrate into various platforms and frameworks with its own plugins
  • Pricing: transparent and flexible pricing model, accommodating projects of all sizes allowing cost control and optimization
RevenueCat logoRevenueCat
Cheatcode for Monetization

RevenueCat simplifies app monetization with multiple SDKs ready-to-use. Boosting your revenue has never been so effortless. Promise! Manage in-app purchases and subscriptions, monitor trends with visualized data charts all without any upfront payment.

  • Cross-Platform Compatibility: Swift, Kotlin, Flutter, and React Native SDKs for integration across platforms
  • Comprehensive Support: guides and up-to-date information on various aspects of the related market areas
  • Work Offload: adhere to the latest technical requirements, without requiring extensive development on your part
DeepL logoDeepL
Linguistic Precision with DeepL

In the realm of language translation and processing, DeepL is my go-to tool, simplifying complex language tasks effortlessly.

  • Cutting-Edge Translation: accurate and contextually rich translations
  • Language Coverage: a wide array of languages available, making it an ideal choice for projects requiring diverse linguistic expertise
  • Integration: easy-to-use API for integrating, offering a smooth and efficient workflow
OpenAI logoOpenAI
Unlocking Intelligent Solutions with OpenAI APIs

For groundbreaking AI capabilities, OpenAI APIs are my preferred choice.

  • Versatility: OpenAI APIs offer diverse applications, from language processing to image generation
  • State-of-the-Art Models: access to the latest language and vision models
  • Innovative Solutions: tools to create intelligent, forward-thinking applications
Google Maps logoOpenStreetMap logoGoogle Maps & OpenStreetMap
Navigating the World with Precision

I've successfully implemented navigation and mapping with the power of either Google Maps or OpenStreetMap in various projects incorporating features like custom markers, geolocation, and dynamic route planning.

  • Extensive Coverage: benefit from the extensive mapping data provided by both platforms
  • Flexibility: tailor your mapping experience by leveraging the user-friendly interface of Google Maps and the open-source nature of OpenStreetMap
  • AR Navigation: visualize directions in real-time through your device's camera, enhancing your understanding of the surroundings
Agora.IO logoAgora.io
Agora.IO: Simplifying Real-time Communication

I choose Agora.IO for efficient real-time communication features, including audio, video, and messaging functionalities.

  • Efficient Communication: offering a hassle-free experience for both developers and end-users
  • Scalable Infrastructure: infrastructure designed for scalability, ensuring optimal performance accommodating to varying user loads
AR logoAR
Unlocking Augmented Reality Potential

I utilize versatile tools for AR projects like Unity, ARCore on Android or ARKit on iOS, ensuring a broad spectrum of engaging and tailored experiences.

  • Immersive Experiences: immerse users in captivating augmented realities, offering an interactive and engaging experience
  • Innovation: unleash your creativity and innovation without constraints, exploring the limitless possibilities of augmented reality
UWB logoConnectivity
Exploring Connectivity Advancements

In the realm of connectivity, Bluetooth (BT), Bluetooth Low Energy (BLE) and Ultra-Wideband (UWB) have emerged as indispensable technologies, each bringing its own set of capabilities to the table.

  • High Precision UWB: achieve accuracy in location-based interactions
  • Third-Party Device Integration: incorporate various 3rd party devices into your projects
  • Future of Connectivity: as technology evolves, these integrations pave the way for innovative solutions and richer user experiences in the wireless world
I know, I know. Reading again. STILL! For more details...

Get in touch

Contact decoration
Dive deeper, they said. Now you're in the Mariana Trench of scrolling. Great for you. I guess.
Privacy PolicyGeneral Terms and Conditions
Contact: poja@ewfmbookasdyx.da&linkedin logo

© 2024 Norbert Csörgő. All rights reserved. Designed and developed with ❤️