Alessandro Ceseno

JAVA ARCHITECT
JAVA SOFTWARE ENGINEER

Alessandro Ceseno Degree in Information Technology Engineering at University of Pavia - Italy
Programming, Scripting Languages, Markup languages:
JAVA, JEE, JSP, SQL, Javascript, Ajax, HTML5, XML, C, PL/SQL, Matlab, Labview, PHP, assembler
Development Tools: Eclipse, NetBeans , JCreator.
Operating Systems: Linux (Ubuntu, Debian, Red hat, Suse), Unix Aix, Windows.
DBMS: MySQL, Oracle, PostgreSQL, DB2.

Certificates:
November 2011 Certificate Better Programmer™
July 2010 Sun Certified Programmer for the Java 2 Platform, Standard Edition 6.0.
July 2007 Certification Cork Language Centre International (Ireland) English Course
February 2007 Certification Kofax Technical Solutions Specialist certified in Ascent Capture, Dicom Europe, Belgium.
October 2005 Specialization certificate of developer C, Unix, SQL, Java, Milano - Italy.

Other skills:
Application Server (JBoss, Tomcat, BEA WebLogic), Alfresco Web Content Management, UML Methodology, design pattern (MVC, DAO), JSF - Java Server Faces (MyFaces and Richfaces components), Struts, API Filenet, JUnit, Versioning: Tortoise SVN, Aegis, Logging Service: Log4J, Process Build: Ant, Maven 3. JBoss Clustering, JBossCache, JGroups (toolkit for reliable multicast communication), JGroups Configuration, JBossCache Configuration. Threads, Thread States and Transitions, Concurrent Access (Concurrent Access Problems and Synchronized Threads), Thread Priorities, Synchronizing Code, Synchronization and Locks, Thread Interaction, Deadlocked Threads. Object-oriented design, use case modeling, robustness analysis, Traditional Object-Oriented Design, Emergent Object-Oriented Design, TDD, BDD, Design Patterns, over design deep study, testing deep study, CRC Cards Methodology, Writing Clear and Maintainable Code, Agile Methods, eXtreme Programming, Continuos Integrator (Hudson), Refactoring, Collettive Code Owenership, Coding Standards, Pattern-directed refactorings, Agile Software Craftsmanship, Hibernate, Spring, Web Services (Axis 2), AJAX, secure coding techniques.Database schema design including normalisation, de-normalisation and query performance analysis.

Alessandro Ceseno - Sun Certified Programmer for the Java 2 Platform, Standard Edition 6.0

Development

Technologies & Methodologies

JAVA

Java is an object-oriented programming language developed by James Goslin and other engineers at Sun Microsystems

ECLIPSE

Eclipse is an open source project related to the creation and development of a platform or development of a more integrated development environment (IDE - Integrated Development Environment). Eclipse is written in Java ... The Eclipse Foundation is a non-profit organization

MYSQL

MySQL is a DBMS (DataBase Management System) open source relational. An RDBMS organizes data into tables, based on the relations between them.

PostgreSQL

PostgreSQL is the most advanced open source database. Process information from SQL to an object-oriented language like Java can lead to excessive waste of time, this problem is called impedance mismatch, PostgreSQL allows inheritance of a kind ... one of the basic concepts of object-oriented programming, for example, you can declare a type and a type-employed person based on the type person ...

TORTOISE SVN

Tortoise SVN is a software version control in the development of an application

UBUNTU

Ubuntu is a GNU / Linux Debian-inspired, easy to install and use, smooth release of new versions, more attention to the hardware support on laptops

JSF

JSF Java Sever Faces is a Java technology-based architectural design patterns Model-View-Controller (MVC) and described by a document specification (JSR 127). Its purpose is to simplify the development of 'user interface (UI - User Interface) a Web Application

Hibernate

Hibernate is an open source platform for developing Java applications that provides a service ORM (object relational mapping), or that manages the representation and maintenance of a relational database system Java objects. Hibernate allows persistence of data in a database

Tomcat

Tomcat is an open source web container developed by the Apache Software Foundation. Implements Servlet and JSP specifications from Sun Microsystems, thus providing a platform for running Web Application developed in Java language. Its distribution also includes the standard features of traditional web server, Apache, which correspond to the product. Tomcat is licensed under the Apache Software License, and is written entirely in Java, so it can be run on any platform, on which is installed with a JVM (Java Virtual Machine).

Jboss Application Server

Jboss is an open source application server that implements the full standard JEE. JBoss is written in Java, Application Server and is a platform that runs on any OS (operating system) that supports Java.

Log4J

Log4J is a logging service for debugging and testing applications.

Ant

Ant is an Apache project, open source, Ant is a software to automate the build process.

UML Methodology

UML Unified Modelling Language is a modeling language whose characteristic is the Object Oriented paradigm, allows the description of object-oriented software design solutions. The UML allows the description of the application domain, the behavior and structure of an object-oriented software.

CRC Cards

Class Responsibility Collaboration Cards is an object-oriented software design methodology. In any "paper" is the name of the class, and either the names of the superclasses of the subclass, the responsibility of the class in question (what to do), the names of other classes with which the working class. The CRC cards have the advantage of being able to manage and reduce a complex software design.

Design Pattern

Design Pattern A design pattern is a general design solution to a recurring problem that can be defined as a practice model for the solution to a problem encountered in software development. A design pattern is related to design aspects of the software.

JUnit

JUnit Is A Unit Testing Framework for Java.

Test-Driven Develpoment

The cycle of TDD:
Add a test
Run all tests and see if I fail the test
Write code to allow the tests to succeed
Run automated tests and see what happens
Refactoring code

Continuos Integration

Administer and automate the build process ...
Integrating the work of the individual in the team's work
Feedback on the code changes, but also reports, documents
Decreased considerably to the costs of errors, problems of integration
The automated build process and allows regular intervals to check if the code changes they fail tests that were working, if the tests are successful is "tagged" version of the code.

Coding Standard

Administer and automate the build process ...
Great if you use the code when it is collective ...
allows a better reading of the code to others ...
but not only them ...

Refactoring

Restructuring of the code
It does not add functionality
But simplifying the design improves ...
Simplifying design and code
Implemented by means of short steps

Collettive Code Ownership

Communication in Team
Helping others
Ask for help

XProgramming

XProgramming is a discipline of software development is based on values ​​of simplicity, communication, feedback and courage.