Department: Engineering – V4 Engineering
Type: Full Time
Min. Experience: experienced
Import.io is on a mission to enable web data. The web is the world’s largest database, but getting data from the web is hard. Import.io is on an ambitious mission to solve that problem and make web data a reliable, high quality data source. We have built the world’s only enterprise Web Data Integration platform that can parse data from any website, at scale and deliver that data accurately, on time, every time. Our customers are among the world’s leading organizations and they use web data on their most important business problems, running mission critical applications and services with the web data that we provide to them. Together we can make sure that no one ever has to write a web scraper again – we’re just getting started.
Amsterdam Tech Hub
Reporting to the head of the Amsterdam engineering team, you will join this newly-formed team for a greenfield project to re-architecture the company’s existing platform from the ground up.
You’ll be a key member of a small, dynamic and collaborative team that operates co-located from our Amsterdam offices.
You’ll need to be passionate and knowledgeable about designing and building highly-available, fault-resistant, massively-scalable distributed systems.
We have a large server pool of tens of thousands of servers. We process over 150 million unique web pages to serve a billion queries per month. We operate on a large scale so the work you do will matter. Every design choice will be magnified thousands of times and have a huge impact.
You’ll be an innovative engineer with a creative indefatigable approach to overcoming obstacles. You’ll use your obsessive attention to detail to design and build systems that scale, adapt and function faultlessly at scale without human intervention.
The Senior Backend Engineer role
This senior engineering role is responsible for the architecture, performance and scalability of our distributed web crawling and extraction servers and everything that entails from overcoming anti-crawling measures, orchestration of thousands of simultaneous servers through to infrastructure cost optimisation and highly-distributed parallelized workflows.
- You thrive in environments that afford you high levels of responsibility and autonomy.
- You hold yourself and those you work with to high standards.
- You want to fulfil your potential to its fullest, grow as a developer and as a person to be the best you that you can be.
- You don’t look for excuses for why something can’t be done, you are the person who finds creative solutions for how it can be done.
- If a skill that you don’t possess is required to complete a task you’re the kind of person who goes off and learns enough to get it done.
- You behave like an owner. You take total responsibility for what you work on and think of the bigger picture like a product manager would.
- You are results oriented and have a strong distaste for shaving yaks.
- You are a persuasive communicator. You are both succinct and direct. You are clear about what you are doing, why, and what you expect of others.
- You have strong opinions, weakly held, and the humility to change your mind according to the evidence as it presents itself.
- You’re confident with distributed systems of many thousands of servers and you build scalable services that don’t require manual operations.
- You build software that is adaptive, inventive and super lean.
- Architect the next iteration of our platform using the latest technologies and design approaches.
- Design and build the core components of that system.
- Recruit and develop engineers.
- Champion a culture of obsessive attention to efficiency and architectural simplicity.
- Develop innovative and novel solutions.
- Actively collaborate to set the quality standards and best practices for the team.
- Proactively promote efforts that continuously make the technical stack more efficient—economically, algorithmically and operationally.
We’re using TypeScript 4.0 because, a) it’s statically-typed and, b) most of our servers are wrappers around a headless Chrome instance so that forces either JS or TS on you. It’s also, luckily, a great language, powerful and expressive, with kick-ass inferred typing.
It’s not a common choice for backend systems though so we’re open to whatever language background you come from—C# or Kotlin (in which case, you will find much to love in TypeScript), Java, Scala, Go, C++, Rust—but not PHP (sorry!).
- Subject matter expertise in large-scale distributed systems design, such as message queues, distributed caches, distributed data stores.
- Strong critical thinking and clarity in expressing complex ideas.
- Attention to detail, ability to anticipate corner cases and exceptions.
- Good understanding of the principles of distributed systems design and familiarity with common solutions to the unique problems these systems present.
- Independent and self-motivated work ethic.