Daniel Li
Verified Expert in Engineering
Software Developer
London, United Kingdom
Toptal member since August 9, 2022
Daniel has nine years of experience in the industry, working across the stack on the front end, back end, infrastructure, operations, DevOps, and platform engineering. He is the author of Building Enterprise JavaScript Applications and Internal Developer Platform on AWS, published by Packt and Manning, respectively. Daniel is a regular speaker at meetups and conferences, most recently at PlatformCON and HKOSCon.
Portfolio
Experience
- Linux - 9 years
- Node.js - 9 years
- JavaScript - 9 years
- Amazon Web Services (AWS) - 5 years
- Terraform - 5 years
- Docker - 5 years
- Pulumi - 2 years
- CDK for Terraform - 1 year
Availability
Preferred Environment
Linux, MacOS, Visual Studio Code (VS Code), Slack
The most amazing...
...project I've done is authoring my book Building Enterprise JavaScript Applications. It was published in 2018 but is still getting rave reviews in 2022!
Work Experience
Staff Software Engineer
Zinc
- Contributed to and reviewed code across the front end using Vue and Nuxt.js and back end in Node.js, Express, TypeScript, and MongoDB.
- Established engineering guidelines (Git workflow) and implemented technical processes, such as postmortems and feature planning.
- Established and tracked OKRs, including for business value (monthly recurring revenue), code quality, test coverage, uptime, and internal SLAs.
- Tackled technical debt by writing tests, fixing flakey tests, refactoring, and replacing old packages.
- Improved company-wide processes, including the process for proposing new features.
- Prepared the documents for the ISO 27001 certification and audit.
- Doubled the engineering team by sourcing developers via Workable and Cord and conducting interviews.
- Handled customer support inquiries and authored articles on the knowledge base and help center.
Staff DevOps Engineer
Barogo
- Designed and implemented robust infrastructure from scratch on AWS.
- Established Pulumi as the infrastructure-as-code tool for provisioning AWS resources.
- Set up end-to-end tests and CI/CD pipeline using AWS CodeBuild.
- Dockerized and set up pipelines for deploying applications to AWS ECS.
- Set up a data anonymization pipeline from Amazon RDS for PostgreSQL.
Senior DevOps Engineer
Long Game
- Automated configuration of local and remote hosts using Ansible playbooks and Docker.
- Set up Terraform to manage new and existing AWS, GitHub, and Cloudflare resources.
- Performed vulnerability scanning with Qualys and program lead for the HackerOne bug bounty program.
- Secured our API against DDoS attacks by integrating with Cloudflare.
- Separated monolithic AWS environment into separate accounts for playground, development, and production.
- Designed AWS networking and configured AWS Client VPN.
- Dockerized workloads and migrated them from AWS Elastic Beanstalk to Amazon ECS.
- Migrated our secrets management from credstash to AWS Secrets Manager.
- Implemented monitoring and metrics platforms from scratch using Prometheus and Grafana.
- Revamped the logging workflow using Fluent Bit, FireLens, Amazon Kinesis Data Firehose, Elasticsearch, and Kibana.
DevOps Engineer
Vonage
- Built and administer Kubernetes clusters, including CI workflow design, secrets management, and logging.
- Containerized services using Docker and migrated them to run on Kubernetes.
- Automated provisioning and configuration of our existing infrastructure using Terraform and Puppet.
- Implemented monitoring of our services using Telegraf, Prometheus, and Grafana.
- Set up CI pipelines using Travis CI and Jenkins configured using JCasC and Jobs DSL.
- Documented client-facing APIs using Swagger and OpenAPI, as well as internal processes and conventions.
- Designed and implemented unit and integration tests using Mocha, Chai, and Sinon.JS.
- Designed and implemented E2E tests using Gherkin, Cucumber, and Behave (Python).
- Improved the API performance by optimizing Couchbase indexes.
- Designed and ran stress and performance tests on our API using Artillery.
Founder and Managing Director
Brew Creative
- Managed every aspect of the business, including market research, client acquisition, drafting contracts, bookkeeping, accounting, design, development, and system administration.
- Developed and deployed websites and web and hybrid mobile applications.
- Organized meetups for React and Elixir and co-hosted a meetup to help people get into programming.
Front-end Developer
UENI
- Led the front-end development for mobile and web platforms such as Service Matcher, Pathfinder, and Walker Portal.
- Proposed and executed various initiatives, organized weekly developer talks—DevTalks, administered the professional development budget, improved the onboarding process, and created product requirements and specification document templates.
- Collaborated with our in-house designer on wireframes, designs, and prototypes.
Web Developer
TAG
- Acted as a lead front-end developer for multiple web and mobile projects for clients, including the British Council, Chinese University of Hong Kong, BlackRock, Martell, and Hong Kong Football Club.
- Maintained multiple WordPress sites and updated content on those sites.
- Performed ad-hoc bug fixes and new features to existing websites using PHP and JavaScript.
Web Developer
Wunderman Thompson
- Worked with various CMSs, including Kentico, Umbraco, Magento, SharePoint 2013, and Microsoft Content Management System (MCMS).
- Served as a lead front-end developer on the campaign website for Ocean Park. The implementation includes a custom-built IE8-compatible horizontal and vertical parallax framework.
- Acted as a sole maintainer on the corporate website of Taikoo Place, using MCMS, the predecessor of SharePoint.
Experience
Building Enterprise JavaScript Applications
https://www.packtpub.com/product/building-enterprise-javascript-applications/9781788477321In the book, I guide the readers to build a simple API and React application from scratch. The reader starts by setting up a development environment using Git, Yarn, Babel, and ESLint. Then, they will build a stateless API service using Express, Elasticsearch, and JSON Web Tokens. The front end is built using React, Redux, and webpack.
A central theme in the book is maintaining code quality. I taught readers how to enforce a test-driven development process using Selenium, Cucumber, Mocha, Sinon.JS, and Istanbul. The focus then shifts toward automation and infrastructure, working with continuous integration servers like Jenkins, deploying services inside Docker containers, and running them on Kubernetes.
Internal Developer Platform on AWS
https://www.manning.com/liveprojectseries/internal-developer-platform-serThe IDP is a web app that provides a self-service platform that product engineers can use to provision test and development environments without the involvement of the operations or platform team.
Education
Bachelor's Degree in Biochemistry
Imperial College London - London, UK
Certifications
Build a Modern Computer from First Principles: From Nand to Tetris
Coursera
Skills
Libraries/APIs
Node.js, OpenAPI, Vue, Auth0 Management API v2, Socket.IO, Jenkins Job DSL, Jenkins Pipeline, Restify, Chai, Sinon.JS, jQuery, React, Polymer, Handlebars, PayPal API, Braintree API, C3.js, D3.js, Starling, Passport.js
Tools
Git, Terraform, Jenkins, Cucumber, Slack, Mongoose, CircleCI, Auth0, Docker Compose, AWS CodeBuild, Amazon Elastic Container Registry (ECR), Amazon Elastic Container Service (ECS), AWS IAM, Ansible, Grafana, Fluentd, Fluent Bit, Papertrail, Kibana, OpenVPN, NGINX, Helm, Kustomize, Vagrant, Packer, Travis CI, Telegraf, Puppet, Artillery, NPM, Webpack, Babel, Mocha, Karma, Bower, Mailchimp, Ghost, Sketch, InVision, Zeplin, SystemJS, JSX, Braintree SDK, Uploadcare, Postfix, PM2, Redmine, Kentico, bbPress, Subversion (SVN), VPN
Languages
JavaScript, Gherkin, TypeScript, Bash, N1QL, API Blueprint, Markdown, Python, HTML, CSS, Sass, PHP, ActionScript 3, C#.NET, Assembly
Paradigms
DevOps, Test-driven Development (TDD), Continuous Integration (CI)
Frameworks
JSON Web Tokens (JWT), Nuxt.js, Express.js, Cypress, Jest, OAuth 2, NestJS, Yarn, Redux, AngularJS, Angular, Ionic, Selenium, Compass, Bootstrap
Platforms
Amazon Web Services (AWS), Docker, Linux, MacOS, Visual Studio Code (VS Code), DigitalOcean, AWS Elastic Beanstalk, Ubuntu, Kubernetes, Gloo, Decentralized Exchanges (DEXs), Debian, Firebase, Meteor, KeystoneJS, Shopify, Drupal, Magento, WordPress, Umbraco, Microsoft Content Management Server 2002, SharePoint
Storage
MongoDB, Amazon S3 (AWS S3), Datadog, Elasticsearch, Amazon DynamoDB, Couchbase, SQLite, JSON/XML Schemas
Other
Pulumi, CDK for Terraform, Biochemistry, Single Sign-on (SSO), Cloudflare, AWS CodePipeline, Secret Management, Prometheus, Amazon Kinesis, Qualys, Certified Ethical Hacker (CEH), Kubespray, MetalLB, Gangway, Skaffold, RAML, ESLint, Radium, Web Components, Cordova, Blaze, BrainTree, PayPal, Digital Payments, DNS, SMTP, Dovecot, User Interface (UI), User Experience (UX), Disqus, ShareThis, Webhooks, Languages, Compilers, Parsers, Boolean Logic, Hardware
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring