<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ishaq Hassan</title>
    <description>The latest articles on DEV Community by Ishaq Hassan (@ishaquehassan).</description>
    <link>https://dev.to/ishaquehassan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F813054%2F860a9873-6ab8-424f-8317-f998d22028f2.jpeg</url>
      <title>DEV Community: Ishaq Hassan</title>
      <link>https://dev.to/ishaquehassan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ishaquehassan"/>
    <language>en</language>
    <item>
      <title>How a Pakistani Engineer Got 6 Pull Requests Merged Into Flutter's Official Framework</title>
      <dc:creator>Ishaq Hassan</dc:creator>
      <pubDate>Thu, 23 Apr 2026 21:54:53 +0000</pubDate>
      <link>https://dev.to/ishaquehassan/how-a-pakistani-engineer-got-6-pull-requests-merged-into-flutters-official-framework-51po</link>
      <guid>https://dev.to/ishaquehassan/how-a-pakistani-engineer-got-6-pull-requests-merged-into-flutters-official-framework-51po</guid>
      <description>&lt;p&gt;&lt;em&gt;My journey as a Flutter Framework Contributor from Karachi, Pakistan, and why it's a big deal for the Pakistani Flutter community.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;strong&gt;TL;DR&lt;/strong&gt;: I'm Ishaq Hassan, Engineering Manager at DigitalHire, Flutter course instructor on the official Flutter docs, and a Pakistani Flutter developer with &lt;strong&gt;6 Pull Requests merged into the Flutter framework&lt;/strong&gt; (the official repository maintained by Google). This post walks through why framework-level contributions matter, how I landed mine, and a short guide for other Pakistani (and South Asian) developers who want to do the same.&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Live portfolio:&lt;/strong&gt; &lt;a href="https://ishaqhassan.dev" rel="noopener noreferrer"&gt;https://ishaqhassan.dev&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;The Gap Nobody Talks About&lt;/h2&gt;

&lt;p&gt;Pakistan has thousands of Flutter developers now. You'll find Flutter jobs in Karachi, Lahore, Islamabad. You'll find Flutter-based startups, Flutter courses on YouTube, Flutter meetups, Flutter Facebook groups.&lt;/p&gt;

&lt;p&gt;But there's a difference between &lt;strong&gt;using&lt;/strong&gt; a framework and &lt;strong&gt;contributing to it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you open the Flutter repository on GitHub and search the contributor graph for Pakistani engineers with multiple merged PRs, the list is short. Surprisingly short. Most Pakistani engagement with Flutter stops at the app layer, building apps, building plugins, teaching courses. Direct contributions to the framework itself remain rare.&lt;/p&gt;

&lt;p&gt;This article exists partly to normalize it. If you're from Pakistan and you want to contribute to the Flutter framework, &lt;strong&gt;you can&lt;/strong&gt;. Here's how I did it.&lt;/p&gt;




&lt;h2&gt;My 6 Merged Pull Requests&lt;/h2&gt;

&lt;p&gt;As of April 2026, these are the ones that made it in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/184572" rel="noopener noreferrer"&gt;#184572 Fix LicenseRegistry docs to reference NOTICES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/184569" rel="noopener noreferrer"&gt;#184569 Add disposal guidance to CurvedAnimation and CurveTween docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/184545" rel="noopener noreferrer"&gt;#184545 Add clipBehavior parameter to AnimatedCrossFade&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183109" rel="noopener noreferrer"&gt;#183109 Add scrollPadding property to DropdownMenu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183097" rel="noopener noreferrer"&gt;#183097 Fix RouteAware.didPushNext documentation inaccuracy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183081" rel="noopener noreferrer"&gt;#183081 Use double quotes in settings.gradle.kts template&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And 3 currently open in review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183110" rel="noopener noreferrer"&gt;#183110 Suppress browser word-selection in SelectableText on web right-click&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183079" rel="noopener noreferrer"&gt;#183079 Guard auto-scroll against Offset.infinite in ScrollableSelectionContainer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flutter/flutter/pull/183062" rel="noopener noreferrer"&gt;#183062 Reset AppBar _scrolledUnder flag when scroll context changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;Practical Guide&lt;/h2&gt;

&lt;h3&gt;1. Pick the right kind of first PR&lt;/h3&gt;

&lt;p&gt;Don't try to rewrite the rendering pipeline on day one. The Flutter team, like any major OSS project, accepts small, well-scoped, well-tested PRs from new contributors first. Documentation fixes are underrated. Adding a single missing parameter to a widget is high-impact and low-risk.&lt;/p&gt;

&lt;p&gt;My first merged PR (#183081) literally replaces single quotes with double quotes in a Gradle template. That's the bar. Small. Correct. Tested. Useful.&lt;/p&gt;

&lt;h3&gt;2. Read CONTRIBUTING.md like your life depends on it&lt;/h3&gt;

&lt;p&gt;The Flutter team has strict style guides, commit conventions, and test coverage requirements. If you don't follow them, your PR will sit forever or get closed.&lt;/p&gt;

&lt;h3&gt;3. Find real issues via search, not browsing&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Search Flutter issues for labels: &lt;code&gt;good first issue&lt;/code&gt;, &lt;code&gt;help wanted&lt;/code&gt;, &lt;code&gt;d: api docs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Grep the codebase for &lt;code&gt;TODO&lt;/code&gt; comments near widgets you understand&lt;/li&gt;
&lt;li&gt;Use Flutter yourself, find a paper cut, reproduce it in a test, fix it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;4. Tests are non-negotiable&lt;/h3&gt;

&lt;p&gt;Every PR needs a test. If you're adding a parameter, add a unit test. If you're fixing a bug, add a regression test. No test = no merge.&lt;/p&gt;

&lt;h3&gt;5. Be patient and responsive&lt;/h3&gt;

&lt;p&gt;The Flutter team gets thousands of PRs. Reviews are thorough. My average time from PR open to merge is 2-4 weeks. Always respond to reviewer feedback within 24 hours, that moves you up the priority queue.&lt;/p&gt;




&lt;h2&gt;Why This Matters for Pakistan&lt;/h2&gt;

&lt;p&gt;Open source framework contributions are a career accelerator in a way most people underestimate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Global credibility.&lt;/strong&gt; When I say "Flutter Framework Contributor" on LinkedIn, I don't have to explain what that means. It's objectively verifiable on GitHub.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better jobs.&lt;/strong&gt; Senior Flutter roles at international companies care a lot about whether you can work at the framework level, not just app level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community leadership.&lt;/strong&gt; It earns speaking invitations, course opportunities, mentorship requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pakistani representation.&lt;/strong&gt; Every time a Pakistani name appears on a merged Flutter PR, it chips away at the assumption that serious OSS contributions only come from North America or Europe.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;About the Flutter Course in Urdu&lt;/h2&gt;

&lt;p&gt;Separately from the framework work, I teach a 35-video Flutter course in Urdu that is &lt;a href="https://docs.flutter.dev/resources/courses" rel="noopener noreferrer"&gt;officially listed on docs.flutter.dev&lt;/a&gt;. It's free. It covers Dart basics through advanced Flutter (state management, APIs, custom painters, deployment). On YouTube via Tech Idara.&lt;/p&gt;

&lt;p&gt;If you're Urdu-speaking and want to learn Flutter properly, &lt;a href="https://www.youtube.com/playlist?list=PLX97VxArfzkmXeUqUxeKW7XS8oYraH7A5" rel="noopener noreferrer"&gt;here's the playlist&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;Call to Action&lt;/h2&gt;

&lt;p&gt;If you're a Pakistani developer reading this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send your first Flutter framework PR this month. Start with docs. Don't overthink it.&lt;/li&gt;
&lt;li&gt;Ping me on &lt;a href="https://linkedin.com/in/ishaquehassan" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; if you need a review before submitting. Happy to help.&lt;/li&gt;
&lt;li&gt;Share your merged PRs publicly. Representation compounds.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Links&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio:&lt;/strong&gt; &lt;a href="https://ishaqhassan.dev" rel="noopener noreferrer"&gt;https://ishaqhassan.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flutter Framework Contributor from Pakistan:&lt;/strong&gt; &lt;a href="https://ishaqhassan.dev/flutter-framework-contributor-pakistan.html" rel="noopener noreferrer"&gt;https://ishaqhassan.dev/flutter-framework-contributor-pakistan.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ishaquehassan" rel="noopener noreferrer"&gt;https://github.com/ishaquehassan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://linkedin.com/in/ishaquehassan" rel="noopener noreferrer"&gt;https://linkedin.com/in/ishaquehassan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flutter Course in Urdu:&lt;/strong&gt; &lt;a href="https://www.youtube.com/playlist?list=PLX97VxArfzkmXeUqUxeKW7XS8oYraH7A5" rel="noopener noreferrer"&gt;YouTube playlist&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; hello@ishaqhassan.dev&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
  </channel>
</rss>
