About Me
An accomplished software engineer specializing in secure and scalable architecture with extensive experience in the full software design life cycle.
Well versed in technology with a proven ability to solve complex business problems by building reusable and cost-efficient systems.
NodeJS expert, Game developer, RaspberryPI enthusiast... but mostly, an extremely fast learner.
Experience
Freelancing
December 2014 - PresentWorked and consulted on multiple types of projects including but not limited to:
- Simple business websites
- Fully fledged SaaS platforms
- iOS and Android applications
Tech: Javascript, Java/JavaEE, Objective-C, SQL, Firebase...
Senior Back End Engineer at Synopsys, Inc.
January 2017 - PresentSince the Synopsys acquisition of Cigital and Codiscope, I've been working on building an eLearning platform where developers are offered courses on software security and industry best practices. The platform currently serves thousands of users and offers organization capabilities that allow clients to monitor their cohorts as well as individual curriculum progress.
My responsibilities include:
- Designing/Implementing/Testing back end systems like micro-services and daemons
- Reviewing technical plans and pull requests submitted by other developers
- Planning and executing large scale database migrations or incremental schema updates
- Identifying choke points and making sure the platform remains scalable
Tech: NodeJS, micro-services, PostgreSQL, MongoDB, RabbitMQ, Redis...
Unity Game Development
July 2017 - August 2018 (1 year)Having learnt coding in C# and using Unity3D in my free time, I worked on a multi-platform infinite runner / side-scrolling game.
Senior Back End Engineer at Codiscope
April 2015 - January 2017Codiscope's mission is to improve the quality of software everywhere by creating tools that work throughout the entire software life cycle, rather than only during test phases. The main software offering was Jacks, a static code analysis tool that specialized in detecting security issues by scanning a user’s code on major repository sites like GitHub and BitBucket.
What I did:
- Prototyped and wrote the first version of the static code analysis tool for the Javascript language
- Designed and implemented REST APIs that allow clients to interface with the tool
- Wrote a custom dispatching system that would load jobs from a RabbitMQ queue and launch Docker containers
- Implemented OAuth user signups using GitHub and BitBucket accounts
- Reviewed pull requests submitted by other developers
Tech: NodeJS, OAuth, MongoDB, RabbitMQ, Docker...
Lead Back End Engineer at Rakuten Loyalty
April 2014 - February 2015Rakuten Loyalty, part of Rakuten (#1 e-commerce company in Japan), was one of the fastest growing technology companies in Boston and specialized in cloud-based technology that enabled major loyalty programs worldwide to monetize and reward their members for their everyday online activity.
My job consisted of:
- Managing a team of developers responsible for the platform's core systems
- Building cloud-based scalable systems that deal with big data
- Implementing and maintaining the User Rewards platform
- Writing custom reporting daemons that perform map/reduce and aggregation jobs on big data systems
- Optimizing database queries with adequate data schemas and indexing
Tech: NodeJS, MongoDB, ElasticSearch, RPC, MemCached...
Software Engineer at Rakuten Loyalty
May 2012 - April 2014Rakuten Loyalty, part of Rakuten (#1 e-commerce company in Japan), was one of the fastest growing technology companies in Boston and specialized in cloud-based technology that enabled major loyalty programs worldwide to monetize and reward their members for their everyday online activity.
During my time here, I designed and implemented the following:
- Identity and access management system to handle user authentication and authorization
- Business rule manager using Nools (Javascript framework similar to Drools in JavaEE)
- Fraud/invalid activity detection plugin
- Custom MongoDb wrapper for NodeJS
- Provisioning system which provided a centralized configuration solution
- Network affiliates link generation daemon for the following networks: Google Affiliate Network, LinkShare, Commission Junction
Software Engineer at Orolix
August 2010 - November 2011Orolix was a company with headquarters in Palo Alto, and offices in Sao Paulo and Beirut. It started off as an ISP and Portal selling prepaid mobile top-ups and offering a connection manager for 3G Modems. This software solution was called Orolix Communicator and it served more than 1 million users across Brazil.
My job was mostly on the server side and allowed me to work on the following projects :
- The company website that offers free downloads of the Orolix Communicator
- The Portal website used by the Orolix Communicator users to check their connection usage and statistics.
- Customizable Anti- Fraud solution using a rules engine (Drools) and configurable rule files defined using the rules DSL. The fraud detection rules were based on user info like: IP, geographic location, credit card info...
- Various servlet filters: logging, auditing, security (roles and permissions)...
- Maintaining the Orolix Communicator software by adding new 3G dongle drivers and fixing bugs
Tech: C++, Qt, Java EE, JSF, Hibernate, Seam, RestEasy, Drools, MongoDb, MySQL, Maven, JBoss AS, Glassfish, Tomcat...
Education
Saint Joseph University (ESIB)
Bachelor of Engineering (B.E.), Computer Software Engineering, 2005 - 2010
Saints Coeurs
French Baccalaureate with emphasis on Mathematics, 2005
Languages
English
Native or bilingual proficiency
French
Native or bilingual proficiency
Arabic
Native or bilingual proficiency