Sports News
This task is based on a common business task we have within the backend team. We have a
number of microservices that process data from external feed providers. This allows us to
transform the data into a consistent and desirable format that the app developers can consume.
It also provides stability so that, as is often the case, when the external provider has issues we
can still provide data to the apps, albeit stale data.
The project must meet the following requirements:
● Be written in Golang - [Link] -
● Use MongoDB to store news articles -
([Link]
● Periodically poll the external endpoints specified in the external feeds section to retrieve
news articles. Implement reasonable limits to manage historical data efficiently. Ensure
the system can handle updates to articles in the source system gracefully, maintaining
consistency and avoiding duplication.
● Transform the external provider feeds of news articles into appropriate model(s) and
save them in the database
● Provide two REST endpoints which return JSON to be used by app and web
applications:
a. Retrieve a list of all articles
b. Retrieve a single article by ID
● Code should include clear and concise comments where necessary, providing context
and explanations for complex or non-obvious logic to enhance readability and
maintainability
● Ensure the code is tested, with a particular focus on covering critical paths to validate
core functionality
● Provide a comprehensive README file that explains your approach to the task,
including the steps you took to complete it and the reasoning behind your
implementation choices. The README should include clear instructions on how to set
up and run the project locally, ensuring it can be executed without requiring modifications
or additional fixes. Additionally, detail which features or functionalities are fully
implemented and operational, as well as any known limitations or aspects that are not
yet functional.
● The submission is expected to be in a state suitable for a pull request, with clean,
well-structured, and tested code that adheres to best practices and is ready for review
and integration.
External Feeds
There are two feeds provided by our external provider for ECB club news:
1. Get a list of the latest n news articles
[Link]
2. Get additional details of a news article by ID
[Link]
For example - [Link]
Example Output
Below are examples of output for the two REST endpoints. Ideally, your project should produce
an output in a similar structure.
1. Retrieve a list of all articles
[Link]
2. Retrieve a single article by ID
[Link]
entId=DEMO
Additional Information
You may find the following links helpful.
Go also has a number of useful guides:
● [Link]
Useful Libraries:
● [Link]
● [Link]
API Design Docs
● [Link]
● [Link]
● [Link]
We use VScode and GoLand for Go, but you are welcome to use whatever you prefer.
Email jobs@[Link] if you have any questions or need further clarification on the
task. Asking for help is an important part of being in our team, so don’t be afraid to ask if you’re
unsure.
Submit your task to jobs@[Link] as a ZIP using
WeTransfer [Link]