Title: Software Engineer (Python Developer)
All the relevant skills, qualifications and experience that a successful applicant will need are listed in the following description.
Location: London, UK
Employment Type: Contract
Duration: Long Term
Overview:
We are seeking a skilled Software Engineer with strong programming expertise in Python and hands-on experience in data manipulation, analysis, and software engineering best practices. The ideal candidate will be passionate about clean, maintainable code and capable of building scalable, efficient solutions.
Key Responsibilities:
* Develop, test, and maintain Python-based applications and scripts.
* Perform data cleaning, transformation, and analysis using Pandas and NumPy.
* Design and implement modular, reusable, and testable code following best practices.
* Collaborate with cross-functional teams to integrate data and software components.
* Utilize version control tools (Git) for code collaboration and management.
* (Optional) Build and enhance interactive dashboards using Plotly Dash for data visualization.
* Work with REST APIs to fetch and send data between front-end and back-end systems.
Required Skills & Experience:
1. Python Programming
* Strong understanding of functions, classes, and object-oriented programming (OOP).
* Experience with list comprehensions, generators, and error handling.
* Proficiency in managing virtual environments and package dependencies using tools like pip and venv.
2. Data Manipulation & Analysis
* Hands-on experience with Pandas and NumPy (knowledge of Polars is a plus).
* Skilled in data cleaning, preprocessing, handling missing values, and performing complex data operations such as grouping, merging, pivoting, and aggregations.
* Working knowledge of SQL for data extraction and manipulation.
3. Software Engineering Best Practices
* Strong grasp of version control (Git) workflows.
* Experience writing unit tests (e.g., using pytest).
* Ability to write clean, well-documented, and modular code.
* Familiarity with linters, code formatters, and documentation standards (docstrings).
4. (Preferred) Plotly Dash
* Experience creating interactive dashboards using Dash and Plotly Graph Objects.
* Proficiency with callbacks, layouts, and component integration (Dropdowns, Sliders, Graphs, Tables).
* Knowledge of HTML/CSS integration within Dash apps.
(Note: Plotly Dash experience is a plus; candidates proficient in Python, Data Manipulation, and Software Engineering practices can learn Dash during the engagement.)