Full-stack Lead Developer/CTO
2015 - 2017CollegeBacker- Single-handedly drafted their MVP, and then developed and expanded their core fintech product, assuming the role of lead developer and CTO.
- Managed the whole technical stack, from crafting responsive UI to setting up server infrastructure and deployment pipeline; from optimizing front-end performance to designing the API and database architecture, also ensuring long-term code quality and helping hire other developers.
- Interfaced with different third-party services, such as: Plaid API (customer financial data), Stripe (ACH and credit cards payments), AWS S3 (storage), and BrowserStack (browser automation).
Technologies: Amazon Web Services (AWS), React Router, WebDriver, Stripe, Plaid API, Sequelize, PostgreSQL, Express.js, Bootstrap, ReactJavaScript Developer (Contract)
2013 - 2015NotOnTheHighStreet.com- Developed an internationalization solution for this eCommerce platform - a monolithic Rails application - with a customer facing front-end enhanced with jQuery and an articulated admin/back-end built as a Ext JS app. The process followed was very much Agile and test-driven, in a continuous deployment setup. It started from a local Vagrant environment, going through a Jenkins CI-system running Jasmine unit tests, RSpecs, and Cucumber Features - and a code review workflow structured around Github pull requests - and ending in a production deployment automated via Capistrano.
- Supported the front-end team by building a suite of front-end performance automation tests written using Grunt, PhantomJS, and YSlow, to track front-end metrics and degradation of performance as part of the CI tasks.
- Developed a template engine, based on Handlebars and Express.js, used to preview and compile HTML newsletters.
- Built a proxy-cache command line application built to abstract front-end development from the Rails back-end by selectively caching or proxying the HTTP requests.
Technologies: Jasmine, PhantomJS, Grunt, YSlow, jQuery, Ruby on Rails (RoR), Express.js, Handlebars, Less, Ext JS, Node.js, JavaScriptTechnical Project Lead (Contract)
2013 - 2013R/GA- Led the technical development of front-end templates for the main website of Turkey's leading mobile phone operator.
- Led the distributed development team. The team was made up of four front-end developers and a tester, organized using a Kanban board and FogBugz tasks. The templates were assembled using PHP 5.4 partials, built and verified via Grunt 0.4 tasks, and published on a Jenkins CI server hosted on Amazon EC2.
- Supported the London production team with estimates and scope definition.
- Established communication with the client.
- Ensured that quality standards were met.
Technologies: Amazon EC2, Jenkins, Bootstrap, PHP, GruntJavaScript/Python Developer (Contract)
2012 - 2013Arts Alliance Media- Collaborated with a team of Python/JavaScript developers, building the next version of the company's flagship product (Python/CherryPy on the back-end, jQuery UI/Backbone on the front-end).
- Assisted in adding JavaScript unit tests based on Jasmine and PhantomJS.
- Introduced Python unit tests in the team using Unittests and nose.
- Contributed to the addition of BDD tests for the back-end API using Python Behave.
- Introduced the team to continuous integration practices and tools (Jenkins).
- Extended internationalization functionalities using Pybabel and Gettext.
Technologies: Babel, Backbone.js, jQuery UI, CherryPy, Python, JavaScriptHands-on Technical Lead/Senior Web Developer
2010 - 2012Sky (Sky UK Limited)- Developed clean, mantainable object-oriented code following conventions, MVC pattern, clear separation of concerns, SOLID principles, and domain-driven development.
- Wrote mantainable tests to support development, including unit tests, functional tests, and performance tests.
- Helped upgrade the architecture of legacy products and helped shape new ones, following and supporting the overall department vision.
- Helped improve team productivity and morale. My team became a successful, recognized, and awarded team.
- Inspired developers and testers to learn new skills, organizing brown-bag sessions, setting up a technical library, and encouraging prototyping of cutting-edge technologies.
- Helped re-organize team practices towards a common sense of ownership, productivity, and customer satisfaction.
- Mentored junior developers, even outside of the team, as part of Sky's Software Engineering Academy.
- Collaborated in hiring developers and testers, screening CVs, leading interviews, helping organizing structured assessment days for the whole department, and writing coding tests.
Technologies: Zend Framework, Google Maps API, RSpec, Cucumber, PHPUnit, jQuery, PhoneGap, Sencha Touch, HTML5, Symfony, Backbone.js, WebSockets, Node.js, Subversion (SVN), Git, Sinatra, Ruby, PHPWeb Developer
2009 - 2010TheTeam, Ltd.- Worked on different projects, in small dev teams or solo, successfully collaborating with designers and user-experience architects.
- Designed and built the company's JavaScript library of reusable widgets based on the jQuery UI widget factory, assembled with RequireJS and unit tested with YUI Test.
- Coded high-standard web pages using semantic and validating XHTML/CSS, font-replacement systems, CSS3 through progressive enhancement (Modernizr), jQuery, and jQuery UI.
Technologies: SVG, WordPress, Drupal, YUI, RequireJS, jQuery UI, Modernizr, PHP, JavaScriptFreelance Web Developer
2006 - 2009Maverick- Projected, designed, and developed goal-oriented web-sites with a particular focus on usability and web standards, focusing on websites (more than 30) for no-profit and tourism companies, using open source technologies, Web 2.0 resources, and user generated content.
- Worked on all the different aspects of building a website, giving me a great overview of the process and invaluable experience and, more importantly, teaching me how to budget and estimate, how to plan and meet deadlines, and ultimately how to be a pragmatic and effective developer and deliver on a promise.
- Gained extensive experience with a wide variety of technologies.
Technologies: Twitter API, Facebook API, MooTools, jQuery, Contao, Joomla, Drupal, WordPress, PHPSoftware Developer
2003 - 2004Airvent SAM S.p.a- Coded the server-side data access of the main company product in Java, XML and XSLT, using Java RMI.
- Projected and realized software in Visual Basic 6 to turn a PC into a hotel internet-point with smart-card activation.
- Designed the company's main website.
Technologies: JavaScript, XSLT, Java, Visual Basic