David Omar Flores Chávez

Software Engineer

I’m an engineer with a strong interest in Open-source Software.

I have 6+ years of experience with HTML and CSS; 5+ years with C, Python and JavaScript (more recently, and joyfully, TypeScript), and 3+ years using frameworks such as React and Angular.

I’m proud of having designed, developed, and documented Ginpar, a framework meant to optimize the workflow of generative artists.

Strongly focused on Development Experience, Web Performance, and Technical Writing

Experience

UI Engineer
Jan 2023 – Present
    Front-end Engineer
    Angular
    NestJS
    TypeScript
    Socket.IO
    RxJS
    Dec 2020 – Dec 2022
    • Led the migration of an 8-year-old AngularJS project from Gulp to Webpack.
      • Upgraded our tech stack (Vanilla JS, and CSS ⟶ ES2020, Typescript, and Sass).
      • Reduced non-cold start re-compilation time for development builds from 20s to <1s.
      • Simplified the build process by reducing the number of commands that had to be ”manually” run.
    • Led the continuous upgrade of a core application (>120k weekly active users) from Angular v4 to v9.
      • Reduced initial bundle size, loading times, and crash rate, which improved Apdex score from .6 to .85.
      • Documented the core architecture of the application using Sphinx.
      • Created a project-specific roadmap to keep up with the upgrades up to Angular 14
    • Improved client-side performance on multiple front-end projects across the whole company by adding compression
      • Configured CachePolicies on AWS CloudFront to accept Brotli and Gzip encoding
      • Updated Webpack configurations to run compression on the generated bundles
      • Reduced the initial JS and CSS bundle size across all projects to 15% of the original size (avg.)
    • Participated in the candidate selection process, by directing technical interviews, reviewing take-home assignments, and mentoring new interviewers
    Front-end Developer
    React
    AngularJS
    Angular 2+
    TypeScript
    RxJS
    WebSockets
    Unit Testing
    Feb 2020 – Dec 2020
    • I’m one of the two core developers of an open source front-end library.
    • Developed a one-to-many real-time chat to send messages, files; and images, and with permissions for some users to create chat groups.
    • Wrote scripts to seed mock content, users, and interactions with different information and progress in the database, making testing and development faster.

    Projects

    Web-based game to learn, practice, and compete using regular expressions
    React
    TypeScript
    WebSockets
    Go
    • Connect two users in a room, and when the two are ready, load the same problem for both.
    • Write a regular expression and get instant visual feedback as-you-type to see how well it solves the problem tests.
    • See how well your opponent is doing, just by watching how many tests they have solved.
    Python
    Jinja2
    Click
    (Some) Vanilla JS
    • Convert P5.js scripts into interactive pages that let you control the script parameters in a GUI.
    • Templating engine to generate the interactive GUI using YAML files to specify the controls.
    • Generate buttons for value randomization, sketch regeneration, and image download with seeding information.
    • CLI commands to initialize projects and sketches; build projects, and start a live reloading server.
    Web tool to assist generative artists interested in rendering attractors
    HTML5
    CSS3
    Vanilla JS
    P5.js
    • An attractor is a mathematical function that sometimes, when graphed, results in attractive and complex patterns.
    • Mass-produce attractors to efficiently choose attractor building values.
    • Create multiple canvas elements that depend on the size of the screen and the URL parameters.
    • Each canvas can be regenerated without affecting the others.
    • You can select one of the attractor samples, and render it in higher quality.

    Extra

    • I’ve given a public tech talk!

    I’ve been interested in generative art for more than two years, which eventually inspired me to give my first (and so far only) tech talk: Introduction to generative art.

    • I enjoy writing

    I don’t do it pretty often, and when I do, most of the times I don’t publish it, but I enjoy it anyways. You can check my blog.

    My favorite entries are: On Ignorance, and Functional thinking and seemingly non-efficent code.

    I also maintain a generative art blog at generativemistakes.art