Eyas Sharaiha

Hey there—

I am a Software Engineer based in New York. My identities as an Arab, an Immigrant, and a Techie have shaped much of my world view.

Born and raised in Amman, I had the chance to acquire a sharp interest in activism towards global justice. My interests range from science & technology to politics & history. I am drawn to Middle East politics, and passionate about establishing a just peace that ends the Arab-Israeli conflict.

An avid programmer, I have many plans for world domination, but I never get the chance to complete any—or so I want you to think!

Writings

Projects

Much of my work, professionally, is unfortunately not publicly available. Here, I discuss some of the projects I have worked on in the public sphere. This is more autobiographical than a portfolio.

Current work

  • schema-dts: Schema.org JSON-LD TypeScript Definitions

    schema-dts: Schema.org JSON-LD TypeScript Definitions

    schema-dts provides TypeScript definitions for Schema.org vocabulary in JSON-LD format. The typings are exposed as complete sets of discriminated type unions, allowing for easy completions and stricter validation.

    This repository contains two NPM packages:

    • schema-dts-gen: Providing a command-line tool to generate TypeScript files based on a specific Schema version and layer.
    • schema-dts: Pre-packaged TypeScript typings of latest Schema.org schema, without pending and other non-core layers.

    View the Google Open Source Projects profile for schema-dts for more details.

  • Ibra: C# Convinience Libraries [2015]

    Ibra: C# Convinience Libraries [2015]

    Ibra (from the Arabic for "lesson" or "example") is an open source family of C# nuget packages that expand on the core BCL to provide convinient types and paradigms for C#. The project is hosted on GitHub.

    Current available packages:

    NameNugetDescription
    Ibra.LazyNuget ReleaseProvides memoization constructs in a familiar API.
    Ibra.ComparersNuget ReleaseProvides common comparers for List types, allowing ImmutableList types to be used as keys in containers, and other scenarios for comparison.
    Ibra.PolymorphicNuget ReleaseProvides support polymorphic types in C#, such as Covariant and Invariant Maybe (Optional) types, and type unions
    Ibra.EnumerablesNuget ReleaseLINQ-like helpers and extension methods for IEnumerable. Type filters, Option-type conversions, flattening enumerables, fast single-element enumerables, and others.
    Ibra.LoggingNuget ReleasePretty & lazy logging for C#.

Previous work

  • “I'd vote for Hillary, but...” - Hillary Myths [2016]

    “I'd vote for Hillary, but...” - Hillary Myths [2016]

    With the rise of misinformation and conspiracy theories related to Hillary Clinton during the 2016 presidential election, I worked with a community of progressive volunteers at DevProgress to create this project.

    The project consistent of a static GitHub Pages site built with Jekyll. I designed the frontend HTML and JavaScript based on UX story boards created by another volunteer. I also worked with volunteer content writers to make sure they can use GitHub to add pages, creating a crash course for content editors without Git or GitHub experience.

  • NB Social Annotation Tool [2012–2014]

    NB Social Annotation Tool [2012–2014]

    NB is a social annotation tool developed by the Haystack Group at CSAIL. You can use NB to annotate PDF documents and HTML pages with questions, observations, and discussions. Students and Faculty can use NB to annotate arbitrary PDF files online, in a collaborative fashion.

    My work in NB has been focused extending the tool to allow annotating arbitrary static HTML documents. NB originally only supported rectangualr annotation boxes on PDF documents represented by images. My contributions to NB allow it to annotate HTML documents and iteract with the text through the normal document flow.

    A potential result from this work is the use of tools like pdf.js to display PDF documents and use the HTML annotation system as a unified (and more appropriate) annotation framework.

    The design of the current NB homepage is also my work.

  • Password Protected Section for the OneNote Web App [2012]

    Password Protected Section for the OneNote Web App [2012]

    As part of my internship at Microsoft, I worked on getting the 'Password Protected sections' feature of the OneNote desktop client into the Web App.

  • Number Six Club Member Directory [2010–2014]

    Number Six Club Member Directory [2010–2014]

    Built a Members' Directory for the Number Six Club, a co-educational literary, social, and residential fraternity at MIT. The Member Directory was initially built as a simple way to list information for all past and present members of the Club, starting with the founders in the 1880s.

    While the project initially started simply as a database of living and non-living members, it grew to support search, privacy levels, access control lists, and more. The directory also integrates with the main website and provides it with the current list of officers and their titles dynamically.

    The web application that once was the 'directory' now offers officer portals, enables member authentication and identity management, and connects a number of internal services and tools.

  • ZV6: A Fork of MIT's XV6, inspired by ZFS [2012]

    ZV6: A Fork of MIT's XV6, inspired by ZFS [2012]

    See on GitHub(Writeup)

    Final group project for MIT's 6.828 Systems Engineering class. The project goal was to modify the XV6 operating system (itself based on Unix V6) to support ZFS-like file systems features. Namely, we modified XV6 to suport inode-checksums and 'ditto blocks' to replace corrupted files on the spot.

  • MarkUp Magazine [2007–2008]

    MarkUp Magazine [2007–2008]

    MarkUp Magazine was a digital publication developed by GMking.org, initially targetting Game Development in general and quickly moving to become focused on the GameMaker IDE and the GameMaker Community.

    MarkUp was published between March 2007 and November 2008, initially with a regular monthly schedule. The Magazine positioned itself as a largely technical magazine, mostly targetting the more technical members of the Game Maker Community. The project peaked towards its end to include several regular writers, individual contributors, 300 regular subscribers, and a monthly readership of more than 3,000.

    The original topic on the GameMaker community can be viewed here:
    http://gmc.yoyogames.com/index.php?showtopic=288147.

    To view individual issues of the magazine, take a look at:
    https://eyas.sh/markup/.

  • YoYo Games Wiki & GMpedia.org [2007–2009]

    YoYo Games Wiki & GMpedia.org [2007–2009]

    GMpedia.org was a game development wiki creating content for the GameMaker IDE. GMpedia.org document GameMaker software, revisions, tutorials, and provided documentation to GameMaker functions, methods, variables, and keywords. I was involved in GMpedia.org as one of its creators and created a bulk of its content.

    GMpedia.org merged with the official YoYo Games Wiki in 2009. Administrators of GMpedia.org were involved in the merge, which involved porting content over, modifying templates, rules, and guidelines, and creating and unifying content on hte new website. As part of this, I also created a new (now old) theme for the YoYo Games Wiki to be in line with the new (now old) theme for the YoYo Games website.

Contact

The best way to reach me is to contact me via e-mail at hello@eyas.sh.