Work at Semgrep (2020-)
Engineering on Semgrep!
Role
- Staff Software Engineer (2023-)
- Senior Software Engineer (2020-2023)
Work at Astroscreen (2019)
Led the software efforts of an information warfare startup with unicorn-y
ambitions for 5 months.
Role
Software Lead (2019)
Successes
-
Developed a distributed data processing platform auto-scaling to more spot
instances according to shifting memory requirements.
DaskAWSKubernetesNumPy
-
Unfortunately, most details of our work are too sensitive to just blurt
our right here.
Work at Kiwi.com (2015-2019)
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-2019)
- Senior Software Engineer (2015-2018)
Successes
-
Designed and developed our deployment automation tool, Crane
, used for tens of thousands of releases.
PythonRancher clickDockerGitLab 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 Airflow TableauMetabase
-
Rearchitected the largest monolith for better reliability and development
velocity. Average unique daily contributors went from 3 to 10.
PythonBottleAWSDockerRancherconnexionCelery SQLAlchemyGitLab 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.
pytestDockerKubernetesasyncio aiohttpSlacksphinx
-
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.
PythonaiohttpPostgreSQLElasticsearch CircleCIElastic Beanstalk
-
Wrote our first reference templates for new Python apps, libraries, Docker
images, GitLab CI pipelines.
PythoncookiecutterDockerGitLab CI aiohttpSlacksphinx
-
Led development of our microservice directory, The Zoo
.
PythonDjango PostgreSQL
-
Kept the search engine running as one of the two people in the on-call
rotation.
PythonPostgreSQLAWSRedisElasticsearch Bottle
-
Implemented product features on search & booking engines directly
increasing sales.
PythonPostgreSQL Bottle
-
Laid the groundwork of an internal HR and ticketing application, used for
3+ years and counting
PythonDjango PostgreSQL
-
Picked up experience with various other short-term projects, see tags
below
GCPTerraformKubernetesserverlessReactGatsbyAnsible Twine
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
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 bence.dev
(this website!), ops, which has the Kubernetes manifests and Ansible playbooks for my
personal server (which hosted this website, amongst many other things!),
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.
Writing
There’s also a bunch of blog posts I’ve written.
To be specific, there’s 10 – 7 of which were published by code.kiwi.com as well. Check those out on my Blog 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.
- 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.
bence.dev’s color scheme
The colors on this site change every morning based on my biometric data. A
better night’s sleep makes the colors happier, and more activity the
previous day makes the colors livelier. Here’s what the background
color means (today’s color is highlighted):
Activity › Sleep › | High | Medium | Low |
Great | | | |
Good | | | |
Okay | | | |
Poor | | | |
Terrible | | | |