If you see this message, you're missing out on so much that this resume has to offer! Get a better browser, or turn CSS back on!
Ideally, I would like to continue working as an engineering manager since I feel this is where I can have the greatest impact at this point in my career. Preferably, my team would be working on products powered by JavaScript/Node.js. However, I am also open to looking at various contributor roles, especially if the project is of special interest to me.
Ten years of experience working for small startups and large multi-national companies have taught me a lot about software engineering. Developing quality software is all about communication, team work and leardership. As an engineer, I have often been in contact with designers, business managers, and other engineers, which interests often conflict. My ability to compromise and maintain a positive attitude, along with a true passion for providing end users with the best possible experience, have served me well in my career.
As a manager, I have always been passionate about growing talent by giving my reports the right opportunities and leading by example. I have also made attracting new talent a priority of mine. This has been made easier by my interest in web technologies, open standards and open source software.
Manager of the Yahoo! Search frontend platform team, which is composed of 6 engineers. Until recently, this team was responsible for maintaining the existing Yahoo! Search frontend stack, based on custom versions of Apache and PHP. Starting in 2012, we have been designing, implementing, testing and deploying the next generation runtime serving stack for all of Yahoo!'s search products. This new stack is based on Yahoo! Cocktails, a technology based on Node.js. In addition, this team is responsible for evangelizing new technologies and processes as well as enforcing quality throughout the product line.
As an individual contributor, I designed and implemented a protocol to serialize and deserialize the data model and logical page model necessary to render the Yahoo! search results page. The data is generated by our (Java-based) middleware (this is where most of the decisions are made) and consumed by our (Node.js-based) presentation layer. The main advantages of this protocol are that it allows for streaming of those hierarchical structures, and it gives the middleware the ability to experiment with global page layout without having it be aware of the physical layout of the page (separation of responsibility)
I also contributed a lot of utility code to make application developers more productive, and managed some important platform migrations.
Worked alongside Douglas Crockford (inventor of the JSON data format), Iain Lamb (co-founder of OddPost) and Bill Scott as part of Yahoo!'s "DHTML Evangelist" team, a group that provides architectural assistance to Yahoo! developers on the design and implementation of rich interactions in the browser.
Evangelized best practices in frontend engineering with regard to performance, reliability, security, accessibility, maintainability and design innovation. My duties included, but were not limited to:
Among other things, I worked extensively on the new version of Yahoo! Mail and Yahoo! Search, consulted with many Yahoo! properties, and also contributed the YUI Browser History Manager — a library dealing with browser history in Ajax applications — and the YUI Compressor — a JavaScript and CSS compression tool — to the YUI library. I was also a frequent speaker at numerous (internal and external) conferences and workshops.
Implemented Yahoo! Mail's new "Welcome Tab", which contained several ad units along with a news module and live weather information. This code ran for about 3 years before it was eventually revamped in 2009 to include social content.
Extracted the "virtual scrolling data table" component used to display lists of e-mail messages in order to create a generic widget to be used by all Yahoo! properties. Improved overall rendering performance, leading to a public presentation on Ajax performance.
Led a team of 5 engineers in charge of the development of the industry's best web-based email and calendaring solution [screenshot] (two-time winner of the LinuxWorld Product Excellence Award, made the cover of InfoWorld magazine, etc.)
Designed and developed the industry's richest web-based calendaring and scheduling software [screenshot], on par with the level of functionality offered by native applications such as Microsoft Outlook. Among other things, I had to reverse engineer the format of 100+ undocumented binary MAPI properties used internally by Microsoft Outlook and Exchange for calendaring and scheduling. I also developed the entire client logic and user interface, including complex algorithms to deal with:
Designed and developed a set of reusable DHTML user interface widgets (menu, toolbar, tree view, scrollable grid, rich text editor, etc.), a drag-and-drop library, a cross-browser DOM manipulation library, a date manipulation library, etc.
Wrote a set of tools for web developers (including a JavaScript preprocessor and a JavaScript obfuscator) in Java, and streamlined the entire build system (Apache Ant), improving developer productivity.
As a "hands-on manager", I also helped refine the content of upcoming releases, worked on team planning, development milestones and key deliverables to the QA organization
Contributed to the design and implementation of the easyplanet Community Desktop™, a Microsoft Windows application integrating tabbed browsing with multimedia features, and displaying company brand image and real-time content for the use of large media and entertainment companies [screenshot]
Implemented an Apache 1.3.x module (C) used for user authentication and load-balancing with fail-over and session affinity.
Designed and developed the user interface (Delphi, Borland VCL) of an IM application [screenshot]
Developed the audio and video capture modules (C++, Win32, DirectShow) and the user interface (C++, Borland VCL) of a video conferencing application based on the OpenH323 library [screenshot]. I also participated in developing an extension to the OpenH323 library in order to support the dynamic switching of video codecs during a conversation without the need to hang up. That switch was automatic based on live bandwidth measurements during the conversation.
Designed and developed a social bookmarking service (Java)
Developed the user interface of the easyplanet web-based (DHTML) email client [screenshot]
Contributed to installing, setting up and administrating production servers.
Performed research in many areas of network security for EDF, France's largest power company.
Developed an auction web site specifically designed for mobile devices (WAP) and developed a web-based console to administer the auctions.
Master's degree in Computer Science.
Contributed the chapter "Build and Deployment" to the book "High Performance JavaScript" by Yahoo! engineer Nicholas Zakas. Other contributors, besides Nicholas Zakas himself, include Stoyan Stefanov, Steven Levithan, Ross Harmes and Matt Sweeney.
Developed an operating system with the following characteristics:
All developments were done in Intel x86 assembly and C on Linux. The operating system was tested and debugged using the Bochs IA-32 emulator, and on a real PC. Read more about Simplix:
Wordpress blog, mostly about web development, system programming, woodworking and amateur astronomy.
Some YUI Library components used according to the terms of the BSD license.
All other HTML, CSS, and JavaScript for this offline-friendly page by Julien Lecomte.