I am Curtly Critchlow

Flutter Developer

About me


A Passionate Problem Solver

I'm Curtly, a driven Flutter Developer with a passion for crafting elegant, efficient, and future-proof solutions. My dedication to continuous learning and a "do it once, do it right" approach drives me to find the best possible solutions for every challenge.

My software development journey began with a real-world problem: managing a mountain of data in a previous role. I tackled that challenge head-on, automating processes and building solutions that transformed how my team worked. You can read about this experience in my now archived DataQuest article, “Not Enough Memory” — How Data Skills Ended an Excel Nightmare .

Beyond coding, I'm a lifelong learner who enjoys exploring diverse fields like history, science, economics, and more. This curiosity fuels my approach to software development, allowing me to bring a unique perspective and creative problem-solving skills to every project.

As a developer, I understand the importance of trade-offs and making informed decisions. I strive for clarity and collaboration, always eager to learn new technologies and contribute to high-performing teams.

My Personality

My Personality ratings are based on the Enneagram Personality system that aims to reveal how emotions drive our lives and how we engage with others to get what we want and need. Below is the result of my top four personality traits.

The Challenger

Sees themselves as strong and seek to stand up for what they believe in.

The Investigator

Seek understanding and knowledge, and are more comfortable with data than people.

The Perfectionist

Places a lot of emphasis on following the rules and doing things correctly.

The Achiever

Want to be successful and admired by other people, and are very conscious of their public image.

My experience

Flutter Developer

atsign Full-time

February 2022 - Present

  • Spearhead business development initiatives through targeted outreach, identifying and engaging potential clients.
  • Deliver compelling live demos showcasing the unique capabilities of the at_platform and its benefits to potential clients.
  • Architect and build innovative Flutter/Dart applications on the atPlatform, delivering impactful solutions tailored to client needs.
  • Ensure the ongoing stability and functionality of the at_gauges Flutter package, demonstrating a commitment to open-source contribution and code quality.
Safety/Security Officer

Nabi-KCL Full-time

October 2021 - April 2022

  • Developed and launched the Nabi-KCL SSHE mobile app, a solution designed to effectively monitor and enhance safety practices on-site.
  • Led and managed the security team, successfully maintaining a secure environment free of security breaches.
  • Proactively observed worker activities and provided guidance to ensure compliance with company safety policies, fostering a culture of safety and risk mitigation.
Second Lieutenant

Guyana Defence Force Reservist

September 2020 - Present

  • Developing a Reserve Talent Management System to streamline and optimize the management of reserve personnel, leveraging technology to enhance organizational efficiency.
  • Mentor and train fellow reservists in essential military activities, including skill-at-arms, fostering teamwork and skill development.
  • Actively participate in military operations and training exercises commensurate with my rank, demonstrating dedication to service and commitment to continuous improvement.
Economic & Financial Analyst | Web Developer

Ministry of Finance, Guyana Full-time

November 2019 - March 2021 1yr 5 mos

  • Collaborated as part of a multi-agency government committee to successfully implement the first Covid-19 relief program, demonstrating the ability to work effectively across organizational boundaries to deliver critical solutions.
  • Gained a deep understanding of the Office of the Budget's needs by actively engaging with end users, ensuring solutions are user-centric and address real-world challenges.
  • Developed and deployed websites tailored to the specific requirements of the Office of the Budget, leveraging technical skills to provide valuable tools and resources.
  • Continuously improved and enhanced website functionality based on user feedback and evolving departmental needs, showcasing a commitment to ongoing optimization and delivering exceptional user experiences.
Agronomist | Monitoring & Evaluation Officer | Data Analyst

Ministry of Agriculture, Guyana Full-time

November 2014 - November 2019 5yrs

  • Spearheaded the digital transformation of the Guyana Livestock Development Authority (GLDA), transitioning from paper-based records to a hybrid system incorporating electronic records via Dropbox, significantly improving data accessibility and management.
  • Analyzed GLDA's transactional data to provide actionable insights and facilitate data-driven decision-making, contributing to improved operational efficiency and strategic planning.
  • Developed and monitored key performance indicators (KPIs) for GLDA, providing a clear and measurable framework for tracking progress and identifying areas for improvement.
  • Provided data-driven consulting services to private farmers, analyzing farming data and offering tailored feedback to enhance profitability and optimize farming operations.
  • Empowered colleagues by providing technical training and guidance on MS Excel and Power BI, enabling them to perform data analysis effectively and generate insightful monthly reports.
Records Clerk

Diamond Regional Hospital, Guyana Full-time

November 2009 - March 2011 1yr 5 mos

  • Streamlined patient intake processes by ensuring all necessary documentation was complete prior to doctor consultations, minimizing delays and enhancing efficiency.
  • Implemented an organized system for patient records, facilitating quick and accurate retrieval of information, ultimately improving patient care and administrative efficiency.
  • Provided clear and empathetic guidance to patients, directing them to the appropriate departments for their healthcare needs, enhancing patient satisfaction and optimizing hospital workflow.

My Skills

Since 2017, I've been working on improving my software development skills on a need to know basis.

Flutter

Dart

Firebase

Cloud Firestore

Cloud Functions

Cloud Storage

GenAI (Gemini models)

Django

Plotly Dash

Python

HTML

CSS

There are no solutions. There are only trade-offs.

~ Thomas Sowell

My projects


Below are the major projects I have been working on.


Lokademy is an AI-powered learning platform designed to assist students preparing for the Caribbean Secondary Examination Certificate (CSEC) exams. By leveraging the capabilities of Google's Gemini models, Lokademy simulates the guidance of a dedicated teacher, providing students with personalized support and resources.

The platform offers comprehensive content aligned with the CSEC syllabus, facilitating in-depth understanding and knowledge testing. Lokademy goes beyond traditional learning tools by providing students with detailed analysis of quiz questions, enabling them to identify areas for improvement and refine their understanding.

This Flutter mobile app is currently in private development on GitHub. For more information or to request access, please feel free to contact me.

Lokademy was born from both personal and practical aspirations. Inspired by my wife's unwavering dedication as a teacher, I envisioned a platform that could replicate the invaluable support and commitment she offers her students on their journey to CSEC success.

Beyond its sentimental origins, Lokademy aims to address practical challenges in education:

  • Provide students with limited access to qualified teachers with an alternative avenue to excel in their CSEC studies.
  • Deliver personalized feedback on quizzes, addressing the common hurdle of student-to-teacher ratios that hinder individual attention.
  • Offer a resilient learning solution for students facing disruptions due to personal or national emergencies, ensuring educational continuity in challenging circumstances.

Developing Lokademy has been an incredibly rewarding experience. This project has deepened my understanding of Generative AI and its vast potential within the education space, particularly how to seamlessly integrate it into a user-friendly Flutter app.

Key technical features of the app include:

  • Comprehensive CSEC Syllabus Content for core science subjects: Biology, Chemistry, Physics, and Integrated Science.
  • An AI-powered chatbot designed to provide insightful answers to students' questions across various CSEC subjects.
  • An interactive chatbot that allows students to test their knowledge through quizzes and receive personalized feedback, enhancing their learning experience and understanding.

Lokademy is currently under active development and undergoing rigorous testing to ensure a seamless and valuable learning experience for students.

Lokademy has been one of the most engaging and enriching projects I've undertaken. Building my first AI-based app from the ground up has significantly expanded my knowledge and practical experience with AI technologies.

Key learnings from this project include:

  • Harnessing the power of cloud functions to run sophisticated AI models efficiently and effectively.
  • Mastering the art of prompt design to elicit accurate and contextually relevant responses from AI models.
  • Gaining proficiency with the Dart `google_generative_ai` package, seamlessly integrating Gemini's capabilities into the Flutter app.
  • Implementing efficient data handling techniques to fetch and receive chat history from Cloud Firestore and seamlessly pass it to the Gemini model for contextual understanding and responses.
  • Developing effective strategies to provide system instructions to the Gemini model, precisely constraining its behavior to align with Lokademy's educational goals and purpose.
  • Successfully grounding the AI model in the CSEC syllabus content, ensuring that responses are relevant, accurate, and aligned with the curriculum.

A short demo showcasing Lokademy's interactive chatbot, allowing students to ask questions and receive personalized feedback in real-time.

Home Screen of Lokademy

Lokademy's welcoming home screen, providing students with clear navigation to access CSEC syllabus content, engage with the AI chatbot, and test their knowledge through quizzes.

Chat Screen of Lokademy

The intuitive chat interface where students can ask subject-specific questions and receive detailed answers from Lokademy's AI-powered chatbot.

Quiz Screen of Lokademy

Lokademy's quiz section, where students can test their understanding of CSEC subjects and receive personalized feedback to identify areas for improvement.

SSH No Ports Desktop revolutionizes remote device access by providing a secure and user-friendly method for network administrators to connect to devices via SSH, while simultaneously eliminating common network attack surfaces and reducing administrative overhead.

This innovative Flutter desktop application offers a seamless and efficient way to access remote devices, regardless of network complexities or physical location, all without compromising security.

SSH No Ports Desktop is available on GitHub, the Microsoft Store, and App Store, showcasing its cross-platform compatibility and accessibility for a wide range of users.

SSH No Ports Desktop was developed with the core objective of empowering network administrators with enhanced security and flexibility when managing remote devices.

The application addresses key challenges faced by administrators, enabling them to:

  • Securely access devices from any location, whether behind routers, NAT, firewalls, VPNs, private/1918 addresses, or even on the move, eliminating traditional barriers to remote access.
  • Connect to devices without the need for complex network reconfigurations, such as setting up port forwarding on routers or relying on VPNs, simplifying the connection process and reducing administrative burden.
  • Significantly strengthen network security by eliminating the requirement for open listening ports, including the commonly targeted port 22, effectively reducing the attack surface and mitigating potential security vulnerabilities.

Working on SSH No Ports Desktop was a fantastic opportunity to collaborate with talented backend engineers and gain a deeper understanding of the core SSH No Ports package. The process of integrating this package into the Flutter desktop app, along with providing constructive feedback on bugs and feature requests, was both challenging and rewarding.

Key technical highlights of the app include:

  • A streamlined connection profile system that allows users to save and manage device information, including names, addresses, ports, and other relevant details, facilitating quick and easy connections.
  • Robust support for private key authentication, providing an additional layer of security to prevent unauthorized access to remote devices.
  • A built-in terminal emulator that provides users with full access to the device's file system and command-line interface, enabling efficient remote management and troubleshooting.

SSH No Ports Desktop is publicly available on GitHub, Microsoft Store, and App Store, making it accessible to a broad audience of network administrators and developers across different platforms.

This project was instrumental in expanding my understanding of SSH and its complexities. Before developing SSH No Ports Desktop, my knowledge of SSH was limited; however, through this project, I gained valuable insights into its inner workings and security implications.

Key learnings from this project include:

  • Collaborating effectively with backend engineers to integrate and utilize their SSH No Ports core package, providing valuable feedback for continuous improvement.
  • Gaining a deep understanding of SSH key management, including the use of private and public keys for user authentication, ensuring secure and reliable access control.
  • Mastering the integration of a terminal emulator into a Flutter application, extending the app's functionality and providing users with a powerful tool for remote device management.
  • Learning to implement keyboard shortcuts within the Flutter framework, enhancing the user experience and streamlining common actions within the app.
Landing Screen of SSH No Ports Desktop

The initial landing screen of SSH No Ports Desktop, welcoming users.

Home Screen of SSH No Ports Desktop

The app's home screen, showcasing the user-friendly interface for managing connection profiles, adding new devices, and initiating secure SSH connections with ease.

Terminal Screen of SSH No Ports Desktop

The integrated terminal emulator within SSH No Ports Desktop, providing users with a powerful command-line interface to interact with the remote device, manage files, and execute commands.

Support screen of SSH No Ports Desktop

The dedicated support section within the app, offering users access to comprehensive documentation, FAQs, and contact information for assistance, ensuring a smooth and supported user experience.

AtDataBrowser simplifies the management of your digital footprint within the atPlatform ecosystem. This user-friendly Flutter application provides a comprehensive interface for accessing, searching, and controlling your atData, putting you in complete command of your decentralized data.

With AtDataBrowser, you gain clear visibility into your atKeys, associated atValues, and accompanying metadata, empowering you to make informed decisions about your data.

Explore the source code and contribute to the development of AtDataBrowser on GitHub.

AtDataBrowser was designed with a clear mission: to equip the atsign community with an intuitive and powerful tool for exploring and managing their atData. By providing a user-friendly interface and robust features, AtDataBrowser empowers users to take ownership of their decentralized data and leverage the full potential of the atPlatform.

The most rewarding aspect of developing AtDataBrowser was the process of transforming the initial Figma designs into a fully functional and visually appealing Flutter application. Bringing the design vision to life through code was a fulfilling experience that showcased the versatility and power of Flutter's framework.

Key technical highlights of AtDataBrowser include:

  • Comprehensive views that display the atKey, associated metadata, and atValue properties, providing users with a detailed understanding of their atData.
  • Robust filtering capabilities that enable users to organize and search their atKeys based on various criteria, including date created, date modified, namespaces, atsign, key type, shared with, and shared by. This feature facilitates efficient data management and retrieval.
  • Support for applying multiple filters simultaneously, allowing users to refine their searches and quickly pinpoint the specific atData they need.
  • Secure and controlled deletion of atKeys, empowering users to manage their data privacy and remove unwanted or outdated information.

AtDataBrowser has undergone rigorous testing, with the second round completed in July 2023. Additional development is underway, incorporating valuable user feedback to enhance the application's functionality and user experience.

AtDataBrowser proved to be an exceptional learning opportunity, deepening my expertise in both Flutter and the atPlatform. Through this project, I acquired valuable knowledge and practical experience in several areas:

  • Mastering the use of goRouter for efficient and flexible navigation between screens, enhancing the application's user experience.
  • Leveraging the power of Riverpod for effective state management, ensuring a clean and maintainable codebase.
  • Implementing advanced state manipulation techniques, including filtering and resetting state without relying on network calls, optimizing performance and user responsiveness.
AtDataBrowser Landing Screen

The initial landing screen of AtDataBrowser, presenting a clear and inviting interface for users to begin exploring and managing their atData.

AtDataBrowser Home Screen

The main screen of AtDataBrowser, providing users with a comprehensive overview of their atKeys, along with powerful filtering options to organize and search their data effectively.

AtDataBrowser Data Storage Screen

A detailed view of a specific atKey, displaying the atValue, metadata, and other relevant information, empowering users to understand and manage their individual data points.

AtDataBrowser Settings Screen

The settings screen of AtDataBrowser, where users can customize their preferences, manage account details, and access support resources.

The Livestock Information System (LIS) is a Flutter mobile application designed to bridge the communication gap between farmers and extension officers, streamlining data collection, farm monitoring, and agricultural extension services.

LIS empowers the Guyana Livestock Development Authority (GLDA) to deliver targeted, data-driven training and support to farmers, ultimately contributing to improved national agricultural production and livestock management practices.

This application is currently under development, but an early access version is available on the Google Play Store for those interested in exploring its features and potential.

The Livestock Information System serves as a practical demonstration to the GLDA and Guyana's Ministry of Agriculture (MOA) of the transformative potential of tailored agricultural extension services.

By utilizing a custom-built app to monitor individual farm performance, LIS highlights the benefits of data-driven insights for both farmers and agricultural authorities. Additionally, the app showcases the potential for streamlining extension officer workflows by reducing redundant data collection processes.

LIS was meticulously designed based on feedback from agricultural experts within GLDA, incorporating insights from my personal professional experience working within the agriculture sector.

The most engaging aspect of developing LIS was the implementation of robust service calls for creating, reading, and updating documents within the Firebase backend. This process involved designing efficient data structures and ensuring seamless synchronization between the app and the database, providing a reliable and responsive user experience.

Key technical highlights of the application include:

  • Seamless online and offline functionality, ensuring data can be accessed and updated even in areas with limited internet connectivity.
  • A comprehensive Farmer module that allows users to register new farmers, view a list of registered farmers, and access detailed information about each farmer's profile and associated farms.
  • A detailed Farm module that enables users to register new farms, view a list of registered farms, and access specific farm details, including location, livestock populations, and historical data.
  • An Animal Population Survey feature that accurately records livestock populations by species and growth stage, providing valuable insights into livestock demographics and trends.
  • An Animal Disaster Survey functionality that tracks livestock losses due to natural disasters, categorized by species and growth stage, facilitating informed responses and support efforts in emergency situations.
  • Integration of device GPS capabilities to automatically collect and store the precise location of farms, enhancing data accuracy and facilitating location-based services.
  • Utilization of the device camera to capture and save farmer and farm profile pictures within Firebase storage, providing a visual representation of the data and enhancing user engagement.

The Livestock Information System is currently in its Minimum Viable Product (MVP) stage, Since its initial deployment, LIS has facilitated the registration of over 500 farmers as of December 2021, demonstrating its practical value and potential for growth.

Developing LIS has been an invaluable learning journey, significantly advancing my skills in Flutter and Firebase. Key learnings from this project include:

  • The critical importance of defensive coding practices, especially when handling network calls, to ensure application robustness and graceful error handling.
  • Implementing secure user authentication using Firebase Authentication, safeguarding user data and protecting application access.
  • Accessing and utilizing the device camera to capture user-provided images and securely storing them within Firebase Storage, enhancing the application's functionality and user experience.
  • Integrating device GPS functionality to retrieve accurate location data and incorporating it into the application's core features.
  • Efficiently saving and retrieving data using Cloud Firestore, leveraging its scalability and real-time capabilities.
  • Implementing real-time data updates using Firebase Streams, ensuring that users have access to the most current information without the need for manual refresh actions.
  • Effectively utilizing Streams in conjunction with the Provider package for state management, enabling dynamic UI updates and a responsive user interface.
  • Structuring the codebase using the gSkinner MVC+S architecture, promoting code organization, maintainability, and scalability.
sign in screen

The secure sign-in screen of the Livestock Information System, ensuring that only authorized personnel can access the application and its data.

farmer registration form screen

The user-friendly farmer registration form, streamlining the process of adding new farmers to the database and capturing essential information for tailored extension services.

Farmer Details screen

The detailed farmer profile view, providing extension officers with a comprehensive overview of a farmer's information, including associated farms, livestock data, and historical interactions.

farm registration screen

The intuitive farm registration screen, designed for efficient data entry and capturing key farm details, including location, size, and livestock types.

farm animal survey form screen

The Animal Population Survey form, enabling extension officers to accurately record livestock populations, categorized by species and growth stage, providing valuable data for analysis and decision-making.

farm animal population details screen

A detailed view of a farm's animal population data, providing insights into livestock trends, demographics, and potential areas for improvement.

The Nabi-KCL SSHE mobile application is a comprehensive health and safety solution developed to improve safety practices and incident management on the Nabi-KCL project.

This Flutter-based app provided a streamlined platform for recording and monitoring safety observations and incidents, enabling proactive risk mitigation and fostering a stronger safety culture.

The app is available on the Google Play Store, demonstrating its user-friendly design and accessibility.

The primary objective of the Nabi-KCL SSHE application was to elevate the health and safety culture on the Nabi-KCL project.

The app achieved this goal by providing a centralized system for recording and monitoring safety observations and incidents, empowering the project team to proactively identify potential hazards, track safety trends, and implement effective preventive measures.

Developing Nabi-KCL SSHE provided a valuable opportunity to explore data analytics and visualization tools. A key highlight of this project was integrating BigQuery to extract and query data from Firebase, followed by visualizing the analyzed data in an interactive Google Data Studio dashboard.

This process demonstrated the power of combining data analysis with mobile application development to provide actionable insights and improve safety outcomes.

Key features of the application include:

  • An interactive Google Data Studio dashboard that provided comprehensive analysis of safety observations, enabling the project team to identify trends, potential hazards, and areas for improvement.
  • Seamless offline and online functionality, allowing users to record observations and incidents even in areas with limited internet connectivity, ensuring uninterrupted data collection.

While the Nabi-KCL SSHE app is no longer actively maintained, it served as an important project for enhancing my Flutter and Firebase skills. It was developed during my time as a Safety & Security officer on the Nabi-KCL project, showcasing my initiative to leverage technology for improving workplace safety.

The Nabi-KCL SSHE project provided valuable insights and expanded my technical skill set in several key areas:

  • Establishing a connection between BigQuery and a Firebase project, enabling seamless data extraction and analysis.
  • Mastering the use of SQL commands within BigQuery to effectively query and analyze data stored in Firebase.
  • Utilizing Google Data Studio to create interactive and insightful dashboards for visualizing data extracted from BigQuery.
  • Seamlessly embedding a Google Data Studio dashboard into a Flutter application, enhancing the app's functionality and providing users with direct access to data-driven insights.
Unsafe Observation dashboard

A snapshot of the Unsafe Observation dashboard, providing a visual representation of unsafe practices recorded through the Nabi-KCL SSHE app. This dashboard enabled the project team to identify areas requiring immediate attention and implement targeted corrective actions.

Safety Observation dashboard

A glimpse of the Safety Observation dashboard, showcasing positive safety practices observed on the project. This data helped reinforce positive behaviors, identify trends, and promote a culture of continuous safety improvement.

The Layer Bird Profitability Model (LBPM) is an interactive web application designed to empower poultry farmers by providing a comprehensive tool for analyzing the financial viability of their layer bird production systems.

This application features an interactive dashboard that overlays a detailed layer bird profitability model. Farmers can easily adjust cost and production parameters to reflect their specific operational conditions, allowing them to explore various scenarios and make data-driven decisions to optimize their businesses.

LBPM dynamically recalculates income and expenditure projections based on the adjusted parameters, providing farmers with clear insights into the potential profitability of their operations under different circumstances.

This project was built using Flutter for its cross-platform capabilities and hosted on Firebase for its scalability and ease of deployment.

The Layer Bird Profitability Model originated from a client's request for assistance in creating a comprehensive business plan for a new Layer Bird Production Agribusiness.

After successfully completing the initial business plan, I recognized an opportunity to leverage my programming expertise and agricultural knowledge to create a tool that could benefit a wider audience of poultry farmers. This led to the development of the LBPM web application, making the profitability model accessible to farmers beyond the initial client engagement.

The project journey involved building the model initially in Excel for the client's specific requirements and then converting it into a dynamic and interactive web application for broader use and accessibility.

A particularly rewarding aspect of developing LBPM was the challenge of rebuilding the Excel-based model from the ground up using Dart, leveraging Flutter's web capabilities to create an interactive and visually engaging user interface.

The key technical challenge was effectively utilizing the Provider package to dynamically update the UI whenever a user adjusted any model parameter. This involved creating a robust state management system that ensured seamless synchronization between user input and model outputs.

Overcoming these challenges through extensive research, Flutter documentation, and community support (Stack Overflow) deepened my understanding of Flutter's reactive framework and the Provider package's role in building efficient and responsive applications.

The project's success is a testament to my ability to translate my Flutter expertise into practical solutions for real-world problems, particularly within the agricultural domain.

I am committed to the ongoing development and enhancement of LBPM. Future iterations will incorporate additional variables that influence profitability within layer bird production systems, providing farmers with even greater depth and accuracy in their financial analysis.

The positive feedback received from my former boss, an agricultural expert, has further motivated me to expand this project. His request to build similar models for other agricultural production systems highlights the potential for LBPM to serve as a foundation for a suite of agricultural decision-support tools.

As I continue to develop LBPM, I am eager to collaborate with agricultural experts and companies to fine-tune the model and ensure its alignment with real-world industry practices and challenges.

The LBPM project provided valuable hands-on experience with key Flutter concepts and packages, enhancing my skill set in several areas:

  • Mastering the implementation of getters and setters in Dart, ensuring proper data encapsulation and controlled access to model parameters.
  • Gaining proficiency in using the Provider package for effective state management, allowing for efficient UI updates and a more responsive user experience.
  • Integrating the Syncfusion Flutter Chart package to create visually appealing and informative charts, enhancing the dashboard's ability to convey complex data in an easily understandable format.
Productivity Model Screen

The LBPM's interactive dashboard, showcasing the user-friendly interface where farmers can adjust cost and production parameters to analyze different scenarios and explore the potential profitability of their layer bird production systems.






Testimonials



Contact me

Feel free to reach out if you're looking for a developer, have a question or just want to connect.

  • Georgetown, Guyana

  • + 592 659 8496

  • curtlycritchlow@ccwc.io

  • Looking for a developer, have a question or want to connect?

  • Just send me a message!