Scroll To View More
John-Paul Simonis, Software Developer in Bainbridge Island, WA, United States
John-Paul Simonis

Software Developer in Bainbridge Island, WA, United States

Member since June 17, 2017
John-Paul's lifelong interest in the web started at six years old in the public library. A father and husband, entrepreneur and founder of a test-prep startup, and industry veteran of 13 years, he is able to make projects succeed. He specializes in front-end apps for mobile and web, back-end/cloud services and APIs, Cloud infrastructure, and devops, and works well with owners and decision makers.
John-Paul is now available for hire

Portfolio

Experience

  • JavaScript, 10 years
  • Node.js, 7 years
  • HTML5, 6 years
  • Angular, 5 years
  • TypeScript, 5 years
  • MongoDB, 4 years
  • React, 3 years
  • Google Cloud, 3 years
Bainbridge Island, WA, United States

Availability

Part-time

Preferred Environment

OS X, iOS, Git/SVN, VS Code

The most amazing...

...concept I've implemented is a real-time collaboration and lecture website with streaming video/audio, a shared whiteboard, and synchronized lecture slides.

Employment

  • Founder

    2015 - PRESENT
    Creative Journey Software
    • Developed a serverless (Google Cloud Functions/MongoDB) Node.js back end, delivering planetary event notifications from NASA’s JPL ephemeris data. The database script efficiently finds planetary events with to-the-second accuracy over arbitrary spans of time (usually hundreds of years).
    • Built a Swift/iOS app consuming a planetary event API, including retrograde charts (planet's path through the sky over a period of time) and event list with filtering. Switched the architecture to Ionic 3 with Cordova plugins to take advantage of the ease of rendering custom text and graphics with a platform-agnostic, web-based platform. Used plugins for event notifications and local storage for user settings. Designed on tablet and implemented with canvas (Paper.js), HTML5/CSS, and Ionic's built in components and navigation stack.
    • Created a mobile game with Paper.js and Cordova to practice tracing letters, numbers, and other arbitrary Bezier paths. The game helps kids learn the correct stroke order to complete the letter with a margin of allowed error determined by user's choice of difficulty level. Made extensive use of Bezier math and path rendering mechanics. Explored how kids learn, what speaks to them, and where sticking parts were in the game mechanics, through usability testing with a three-year-old.
    • Programmed a video/audio lecture web app with slides and live pen annotations synchronized in real time to the audience. Used Meteor/MongoDB and websockets for synchronizing pen strokes, OpenTok for audio and video, Reveal.js for slides, and Paper.js for drawing pen strokes.
    Technologies: Swift, iOS, Node.js, NASA JPL Data, Ionic 2, Cordova, Paper.js, Meteor, MongoDB, WebSockets, React
  • Senior Developer

    2019 - 2019
    Caminer, Inc.
    • Developed features on spreadsheet services and API intended to replace traditional back-end developent with a visual interface.
    • Prototyped and implemented generic, composable, transactional graph mutations to simplify raw dGraph queries.
    • Implemented features such as foreign table references on the back-end API using CQRS, dGraph, event sourcing, TypeScript, Node.js/NestJS, GraphQL, gRPC, RxJS, sagas, Redis streams, Docker, and PostgreSQL.
    Technologies: GraphQL, RxJS, dGraph, TypeScript, NestJS, Node.js, Event Sourcing, CQRS, Docker
  • Web/Mobile Developer

    2017 - 2018
    Turas Health (via Toptal)
    • Took over an existing project written in Ionic 3/Angular 4 which had fallen behind schedule on the front end. The app's purpose is to synchronize medical notes between care providers and their patients while giving control to patients to determine which family and friends can see the medical notes. Providers can take video and audio (implemented with Cordova plugins and Ionic 3 adapters), and text notes, which appear in a vertical timeline for the patients and family/friends.
    • Removed redundancy and cleaned up the codebase.
    • Worked via regular standups and issue boards to get the project moving forward; collaborated on design decisions and how best to bring project requirements into the UI.
    • Used Ionic 3's lazy loading feature to minimize the initial bundle size and increase load performance.
    • Organized pages, components, services, and template pipes into modules.
    • Made use of the RxJS (Observables) package to facilitate REST API query ordering and combination, graceful error handling, polling for uploads to complete and to maintain session activity, and app-wide event architecture for synchronized UI updates.
    Technologies: Ionic 3/Angular 4, Cordova, Native Camera/Microphone/Keyboard Cordova Plugins
  • Web Developer

    2017 - 2017
    Prodzee (via Toptal)
    • Implemented a product management tool around the concept of Gherkin, using exact design specifications from InVision.
    • Developed based on an existing React.js platform, upgrading and refactoring to use ES6/TypeScript and Webpack with Babel, CSS/Sass, and a static directory for assets.
    • Used a container/component paradigm to separate Firebase logic from pure React components. Included a browser native speech API for entering text. Firebase's database product automatically synchronizes data in real time between the database and client.
    • Used native SpeechRecognition API to translate users' speech into user stories quickly and accurately. Saying keywords such as "AND" and "TITLE" allows users to control where the input goes.
    • Implemented a hierarchical structure to categorize user stories in a typical feature/epic/story format. Categories automatically collapsed (unless pinned) to maximize screen space relevant to the user.
    Technologies: React, Speech Recognition API, Firebase, Responsive Apps
  • Web Developer

    2017 - 2017
    DareWest/SunPower (via Toptal)
    • Implemented a solar panel product browser with photos of the technology and buildings/houses utilizing the technology.
    • Developed a project that had already been started, applied exact styles from a design specification, and implemented a mini gallery connected to a carousel, a filtering menu, an expanding/retracting navigation bar containing the above, and visible "hotspots" in each image with a callout with further information and a link to a filter.
    • Used Angular and CSS animations and Angular services to access configuration and transferred settings to JSON files to make all site content editable.
    • Used Wrike for team task management to quickly move through the remaining features and bring the project back into an on-time status, collaborating with the team who communicated the client's periodic feedback to me.
    • Developed for all tablet sizes including iPad, iPad Pro, Galaxy, etc.
    Technologies: Angular 4
  • Co-founder, Developer

    2009 - 2017
    Examily, LLC
    • Designed and implemented a pre-health sciences admissions test preparation website with a bootstrapped, active customer base.
    • Used OpenTok/WebRTC, WebSockets (Socket.IO), and Meteor to create a real-time lectures with synchronized slides, video/audio stream, and chalkboard.
    • Implemented a back-end API with Node.js, Express.js, MongoDB/mongoose, and redis to cache semi-static data. Optimized front-end load time to increase conversion with redis caching, database optimization, minification/compression, dependency pruning. Nightly data aggregations, e.g., comparative test score histograms, difficulty by question and category.
    • Developed an AngularJS front-end app with a guided tour, practice test simulation, index of categories sorted by difficulty/proficiency, a test results page with comparative histogram to show relative proficiency to other test takers, bar graph of proficiency by category, and answer explanations.
    • Implemented white-label purchases with Braintree, employee payments via ACH (Balanced Payments) and PayPal.
    • Developed a question editor (an editor of LaTeX for math/chem, tables/lists, font styles), reordering tests, and generating reports intended to discover outliers in content and behavior.
    • Measured performance with Chrome's Performance tab and server logs with New Relic APM, optimizing initial load time, navigation time, and API endpoint performance.
    Technologies: Node.js, MongoDB, Redis, Express.js, AngularJS
  • Developer, Architect

    2012 - 2013
    Flink Learning
    • Developed a platform for game content authoring for 25+ children's game templates. Developed the framework from scratch in Backbone.js, jQuery, and jQueryUI, using plugins for sound recording. Cleaned up the PHP/MySQL back-end, which was open to SQL injection and integrated logins with a separate ASP.NET server.
    • Developed a game experience for children with OOP JavaScript and jQuery. Built animations, automatically laying out content based on number of elements, consistent with game specs: ordered elements, ebooks, multiple choice, etc.
    • Developed customization for the platform through an interactive human-friendly JSON editor, so that branding, features, playable games, and all aspects of the platform could be tailored to clients in publishing, school districts, and teachers.
    • Developed a platform to keep track of a class of kids, assigning homework to groups or individuals with the same code base as the content authoring framework.
    • Developed a standalone game for learning spelling, involving dragging letters up or down or changing their order. Appeared on Android and iOS app stores.
    • Collaborated remotely via phone and email with the founder on all aspects of the platform. Offered creative solutions to a variety of problems and business requirements.
    Technologies: Backbone.js, jQuery, jQuery UI, Audio Playback and Recording, HTML5/CSS3, Animation
  • Developer

    2010 - 2011
    Redfin
    • Worked with an Agile team of developers, PMs, QA, and designer on Redfin's CRM platform for their real estate agents. Worked directly with agents to understand the business, spec features, and make UI decisions.
    • Developed an analytical dashboard for Redfin's teams to visualize the pulse of their business flow. Used Google Charts API to create graphs with deals at different stages in the pipeline and tours for the team and overall market. Linked from actionable statistics to perform essential business functions. Raw PostgreSQL queries for most statistics, highly performant across all markets.
    • Developed a tour packet given to customers on home tours, downloaded via a link on Redfin's touring agents' dashboard. Used a Java-based XHTML/CSS to PDF converter with CSS to tailor pages to fit exactly. Included similar homes in the area for pricing comparisons, information on the home, amenities, price, neighborhood and schools, and contact information for the Redfin team for that area.
    • Developed part of the Redfin listing manager for home selling: listing details. Kept track of the essential information for each deal, integrated with other widgets developed by the team such as workflow and scheduling.
    Technologies: Java, Spring, Dojo, PostgreSQL, Salesforce, Hibernate
  • Intern, Developer

    2008 - 2009
    PitchBook
    • Prototyped features for a small, new private equity data startup (now acquired). Documented prototypes for easy adoption by an offshore team.
    • Developed an interactive entity relationship viewer with Adobe Flex using graph visualization features such as force layout. Entities included companies and people.
    • Migrated data from an Access database to MS SQL using C# 3.0 and .NET features.
    • Developed and documented an auto-generated Excel spreadsheet using a Java API.
    Technologies: Adobe Flex, MS SQL, Access, Java Excel API
  • Intern, Developer

    2008 - 2008
    Pure Networks
    • Completed the installation wizard for Cable Gateway devices in C++. Utilized a proprietary framework for UI, OOP C++, and SOAP interaction API for communication with the router.
    • Worked with QA to identify and fix problems. Worked in an Agile Scrum environment with four developers.
    Technologies: C++
  • Intern, Developer

    2006 - 2007
    Microsoft
    • Developed a Windows Component viewer for the Embedded Vista team. Improved on the tool the following year. Allowed team members to easily view, filter, and search components and navigate to their dependencies. Worked autonomously with feedback from managers and mentors. Used C# and .NET for database connectivity, MS SQL queries, UI, and class design. Included an exclude list for components with messy dependencies.
    • Developed a scripting language to output and view graphs of components and dependencies (nodes with arrows pointing to each dependency, using Graphviz library).
    • Presented demos of the component viewer (a.k.a. Badger), and Graph Visualizer to the embedded team. Incorporated feedback from these meetings.
    • Developed Embedded Vista features by compiling components related to a specific area of functionality. Developed, debugged, and tested packages for network printing and legacy app support. Used low-level debugging tools and process examiners, command line tools for creating OS images, and the Component viewer to determine which components to include in the package.
    Technologies: MS SQL, C#, .NET UI

Experience

  • DATQvault (Development)
    http://datqvault.com

    DATQvault is the cumulative result of 6 years of development and changes to this pre-health sciences admission testing platform. The latest version is developed in Node.js, AngularJS, Express, Redis for sessions and data caching, and MongoDB. Several scripts regularly perform MapReduce functions on large databases to compile statistics relevant to users.

    Other features:
    - Optimized for initial load performance and page transitions.
    - Emails for order confirmations, including a free test from one of any remaining unpurchased subjects.
    - Support.
    - Questions categorized by area of knowledge and sortable by difficulty or practice frequency.
    - Practice test format mimics official ADA format.
    - Statistics on the home page, and at the conclusion of each practice test, including how your results compare to your peers.

Skills

  • Languages

    HTML5, ECMAScript (ES6), CSS, HTML, JavaScript, TypeScript, Java, GraphQL, Swift
  • Frameworks

    Redux, Cordova, Jest, Angular, Express.js, Paper.js, AngularJS, Ionic, Nest
  • Libraries/APIs

    MobX, REST APIs, React, Node.js, HTML5 Canvas, PayPal API, React Router, Braintree API, Backbone.js, jQuery UI, MathJax, jQuery, Socket.IO, GatsbyJS, Redux-saga, Stripe API
  • Tools

    Karma, Webpack, Browserify, Gulp.js, Chrome Developer Tools, WebdriverIO, Docker Compose
  • Paradigms

    Behavior-driven Development (BDD), E2E Testing, Unit Testing, Test-driven Development (TDD), Functional Programming, CQRS
  • Platforms

    Firebase, Heroku, Meteor, Visual Studio Code, OpenTok, iOS, Docker
  • Storage

    Cloud Firestore, MySQL, Redis, MongoDB, PostgreSQL, Dgraph, Google Cloud
  • Other

    Firebase Cloud Functions, APIs, Google Cloud Functions, Minification, HTML5 Video, Semantic UI, WebSockets, Apollo, Elastic Beanstalk

Education

  • Bachelor of Science degree in Computer Science
    2006 - 2010
    University of Washington - Seattle, WA
I really like this profile
Share it with others