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!

Julien Lecomte

Objective

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.

Professional Summary

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.

Experience

  • Yahoo! Inc.

    701 First Avenue
    Sunnyvale CA 94089
    USA
    http://search.yahoo.com/
    March 2011 Present

    Engineering Manager - Yahoo! Search Frontend Platform

    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.

  • Yahoo! Inc.

    701 First Avenue
    Sunnyvale CA 94089
    USA
    http://search.yahoo.com/
    February 2008 March 2011

    Lead Web Developer - Yahoo! Search

    Led a team of web developers on several large scale and strategic projects in Web Search. Helped define and drive the use of best practices in web development to ensure performance, robustness and maintainability. Managed the hiring of new talent, training and mentoring of new hires and other web developers. Architected and managed the migration of Yahoo! Search from YUI2 to YUI3, one of the highest profile YUI migrations in the world according to the YUI team itself. During my "spare time", I contributed a YUI3-based widget providing search suggestions, for use on the Yahoo! front page, the Yahoo! search results page and all other Yahoo! properties, in over 40 international markets! [screenshot]. Over a billion human beings interacted with this piece of software on a regular basis. The newer Yahoo! Search Direct product is partly based on the same platform. I also was responsible for maintaining and documenting all client-side utilities used within Yahoo! Search.
  • Yahoo! Inc.

    701 First Avenue
    Sunnyvale CA 94089
    USA
    http://www.yahoo.com/
    August 2006 February 2008

    Web Technologies Evangelist

    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:

    • Reviewing architectural designs and analyzing code.
    • Rapidly producing working prototypes.
    • Creating and delivering training materials to frontend engineers.

    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.

  • Yahoo! Inc.

    701 First Avenue
    Sunnyvale CA 94089
    USA
    http://mail.yahoo.com/
    May 2006 August 2006

    Senior Software Engineer - Yahoo! Mail

    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.

  • Scalix Corp.

    1400 Fashion Island Blvd 602
    San Mateo CA 94404
    USA
    http://www.scalix.com/
    January 2004 May 2006

    Senior Software Engineer - Team Lead

    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:

    • Optimal display of overlapping appointments (problem known as bin packing) using a custom designed graph reduction algorithm implemented in JavaScript.
    • Handling of complex recurrence patterns in multiple time zones.
    • Computing and rendering of Free/Busy data.

    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

  • Easyplanet Corp.

    1391 Woodside Road 100
    Redwood City CA 94061
    USA
    http://www.easyplanet.com/
    April 2001 December 2003

    Software Engineer

    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.

  • Electricité de France

    Paris France
    October 2000 March 2001

    Software Engineer - Intern

    Performed research in many areas of network security for EDF, France's largest power company.

    • Conducted security vulnerability assessments, compliance audits and penetration studies.
    • Proposed the deployment of a new network security architecture including firewalls, VPN, IDS.
    • Created and implemented new security procedures.
    • Created training materials for other engineers.
  • H3 Technologies

    Paris France
    July 2000 September 2000

    Software Engineer - Intern

    Developed an auction web site specifically designed for mobile devices (WAP) and developed a web-based console to administer the auctions.

Education

Hobbies and Side Projects

  • High Performance JavaScript (O'Reilly)

    http://www.amazon.com/dp/059680279X/
    July 2009 February 2010
    High Performance JavaScript Book Cover

    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.

  • Simplix

    https://github.com/jlecomte/simplix
    March 2007 August 2008

    Developed an operating system with the following characteristics:

    • Target architecture: PC with a single Intel 386 or better CPU
    • Monolithic, interruptible, non preemptible kernel
    • Hardware interrupt handling using the Intel 8259 PIC
    • Software interrupt handling
    • Advanced management of physical memory:
      • High performance page allocator
      • High performance memory allocator (kmalloc/kfree)
    • Support for kernel threads and user space processes
    • Simple scheduling algorithm
    • Support for virtual memory using segmentation
    • Support for system calls: exit, fork, waitpid, getpid, getppid, time, stime, sleep and brk.
    • Peripherals: keyboard, video screen
    • Basic IDE device driver and RAM disk driver
    • Basic user space library

    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:

  • Julien Lecomte's Blog

    http://www.julienlecomte.net/blog/
    July 2007 Present

    Wordpress blog, mostly about web development, system programming, woodworking and amateur astronomy.

  • Woodworking

    July 2009 Present

    Focused on traditional woodworking using mostly hand tools.

    Mantel clock Saw bench and try square Shaker inspired end table
  • Other Interests

Miscellaneous

  • Bilingual French-English
  • I am authorized to work in Europe and the United States for any employer.

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.