Francisco Assis Rosa
Sudbury, MA
francisco@assisrosa.com
Summary
- Masters degree in Electrical Engineering and Computer Science, BSC in Applied Mathematics and Computer Science.
- Over eighteen years of software development experience.
- Over eleven years of development technical lead experience.
- Over seven years of development team management experience.
- Experienced with all phases of the software development process with strong background on analysis and design.
- Author and co-author of several papers in the area of software development.
- Open-source contributor.
Qualifications
- Programming Languages: C, C++, CSS, Java, Javascript, Perl, SQL.
- Markup Languages: HTML, SGML, XML.
- APIs/Infrastructures/Frameworks: UNIX concurrency and communication API, J2EE components (Java JSP, Java Servlets, Java JDBC, EJB, JNDI, JMX, JAXP), Prototype, Spring, Hibernate, Lucene, iText, PDFBox, JPedal, Java Server Faces, JUnit, WebWork 2.2.X, Struts 2.0, TestNG, scriptaculous, Hadoop, Hive.
- Databases: MySQL, Oracle, Postgres, Sybase.
- Methodologies: Design Patterns, analysis and design methodologies.
- Operating Systems: Microsoft Windows, UNIX (IRIX, Solaris, System V), Linux (Redhat, Fedora Core, Mandrake, Ubuntu).
- Servers and Development Tools: Apache Tomcat, Apache Web Server, Bugzilla, Cruise Control, Cobertura, CVS, Eventum, NetBeans , Selenium, Subversion, Cloud Computing (Amazon's EC2, S3, EBS).
Professional Experience
Show Details-
March 2009 to Present, DataXu, Boston, Massachusetts, USA.
- Principal Software Engineer, Learning System Team.
As part of the team was responsible for the development of a support
infrastructure for running of flows of Hadoop Jobs, responsible for
the development of Hadoop processing jobs in the learning chain, assisted
in the definition and implementation of a storage layer for the product,
assisted in the deployment and releasing of the product, responsible for
the implementation of API interaction with third party services.
Technologies involved included: Linux, Java 6.0, Maven, JUnit, subversion, Hadoop, Hive, Postgres, Hibernate, Lucene, Web Services.
- Principal Software Engineer, Learning System Team.
As part of the team was responsible for the development of a support
infrastructure for running of flows of Hadoop Jobs, responsible for
the development of Hadoop processing jobs in the learning chain, assisted
in the definition and implementation of a storage layer for the product,
assisted in the deployment and releasing of the product, responsible for
the implementation of API interaction with third party services.
-
February 2006 to March 2009, Co-Founder and Chief Technology Officer at Tizra, Inc.
Tizra is working on web-enabled tools to help publishers control and profit from online content. It's services will let publishers precisely
manage the presentation, packaging, pricing, and license terms for bundled, unbundled, and rebundled products.
As CTO at Tizra was responsible for:- Participation in the definition of the company strategy.
- Definition and deployment of the physical architecture for the Tizra Publisher system. This included definition of machine specification, system administration on system machines, security patching, backup procedures definition and implementation, disaster recovery documenting, DNS management, domain management, digital certificate management.
- Definition of software architecture for the Tizra Publisher System. The architecture of Tizra Publisher was heavily based on software development best practices including the use of Software Design Patterns and integration with open-source production proven infrastructures. Was responsible for the analysis and selection of software infrastructures and frameworks to ground the application architecture upon.
- Hands-on technical leadership in the implementation of the Tizra Publisher System.
As lead developer for the company, was responsible for the majority of the
implementation of the defined software architecture.
Technologies involved included: Linux, Apache 2.X, Tomcat 5.X, Java 6.0, Ant, XDoclet, JUnit, TestNG, WebTst, Subversion, PDF, Hibernate 3.2, Spring 2.0, Struts 2.0, iText, Lucene, Javascript, AJAX, Prototype, Scriptaculous. - Management of contractors to assist in the development of the Tizra Publisher System.
- Establishment of development process, development tools infrastructure to support a sound multi-user development flow. An agile metodology, SCRUM, was adopted to allow the company main product to evolve quickly and to react as easily as possible to changes in the company strategic direction following the "release often" approach. A 2 to 4 weeks cycle was adopted for the most part to fulfill this agility requirement. Tools like bug tracking system, version control system, knowledge management system were put in place to allow for a structured development effort.
- Establishment of a testing infrastructure to support the development of the system. Unit and system integration (both at the API and UI level) testing was enforced as part of the development effort. Continuous integration and coverage analysis were put in place to ensure the maintenance of good levels of quality upon live releases. With this infrastructure, Tizra Publisher was able to take advantage of a test coverage rate well above industry standards.
- Deployment, maintenance of database servers for support of the Tizra Publisher system. This included installation, tweaking and monitoring of database servers underlying the Tizra Publisher System.
- Establishing requirements, planning and scheduling of agile development cycles for quick and regular delivery of new functionality. As part of the SCRUM metodology, was an active contributor to the SCRUM backlog discussions and was responsible for defining the SCRUM sprints resulting from the backlog discussions.
- July 2000 to February 2006,
Dynamic Diagrams/Ingenta,
Rhode Island, USA.
- Manager of Development in the US . Responsible for the management of the full Ingenta development team in the US in all assigned projects. Management of software development staff, collaboration with sales and producers group towards creating proposals, estimates, evaluating technical feasibility of projects, investigating new technologies, consulting with clients, collaborating with other groups in the company towards developing cross-group work, promoting intra-company knowledge sharing.
- Architect and main developer of Ingenta's website publishing platform product for the ICS/Websites unit.
Designed a reusable, configurable platform featuring a tight integration between Content Management, Production, Delivery,
Search, Information Commerce and Statistics allowing customers to take control over all aspects
of websites building. Implemented the first version of the platform and supported sales in
selling solution to customers like UNESCO, OECD, World Health Organization.
Platform was built using Java 5.0, JSPs and Servlets for the presentation layer, EJBs
for some business layer components of the application, JDBC for database connection, JAXP for XML processing, JNDI
for naming and directory services (for DB connection pooling connection, EJB connection), JMX for
components management, Ant for integrated build process, XDoclet for automatic code generation,
JUnit and WebTst for unit and system integration testing.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 5.X, Java 5.0, JSP, Servlet, EJB, JDBC, JMX, JNDI, Ant, XDoclet, JUnit, WebTst, CVS, PDF, Javascript. - Architect and Developer in the
British Standards Institute/British
Standards Online project.
This project aimed at building a site encompassing a collection of
around 40,000 standard documents in PDF format. It involved building/deploying all the components of a fully
functional site like search, statistics, access control, pdf document serving, banner adds. Worked
as architect and developer on the project being responsible for some of the architectural decisions
for the project's infrastructure, assisted in access control deployment, configuration and
enhancement, developed the statistics module, architected the infrastructure for PDF delivery
with watermarking, developed the infrastructure components for the functioning of the
site's components as a whole, assisted in development, staging and live machine
configurations. Performed hands-on development implementing several of the site's components
using Java 5.0, JSPs, Servlets and JDBC for database connection. Intervened in the system tweaking
process by diagnosing database usage issues such as database schema changes for performance
enhancement, instrumentation for detection of database connection and statement leaks. Looked
into Tomcat and Apache configuration issues to address smarter use of shared resources (e.g.
application server supplied database connection pooling, mail session sharing). Worked on
performance analysis for determination of performance bottlenecks and put in place solutions to
resolve those same performance bottlenecks (e.g. better use of caching, restructuring of algorithms).
Technologies involved included: Linux, Apache 1.3.X, Tomcat 5.X, Java 5.0, JSP, Servlet, JDBC, Ant, CVS, PDF, Javascript. - Developer in the AccessScience search enhancement
project.
This project aimed at providing a performant and sophisticated search component to the
AccessScience platform. As developer in this project, worked on enhancement and maintenance
of servlets, JSPs making use of the Lucene open-source search engine library.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 4.X, Java 1.4, JSP, Ant, CVS, Lucene, SGML, Javascript. - Technical lead in the McGraw-Hill project AccessMedicine. This project aimed at building a large website hosting full text SGML for a collection of 24 inter-related books and complementing content. Started as developer, later promoted to technical lead. Developed a configurable, extensible, reusable content management system (see MetaEdit), deployed in the project. Worked in SGML/XML handling scripts using Perl and nsgmls. Worked in the reengineering of a legacy access control system written in Java allowing the system to evolve from an unreliable status to a very acceptable state leading to trusted use (and later deployment to other projects). Technologies involved included: Linux, Apache 1.3.X, Tomcat 3.X, Java 1.4, JSP, Servlet, Perl 5.6.1, Perl CGI, CVS, SGML, XML, Javascript.
- Architect and developer in the
Oxford University Press/Oxford Scholarship Online
project.
This project aimed at building a scholarship book repository of about 700
books in XML format (for launch) and several programmed additions. It involved providing an extensible
editorial management tool to allow Oxford University Press to control their sources
and their publishing to the site. As manager of development contributed to the
design and architectural decisions for the site, interaction with customers, assignment
of tasks, monitoring of progress with adjustment of responsibilities and pitched in
as developer for the development and completion of infrastructure and components.
In a developer role, provided an XML handling infrastructure based on existing open-source code
to simplify development, assisted with algorithms for the resolution of XML to HTML conversion,
assisted with enhancements and maintenance of the search component, assisted and provided enhancements
for the access control component. For content management system, the MetaEdit system (see MetaEdit)
was used and I assisted developers in using the toolkit and providing enhancements as required.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 4.X, Java 1.4, JSP, Servlet, JDBC, Perl 5.6.1, Perl CGI, CVS, XML, Javascript. - US development lead in the
World Tourism Organization eLibrary
project.
This project aimed at building a portal around content placed in the
ingenta.com aggregation. It involved providing an extensible editorial management tool to allow World
Tourism Organization to control their sources and their publishing to the aggregation and portal.
A reusable abstraction was built over the MetaEdit system (see MetaEdit)
to support the required document types and interaction flows. An interface to the ingenta.com
repository of documents was developed using Perl to allow for documents to be published.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 4.X, Java 1.4, Servlet, JDBC, Perl 5.6.1, CVS, PDF. - US development lead in the
World Bank eLibrary
project.
This project aimed at building a series of 7 geographical themed portals around content placed in the
ingenta.com aggregation. It involved providing an extensible editorial management tool to allow World
Bank to control their sources and their publishing to the aggregation and all portals.
A reusable abstraction was built over the MetaEdit system (see MetaEdit)
to support the required document types and interaction flows. This abstraction was put in place
and later reused in other projects (see World Tourism Organization).
also co-responsible for the definition of interfaces between
the editorial tool and the ingenta.com repository loader.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 4.X, Java 1.4, Servlet, JDBC, Perl 5.6.1, CVS, PDF. - Author of a content management toolkit (MetaEdit) to
allow the creation of customer specific content management systems.
Responsible for the
phases of requirement analysis, design, development and maintenance of a core code
shared and redeployed in several projects such as McGraw-Hill's AccessMedicine, Oxford University
Press' Oxford Scholarship Online, World Bank's eLibrary, World Tourism Organization's eLibrary.
Developed a MVC architecture for the problem, addressing issues such as Object to Relational Mapping,
XML driven language for system programming, component configuration with goal of easy replacement.
Solution was implemented in Java using Servlets and JDBC, with interaction with Perl for some customer specific
implementations.
Technologies involved included: Linux, Apache 1.3.X, Tomcat 4.X, Java 1.4, Servlet, JDBC, Perl 5.6.1, CVS, PDF. - Responsible for the daily maintenance of databases in the Providence
Office.
Responsibilities included creation, copying, backing up, restoring, performance enhancement
of Sybase (11.9.2, 12.5) and Oracle (8i) databases for support of development and live servers.
Responsible for the synchronization for putting in place redundancy mechanisms for Sybase database
fault tolerance. Responsible for from-scratch configuration of database servers.
Responsible for emergency on-call for Sybase database issues. During this time was also
responsible for the successfully porting of database servers within two geographically
distinct hosting locations, having guaranteed minimal downtimes (less than 60 seconds)
with complete port of data between servers.
Technologies involved included: Sybase 11.9.2, Sybase 12.5, Oracle 8i.
- February 1998 to June 2000,
Abaqus Inc,
Rhode Island, USA.
- Member of the viewer development group taking part in the development of the multi-platform ABAQUS/CAE interactive system .
- Development lead for projects in the area of numerical processing, mathematical
algorithms, user interfaces, performance optimizations, animation generation and animation playback.
Participated in several development phases including requirement analysis, usability tests, design,
implementation and maintenance of implemented solutions.
During the course of this work, got significant experience in C++, made use of performance optimization
analysis tools and achieved significant improvements in assigned tasks, designed and implemented
complex algorithms, investigated and learned about animation concepts and data formats and put
in place solution for animation generation and playback.
Technologies involved included: UNIX, Windows platform, C, C++, ClearCase, Purify tool, IRIX profiler, Quicktime format, AVI format.
- September 1995 to January 1998,
National Institute of Engineering and
Computer Systems (INESC), Lisbon, Portugal.
- Researcher in the Esprit DISGIS Project (Distributed Geographical Information Systems).
Worked extensively with analysis and design methodologies like UML, OORAM, Use Cases Modeling,
and worked on specific implementations using the C++ language.
Technologies involved included: UNIX, C++, UML, OORAM, Use Cases Modeling. - Researcher in the DASCo Project (Development of Distributed Applications with Separation of Concerns).
Authored and co-authored several Design Patterns in the area of Software Engineering (see Publications).
Implemented solutions based on existing design patterns.
Technologies involved included: C++, Design Patterns.
- Researcher in the Esprit DISGIS Project (Distributed Geographical Information Systems).
Worked extensively with analysis and design methodologies like UML, OORAM, Use Cases Modeling,
and worked on specific implementations using the C++ language.
- March 1991 to May 1995, Computer Assisted Mechanical Engineering
Laboratory (LEMAC), Lisbon, Portugal.
- Researcher in the Brite INSTANTCAM Project on the development of
software for rapid mechanical part prototyping.
Worked on the successful delivery of a software component for the calculation of thickness
for triangulated surfaces. Code,
written in C, involved complex geometrical algorithms and graphical presentation
of results.
Technologies involved included: UNIX, C. - Developer in the Automatic Laminate Stacking Software Development Project for
Deutsch Aerospace Agency (DASA).
Developed a software component to perform automatic calculation of positioning
of laminates within layers according to specific configured rules, and to perform
graphical presentation of achieved results.
Technologies involved included: UNIX, C, OSF-Motif. - Developer in the Craft IMES Project on the development of software for the design of
injection molds.
Worked on the development of an AutoCAD module for verification of triangulated surfaces.
Worked on Workflow software for the support of the mold development process. Consulting
work was involved with visits to customers and plants for requirement gathering,
followed by design of systems to be implemented.
Technologies involved included: Windows, C, Lisp, AutoCAD.
- Researcher in the Brite INSTANTCAM Project on the development of
software for rapid mechanical part prototyping.
Worked on the successful delivery of a software component for the calculation of thickness
for triangulated surfaces. Code,
written in C, involved complex geometrical algorithms and graphical presentation
of results.
Education
-
1998, Masters Degree on Electrical Engineering (2 year degree), Instituto Superior Técnico, Lisbon, Portugal
Specialization area: Informatics and Computers
Seminars Average Mark: 5 (in a maximum of 5)
Final Mark: 5 (in a maximum of 5) -
1993, BSC in Applied Mathematics and Computer Science (5 year degree), Instituto Superior Técnico, Lisbon, Portugal
Specialization area: Computer Science
Final Thesis Mark: 20 (in a maximum of 20)
Final Average Mark: 16 (in a maximum of 20)
Open-Source Projects
Show Details- June 2005, Author of an open-source tool (GPL licensed) for light-weight time tracking
and project management:
TrackItEZ.
Implemented a lightweight time
tracking and project management tool that addresses the multiple developer and
multiple project management scenario and simplifies the project time tracking capturing.
Technologies involved included: C#, .NET, Windows. - December 2003, Author of an open-source tool (GPL licensed) for web applications/sites test management:
WebTst.
Implemented an extensible tool to allow developers,
quality engineers and hosting staff to develop and maintain web application system integration
testing. Solution was developed in Perl, and involved significant investigation of the inner
workings of the HTTP/HTTPS protocols, and a significant investment in software packaging
for wider audience distribution.
Technologies involved included: Linux, Object Oriented Perl, mod_perl, SSL, Apache.
Teaching Experience
Taught several courses including:- 1997, Object-Oriented System Analysis, post-graduate course. Informatics Section of the Portuguese Treasury Department
- 1996, Software Engineering, graduate course. Technical University of Lisbon
- 1996, Introduction to Informatics, graduate course. Independent University
- 1996, Introduction to Programming and Databases, graduate course. Independent University
- 1996, Object-Oriented System Analysis, post-graduate course. INA (Portuguese Institute of Administration)
- 1995, Object-Oriented Programming and the C++ Programming Language, post-graduate course. Rumos
- 1992, Introduction to the UNIX Operating System. LEMAC
Publications
All publications can now be found online via a Tizra AgilePDF powered site. Check out the new publications site. Let me know what you think.
- A.R. Silva, F. A. Rosa, T. Gonçalves and M. Antunes
"Distributed Proxy: A Design Pattern for the Incremental Development of Distributed Applications"
Proceedings of the 2nd International Workshop on Engineering Distributed Objects (EDO 2000)
Springer-Verlag, LNCS.
November 2000. - A.R. Silva, F. A. Rosa, T. Gonçalves,
- F. Rosa,
"Configuration of component-based distributed applications ",
Masters Degree Thesis,
Instituto Superior Técnico, Lisbon, Portugal, 1998. - F. A. Rosa, A. R. Silva,
“Functionality and Partitioning Configuration: Design Patterns and Framework”,
IEEE Proceedings of the 4th International Conference on Configurable Distributed Systems,
Annapolis, Maryland, USA, May 1998. - A. R. Silva, T. Gonçalves, F. Rosa, Arne-JØrgen Berre and Jan Øyvind Aagedal,
"Organisation. Information System and Distribution Modelling: An Integrated Approach",
IEEE Proceedings of the First International Enterprise Distributed Object Computing Workshop EDOC'97,
Gold Coast, Australia, October 1997. - A. R. Silva, F. A. Rosa, T. Gonçalves,
"Distributed Proxy: A Design Pattern for Distributed Object Communication",
In Proceedings of the 1997 Conference on Pattern Languages of Programs PLoP’97,
Allerton House, Illinois, USA, September 1997. - F. A. Rosa, A. R. Silva,
"Component Configurer: A Design Pattern for Component-Based Configuration".
In Proceedings of the 1997 European Conference on Pattern Languages of Programs EuroPLoP’97,
Siemens Technical Report 120/SW1/FB, Kloster Irsee, Germany, July 1997. - A. R. Silva, F. Rosa, T. Gonçalves,
"RM-ODP Using OOram". DISGIS (Distributed Geographical Information Systems) - Models, Methods, Tools and Frameworks,
ESPRIT Project Nr. 22.084, August 1996. - L. Faria, T. Gonçalves, F. Rosa,
"Automatic Determination of Stacking Sequence for the Composition of Laminates ",
LEMAC Technical Report, 1994. - T. Gonçalves, F. Rosa,
"Offset of Triangulated Surfaces applied to the Stereolithography Technique",
Degree Thesis,
Instituto Superior Técnico, Lisbon, Portugal, 1993.
“Framework Description Using Concern-Specific Design Patterns Composition”,
Special Electronic Issue on Application Frameworks Symposia,
ACM Computing Surveys, Vol. 32, No. 1, March 2000.
Other information
- Citizenship: Portuguese
- US Visas: Green Card Holder
- Spoken languages: fluent in Portuguese and English; good knowledge of Spanish and French.
- No Fluff Just Stuff alumni.