Photo

Marouan ABBESSI

394, Pacific Avenue - 94111 San Francisco , CA - United States
(415) 596-2123
32 years old
marouan.abbes@gmail.com

Enterprise Software Engineer

Objectives

 I am currently an intern in software engineering, and my objectives are :

- Gaining a deeper understanding of the various technics for building modular information systems (through OOA&D, design patterns, mastery of frameworks that explicitly support modularity (ex : OSGI framework in Java, messaging for systems integration)).

- Putting the previously mentioned software development techniques and best practices into a software development process (agile approach to UP, User-story driven Agile process .. )

- Gaining knowledge and experience of data-intensive application development, data mining techniques and its application to businesses.

 

Professional Experiences

Software engineering associate

Tacit Knowledge , San Francisco

Since June 2012
San Francisco - United States

As a Software engineering associate at Tacit Knowledge, I have been  through several projects for its account mainly related to the e-commerce industry, which represents for me a valuable occasion for frequenting and dealing with real life, high-quality deadline-constrained Software development projects.

Back-end developer

ESPRIT, Tunis

From October 2011 Till March 2012
Ariana - Tunisia

As one of three students team, we were modeling and developing a multi-user distributed web application that simulates a stock marketplace. 

Technologies used : 

-UML

-NODE.JS's express and socket.io modules  for real-time data push

-JEE5 back-end stack : Ejb3, Jpa, Servlet 3.0, Jsp

-JQuery,AJAX.

-HTML/CSS

Java Application for Portfolio Risk Assessment

ESPRIT,Tunis

From February Till June 2011
Ariana - Tunisia

I modeled and developed a Java swing application that:  

• Connects to yahoo servers and extract historical data.  

• Constructs a Portfolio of equities. 

Evaluate portfolio returns risk using VaR(value-at-risk) risk assessment criterion. 

Optimally allocate wealth amongst the underlying assets.  

• Using Harry Markowitz mean-variance criterion. 

Technologies used:

-UML.

-JAVA SE.

-R statistics software interfaced with Java. 

-MySQL.

 

web developer (PHP, AJAX, XHTML,Mysql)

CNI (centre national d'informatique)

From July Till July 2010
Ariana - Tunisia

It is about my first year engineering's summer internship, during which I shared with two colleagues the duty of building an intranet module for managing student related tasks (school schedules, processing students application) on account of SUP'com higher institute of Telecommunication.

Educational Background

Master 2 IMAFA

Polytech’Nice, Sophia Antipolice University

September 2013
Nice - France

Masters degree (IMAFA) in informatics and mathematics applied to finance and insurance.    

National Software Engineer Diploma

ESPRIT

September 2013
Ariana - Tunisia

Engineering degree in informatics and information systems.    

Skills

OSGI Framework

In my ongoing quest for producing highly modular, reusable as well as maintainable software designs, I have had an interest in OSG framework, which is the Java modularity framework that builds an explicit modularity layer on top of the JVM and makes it possible to design and build highly responsive,  dynamically extensible Java applications, features that are regarded to be the future trend of the Java architecture.

 

 

GoF design patterns mastery

 Having experienced for a long time with  Java and OOA&D, I shifted my interest to using software design patterns as a great mean for making clear software designs, and as a mean to communicating software design problems and solutions.Software design patterns shifted to the better my way of thinking about analyzing software systems and detecting designs distortions, at a high level stand.

 

UML and Software development processes

Mastery of UML and some agile software development processes, namely UP, Scrum and Extreme programing.

 

HTML/CSS

I have an excellent mastery of Html and CSS development

Javascript/AJAX/JQUERY/JSON

Excellent mastery of client side Javascript programming language, Jquery and  Ajax for asynchronous communication with web servers .

GIT (distributed version control system)

 I had the opportunity to work extensively with GIT during  a web project which exposed  me to a real-life collaborative development environment  .

 

Maven and Gradle (build tools)

I worked extensively with maven throughout my projects, which made building  Java applications  an easy ask to do.

As for Gradle , I had the opportunity to use it as  a build tool ,once in a project , which was a requirement of the client.

Unit testing (Junit) and Functional Testing (Geb)

As one of the XP process practices, test-driven development  constrained me to write tests and then pass them while implementing the relative feature , which turned to be a secure strategy for developing Java applications.I used JUnit as a unit-testing framework.

I also had the opportunity to work on acceptance-testing, and I found the use of  "GEB" framework very beneficial since it offers an accessible developing model for automating web browsers and doing functional testing.

Web Benchmarking (using Apache JMeter)

I had the opportunity to work with Apache Jmeter which is a load-testing open source GUI tool, when i was assigned to a team of two engineers to develop a command line tool for webserver benchmarking that automates load-testing  , which is based on JMeter.

Apache Sling

I have dealt with Apache Sling which is a web framework for developing restful-styled back-end applications.The important thing about this framework is that it has an innovative content-centric programing model which made me experience a new way of developing back-end Java applications.

 

Adobe CQ5 Authoring&Components development

I had the chance to work on customizing and developing components for Nike  Adobe CQ5 authoring needs.

Adobe CQ5 is a proprietary content management system which is built on top of the Apache Sling web framework, it leverages all the power of OSGi and content-centric approach that Apache Sling  is adopting to bring a robust content management system.

 

NODE.JS

I had exposure to NODE.JS when I wanted to implement a Server push feature into one of my school applications and I was impressed by its event-driven server's paradigm and especially its SOCKET.IO plugin that I leveraged  to easily implement  the server push feature (pushing real-time stock prices to all connected users) .

PHP5 and Symphony framework

I have had a long exposure to PHP, being the first server-side programming language that I learned and It was a great language to work with especially when its Object-orientation layer had seen the light with PHP 5.

I also had the chance to use Symphony framework which is a PHP framework for developing MVC web applications, and I was impressed by its great capabilities and gain in productivity that it allows.

Spring AMQP (with Rabbitmq)

I encountered Spring AMQP and Rabbitmq messaging broker (based on AMQP protocol) when I needed a clean and reliable way to integrate and communicate, asynchronously, different parts of my Hedge Fund simulator end-of-studies project (ongoing project).

Shell scripting

I have used shell scripting to automate repetitive tasks, namely when I created a wrapper for JMeter to automate servers load testing.

Object oriented analysis and design (OOA&D)

 I have dealt for a long time with object oriented analysis and design through developing with Java programming language which gave me the skills of building robust software designs that are extensible and flexible.

 

JAVA SE programming

I have a long and interesting experience in developing with Java standard edition  through which I dealt with ,practically, all its features and standard APIs, for Instance ,applying polymorphism using interface-based programming model, I ,also, dealt with multi-threading programming ,  and low-level network programming using sockets.

JAVA Enterprise Edition (JEE)

 I have had a long and great experience dealing with JEE APIs  namely Servlet 3.0  (with Asynchronous API for server-push programming model ), JSP,  EJB 3.0, JPA 2.0 (HIBERNATE Implementation).

 

Spring core freamework

I dealt with Spring Framwork during one of my internship projects that I was assigned to, and i had the opportunity to discover interesting programming features such as  : Dependency Injection and IOC containers which  allowed me to be more efficient in making more robust software designs and armed me with great understanding on how to think of a problem in different ways with respect to programming styles.

Spring MVC

After mastering the core principles of Spring core framework, I was able to approach Spring implementation of MVC-based web frameworks , which is a very powerful for creating robust, reusable and stable Java web applications.  

Languages

Arabic

Native language

English

Fluent

French

Fluent

Personal Interests

Sports :Basketball &Swimming

-I am a basketball player and I was a member of the winning team of the scholar Basketball Regional cup of Jendouba, Tunisia  for cadets in 2005.

-I also enjoy Swimming. 

 

Traveling

I love traveling; I once had visit to Spain as part of the excellent scholar performance students to participate to the EURO/ARABIC youth meeting, Madrid from 10 March 2003 to 21 March 2003. 

Reading for Science

I enjoy reading a lot mainly scientific readings namely : mathematics, physics, finance and biology. 

Created with NetCV