Scroll To View More
Yasir Ali, JavaScript Developer in Irvine, CA, United States
Yasir Ali

JavaScript Developer in Irvine, CA, United States

Member since February 14, 2017
Yasir has been developing in JavaScript for 10 years while using the latest ES6+ standards in all his current work. He is an expert front-end developer especially with React and Redux, and is a growing star with React-Native. He also uses JS for much more, such as cross-platform desktop apps (Electron) and cross-browser extensions leveraging native APIs on Windows (WinAPI/COM), macOS (Carbon, Core Foundation, Cocoa), and *nix (X11/XCB, GTK+/GDK).
Yasir is now available for hire

Portfolio

  • Traede (via Toptal)
    React Native, Immutable.js, Redux-Offline, Redux
  • Mozilla
    JavaScript, C, C++,
  • Tigo
    Angular 1.x, Cordova/PhoneGap, jQuery Mobile, PHP, PostgreSQL

Experience

  • JavaScript, 10 years
  • CSS, 10 years
  • React, 2 years
  • Electron.js, 1 year
  • Redux, 1 year
  • React Native, 1 year
  • Web Extensions, 1 year
  • React Router, 1 year
Irvine, CA, United States

Availability

Part-time

Preferred Environment

Windows 10, Git/GitHub, VSCode, Node 7+

The most amazing...

...thing I've coded was a cross-platform screenshot tool using JavaScript FFI to tap platform APIs.

Employment

  • React Native Engineer

    2017 - 2017
    Traede (via Toptal)
    • Created an offline first application (chronological API call resilience).
    • Used a component based on iOS CollectionView in order to have sticky columns and sticky headers due to the fact it was an iPad specific app.
    Technologies: React Native, Immutable.js, Redux-Offline, Redux
  • AMO Editor

    2015 - 2017
    Mozilla
    • Worked in a 100% remote experience.
    • Focused on reviewing code before accepting it into the Mozilla marketplace of addons.mozilla.org (AMO).
    • Reviewed minified/obfuscated submissions by requesting their human readable version along with build script and instructions. The build tools were mostly Node.js based (Gulp, Grunt, Webpack, Broccoli).
    • Had extensive communication with developers via email, regarding their submission and approval criteria.
    • Helped volunteer reviewers from the open source community with coding questions.
    Technologies: JavaScript, C, C++,
  • Software Engineer

    2015 - 2015
    Tigo
    • Used Cordovoa/PhoneGap to deploy PWA (progressive web app) as an actual mobile app.
    • Ported a jQuery mobile web app to an Angular 1.x based app.
    • Interacted with the back-end engineers utilizing PHP (Yii framework) and PostgreSQL.
    • Communicated with the back-end and physical device via a REST API.
    • Developed systems to process and visualize large amounts of data from photovoltaic arrays.
    Technologies: Angular 1.x, Cordova/PhoneGap, jQuery Mobile, PHP, PostgreSQL
  • Full-Stack Engineer

    2011 - 2015
    Open Source
    • Developed cross browser extensions using native messaging with binaries created with C++ and Electron.
    • Used REST/GraphQL infrastructures in progressive web apps (PWAs).
    • Built a REST infrastructure with PHP and MySQL.
    • Created and support multiple Firefox add-ons—two of which are award-winning.
    • Provided support to the community via various online resources (i.e.: Stack Overflow).
    • Made extensive pointers and gained platform API experience via FFI (js-ctypes, JNI.jsm, and some Node FFI).
    • Read and translated frequently from different languages to JavaScript (actually translated from: D, Java, Pascal, Perl, Python, and Ruby).
    Technologies: JavaScript, Electron, Platform APIs via JavaScript FFI (WinAPI, COM, Carbon, CoreFoundation, Cocoa/Objective-C, X11/XCB, GTK+/GDK, Android SDK via JNI), PHP, MySQL/SQL, GraphQL, Angular 1.x, C++, C, Objective-C
  • Administrator (Tutorials, Documentation, and Programmer)

    2005 - 2008
    NeoCodex.us
    • Maintained and created PHP, MySQL, and AJAX modules and hooks for the IPB Board forum software.
    • Created bots to automate tasks in VB6 and then JavaScript as Firefox add-ons.
    • Wrote tutorials and documentation on writing macros with Firefox add-ons in JavaScript.
    • Led, as one of 3 administrators, a staff of 12 to moderate a community of 5,000 members.
    • Helped to create bots to crawl and catalog a database of items along with their selling prices (for a specific site dealing with a virtual world). Then helped create a desktop application to use that database to purchase and sell those items in the virtual world.
    Technologies: JavaScript (jQuery Library and Prototype), PHP, MySQL, IP.Board, Visual Basic 6.0

Experience

  • NativeShot (Development)

    A Firefox add-on to take screenshot of multi-monitor setups.

    1) Uses js-ctypes (FFI) to tap into C/C++/Objective-C platform APIs to access platform global hotkey registration, and screenshot bitmaps. (WinAPI, Carbon, CoreFoundation, Cocoa, X11/XCB.)

    2) Uses React (with setState state management) for the dashboard GUI and canvas graphic editor.

    3) Uses REST APIs of Google Drive, Dropbox, Imgur, Twitter, and Facebook for screenshot cloud upload options.

  • jscFileWatcher (Development)
    https://github.com/Noitidart/jscFileWatcher/

    A cross-platform file directory watcher module in JavaScript.

    1) Uses js-ctypes (FFI) to tap into platform APIs to watch file directories.

    2) Abstracted platform nuances from consuming developers it into a git submodule.

    3) Heavy lifting is done off the main thread in a WebWorker.

    4) Platform details:
    + Windows - Uses ReadDirectoryChangesW with the completion routine async approach.

    + macOS - Uses FSEvents 10.7+ design. Considered but decided against: kevent64, kevent.

    + Unix-based/GTK+ - Uses inotify if available, otherwise it falls back to GTK's GioFileMonitor. GTK is guaranteed as jscFileWatcher is designed for Firefox, a GTK+ application. Considered but decided against: kqueue, FEN (Solaris), kevent (FreeBSD).

    + Android - inotify (inode notify).

  • MLINK (Development)
    http://mlink.sundayschoolonline.org/

    A full-stack application (website) mimicking a combination of Yelp, Craig's List, and LinkedIn for a small community. Expected go live date: May 2017.

    1) Front-End - React, React Router v4, and Redux.

    2) Back-End - PHP and MySQL.

    * Mobile version in React Native is in the very early stages for iOS/Android.

  • Trigger (Development)

    A cross-browser extension using native binaries to enable user to tie browser Userscripts to global platform hotkeys.

    1) Uses Redux, React, and React Router v3 for GUI.

    2) Uses C, C++, and Objective-C for the binaries.

    3) Communication between extension and binary is done via the Native Messaging feature of the WebExtensions API.

    4) Platform specifics:
    + Unix-based - Uses XCB main even loop and xcb_grab_key, which is thread safe version of X11's XGrabKey.

    + macOS - Binary not yet released. Uses Carbon's RegisterEventHotKey as Apple has not yet provided a suitable replacement in Cocoa. However Cocoa is used to run the main application event loop.

    + Windows - Instead of using WinAPI's RegisterHotKey a low-level keyboard hook (SetWindowsHookEx) was used. This is due to the former being keyboard manufacturer dependent for some special keys (media keys, etc).

Skills

  • Languages

    CSS3, XUL, JavaScript, HTML5, CSS, PHP, SQL, Visual Basic for Applications (VBA), Visual Basic 6 (VB6), Less, GraphQL, Sass, Java, C++, Objective-C
  • Libraries/APIs

    Imgur API, Twitter API, Dropbox API, React Router, React, React Redux, Google Drive API, Gfycat API, YouTube API, Facebook Open Graph API, JS-CTypes, jQuery, Bing Maps API, WebRTC, Win32 API, WinAPI, Carbon, Node.js
  • Tools

    Babel, Gulp.js, GitHub, Git, NPM, Webpack, Webpack 2
  • Paradigms

    REST, Functional Programming, Object-oriented Programming (OOP)
  • Other

    Firefox Extensions, Foreign Function Interfaces (FFI), XPCOM, Web Extensions, Opera Extensions, Edge Extensions, Chrome Extensions, CSS3 Animation, COM
  • Frameworks

    Graphcool, OAuth2, React Native, Electron.js, Redux, PhoneGap, Cordova, AngularJS, Skel, Bootstrap 3, Core Foundation, Cocoa, JNI, Android SDK
  • Storage

    MySQL, PHP Data Objects (PDO)

Education

  • Master of Science in Materials Science & Engineering
    2012 - 2015
    San Jose State University - San Jose, CA, USA
  • Bachelor of Science in Chemical Engineering
    2005 - 2010
    University of California, Riverside - Riverside, CA, USA
I really like this profile
Share it with others