Mohamad Ahmadi
- moeahmadi.com
- mohamadhasan.ahmadi@gmail.com
- +1 613 406 8281
- Montreal, QC
Skills
- Programming Languages: Java, Javascript, Ruby, C++/C, Python, SQL
- Product Design, Prototyping, and Development:
- Web Application Development: Spring, Node.js, Ruby on Rails
- Frontend Development: HTML5, CSS, Javascript, JQuery, AngularJS, GWT, Twitter Bootstrap
- Test-driven Development (TDD).
- Object-oriented Design Patterns.
- Building and working with RESTful APIs.
- HTML Mobile App Development: PhoneGap/Cordova
- Databases: PostgreSQL, MySQL, MongoDB
- Wireframing: Balsamiq Mockups
- Templating: Dust.js, Handlebars, Liquid
- Preprocessors: Coffeescript, Sass, HAML, Markdown
- Search and Relevance concepts and technologies:
- Full-text and Geospatial search expert with Elasticsearch and Lucene.
- Geospatial data and Geographic Information Systems (GIS):
- Geographic data storage and querying with PostGIS (Geospatial module for PostgreSQL) and Lucene.
- Geographic data manipulation in Java using GIS toolkits such as GeoTools.
- Working with Geocoding and Mapping APIs as well as standard data formats such as KML and GeoJSON.
- Development Environment:
- Virtualization and Provisioning: Vagrant, Shell script, Puppet
- Version Control: Git, Subversion
- IDEs/Editors: Eclipse, IntelliJ IDEA, Vim, Sublime Text
- Operating Systems: Linux, Mac OS, Windows
Work Experience
-
Software Engineer at TripAdvisor
- As a member of TripAdvisor’s Search & Navigation team, I designed and developed highly scalable features that enable users in over 45 countries to search through hundreds of millions of businesses, properties, and reviews. I used ElasticSearch, Java, HTML, CSS, Javascript, and Dust.js on a daily basis within TripAdvisor’s fast-paced iterative release process. Speed wins!
-
Software Engineer at Nterop
- Delivering features in the entire software stack in a Scrum team using Java, Spring, Hibernate, Maven, PostgreSQL, PostGIS, GWT, HTML, CSS, Javascript, PhoneGap, and Balsamiq Mockups.
- Performing requirements analysis, prototyping, product design and implementation, testing, documentation, release, deployment, and maintenance of nTerop’s application suite.
- Having ownership of several critical parts of the application suite including Maps and GeoSpatial features, Authentication and Access Control, and Search and Relevance.
-
Software Engineer Intern at Facebook
- Performed backend and frontend development using PHP, HTML, CSS, and Javascript.
- Worked on requirements analysis, design and implementation of an interactive Ad unit.
- Co-developed a feature for adding friends using QR codes as part of a Facebook Hackathon.
-
Research Assistant Intern at Technical University of Ilmenau
- Used C++ and OMNeT++ network simulator to simulate and benchmark malicious behaviours and appropriate countermeasures in a distributed Network Coordinates system.
Education
-
Masters in Computer Science at the University of Waterloo
As a member of the Information Retrieval Lab, my research was focused on statistical and unsupervised approaches to Natural Language Processing and Information Extraction:- Developed a learning agent in Python to automatically extract favorable and unfavorable aspects of a restaurant from customer reviews given a small set of dish names.
- Modeled a POMDP decision making agent for Insulin Therapy.
- Participated in Named Entity Recognition track of Text Retrieval Conference (TREC).
-
Bachelors in Computer Engineering at the University of Tehran
Developed a strong foundation in computer science and a broad understanding of software engineering, its tools and methodologies through a world-class curriculum and numerous projects:- Implemented an e-commerce website with inventory and order management using Struts2, Hibernate, JSP, and Ajax.
- Developed a mini database in Java supporting basic SQL queries, locking, and Hash/B+tree indexing.
- Implemented a full compiler in Java for a java-like object-oriented programming language.
- Built a web portal similar to now retired iGoogle featuring interactive gadgets using GWT and Ajax.
- Implemented a GUI FTP Client and Server, covering common FTP commands using Java and Swing.
- Developed a 2D multiplayer strategy game in C++.
- Implemented the complete TCP Protocol over UDP in java.
- Developed a data Compression/Decompression software based on Huffman Algorithm in C++.
- Improved an Ant Colony optimization algorithm for the task of detecting trends in spatial Databases.
- Assisted in development of a standard Persian text corpus and used it to benchmark various text classification algorithms.
- Implemented and evaluated different Query Expansion methods on Lucene.
- Attended the Cross Language Evaluation Forum (CLEF) competitions.
Awards and Achievements
- University of Waterloo Graduate Student Entrance Award
- Graduated as the 5th top student among over 100 Computer Engineering students.
- University of Tehran's Faculty of Engineering Award for the highest yearly GPA.
- Ranked 230th in nationwide university entrance exam among over 400000 participants.
Language Skills
English (Native fluency), Persian (Native), Portuguese (Learning)
Publications
- Enhanced AntTrend: A Powerful Spatial Trend Detector, M. H. Ahmadi, C. Lucas, Bachelor Thesis, School of ECE, University of Tehran, Feb. 2009.
- Farsi Text Classification Using N-grams and Knn Algorithm, A Comparative Study, B. Bina, M. H. Ahmadi*, M. Rahgozar, Proceedings of the 2008 International Conference on Data Mining (DMIN'08), July 2008, Volume II, 385-390. (*: corresponding Author)
Volunteer Work
Team member, mentor and program organizer at IAESTE Iran