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!
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.
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:
View the Google Open Source Projects profile for schema-dts for more details.
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:
|Ibra.Lazy||Provides memoization constructs in a familiar API.|
|Ibra.Comparers||Provides common comparers for List types, allowing ImmutableList types to be used as keys in containers, and other scenarios for comparison.|
|Ibra.Polymorphic||Provides support polymorphic types in C#, such as Covariant and Invariant Maybe (Optional) types, and type unions|
|Ibra.Enumerables||LINQ-like helpers and extension methods for IEnumerable. Type filters, Option-type conversions, flattening enumerables, fast single-element enumerables, and others.|
|Ibra.Logging||Pretty & lazy logging for C#.|
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.
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.
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.
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.
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 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:
To view individual issues of the magazine, take a look at:
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.
The best way to reach me is to contact me via e-mail at firstname.lastname@example.org.