Michael Geary
Software Designer, Developer, and Engineer
Areas of expertise
- Design and build web and native apps to delight users and meet their needs.
- Talk with users, listen to what they want, and build it for them. And then fix it when I get it wrong.
- Mentor and help other developers be successful.
- Web front end and back end development.
- Windows applications and low level code.
- Data importers.
- Hardware control.
- Create and document APIs and SDKs.
- Data visualization and geographic data and mapping. I love geography!
- System integration for VR apps in Unity and Unreal Engine.
- Reverse engineering.
- Technical writing.
- Extensive experience in Python, JavaScript, TypeScript, Angular, Ruby, C, C++, C#, Win32, .NET, Flask. Also fluent in many machine languages (yes, to the bit level), protocol buffers, GIS data formats, PostgreSQL, PostGIS.
- Other areas of familiarity (not an expert, but comfortable jumping into any of these as part of a project):
- Lua, Swift, Objective-C, Kotlin, Java, Android, iOS, macOS, Rails, Django, OpenResty, OpenGL, WebGL.
- Electrical engineering, radio and signal processing - electronic hardware and ham radio got me into programming!
- I learn quickly what I need to get any job done.
Career highlights
- McDonald's/IBM, 2020-2024
- Figured out a "kludgy" way for the team to use Python debuggers, after a change to a new build system precluded that.
- Created and maintained an automatically updated Windows VM for McD's Point of Sale system.
- Built a "sleepless" version of the QA test code that removed all
time.sleep()
calls, cut the time for a full test suite from 4 hours to 1.5 hours, and made the tests completely reliable instead of stochastic.
- Alteryx, 2020
- Design and development of a new Python API.
- Wing (Alphabet), 2018-2019
- Airspace data importers - converted C++ import code to Python, made the code easier to maintain and reduced incremental build time from 8 minutes to 1 second.
- Geospatial data viewer and KML visualization tools.
- Web interface for legacy command line manufacturing test application.
- Pegasystems, 2017-2018
- Interceptor for Flash ActionScript to inject bytecode and allow automation of user activity.
- Quiver, 2016-2017
- Windows API interception, window subclassing, anti-hacking measures, fix multithreaded memory leaks.
- Willdan, 2016
- Open source custom uploader for SharePoint documents.
- Interactive office location map.
- EaseVR, 2015-2016
- Open source analytics client libraries for Unity, Unreal Engine, C++, and JavaScript.
- SRI International, 2016
- System to import LIDAR point clouds into Unreal Engine for display in VR.
- Jaunt VR, 2015-2016
- "Over the shoulder mode" using OpenGL to display VR content on external display.
- Unity launcher sequence for Cardboard on Android and iOS.
- Hacked Cardboard JVM bytecode to fix "flash of unwanted user interface" (FOUUI).
- Restructured C++/JUCE/OpenGL player code for easier maintenance.
- Numerous other "fit and finish" improvements and bug fixes.
- Skype (Microsoft), 2015
- Interactive traffic visualization map to show what other countries people in each country talk to.
- Electronic Frontier Foundation, 2008
- Used my PolyGonzo open source library to help develop OurVoteLive map of election problems and inquiries.
- Google, 2008-2014
- Election results and voter information maps for US and foreign elections, featured on Google home page and syndicated to numerous news sites, with custom versions for CNN and Fox News.
- PolyGonzo open source library for fast polygon drawing and hit testing in the Google Maps API.
- 3D tour of Vancouver 2010 Olympics using Google Earth API.
- KML visualizations of election results.
- Persado, 2013-2014
- Website editor to allow experimental changes to a site without changing back end code, using a "man in the middle" Sinatra proxy server and JavaScript API for editing and comparing versions.
- OnLive, 2013-2014
- OpenGL system to overlay multiple web views running in separate threads onto a single display.
- Many other front end and back end features for their game launcher.
- Carnegie Institution for Science, 2010-2012
- CLASlite Online, an interactive web viewer for Amazon rainforest satellite images and deforestation using Google Earth Engine.
- 360 Cities, 2008-2010
- Optimized a location clustering program to reduce its run time from eight hours to 30 seconds.
- Roundarch Isobar (Nystrom), 2009-2010
- Google Earth API library for interactive drawing and markup tools on a 3D globe for education.
- jQuery, 2006-2010
- One of the first contributors to the project before its 1.0 release.
- Contributed several architectural improvements to the library.
- Helped train many of the earliest jQuery developers by answering questions on the mailing list.
- Ageekie, 2007-2008
- Developed PdfChip, a way to connect a PDF datasheet directly to a development board, so you could view ARM chip pin status in the PDF and click on pins to toggle them on the actual chip.
- Zvents, 2005-2007
- Event calendar and map widgets for Zvents customers to embed in their sites.
- Rails plugin to support ClearSilver template engine.
- Helped team solve JavaScript and browser compatibility issues.
- Adobe Systems, 1990-1995, 2002-2005
- Created and documented interactive multimedia JavaScript API for PDF files.
- Improved email support for Lotus Notes and other email clients.
- Introduced the use of VMware for compatibility testing.
- Split Acrobat's monolithic EXE codebase into separate EXE and DLL builds so other apps and shell extensions could use Acrobat's rendering engine.
- Helped other developers solve tricky Windows programming issues.
- Hacked into Windows 3.0 font rendering system to intercept text output calls and use PostScript rasterizer for scalable fonts.
- Printer port monitor and COM interface for Adobe Distiller.
- Rearchitected PDFWriter to run in user mode with a small kernel mode stub, to support NT 3.51 and 4.0 from the same code base.
- Borland Software, 1991
- Created WinSight, a Windows message monitor and investigator included in Delphi and C++ Builder, based on my Spy program featured in BYTE Magazine.
- Cooper Software (Microsoft), 1988-1990
- Led the team that created the "Visual" part of Visual Basic.
- Created the VBX interface that millions of developers used to build and embed custom controls in Visual Basic apps.
- Gupta Technologies, 1986-1988
- Designed and developed SQLWindows, the first visual programming tool for Windows.
Other activities
- Stack Overflow, 2013-present
- 600+ quality answers and 28,000+ reputation.
- Harmonica player and photographer.
More work history and entertaining stories on LinkedIn: http://linkedin.geary.com
Stack Overflow: http://stack.geary.com
GitHub: http://github.geary.com
Contact: mike@geary.com or 408-372-7373