underyx


Bence Nagy’s Résumé

Versatile engineering at tech startups.
Focus on Python, DevOps, and cultivating culture.

Work at Kiwi.com (2015-)

One of the first 5% of engineers at Kiwi.com, scaled our team and tech as monthly turnover grew by 12x and we had a successful exit.

Roles

  • Software Platform Lead (2018-)
  • Senior Software Engineer (2015-2018)

Successes

  • Designed and developed our deployment automation tool, Crane, used for tens of thousands of releases.
    PythonRancherclickDockerGitLab CI
  • Developed the foundations of our data analysis platform, and the first dozen data pipelines, still serving 40+ members of BI and Analytics. In the process I had to implement some features in Apache Airflow itself.
    PythonPostgreSQLApache AirflowTableauMetabase
  • Rearchitected the largest monolith for better reliability and development velocity. Average unique daily contributors went from 3 to 10.
    PythonBottleAWSDockerRancherconnexionCelerySQLAlchemyGitLab CIpytestcoalaOpenAPI
  • Switched the same monolith to use asynchronous Python. In one day from idea to staging, memory usage dropped by 80%, server load by 55%, and 99th percentile request times by 60%.
    PythonBottleGevent
  • Led without authority to adopt engineering best practices company-wide. This includes static analysis, test automation, a public by default culture, CI/CD, containers, microservices, innersourcing, asynchronous Python, and many more.
    pytestDockerKubernetesasyncioaiohttpSlacksphinx
  • Created Kiwi.com’s location autocompletion API, end-to-end from loading data, to API design, and even deployment automation. It’s now happily handling 100+ req/s.
    PythonaiohttpPostgreSQLElasticsearchCircleCIElastic Beanstalk
  • Wrote our first reference templates for new Python apps, libraries, Docker images, GitLab CI pipelines.
    PythoncookiecutterDockerGitLab CIaiohttpSlacksphinx
  • Led development of our microservice directory, The Zoo.
    PythonDjangoPostgreSQL
  • Kept the search engine running as one of the two people in the on-call rotation.
    PythonPostgreSQLAWSRedisElasticsearchBottle
  • Implemented product features on search & booking engines directly increasing sales.
    PythonPostgreSQLBottle
  • Laid the groundwork of an internal HR and ticketing application, used for 3+ years and counting
    PythonDjangoPostgreSQL
  • Picked up experience with various other short-term projects, see tags below
    GCPTerraformKubernetesserverlessReactGatsbyAnsibleTwine

Failures

  • Implemented an internal data pipeline execution framework.
    I shut it down as it was inferior to Apache Airflow in every way.
  • Wrote a tool to gather news announced by other departments in random places, and aggregate them in Slack channels.
    I shut it down as all the scraping and automated data cleaning wasn’t sustainable, and it didn’t entice people to manually correct its posts.
  • Many more that were valuable lessons but aren’t grand enough to make this list.

Proudest Moment

My proudest moment was when, after 3 years I spent at Kiwi.com, we polled engineers on what their values are, and “Transparency” came up as the number one response, much unlike when I joined. After spending years preaching, fighting for an open company culture, I feel like this is somewhat of a personal accomplishment of sorts, even if I obviously can’t just outright take credit for it.

Work at Allmyles (2014-2015)

Built the company’s technical foundations, at times as the only employee.

Role

Software Engineer (2014-2015)

Successes

  • Migrated the whole infrastructure from the sunsetting HP Cloud to AWS.
    AWSUnix
  • Implemented the main API product of the company from the ground up.
    PythonPostreSQLRedis
  • As another blank slate, started a user facing dashboard web app.
    PythonDjangoPostgreSQL
  • Defined the whole infrastructure as code, maintained numerous services
    AnsibleElasticsearchLogstashKibanago.cdicinga2
  • Implemented and published an open source PHP client library for our API
    PHP

Open Source Projects

…cause sometimes I just need to work on something out of passion.

  • Flask-Redis is my most popular one, with over a thousand GitHub repos using it. It’s a simple tool, sure, but I’m proud of how neat and tidy it is.
  • I’m a now-inactive maintainer of coala, the largest project I’ve been involved with. This involved much more community-related work, such as leading development sprints at PyCon.
  • I have more cool little little utility libraries, such as aiohttp-sentry, structlog-pretty, and several others.
  • Finally, I like to keep things open source even if they are meant only for my own personal use. See for instance underyx.me (this website!), ops, which has the Kubernetes manifests and Ansible playbooks for my personal server (which hosts this website, amongst many others!), or even conference-notes, which is just personal notes from conferences I attended.

Education

Entirely self-taught since 2012.

Talks

I’m a fairly prolific speaker: so far, I’ve written 14 presentations that I’ve held at 18 events in total. Check them out on my Talks page.

Articles

There’s also a bunch of articles I’ve written. To be more specific, there’s 10 7 of which were published by code.kiwi.com as well. Check those out on my Articles page.

Languages

  • English: fluent
  • Hungarian: native
  • Japanese: reading-only, novice

Random Facts

  • I have an entry in the Common Vulnerabilities and Exposures database:
    CVE-2018-18645
  • I use the Colemak keyboard layout, on an ErgoDox keyboard I built for myself.
  • I challenge anyone reading this to try beating me at Tetris.
  • Many parts of this CV are dynamic. For instance, the part about how I have “N articles”, that number is directly the count from Medium.com’s API plus the number of Markdown files for this site.