Software Development
Hands-on software engineering training for teams that build, test, and operate real systems. 4D covers Python and Java development, automated testing, architecture and system design, delivery pipelines, and the version-control and code-quality practices that keep engineering work reviewable and safe to release.
Courses
Courses under Software Development
Python Programming Fundamentals
A hands-on introduction to Python for engineers and analysts who need working code rather than tutorial fragments. Participants build fluency with data types, collections, functions, files, and error handling, then assemble a small program that reads real data and produces a usable report.
View courseIntermediate Python and Clean Code Practices
Designed for developers whose Python works but is difficult to change. The course covers dataclasses, generators, decorators, context managers, and type hints, then applies the refactoring moves that turn a nine-hundred-line module into small tested units guarded by black, ruff, and mypy.
View coursePython Automation and Scripting for Work Tasks
Aimed at teams losing hours every week to repetitive file, spreadsheet, and reporting work. Participants automate those tasks with Python: batch file handling, Excel and CSV processing, REST API calls, email alerts, and scheduled jobs that run unattended and report clearly when something fails.
View courseAdvanced Python: Concurrency and Performance
For engineers whose Python services and pipelines have hit a wall. The course starts with measurement — cProfile, py-spy, tracemalloc — then works through the GIL, threads, process pools, and asyncio, before covering NumPy vectorization, caching, and native acceleration for the paths that remain too slow.
View courseProduction Python: Packaging and Dependencies
Everything between working code and a deployable artifact. Participants configure pyproject.toml, build wheels, lock dependencies reproducibly with pip-tools, uv, or Poetry, publish to a private index, containerize with multi-stage Docker builds, and audit the supply chain that arrives with every third-party package.
View courseTesting Python Code with pytest
A working test suite is the difference between a change that ships and a change that waits. This course builds one with pytest: fixtures and scopes, parametrized cases, monkeypatch and mocks, coverage gates that resist gaming, fast CI runs, and a repeatable method for diagnosing flaky tests.
View courseData Wrangling with Python and pandas
A hands-on pandas course for teams that spend more time repairing data than analysing it. Participants work through dtypes and memory, vectorized operations, merge and join semantics, missing-value strategy, reshaping, and time-series alignment, ending with cleaning code that runs unchanged next month.
View coursePython for Data Visualization and Reporting
Charts and reports are where analysis meets the decision maker. This course covers deliberate chart selection, full control of matplotlib figures, statistical plotting with seaborn, interactive Plotly views, and the automation that turns a weekly manual deck into a scheduled PDF, Excel, or HTML deliverable.
View courseMachine Learning with Python and scikit-learn
Building a model is the easy part; trusting its reported score is not. This five-day programme covers scikit-learn pipelines, honest cross-validation, the leakage patterns that inflate results, class imbalance, threshold selection, probability calibration, and the interpretation work that lets a business act on a prediction.
View courseDeep Learning with Python and PyTorch
For engineers who need to train neural networks rather than call a hosted API. The programme covers tensors and autograd, custom nn.Module architectures, the training loop and its failure signatures, regularisation and optimisation, transfer learning for vision and text, mixed precision, and export to a served runtime.
View coursePython Data Pipelines with Apache Airflow
Cron jobs and hand-run scripts stop scaling the moment one load depends on another. This course teaches Airflow as an orchestration discipline: DAG authoring in Python, idempotent tasks, data intervals and backfills, sensors and external dependencies, retry and SLA policy, testing, and running a scheduler you can trust overnight.
View courseRelational Database Design and SQL Tuning
An engineer-level course on the two decisions that determine database performance: how the schema is modelled and how the optimiser executes queries against it. Covers normalisation and deliberate denormalisation, keys and constraints, indexing strategy, execution plan reading, cardinality estimation, and query rewriting.
View coursePage 1 of 3
Category overview
Build capability in Software Development
Software development has become a core operating capability rather than a specialist function. Engineering teams are asked to ship faster, integrate more systems, absorb AI tooling, and still keep code maintainable years after the people who wrote it have moved on. That combination exposes the gap between developers who can produce working code and teams that can produce code others can safely change. 4D's software development programs are built around that gap. The Python track runs from language fundamentals through automation, data work, testing, packaging, and production APIs, with applied programs for finance, engineering, maintenance, security, and cloud teams. The Java track covers modern Java, object-oriented design, Spring Boot microservices, test-driven development, JVM performance, and legacy modernization. Around both sit the practices that determine whether an engineering organization compounds or stalls: version control, code review, refactoring and technical-debt management, architecture and system design, automated testing, and delivery pipelines. Every program is delivered against the client's own repositories, stack, and constraints, and closes with a workplace deliverable rather than a certificate of attendance.
