Skip to content

Zegocover/engineer-hiring-tech-exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

python-developer-test

Zego

About Us

At Zego, we understand that traditional motor insurance holds good drivers back. It's too complicated, too expensive, and it doesn't reflect how well you actually drive. Since 2016, we have been on a mission to change that by offering the lowest priced insurance for good drivers.

From van drivers and gig workers to everyday car drivers, our customers are the driving force behind everything we do. We've sold tens of millions of policies and raised over $200 million in funding. And we’re only just getting started.

Our Values

Zego is thoroughly committed to our values, which are the essence of our culture. Our values defined everything we do and how we do it. They are the foundation of our company and the guiding principles for our employees. Our values are:

Blaze a trailBlaze a trailEmphasize curiosity and creativity to disrupt the industry through experimentation and evolution.
Drive to winDrive to winStrive for excellence by working smart, maintaining well-being, and fostering a safe, productive environment.
Take the wheelTake the wheelEncourage ownership and trust, empowering individuals to fulfil commitments and prioritize customers.
Zego before egoZego before egoPromote unity by working as one team, celebrating diversity, and appreciating each individual's uniqueness.

The Engineering Team

Zego puts technology first in its mission to define the future of the insurance industry. By focusing on our customers' needs we're building the flexible and sustainable insurance products and services that they deserve. And we do that by empowering a diverse, resourceful, and creative team of engineers that thrive on challenge and innovation.

How We Work

  • Collaboration & Knowledge Sharing - Engineers at Zego work closely with cross-functional teams to gather requirements, deliver well-structured solutions, and contribute to code reviews to ensure high-quality output.
  • Problem Solving & Innovation - We encourage analytical thinking and a proactive approach to tackling complex problems. Engineers are expected to contribute to discussions around optimization, scalability, and performance.
  • Continuous Learning & Growth - At Zego, there's loads of room to learn and grow. Engineers are encouraged to refine their skills, stay updated with best practices, and explore new technologies that enhance our products and services.
  • Ownership & Accountability - Our team members take ownership of their work, ensuring that solutions are reliable, scalable, and aligned with business needs. We trust our engineers to take initiative and drive meaningful progress.

Who should be taking this test?

This test has been created for all levels of developer, Junior through to Staff Engineer and everyone in between. Ideally you have hands-on experience developing Python solutions using Object Oriented Programming methodologies in a commercial setting. You have good problem-solving abilities, a passion for writing clean and generally produce efficient, maintainable scaleable code.

The test

Create a Python app that can be run from the command line that will accept a base URL to crawl the site. For each page it finds, the script will print the URL of the page and all the URLs it finds on that page. The crawler will only process that single domain and not crawl URLs pointing to other domains or subdomains. Please employ patterns that will allow your crawler to run as quickly as possible, making full use any patterns that might boost the speed of the task, whilst not sacrificing accuracy and compute resources. Do not use tools like Scrapy or Playwright. You may use libraries for other purposes such as making HTTP requests, parsing HTML and other similar tasks.

The objective

This exercise is intended to allow you to demonstrate how you design software and write good quality code. We will look at how you have structured your code and test cases. We want to understand how you have gone about solving this problem, what tools you used to become familiar with the subject matter and what tools you used to produce the code and verify your work. Please include detailed information about your IDE, the use of any interactive AI (such as Copilot) as well as any other AI tools that form part of your workflow.

You might also consider how you would extend your code to handle more complex scenarios, such a crawling multiple domains at once, thinking about how a command line interface might not be best suited for this purpose and what alternatives might be more suitable. Also, feel free to set the repo up as you would a production project.

Extend this README to include a detailed discussion about your design decisions, the options you considered and the trade-offs you made during the development process, and aspects you might have addressed or refined if not constrained by time.

Instructions

  1. Create a repo.
  2. Tackle the test.
  3. Push the code back.
  4. Add us (@2014klee, @danyal-zego, @bogdangoie and @cypherlou) as collaborators and tag us to review.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published