Title:
Software Engineer (Python Developer)
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.)