Curriculum Vitae
Pedro Dias, Eng.
Tel: 078********
Email: *****.******.****@*****.***
PERSONAL OBJECTIVES
My objective is to be a valued and successful person in work, personal life and society. I aim to achieve my potential and to be an asset in my chosen career, through personal challenge and teamwork.
EDUCATION
1999 - 2006 University of Minho (Portugal ) Computer Science and Systems Engineering (2:1)
2005 - 2006 University of Bristol (3rd and 4th year units) of Computer Science
CAREER HISTORY
[09/2015 – 01/2016] RootBox Solutions, Ltd
While still doing some remote support work with my previous project at Spafax. In November 2015 and January 2016 I’ve decided to start working on a photo bank website where users will primarily be able to upload photos and also link up with Google maps and trip advisor. I’m using AngularJs, WebSockets and NodeJs and also FireBase as NoSQL (Cloud) Database.
[05/2014 – 08/2015] Solution Architect/ Team Lead at Spafax Entertainment London – www.spafax.com
Leading a team of 3 Developers to develop a work management system to process orders from an in-house application. These orders would contain data to be consumed and transformed and its result would be saved on a metadata database. Application developed using Entity Framework 4 Code-First and services exposed using Mvc WebApi WCF and consumed using AngularJs. I was responsible to gather requirements from the Product Owner and we would work close on regular meetings to check on work being done. Using the Scrum methodology, the team would work on the user stories that we had on our backlog. The environments, except each developer environment, were configured using Azure. The deployment was also done via Visual Studio to Azure.
[08/2013 - 04/2014] .NET Developer at Universal Music - www.universalmusic.com
Responsible for Universal Music CMS Japanese Website http://www.universal-music.co.jp/, build using Umbraco v6 and later upgrade to v7, and also responsible for the legacy Product Editor and the new Product Editor that support the CMS site. Product Editor is build using MVC 4 C# and AngularJS for front end, WebAPI and ServiceStack for RESTFull connections and SignalR for real time connections, MSMQ for message queue and RavenDB as Document Database and using Lucene Search Engine. Castle Windsor for Dependency Injection, Nunit and Moq for unit testing and using TDD. During the import of the product from Central Catalogue into our product editor we use SQL Server database with store procedures to transform and/or prepare data into the product editor. The product Editor will then have the ability to update product data including images, and affiliates links from Amazon, iTunes, etc.. It will update the product from difference sources and transform the product accordingly with the business rules. As a final step it will publish them to the CMS. Running Windows Services periodically for maintenance and other tasks. We have also created selenium tests written in Ruby also running for the product editor and CMS.
Responsible for Sinfini website sinfinimusic.com This project is build in a very similar way to the universal japan website, its logic and architecture. Its implementation is slightly different. It uses Umbraco v6 (later upgraded to v7) on the CMS front end but its product editor is build using NodeJS and RavenDB (NoSQL) and Lucene Search Engine. CMS uses AngularJS and BackboneJS for javascript support. The code is mostly covered with unit Test. Jasmine for Javascript and NUnit for C# code.
[01/2013 - 07/2013] Senior .NET Developer at Hawes And Curtis - http://www.hawesandcurtis.co.uk/
I’ve joined the developers team to help the redevelopment of their existing E-Commerce website and in-house applications. I’ve also taken the role of Scrum Master. The new website would be build using MVC 4 with WCF at the service level with data being mapped to business objects from Entity Framework 4 with connections to SQL Server 2010 databases. Apart from the Admin Site where the website settings would be defined (CMS) such as Product Configuration, Category Management, Image Bank, Promotions, Order Management, I was also involved on the checkout process, payment gateway, basket process on the main website. Using C# as the main language and using the full capacity of MVC 4 (Razor) to bind models to the views we used WCF services with cache to pass the data to the Repository. The data was being store on the domain model defined by entity framework and was being queried using LINQ. We’ve used Store Procedures for the search engine to optimize the search functionality. Use of ETL packages (SSIS) for data integration.
Tools and Frameworks Used: C#, MVC4, JQuery, WCF, Entity Framework 4, TFS, OnTime, NUnit, Moq, Bootstrap, ETL, SSIS.
[03/2012 – 10/2012] Software Engineer at Lifetime Training - http://www.lifetimetraining.co.uk/
I’ve joined an existing Agile team working in a web application to be used by the internal employees and external clients. The application consisted in two websites and it was entirely developed using C#. NET 4. The external website had Umbraco as CMS (wrapper) with a bridge to the main system using MVC 3. The internal Website was using MVC to display the data to the employees. I was responsible to develop the use cases provided by business requirements on the Data Layer, thus persisting the database data (SQL Server 2010) in the system using Entity Framework data model, defining CRUD Services and transactional semantics using the OOD approach and design patterns. The Service Layer was designed to provide the data being mapped from the data layer to the presentation layer using WCF Services, and queried with LINQ. In this layer I was responsible to implement the business rules defined for each use case, and presenting them through the WCF endpoints. For each use case I would defined a set of Unit Tests and Integration tests. The data would then be available through the services and used in the presentation layer by MVC controller and displayed in HTML/JQuery.
Tools and Frameworks used: C#.NET Framework 4, LINQ, Umbraco, MVC 3, Entity Framework 4.1, SQL SERVER 2010, UML, AutoMapper, NInject(DI), Moq, Microsoft Unittesting, JQuery, Javascript, Web Services, WCF, TFS, Agile/ Scrum.
[01/2011 - 12/2011] Software Engineer at Star Technology - http://www.claranet.co.uk/star
Joining an existing team using an Agile approach and developing an Automation System for an in-house application, my duties where to assess, maintain and develop the existing application as well as adjacent services. Build using Workflow Foundation 4 for business process the application had its own database using SQL Server 2010, where the data of the automation tracker, logs and and important data for the business where being saved. This data was being persisted in our application through Entity Framework v2 and feed to the automation system through WCF endpoints, and there was also some Store Procedures for more complex data being used by the system, which I was responsable to maint as well. I was responsable to develop these modules of the system, and develop external services exposed by WCF endpoints, such as Customised Java Applications, Oracle 11g, Sharepoint 2010. I was responsable to developed the Oracle packages and the SQL Server 2010 Store Procedures for the use cases and updating/creating the services exposing this data. I was also responsable to develop the webparts with MVP pattern to be use by the automation system to retrived data from external users using for this Sharepoint 2010 Portal Services. The primary goal of this project was to automate the order process until deployment.
Development of a small side project to test the Automation Project. This project was developed using the C# MVC 3 pattern on the presentation layer in substitution of the MVP pattern used with WebParts. The service layer was accessing the Automation application Services through WCF endpoint and the data queried with LINQ, with each use case defined as a service. Use of Jquery and Javascript on the front end, MVC 3 to comunicate with the service Layer and Entity Framework on the DAL.
Order Management Project to be used by the Solution Coordination Team. This project aimed to ease the use of Automation Project integrating all that from Customer, Orders, Employees and so on from Automation and other external services using WCF. This project proved to save a lot of time to Solution Coordinators. Build using MVP pattern and Webparts to be presented through Sharepoint 2010.
Responsible for the redeveloping of the new booking system, architecting the Domain Model using NHibernate for persistence layer (Comunicating with SQL Server 2008) and displaying data on the presentation layer using MVC pattern (C# ASP.NET MVC 3) and WCF. N-Tier application with SoC. Data Integration with external systems (CRM). Unit Tests with NUnit and Moq.
Tools and Frameworks used: C# .NET Framework 4, Team Foundation Server, Workflow Foundation, WCF, RESTFul Web Services, Unit (DI), Unit Testing, Team Foundation Server, Mocks, Entity Framework, WPF, WebParts, Javascript, JSON, Sharepoint 2010, Oracle Packages, strong OOD and Principles and use of UML for business rules.
[04/2010 – 11/2010] Software Developer at MandMdirect.com
During my stay in MandMDirect.com (E-Commerce) my first task was to create a continuous delivery process to sustain the several deployment releases (Cruise, MSBuild, Nant and RemCom). Due to the fact that this company operates on the retail market, my following project consisted on development of a multibuy/multireward promotion schema. This would imply changes across the whole structure of the ordering process. This use case, was developed making significant changes on the database structure. This would imply creating/changing Store Procedures, remodeling the Data Model. Another task was to fix some performance issues on data collections/caching on the back end and add some enhancements to it. Fixes to their SEO (search engine optimization) build with WCF and ADO.NET for fast access to product index, and fixes to their Windows Services. In a more technical view, the mandmdirect.com website is build using ASP.NET Webforms engine and its contents is constantly changing and thus the interface needs to be flexible. They used XSLT/XML to render elements on the browser, and Entity Framework v2(ORM) to retrieve data from the database (SQL Server 2008) and populate the Data Model. Still following Microsoft favorite ORM tool I've updated this Data Model to Entity Framework v4 to support POCO objects with Repository Pattern on the DAL. I've created several layers (C# .NET v4.0) through the whole architecture to apply Separation of Concerns (SoC) principles, during this process I've applied the best Patterns and Principles for OOD. Unit Testing using MBUnit and Rhino Mocks. Integration Tests using watin and water (Ruby). Extensive use of UML for system design, project management and documentation.
[05/2009 – 04/2010] Consultant Developer at Unity Information Systems http://www.unity-is.com/
Development of a SharePoint Solution for an in-house project. Using MOSS for developing a Project Management Dashboard. Using NHibernate for Data Access, Castle Windsor for Dependency Injection, and WCF for communication with SharePoint (LOB). Use of WebParts/CSS for presentation/interface/integration with the whole SharePoint structure. C# ASP.NET. Sharepoint sites authenticating agains ADFS 2.0.
Project developed with BCS (British Computer Society) for the management of interviews and tests for the Chartered IT Professional (CITP). Sharing resposabilities of guidance over other elements on the team, I was involved in arquitecting the application’s software system using an ORM approach. Using Nhibernate for C#.NET, for data persistence with services layer for business logic using OOD principles and patterns and MVC 2 for the Presentation. Use of Web Services to comunicate with external resources. Development of a Business Intelligence solution for data integration between several systems and construction of several ETL packages in C# (SSIS). To finalize the full life cycle of the project, I was responsible as well to test and deploy the whole system to our client as well as proving support.
Tools and Framework used: SQL Server 2008,C#.NET, NHibernate, Castle Windsor, Dependency Injection, ASP.NET MVC pattern, Object Orientated Principles (OOP), JQuery, NAnt, NUnit, Rhino Mocks, IIS, Continuous Integration Server (TeamCity & BugTracker), SQL Server Integration Services.
[05/2008 – 04/2009] .NET Developer at Oakwood Media Group - http://oakwoodagency.com/
Development of Web Applications in ASP.NET 2.0/3.5 C# to manage data information from multiple web sites, some of them build with Flash front-end or ASP.NET WebForms with Transaction Script Data Access. Writing project specifications in UML and use of Agile approach to requirements gathering and development. Use of Unit Testing with NUnit and Mocks. Development of applications for Facebook in ASP.NET 2.0 C#. Development of Web Application for Image Bank in ASP 1.1 / MS Access. Development of USB drivers in C++.
Develop a web application to manage assets against an existing database, using ASP.NET, C# and MVP pattern and SQL Server 2005 and applying an ORM approach using Business Objects (EntitySpaces) and Store Procedures for the Data Access. ASP.NET WebForms, C# 3.5 .NET, MVP Pattern, OOP, Telerik Rad Controls, JQuery, CSS and Javascript for Presentation Layer. Nant and Nunit for project build and testing. Deployment in IIS.
Tools and Frameworks used: HMTL, CSS, C#, ASP, ASP.NET, C++, Business Objects (Entity Spaces), OOP, NAnt, NUnit, Telerik ASP.NET Controls, SQL Server 2000/2005, MS Access, WebOrb, Web Services.
[01/2008 – 04/2008] .NET Developer at Potential Difference Ltd (Contract)
Website development using Content Management Systems (DOTNETNUKE). Designing modules in ASP.NET C# using a very efficient Business Objects Layer to communicate with SQL Server. E-commerce module against an E-Commerce Database, Auction module, Web Service/XML development. CSS, XHTML, XML, C#.NET, VB.NET, SQL Server 2005, MySQL.
[09/2007 – 04/2008] Freelance Contract Project for (Nisus Consulting)
Development of a Web Application to facilitate post-transaction reviews for professional services firms. This application allows that individual client or customer surveys to be build, analyzed and presented. ASP.NET 2.0, C#, Business Objects (EntitySpaces), Store Procedures, SQL Server 2005, SQL Reporting Services (SSRS).
[04/2006 – 08/2007] Junior Software Engineer at Nexusdata Solutions Ltd
Software Developer in C#, ASP.NET 2.0,AJAX,Web Services, Java, SQL SERVER 2005, MySQL, UML
WinForms Application for gathering data information from GPS satellites, this data is then formatted using GIS standards and sent in XML/XSL to a central unit to be processed and saved, using MySQL (GUI+ C#/XML).
Web Application for acquiring data and command execution from multiple servers to one central server in a very secure environment. Through SSL on top of HTTP 1.1 (HTTPS), I’ve build a Web Server to send/receive information using HTTP through a firewall. Autonomous Remote system for logs control. Interface in ASP.NET C# (Technologies: HTTP 1.1, SSL, Delphi, XML)
Development of small web applications with ASP.NET 2.0 using ADO.NET to communicate with SQL Server 2000. Development of WinForm applications with (GUI+ C#.NET), Java, Java Swing, and Hibernate.
TRAINING
Microsoft (MCP) Microsoft Certified Professional with the following exams:
(70-270) Installing, Configuring, and Administering Microsoft Windows XP Professional
(70-290) Managing and Maintaining a Windows Server 2003 Environment