Iowa State University
Technical Lead at Mixbook
Join LinkedIn & access Dan's full profile
I’m a senior software engineer specializing in front‐end web development and technical leadership. I love working with others that are passionate about building software that impacts peoples lives, and that they want to tell their friends about. Over the years, I’ve perfected my skills turning product requirements into modular, extensible and performant code. I’m interested in honing my technical leadership expertise, as well as gaining experience building mobile applications.
Currently serving as a technical lead for Montage. Using advanced image analysis algorithms, simple editing tools and a sleek HTML5 interface, Montage is one of the most intelligent and easiest to use photo book creation experiences on the web.
* Engineered many of the product’s core components
* Guided the team to use processes and tools to increase productivity
* Mentored engineers in best practices for building large web applications
* Built the rendering engine used to view, edit and print photo books
* Designed the company’s next generation canvas markup language to represent book designs
* Designed a process for rendering text uniformly across different platforms
* Implemented book editing features for photo editing, text entry, undo redo and layout modifications
* Analyzed and improved application performance in areas of page load times, rendering, animations and memory usage
* Set up systems for continuous integration and continuous deployment
Mixbook is an online service for making photo books, cards and calendars. As a founding engineer, my engineering decisions have significantly contributed to the company’s success. Customers have used our online software to order over 950,000 projects and upload over 299 million photos.
* Owned the software architecture for the company’s book, card and calendar builders
* Designed a modular data model to store book, card and calendar projects
* Built a reusable rendering engine for viewing, editing and printing projects
* Built out features for uploading photos, applying photo effects, editing pages and undo redo
* Designed cohesive APIs for client-server communication
* Built a diffing system to minimize sizes of project save requests
* Assisted in the design of a templating language to auto-fill text into cards and calendars
* Conceptualized and implemented features to improve the product editing experience
* Analyzed usage data of the application to improve user conversion through A/B testing
* Prototyped methods for auto-applying 3-dimensional ink to upsell customers at checkout
* Interviewed, mentored and coached fellow engineers in software best practices
* Available around the clock to resolve customer issues
* Co-inventor of 3 issued software patents
Technologies: Flex, ActionScript 3, Ruby on Rails
Quality Attributes was a startup specializing in energy management and sustainability. It was dedicated to helping companies reduce building energy costs, energy consumption and carbon emissions.
* Built highly customizable and reusable data visualization components to increase productivity
* Spearheaded and prototyped new product initiatives
* Defined APIs for client-server communication
Technologies: Flex, ActionScript 3
A slightly Bacon.js inspired Dart package that aims to make functional reactive programming easier in Dart. Frappé extends the behavior of Dart's streams, and introduces new concepts like properties and watchables.
Stitch is a Dart package that uses transformers to generate CSS sprite sheets.
Mesh is an open-source persistence framework for Adobe Flex. Its aim is to make the retrieval and persistence of Flex application data as transparent as possible.
Mesh provides APIs for defining the associations between model classes, tracking which objects need to be saved, validating the integrity of model data, and mapping models to backend services. In addition, Mesh is completely agnostic to the backend service used. It can be used with any existing AMF, REST, SOAP service, and hypothetically an AIR application running a SQLite database.
Cayri is a personal project that displays ﬂight statuses for the VATSIM and IVAO ﬂight simulator networks.
The mapping system is based on the AS2 version of Yahoo Maps. However, marker placement was written from scratch to take full advantage of the performance gains provided in AS3, and then overlaid on top of the Yahoo mapping component. This allowed for thousands of markers to be placed on the screen at any given time.
Techniques were also applied to intelligently determine departure and arrival statuses, time to destination, and do aircraft position predictions. A lot of research went into Mercator map projections, processing user generated flight routes, and mapping them to real world navigation stations using the now defunct DAFIF database.
In a server-based system for creating and editing image-based and or text-based projects, the system having access to a digital medium containing an executable graphics user interface (GUI) accessible by computer browser, a method is provided for triggering automatic page save operations and includes the steps, (a) monitoring editing activity occurring in the project editor viewport, and (b) upon detection of a loss of a page from an editor viewport and or detection of a violation of a safety measure, automatically persisting the current page data to the server.
In a server-based system for creating and editing image and or text-based projects, the system having access to a digital medium containing an executable graphics user interface (GUI) accessible by computer browser, a method is provided for scaling a project page using relative units including the steps (a) establishing a 0 point at the center of the project page, (b) from the center, scaling a number of relative units ending at a negative limit value for width equal to one half of total width value, (c) from the center, scaling a number of relative units ending at a negative limit value for height equal to one half of the total height, (d) from the center, scaling a number of relative units ending at a positive limit value for width equal to one half of total width, and (e) from the center, scaling a number of relative units ending at a positive limit value for height equal to one half of the total height. For all of the steps, each unit represents an equal division of the total value from the negative limit to the positive limit for width and for height.
Regional Sales Manager at CivicPlus (Indiana, Michigan, & Ohio)
Topeka, Kansas Area
Greater New York City Area
Talent Acquisition at CHG Healthcare Services
Miami/Fort Lauderdale Area
Financial Advisor at Ameriprise Financial
Greater Denver Area
Owner Of Taquito Joes / Sunrise Taquitos
Houston, Texas Area
CEO at Mixbook / Mosaic
CTO at Mixbook / Mosaic / Montage
VP of Engineering at Mixbook
UI Designer at Mixbook
Architecture Engineer at NVIDIA
Director, Business Development & Operations at Mixbook / Mosaic