Back-end Tech Lead
2019 - PRESENTPrairie Group- Single-handedly designed, developed, and maintained the back end for a social-networking app, including a back-office, an asset processing pipeline, API servers, in-house push notifications, and other smaller components.
- Set up and maintained the operational side of the service (log monitoring, alerting, metrics, production diagnostics, health monitoring).
- Helped design and monitor key growth and usage metrics for the app.
- Established and monitored performance and costs predictions for various growth scenarios.
- Participated in the development of the iOS side of the app for a few months to help us meet deadlines, including a system for recording operations and metrics (likes, views, flags) offline and replaying them when online.
Technologies: Amazon Web Services (AWS), Terraform, AWS, Swift, iOS, GoEntrepreneur
2011 - PRESENTLiveReload- Conceived LiveReload in 2010 as a small open-source command-line tool, which literally saw an overnight success when a prominent blogger found it and recorded an introductory screencast.
- Released LiveReload 2 in 2011, a Mac OS X app that's been a Top 10 paid developer app in the Mac App Store for the majority of the last three years.
- Brought LiveReload to a point where it is now supported by all major web toolchains, most of them using my open-source browser extensions (102,733 users of the Chrome extension alone) or my livereload.js script (259 stars and 59 forks on GitHub).
- Delivered an alpha of LiveReload 3 running some Swift code to my beta users less than 24 hours after the announcement of Swift at WWDC.
Technologies: Extensions, Ruby, JavaScript, Node.js, Browsers, Swift, Objective-C, Cocoa, AWS, Amazon Web Services (AWS)Freelance App Developer
2008 - PRESENTAndrey Tarantsov Consulting- Built a family of dictionary and reference apps for iOS, Mac, Android, WP8 and Blackberry platforms, an accounts+syncing API for the apps, and the internal web portal for linguists.
- Delivered a face morphing app for a Japanese plastic surgery clinic, which has reached the #1 free entertainment position in 2011 (Japanese app store), with 250,000 downloads in the first month.
- Built a series of presentation apps for the clients of a 3D rendering agency, including an app used to solicit investments by one the largest US hospitals, and numerous apps for luxury resorts as well as residential and commercial buildings.
- Collaborated with a partner to deliver two apps, a web portal and an API for the concierge service of a luxury residences provider, and a presentation app used to demo the residences to potential buyers. In both cases, I built the entirety of the server-side and app-side syncing code, and roughly half of the rest of the app.
- Delivered a bunch of MVPs for US and European startups in the areas of business automation, social networking, and daily deals.
Technologies: Java, HTML5, Windows Phone 8, Android, OS X, iOS, Assembler x86Senior Developer
2018 - 2019Procore- Investigated a very complex memory issue that Procore's monolith app faced in IE11, caused by bugs in the IE's memory allocation system, which resolved memory-related app crashes on production Windows machines of a large corporate client.
- Built an internal automation tool (in Go) for performance testing of long-term app usage on various machines. The tool orchestrated a family of virtual machines and simulated long-term usage scenarios on those VMs.
- Helped the team deliver an overhaul of the file management module (basically Dropbox-like functionality inside the app), including React parts, Rails parts, and fixing issues in the native Windows client.
Technologies: React, Ruby on Rails (RoR), Ruby, Go, JavaScript, Docker, AWS, Amazon Web Services (AWS)Sketch Plugin Developer
2017 - 2018Evolphin Software- Built a complex Sketch plugin similar to InVision Craft.
- Integrated the plugin with the existing React codebase written for their Photoshop plugin. Generalized the existing codebase to maximize code sharing in the UI parts of the app.
- Dug inside Sketch internals, because unlike sane apps like Photoshop, Sketch does not have a stable plugin API (outside of a minimal set of wrappers that aren't of much use for a complex plugin like ours).
- Presented our work to the Sketch product team: they couldn't believe what we have achieved was even possible.
Technologies: Sketch, Hopper Disassembler, React, JavaScript, Cocoa, Xcode, Assembler x86Senior Developer, Innovation and Product Development
2015 - 2017USA Today- Implemented a number of MVPs for the innovation team, exploring various aspects of the future of digital journalism. Projects ranging from native mobile apps to browser extensions to server-side batch processing daemons and APIs.
- Applied fuzzy logic, machine learning, and natural language processing to a number of problems in data extraction and predictive analytics categories.
- Guided the team on technology stack selection, data storage, and structuring; helped make choices about internal architecture.
- Used the right tool for each job. This often meant mixing multiple languages and technology stacks. We have a Golang daemon that invokes parts in Node.js (for data extraction) and Python (for machine learning) to leverage existing libraries.
- Implemented a backbone for dashboards that power newsroom analytics dashboards in USA Today Network.
- Implemented, documented, and maintained a number of Go libraries used throughout our projects.
- Led project-specific teams of two to four people (back end, front end, and design/UX) to deliver some MVPs and dashboards, held cross-organizational conversations on APIs, services, and DevOps to enable the features our teams needed.
Technologies: CSS, JavaScript, Deep Neural Networks, Gradient Boosting, Machine Learning, Python, Chrome Extensions, Swift, MongoDB, Node.js, Go, iOS, Docker, AWS, Amazon Web Services (AWS)Senior iOS Developer
2015 - 2017LiveMixtapes- Developed a music playback and exploration app for one of the largest mixtape publishers.
- Advised the client about UI/UX design, typical iOS behavior, DRM and security options, subscription and in-app payment options, and the latest opportunities in the iOS appscape.
- Saw the app through multiple releases, minor and major. Still helping them maintain the app occasionally.
- Implemented features like offline playback and custom ad mediation. Fought back against unauthorized usage of our APIs and content.
- Extracted an internal SDK with our DRM, music playback, and account management code, and used it to power another app (LMT Radio) of the same customer.
- Maintained high code quality throughout the project, doing refactoring as needed. Started a gradual transition to Swift.
Technologies: Swift, Objective-C, iOSiOS Developer
2014 - 2015StreamTrack (via Toptal)- Took over a failing project with really bad source code; gradually refactored it into a maintainable one while keeping it shippable at every point.
- Rewrote audio streaming code to be more robust (+ added a bunch of features we needed along the way).
- Rewrote Facebook integration to follow the most recent guidelines by Facebook.
- Introduced a typed model layer and a clear data flow throughout the application, introduced clear states and state machines where needed.
- Added pre-roll video advertising, tweaked banner advertising, and added custom data logging for advertising statistics.
- Rewrote the UI to use Cocoa Autolayout, remove duplication (the app previously used manual positioning and multiple copies of UI per supported screen size) and support iPhone 6 devices.
- Advised the client on app store policies and guided them through the beta testing process and the app store release.
Technologies: Facebook API, Cocoa Touch, Dropbox for Objective-C, iOSFounder
2007 - 2009YourSway, LLC- Founded and bootstrapped a startup focused on IDEs and language analysis market.
- Worked for clients to bootstrap the project. In particular, we delivered an IDE for a client's in-house language, pushing the limits of static analysis to handle metaprogramming code and pushing the limits of sanity to inject our debugging code into an unmaintained 10-year-old binary system full of random memory overwrites. (Ask me about software RAID when we connect).
- Built a number of side projects while exploring new technologies, the then-newly-announced Google App Engine in particular. One of them, a crash analytics tool CrashKit, had a good bunch of active users. It was entirely built by me, and the code to intercept JavaScript exceptions has lived on (maintained by others on GitHub) and is now the industry-standard library used by every crash analytics service.
Technologies: Ruby, Java, SWT, Eclipse RCP, Assembler x86Senior Software Engineer
2006 - 2007Xored Software, Inc.- Built a number of Eclipse-based solutions for the clients of Xored, notably Instantiations, which was later purchased by Google. Some of my work has since been open-sourced by Google as part of the CodePro product.
- Helped bootstrap the Ruby static analysis work in Xored's Eclipse Dynamic Languages Toolkit (DLTK) project, which I demoed on stage at EclipseCon 2007. This has been one of the first products that performed deep static analysis for Ruby source code.
- Introduced myself to Java, Eclipse, and a bunch of largish Eclipse frameworks (GEF, EMF, and then brand-new GMF) in the span of three days, after which I delivered two prototypes for a high-value proposal to an important client.
Technologies: Java, Eclipse RCP, EclipseFreelance Developer
2005 - 2006Fuzlez Software- Built a few small shareware products for a French startup focused on less computer-savvy users, including an app to send files between two people and an app to automatically push pictures from one computer (e.g., kids') to the desktop of another computer (e.g., grandmother's).
- Wrote the underlying audio queuing code, helped build an internal calibration algorithm, and helped in other ways in the creation of an automatic voice recording app.
- Built a simple online store with Ruby on Rails, integrated with a credit card processing company.
Technologies: Ruby on Rails (RoR), C++, Win32 APISoftware Engineer
2002 - 2003“10th channel” Local TV- Collaborated with a partner to build an in-house business automation system while still in high school.
- Had a great exposure to the messiness of business process automation, and got to play with Delphi, Visual Studio .NET 1.0, and MS SQL Server.
- Gained valuable insight in how and why software projects fail and how to communicate with business customers. These lessons, learned early on, have helped my career immensely.
Technologies: Microsoft SQL Server, C#, .NET, Delphi