Darragh Curran - Curriculum Vitae
Phone: + 353 86 1717781
Email: darragh at peelmeagrape.net
I love building software. I'm passionate about doing it the best I can. I'm driven by a constant hunger to learn.
Career
Amazon April '10 - present
Generally causing trouble!
Contrast April '09 - April '10
Head of Software Development. Developing and supporting web applications, using ruby on rails, google app engine and Amazon Web Services, on client projects and Exceptional.
IGOpeople May '08 - April '09
Lead Developer at a start-up. IGOpeople is a social network connecting businesses and consumers in an open and public environment. Implemented in ruby on rails.
- Consistently delivered working software (complete with automated tests) under tight deadlines. 8 weeks from starting the job to our first major release.
- I coordinated product planning sessions, combining ideas from our founder, our customers and other team members.
- I worked closely with our design firm, providing wire-frames and reviewing designs. I implemented all the designs from psd to html/css/js.
- I built relationships with the Dublin web community, to solicit feedback, and evangelize the product, both online (twitter, igopeople) and at networking and industry events.
- I configured and supported our application hosting and automated deployment. We deployed to slicehost, running ubuntu, nginx, postgres, sphinx, memcache, postfix, monit, munin, and mongrel.
- I denormalised our schema to optimize users news feeds for read performance.
Newbay May '07 - May '08
Principal Engineer. Team lead for MyFaves and Iconmaker projects with T-Mobile USA. Multi-million user, geo-redundant applications with many integration points: sms, mms, wap, web, WS*, billing, 3rd party. Deployed with solaris, f5, Oracle, swiftmq, nagios, apache, tomcat and jetty.
- I led our 10 person team through 3 major releases and many subprojects. I worked on everything from deployment configuration/automation, db schema/sql optimization, scope negotiations with customer, writing spec documents, wire level debugging of SMPP protocol, server side java to front end css/html and javascript coding.
- I quickly brought new team members up to speed with the system/project (testers, project managers, sales, pre-sales, developers, UI developers).
- I planned the simultaneous development of new product features, as well as production system support, bug fixes and change requests.
- I coordinated dozens of complex upgrades (and rollbacks) to the live system, often planned with no loss of service.
- I built trust with our customer through a no-nonsense, open, and honest relationship.
- Continuous process improvement: not just within our team, but in our relationship with the customer and 3rd parties. For example; getting buy in for more frequent releases; working collaboratively on new specifications; earlier integration and more cooperation with 3rd parties.
- Solving complex problems on tight deadlines. For example; T-mobile had a telephone area-code split that we needed to support. I implemented the required migration: from problem definition to live roll-out in 3 days.
- Invested time in developing tools, with quick pay-offs. For example; a tool to help our customer perform acceptance tests, shortening the time it took them to approve a release; A logging tool to capture trace logging for only a particular user(s), on the live system, across all apps/nodes, without restarts - providing useful and previously unavailable diagnostic information, when troubleshooting a problem.
- Simplified and automated the deployment procedure: Reduced a 60 page manual to 4 pages, resulting in much less human error. Doing this influenced other teams within Newbay to review their deployment procedures.
- I automated documentation generation of all SQL queries ran by our application, to speed up the DBA's acceptance process for new releases.
- I introduced DB schema versioning, and source control for migration scripts, ensuring repeatable releases, and consistent environments (dev/test/qa/production).
- I replaced handwritten process management scripts with more robust ones using Java Service Wrapper. Reliable stop/start. Consistent across linux and solaris environments.
- Constant refactoring during development: I reduced the code base size by >50% (was >100K LOC), and configuration files by >80%. I sped up build/test time from >10 minutes to <1 minute.
- Scaled app to double the users on the same hardware. Identified and fixed a bottleneck through bad implementation of SMPP protocol in gateway.
Also while at Newbay:
- I mentored the team lead and project manager of another project, helping them apply an agile approach to planning and development.
- I presented 'lunch and learn' sessions to the engineering and professional service departments. I encouraged other people to do the same.
- I built a quick working prototype of an SMS to IM app as part of a sales pitch.
Skiing, Chamonix: January '07 - May '07
Ticketsolve October '06 - December '06. (contract)
Developed (along with Eoin) the initial version of the ticketsolve product. Software as a service model applied to ticketing.
- We setup and managed colocated hosting running gentoo, pound, apache, mysql and postfix.
- Implemented using Ruby on Rails, and heavy use of unobtrusive javascript.
Exoftware August '05 - November '06
- Technical Mentoring/Consulting. 'Agile' technical practices - Test-Driven Development, Test Automation, Build Automation, Continuous Integration with Java/J2EE and .NET teams
- Design, Development and Deployment of box-office and online ticketing system for the Dublin International Film Festival 2006 and the Dublin Fringe Festival 2006.
- .NET, java and Ruby on Rails development
- Exactor/Exactor.net Contributor
- Certified Scrum Master
S1 December '04 - July '05
- SCM Engineer
- Responsible for build delivery, automation and maintenance for a large suite of Java J2EE applications. (IBM Shop: Websphere, DB2, Clearcase etc)
- Worked my self out of the job: turned brittle and largely manual process into fully automated release process that the product manager could run with a single command.
- Took lead role in group from all S1 sites (globally) to simplify and improve build/test and release automation.
- Optimized build and test scripts, saving developers precious time each day, and encouraging more frequent integration.
- Influenced the software developers to improve their code hygiene, leading by example - by refactoring code and tests and then explaining the patterns I'd applied.
- Actively promoted proper testing practices around company - both 'do and then tell' refactoring of existing poor tests - and through active contribution to company Wiki.
Scoilbuy September '04 - January '05
- Purchasing solution for Irish schools.
- Complete development of online store from requirements gathering to design, implementation, hosting and support.
- Lightweight Java frameworks: Jetty, Spring, Hibernate, Velocity, Javamail, POI(Excel Integration), IText (Pdf Integration), Lucene (Search), MySQL.
IBM June '03 - September '03
- "Extreme Blue" project intern. Integration of telephony systems (Spectel) with Sametime (IBM Instant Messenger System). See ENN Article [CACHED]
- Automated generation of deployable software including Java and native code for multiple platforms using Java Web Start. Some ant customisation for Web Start.
- Project has resulted in 1 International Patent so far.
NCL August '02 - September '02
- Technical Support, Maintenance, Research and Development.
- Refactored manual tests and build processes for ~100k LOC System. Produced a fully automated build and test system based on Ant, JUnit, CVS and AntHill.
- Website generation - XML, XSL, ANT.
- Documentation management - Velocity, FOP(Pdf generation), ANT.
Allied Irish Banks June '99 - July '99
- Hardware and Software Technical Support, mission critical environment (100+ people).
- Custom work with Microsoft Access.
Youth achievements
- Member of Winning team in Barclays Capital University Programming Competition (Java), London, October 2002. See ENN Article [CACHED]
- Awarded 5 year full Scholarship by Trinity College, May 2002.
- Selected to be part of The Mountaineering Council of Irelands' Millennium Youth Initiative, a programme to support the development of young keen mountaineers, 1997 - 2000.
- Awarded Scholarship by CTYI (Center for Talented Youth Ireland) for Summer Programme 1995. Attended Summer Programme 1995(Biology) and 1996(Pharmacology) and Evening Programme in Maths(1996).
Education
Trinity College Dublin (BA Computer Science). 2000 - 2004
- 5 year full-scholarship (fees, rooms and meals).
- Achieved first-class honors degree. Achieved I.I in all years of course.
College Projects
4th Year Mini-Thesis: Collaborative and personalised re-ranking of Google search results
- Awarded first class honor. Supervised by Prof. Padraig Cunningham.
- Specialized Search Engine which re-ranked google search results based on your web browsing and search behaviour.
- Easier to find stuff you've seen before, or from sources you refer to often.
- Ran either as custom implemented http proxy (standalone mode), or by periodically processing squid log files (within a work group).
- Implemented using Java, MySQL, Hibernate, Spring, Velocity
- Swing, JGoddies and Java Web Start: zero hassle install/config tool for standalone version.
2nd Year Team Project: People Tracking Simulation
- We mapped part of the college campus and simulated people moving around it, outside and through buildings.
- 2D Mapping API. Allow mapping of arbitrary nested structures (eg campus, building, room), cross referenced with images at each level of granularity
- Map represented as an XML format. API to manipulate map data implemented in both C++ and Java
- Fully functional Swing/Java 2D GUI to create and edit map data.
- Implemented and tested the necessary geometric algorithms for dealing with the maps.
- Played a lead role in the team of 6. Advocated the use of testing frameworks to help with development.
Interests
- Hobby projects. Most recently Long URL Please, a service for unshortenting short urls, with good usage and positive community feedback. Built on google app engine.
- Community involvement: Helped start a regular meet-up of ruby enthusiasts in Dublin. Member of the web development working group within the Irish Internet Association.
- Skiing. Mountain biking.
- Accomplished alpine climber. Climbed many hard and serious routes (up to ED), both rock and mixed, in winter and summer. First Irish ascents of some hard north faces in les Ecrin.