Senior Developer, Innovation and Product Development
2015 - PRESENTUSA Today Network (via Toptal)- Implemented a number of MVPs for the innovation team, exploring various aspects of the future of digital journalism. These were very diverse 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.
Technologies: Golang, Node.js, MongoDB, Machine Learning (Gradient Boosting, Deep Neural Nets), Swift, Client-side JavaScript and CSS, Chrome Browser Extensions, PythonEntrepreneur
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: Cocoa, Objective-C, Swift, Browser extensions, Node.js, JavaScript, RubyFreelance 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: iOS, OS X, Android, Windows Phone 8, HTML5, JavaSketch Plugin Developer
2017 - 2018Evolphin Software (via Toptal)- 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).
Technologies: Xcode, Cocoa, JavaScript, React, Hopper Disassembler, Sketch.app InternalsSenior iOS Developer
2015 - 2017LiveMixtapes (via Toptal)- 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 latest opportunities in the iOS appscape.
- Saw the app through multiple releases, minor and major.
- 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: Objective-C, SwiftiOS 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: Objetive-C, CocoaTouch, AdMarvel, Facebook APIFounder
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: Eclipse RCP, SWT, Java, Type inferencing, RubySenior 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: Eclipse, RCP, JavaFreelance 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: Win32 API, C++, Ruby on RailsSoftware 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: Delphi, .NET, C#, Microsoft SQL Server