Software Engineer2014 - 2016Rocksauce Studios
- Implemented the back-end of a Java RESTful API of Knod a review sharing/social networking app (http://staging.knod.com) with unit tests, integration tests, CD, CI with DynamoDB, and MySQL as data storage.
- Deployed on AWS stack with auto-scaling, load-balancing, with continuous integration Jenkins, and CloudWatch monitoring.
- Implemented a search feature with Elasticsearch using customized scoring and sorting functions.
- Implemented the admin interface of the TalkIT app using AngularJS.
- Helped with the development of other apps using Golang, Java, and Spring.
Software Engineer2012 - 2014University of Toronto
Technologies: AngularJS, jQuery, Java, Spring, Hibernate, HTML5, MySQL, DB2, WebSphere, Tomcat, GlassFish, RESTful services, Shibboleth
- Implemented from the ground up 3 successful student facing apps for the university. Worked full-stack on both the front-end and back-end.
- Built the site, myres.utoronto.ca, which manages student resident applications. I received great feedback from the students and student housing. Implemented a dynamic rule engine which cut down the time of changing residence/cohort rules or adding a new one to just a few minutes.
- Developed the site transferex.utoronto.ca, which helps exchange students to match their equivalent courses at the University of Toronto. Implemented search suggestions and Google-like auto completion with a customized radix tree based on favorable search terms.
- Worked on the site, rosi.utoronto.ca—performed Acorn upgrading and rewrote the student enrollment system and transcript order system.
Agile Engineer2011 - 2012XtremeLabs (now Pivotal Labs)
Technologies: Spring, Hibernate, Tomcat, Android, iOS, BlackBerry, Playbook, WURFL, JAXP, RSS, HTML5/CSS3
- Built an HTML5 mobile website framework With XL-Magic, built on top of a Liferay Portal to serve all various types of mobile devices including iPhone, Android, BlackBerry, and WAP phones.
- Implemented the content-delivery from variety of external feed back-end services using Java and Spring.
- Added features and bug-fixed other iOS, Android, BlackBerry, and Playbook apps.
Software Developer2010 - 2011Hyperlogic Media & Caro Systems (Contracts)
Technologies: PHP, Joomla, CMS, OCR, Java, Multithreading, Swing, Forte
- Developed custom features and modules for www.iiiglobal.org (PHP, Joomla based CMS website). It was telecommuting contract work.
- Implemented a Google custom search engine with customized search options, indexing and OCR PDF digital library and article upload feature.
- Migrated a project from Forte to Java for the energy and financial sector. The work required expert knowledge of Java core, Swing applications, event handling, and multithreading.
Application Developer2009 - 2010ConceptWave
Technologies: ConceptWave, Java, Swing, GWT, AJAX, FEST, Middleware (Soap, Java Socket, Web Services)
- Responsible for refactoring and adding features to the designer UI v5.0 using Java Swing.
- Resolved issues and added new features for the web UI using GWT and SmartClient AJAX components.
- Worked for ConceptWave, which is a leading provider of order management and product catalog management applications.
- Implemented a functional test using the FEST test framework.
Senior Java Developer2007 - 2009CPNI Inc.
Technologies: Java, J2EE, J2ME, BlackBerry, iOS, Agile/XP, TDD, WAP Push Pages, WML/XHTML, Standard iso20022 Pacs/Pain Messages, SWIFT Network, MySQL, Bouncy Castle, SSL, JMeter, FitNesse, JUnit, Selenium
- Leveraged a core Java, J2EE, J2ME, BlackBerry, and iPhone stack to develop cutting edge mobile financial-management applications on an Agile/XP team.
- Worked on interactive GUI J2ME applications for mobile phones, BlackBerry, and iPhone to enable money transfer, merchant payment plugin, and promotion/notification systems. Implemented a bank plugin API, using WAP push pages with WML and XHTML.
- Developed the server side: a high throughput transaction system between mobile and financial institutions with some pay-links and service host nodes in between. The transaction between the PAT system and banks were implemented based on standard iso20022 pacs and pain messages compatible with the SWIFT network. The system implemented and load tested both on WebSphere and Tomcat application servers on top of DB2 and MySQL database servers.
- Implemented security features both for sensitive data on mobile phones using Bouncy Castle and transaction backbone system between different nodes using SSL public-private keys and one way hash functions with private keys.
- Did test driven development covering functional and user acceptance test using FitNesse and JUnit tests. JMeter and Selenium were also used for conducting load and stress tests on various deployment combinations.
- Created build tools (Maven and Buildr), including some custom Groovy and Linux Shell scripts and occasional DB2 and WebSphere admin console scripts for deployment needs like remote deployment.
Java Developer2007 - 2007HyperOffice
Technologies: WebDAV, DMS. Tomcat, MS SQL, SQL Query Optimization, Lucene, ColdFusion, Mobile Synchronization (PIM Synchronization, SyncML and Sync4J), Funambol Module
- Maintained, added new features, and resolved issues of the HyperSlide system. HyperSlide was the WebDAV interface of the HyperOffice DMS application. The server was implemented in Java running on a Tomcat server with MS SQL Server as the database. It was a challenge to fully support different operating systems since the implementation of WebDAV standards varies on different operating systems.
- Made the system compatible with Windows Vista, XP, Windows 2K, Macintosh, and Linux. The database connection was based on direct JDBC access so a good knowledge of SQL queries was required.
- Tuned the performance for HyperSlide SQL queries. Monitored the database to identify high-load queries and optimized them. Also implemented a cache system to minimize database access.
- Developed Java tags for the ColdFusion server and setup the server on IIS and JDK1.6.
- Implemented a search engine for DMS based on Lucene. Added automated tests and resolving issues for HyperOffice mobile synchronization (PIM synchronization based on SyncML and Sync4J) system based on the Funambol Module.
Java Developer2002 - 2007Ashna Group & Meraat Andisheh
Technologies: Java, J2EE, Struts, Hibernate, Oracle Database, Liferay Portal, SOA, ESB (Mule), ActiveMQ, Agile/XP, Wicket, Spring, PostgresSQL
- Developed an enrollment and registration application for Valiasr and Shariati Technical Universities. The system includes registration, financial, reporting, course timetabling, and announcement sub-systems.
- Implemented a student enrollment subsystem using Struts, JSTL, Wicket, Spring Framework and Hibernate on a PostgreSQL database and Tomcat Application Server.
- Developed a timetabling app using the Ant Colony Optimization algorithm to suggest to the students a timetable for their courses based on their preferences and availability of the lectures/locations.