Wez Furlong, Resume
An exceptional software engineer with 14 years of experience with all aspects of the software development lifecycle. Great breadth and depth of experience with a wide range of technologies. A great mentor and leader and well-liked by the rest of the team. Open Source developer and public speaker whose software powers web and messaging infrastructure across the entire internet.
Objective: To play a leading role in the design, vision and implementation of world-class, innovative and excellent software.
Skills & Technologies
All of these can be classed as being mastered through competent in level of expertise and/or familiarity. This is not an exhaustive list.
- C/C++, Lua, PHP, Perl, Objective-C, XML, HTML, CSS, Javascript, Java, shell scripting.
- DWARF debugging information, ELF loader format, stack unwinding and tracing, compiler construction and VM implementation (lex, yacc, lemon, re2c)
- Extending C/C++ applications with Lua, PHP, Perl, Java.
- Oracle OCI, ODBC, PostgreSQL, SQLite, mySQL and other database vendor client library integrations.
- BSD and WinSock2 network programming. Protocols: SMTP, HTTP, POP3, IMAP4, XMPP/Jabber.
- Linux, Solaris, Darwin (OS/X), FreeBSD and Windows: development and administration.
Experience
Software Engineer
Facebook, Inc., Menlo Park, CA
June 2012 - present
Focusing on developer tools in this new role.
Chief Software Architect, Director of Software Engineering
Message Systems, Inc., Columbia MD
Jan 2010 - June 2012
Responsible for strategic technology issues for the Message Systems product line. Ran the Research and Development program. Set standards for development practice, architecture and design. Mentor for the engineering group (25 people including development and QA).
Responsible for the development output of the organization. Managed a team of 14 developers and a handful of "nearsourced" developers.
Implemented a multi-thread safe Lua runtime featuring a concurrent, generational garbage collector. Implemented a prototype extensible XMPP service.
Director of Engineering
Message Systems, Inc., Columbia MD
Jan 2008 - Dec 2009
Responsible for the development output of the organization. Introduced the Scrum agile development methodology to facilitate regular and predictable build cycles. Managed 12 developers working across 6 product lines. Responsible for hiring and firing, design/architecture/code review, planning and scheduling, mentoring and otherwise making sure that the developers are working smoothly.
Designed and implemented a Lua extensibility SDK exposing autogenerated bindings that enabled Lua closures to be passed as "C" callback function pointers, a transactional hierarchical configuration system that allowed for significant configuration changes to be made without restarting the server process and a "Grand Unified Packaging System" that made it very easy to produce binary software packages across multiple operating systems and architectures.
Lead Engineer
OmniTI, Inc., Columbia, MD
Nov 2004 - Dec 2007
Work on the messaging products in the internal division that would later be spun out as Message Systems, Inc. Primary focus was product development, creating a novel implementation of the Sieve language, porting and standardizing on the Solaris "umem" allocator, improved build system, docbook based documentation system, a data-source abstraction layer with integrated query results cache, a novel hook extension system and more. Filled the role of Sales Engineer and Support Engineer in the early bootstrap days.
PHP Core Developer
Open Source
Since 2001
Numerous contributions to the core of the PHP programming language. Architect of the Streams internals (shipped in PHP 4.3), the PDO Database abstraction layer (shipped in PHP 5.1) and responsible for a large number of extensions including SQLite, mailparse, OpenSSL, COM/.Net, a flexible build tool chain for Windows and many others.
First community leader for the PHP Extension building community (known as PECL), with a successful mission to help foster and grow that community by providing project development facilities, news and programming resources.
Owner and CTO
The Brain Room Ltd., England
2000-2004
A family-owned micro-consultancy that I co-founded with a seasoned graphic designer. Developed a variety of web applications, the most significant were two large contracts in Japan and Australia.
Designed and implemented an e-learning system and courseware authoring package implemented as a PHP web app with a Windows based authoring tool (implemented with Delphi), and a web based productivity suite which can be succintly described as being a bit like Google Apps but with a focus on project planning, workflow and email. This system included a proprietary SMTP daemon and a novel VNC proxy server to provide WebEx style screen sharing.
Systems Programmer
Ryland Technology Ltd., England
1998-2000
Distributed application development in a Windows environment using DCOM. Custom web apllication development using ASP (classic), ISAPI, DHTML, MS Access and MS SQL Server in a Windows environment. Windows development using Microsoft Visual C++ and Delphi.
Conferences and Publications
- Frequent speaker and educator at PHP and Open Source conferences, having delivered 40 sessions at more than 25 difference conferences worldwide. Full list of presentations.
- Authored a number of articles on PHP and related technologies for IBM DeveloperWorks, Oracle Technology Network, PHP Architect and International PHP Magazine.
- Authored (uncredited) content for O'Reilly Media's "Programming PHP, 2nd Edition" and "PHP Cookbook, 2nd Edition".
Education
BEng, Electronic Systems Engineering.
The University of York, England.
Notable Achievements
- Author and co-inventor of pending US Patent "Method and System for Adaptive Delivery of Digital Messages", filed April 2011.
- Oracle Magazine's PHP Developer of the Year 2005.
- Various Open Source projects can be found in my curated list of projects.