Full-stack Lead Developer/CTO2015 - 2017CollegeBacker
Technologies: Amazon Web Services (AWS), React Router, WebDriver, Stripe, Plaid API, Sequelize, PostgreSQL, Express.js, Bootstrap, React
- 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).
- 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.
Technical Project Lead (Contract)2013 - 2013R/GA
Technologies: Amazon EC2, Jenkins, Bootstrap, PHP, Grunt
- 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.
- 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.
Hands-on Technical Lead/Senior Web Developer2010 - 2012Sky (Sky UK Limited)
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, PHP
- 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.
Web Developer2009 - 2010TheTeam, Ltd.
- Worked on different projects, in small dev teams or solo, successfully collaborating with designers and user-experience architects.
- Coded high-standard web pages using semantic and validating XHTML/CSS, font-replacement systems, CSS3 through progressive enhancement (Modernizr), jQuery, and jQuery UI.
Freelance Web Developer2006 - 2009Maverick
Technologies: Twitter API, Facebook API, MooTools, jQuery, Contao, Joomla, Drupal, WordPress, PHP
- 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.
Software Developer2003 - 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.