Michael Dalessio
http://mike.daless.iomike.dalessio@gmail.comNew York / New Jersey

I write code for a living, but I also do it for fun.I've had success as an executive, a manager, and a technical lead.I encourage agile software development practiceswhich emphasize early and continuous delivery of valuable software.I try to always respect the humanity of the people who must collaborate well in order to build excellent products.

TL;DR
Technology Skills
Distributed systems
After working on Cloud Foundry for a few years, I knowsome things about developing, operating, and maintaining adistributed computing platform, and about the interestingemergent behavior you see when the platform is put understress.
Ruby.
I love Ruby, though I'm comfortable in many otherlanguages. In Ruby, I have experience writing languageextensions in C, Java, and FFI (dynamic bindings).
C, C++, STL.
I've done large-scale OO design and implementation. I haveexperience writing portable code for platforms old and new.
Web development with Rails and Javascript.

I've successfully deployed highly-available data-intensive webapplications supporting multiple (read: old) browsers.

High performance parallel computing.
I've got experience with PVM and MPI toolkits. I'vehand-rolled data serialization as well as used libraries likeprotobuf and ASN.1/BER. I've built a fault tolerant loadbalancer and implemented job scheduling algorithms.
System-level programming.
I've got experience with threaded and evented processingmodels. I'm familiar with various methods of IPC, includingmessage queues and sockets. I've done network programming onboth *nix and Windows using TCP and UDP.
Linux system administration.
Notably, I've performed this role on large compute clusters,though it was quite a few years ago.
Debugging and profiling.
My go-to tools include strace, valgrind, gdb, gprof,gperftools and wireshark.
FORTRAN.
Yes, I've got deep knowledge of FORTRAN, having integratedit with C and C++ at the source level and at linktime. No,I don't expect this to ever be useful again.
Other languages.
I've been known to write Golang, Java Lisp, Clojure, andScala in addition to what's listed above; though Iwouldn't claim to be an expert in any of them.I've got extensive scripting experience, primarily in Ruby,Perl and bash.
Organizational and Human Skills
Team Building.
I've had success hiring and managing strong developmentteams, and improving existing teams.
Framework Building.
I've designed and built application frameworks to delivercomplex functionality to domain-expertdevelopers. Notably, I designed and built the OO frameworkused by Bloomberg to build Launchpad.
Technology Integration.
I've successfully dealt with technology integration issuessuch as consensus, training, documentation and inertialresistance while meeting business demands.
Mentoring.
I'm able to mentor developers in technology and design,both in an informal office setting and in formal trainingclasses. I'm also an experienced technical trainer, havingrun many large "developer boot camps".
Client management.
I've got years of experience working with clients of allsizes in a variety of verticals. I know that everythingworks better when people trust and respect each other.
Financial and Energy Markets.
I have experience building trading systems for equity andfixed income financial markets, and for energymarkets. I'm also comfortable with bond math and the FIderivative market.
Figuring It Out.

I can read man pages. I know what an RFC is. I likereading other people's code.

Mad Communication Skillz.
Me talk good. Me also write good. Me so funny.
Curriculum Vitæ
Professional Experience

Director of Engineering @ Shopify (June 2020 — Present)

Led the Ruby and Rails Infrastructure team, dedicated to making Ruby and Rails100-year tools. Part of the Developer Acceleration team.

VP, Engineering @ VMware (via acquisition, Dec 2019 — June 2020)

Led the Tanzu "Modern Application" R&D team of 400+engineers worldwide on Cloud Foundry and relatedKubernetes and Data Services products.
Led the "Culture Workstream" during integration to helpeveryone understand ourselves and how we fit into thebroader VMware corporate culture.

VP, Engineering @ Pivotal Cloud Foundry (Oct 2016 — Dec 2019)

Engineering Director @ Pivotal Cloud Foundry (July 2014 — Sept 2016)

Wore many hats to help the Pivotal Cloud Foundryengineering organization scale out to 80+ teamsin eight cities across eight timezones.
Learned how to grow a healthy people-first organizationcapable of sustainably delivering excellent softwareproducts.

For the CF Foundation, led two OSS Project Management Committees: Buildpacks, and Developer Tools.

Learned to appreciate how hard it is to build anopen-source foundation, and keep the big tent big.

Director @ Pivotal Labs NYC (Sept 2012 — July 2014)

As the business owner of the NYC consulting practice forPivotal Labs, was responsible for all aspects of revenueand headcount.
Learned how to have uncomfortable conversations. Learnedhow to make decisions based on incompleteinformation. Learned how to run a salespipeline. Learned how to run a hiringpipeline. Learned how to be a business owner.

Director of Technology @ Benchmark Solutions (Feb 2010 — Aug 2012)

Managed and was technical lead for frontend team (web andnative Windows client), realtime datainfrastructure team, and the reference data team.
I'm still not sure what I learned here; we can get a beverage and discuss it, though.

Director and Agile Software Developer @ Pivotal Labs (Nov 2008 — Feb 2010)

Director, NYC consulting business. (Sept 2009 — Feb 2010)
Learned how to feed and care for awesomedevelopers. Learned that pair-interviewing is the bestway to determine a developer's skill level and fitness.
Agile Software Developer. (Nov 2008 — Sept 2009)
Learned the value of pair-programming, and where it'smost effective. Learned the value oftest-driving. Learned Agile and XPmethodologies. Learned how to aggressivelyrefactor. Learned what a sustainable development processlooks like.

Founding Partner @ Pharos Enterprise Intelligence (Jan 2008 — Dec 2018)

Architect and lead developer for a turn-key Energy Management System.

Learned how critical the "minimum viable product" isto success. Learned how important an early-alphaclient is to success. Learned how unimportantlong-term planning often is to success. Learned howimportant it is to choose the right business partner.

Director of Application Development @ USPOWERGEN (May 2006 — Dec 2007)

System architect and lead developer for an Energy Management System.
Learned that developer efficiency is the most importantthing for a startup. Learned how to write Rubyextensions in C. Learned how to scrape data. Learned howrobust and awesome the Ruby open-source community is.
Directory of Technology across multiple power plants.
Learned what the M&A due diligence process lookslike. Learned how an integration projects can turn intoa train wreck. Levelled up in dealing with officepolitics. Learned how challenging it is to have to writeand enforce corporate IT policies. Learned howtime-consuming regulatory audits are (SOX 404 and NERCCybersecurity). Learned how to manage a cap-ex budget.
Head of Software Development @ ASPEED Software (Aug 2004 — Apr 2006)
Managed a team of developers building SDKs for parallel computing on large clusters.
Learned how to demo a product. Learned how to present tobusiness stakeholders. Learned how to quickly set up asane development environment. Learned how to set up sanecustomer support.
Assisted clients in parallelizing applications (Professional Services).
Learned how build a static code analyzer. Learned how toread and use profiler output. Learned how to supportcustomers. Learned what a sane deployment process lookslike. Learned how to read complicated legacy code.
Lead developer on parallel-computing SDK.

Learned that the USPTO will grant software patents on practically anything.Learned how to build a load-balancer. Learned how to administer large clusters.Learned how to serialize data efficiently.Learned how to implement efficient, portable network code.

Infrastructure Applications Lead @ Moneyline/Telerate (Nov 2003 — Aug 2004)
Managed a team porting applications to a new pub/sub API as the last phase of a ticker plant rollout.
Learned that smart developers, without business context,invariably work on the wrong problems. Learned thatprojects get shut down if they don't deliver businessvalue early-and-often.
Managed a team of offshore developers building an internal application for browsing ticker plant data.
Learned why managing offshore developers is hard.
Implemented a high-performance UDP feed to integrate third-party data vendors.
Learned about multicast networking. Learned how to doI/O using a threaded model, and why it's hard (harderthan it should be) to do right.

Chief Architect for Bloomberg Launchpad @ Bloomberg, L.P. (Jun 1995 — Aug 2003)

Extended the Launchpad OO platform to provide services, like pub/sub, IPC andinstant messaging. (2002 — 2003)
Learned how to lead a collaborative team ofhigh-performing developers. Learned that customer ITpolicies are complicated. Learned the value of enablingdevelopers to do complex things without specializedknowledge.

Designed, built, and led development on Bloomberg Launchpad,the next-gen Bloomberg UI. (2001 — 2003)

Learned how to implement malloc. Learned that mmaprules. Learned how C++ and FORTRAN programinitialization work. Learned how to implement apolymorphic OO type system in C. Learned that leveragingopen source is a really, really good idea. Learned thepower of targetting a known interface (GTK+) to acompletely new technology (Bloomberg Win32). Learned whybuilding specialized debugging tools are sometimesnecessary. Learned that office politics can ruin a goodtime.

Designed and built the Trading Systems Desktop ("TW")using the new Bloomberg UI (Win32 controls). (1997 — 2001)

Learned the value of providing policy on top ofmechanism. Learned that it's possible to make a systemdo things it wasn't designed to do, and that it's ahallmark of good design. Learned how a lack of developerframeworks can slow forward progress for even talenteddevelopers. Learned to love building developer tools.
Helped integrate C into a land of FORTRAN. (1997 — 1998)
Learned how the call stack works. Learned how linkerswork. Learned that some technologists are secretlyLuddites.
Built and maintained a set of customer-facing TCP/IP feeds. (1997 — 2000)
Learned networking the hard way. Learned the art ofabstraction. Learned why meta-programming rules.
Coordinated and taught the Bloomberg "boot camp"developer training classes. (1996 — 2000)
Learned how to speak in front of an audience ofdevelopers. Learned how to teach. Learned how todistinguish developers with whom I'd like to work.
Wrangled a huge time-series dataset. (1995 — 1999)
Learned how to be coherent on a 3AM phone call. Learnedto be careful and how to plan. Learned that some queryoptimizers do bizarre and unpredictable things.
Undergraduate Experience
NASA Space Telescope Science Institute (1993 — 1995)
Research assistant to Dr. Rex Saffer.
Learned FORTRAN and bash. Learned how toparallel-process big jobs across a cluster. Learnedthat raw data is often noisy. Learned that minimizing anobjective function with many dimensions using noisy datais hard. Learned that meta-knowledge is often moreimportant than knowledge. Learned that you have to lovewhat you do to be good at it.
Rowland Department of Physics @ The Johns Hopkins University (1993 — 1995)
Research assistant to Dr. Doyle T. Hall.
Learned Emacs. Learned how to learn a language from itsreference manual. Learned how to build 3-D graphicvisualizations. Learned how to catch a hacker.
Rowland Department of Physics @ The Johns Hopkins University (1992 — 1993)
Assistant System and Network Administrator for the Department of Physics and Astronomy.
Learned that *nix rules. Learned how networks work, thehard way. Learned how to disassemble and fix acomputer. Learned how to run a data center.
Education
The Johns Hopkins University (Sept 1991 — May 1995)
Graduated with a B.A. in Physics.
Learned to focus intensely. Learned to thinklogically. Learned to seize the day. Learned to lovewriting code. Learned how to learn.
Volunteer Work

Co-organizer of GORUCO (2015 — 2017)

GORUCO is the premier NYC regional Ruby conference, convening annually since 2007.
Open Source Experience

Co-Author of nokogiri

Nokogiri is currently the most popular XML/HTML parsing library for Ruby developers. Itsupports CSS and XPath querying, has push and pull SAX parsers, validates DTD and XSDschemas, performs XSLT transformations, and has a very simple and usable API. It'simplemented in Ruby, C and Java.

Author and Maintainer of loofah and loofah-activerecord

Loofah is the default HTML sanitizer in Rails, which can be used to prevent cross-sitescripting (XSS) attacks. It provides a variety of methods to clean or remove unsafe HTML,and delivers ActiveRecord plugins for Rails applications.

Co-Maintainer of rails-html-sanitizer

Rails HTML Sanitizer is the default library for sanitizing HTML fragments in Rails applications.

Co-Maintainer of mechanize

Mechanize is a Ruby library used for automating website interaction and screen-scraping. Itfully supports browser history and cookies, and allows easy authentication and formsubmission.
Selected Smaller Projects and Contributions