A115 Logo Dark A115 Logo Light

A115 is a London-based consultancy helping fast-growing businesses and scale-ups build sophisticated on-prem or cloud-based technology platforms when code quality matters.

We specialise in rapidly building, securing and scaling cloud-native greenfield platforms to add new capabilities or expand into new markets. With over 20 years' experience productionising experimental code and complex systems, A115 provides end-to-end services - from initial architecture and infrastructure design through development, deployment and maintenance. Leveraging expertise across industries and technologies like Python, SQL, AWS and Azure, A115 enables clients to launch innovative products faster while ensuring robustness, resilience and regulatory compliance.

A115

Training and Consulting

Bookmark this page and check again soon for our personalised individual or team training packages and offers!

London, United Kingdom (HQ)

contact@a115.co.uk
Python Training

Becoming an Effective Software Engineer

Essential Skills

The software engineering landscape has changed drastically in the past decade. New languages, frameworks, infrastructure paradigms and best practices have emerged. So what fundamental competencies should aspiring software engineers focus on acquiring first?

At A115, we are firm believers in sticking to the fundamentals and mastering time-proven tools and technologies. In this guide, we break down the core technical and business analysis skills modern software engineers need to thrive in today's market. Follow these recommendations to future-proof your career and set yourself up for success.

Master One Back-End Language Deeply

Become an expert in one back-end programming language. We recommend Python for its versatility, but other popular options include JavaScript (Node.js), Go, Rust and Elixir / Erlang. Regardless of your choice, learn its syntax thoroughly and become well familiar with its standard library. Understand how to structure large projects, leverage standard tooling and frameworks, write unit and functional tests and ensure automatic enforcement of a baseline level of code quality.

Aim to become a seasoned pro in one language first rather than jumping around. This will allow you to learn faster and code more efficiently compared to juggling multiple languages as a beginner.

Become Familiar with Linux-based Environments

Get comfortable navigating Linux environments and using command line interfaces. Most professional development happens directly on Unix-based operating systems like Linux and MacOS rather than Windows. Deployed software typically runs on Linux or other Unix variants.

Learning bash scripting and Linux tools will make you much more productive compared to only knowing graphical user interfaces. And Linux environments provide more transparency into how systems actually work under the hood.

Start by installing Linux (like Ubuntu) natively or through a virtual machine, and use it for all your coding projects.

Learn SQL Basics

Knowing basic SQL is a must for any back-end developer. Start by getting familiar with SQLite locally or an open source database like PostgreSQL.

Standard SQL allows you to structure, manipulate and query data efficiently across almost any database system. You don't need to learn multiple proprietary query languages.

Practice regularly with SQL to directly access and analyze datasets. This will complement the programming language side in building fully functional applications.

Understand Core Web Architecture Principles

Learn how the HTTP protocol works. Learn how to build web-based applications and APIs using a modern framework like FastAPI or Django (for Python). Grasp core concepts like request-response cycles, MVC patterns, templating, routing, and JWT authentication.

Understand how clients or other microservices can interact with your back-end REST APIs. You don't need to know how to build full-stack apps, but you should understand how front-end components interface with your APIs, so your designs can be easy to work with.

Get Up to Speed on Containers and Cloud Infrastructure

Gain familiarity with containers via a tool like Docker. Containers allow bundling application dependencies into standardized units for smooth deployment anywhere.

Additionally, get hands-on experience leveraging at least one major cloud provider. AWS, GCP and Azure all offer free tiers. Learn how to provision infrastructure like virtual machines, databases and object storage programmatically (e.g. using Boto3 in Python.)

These skills will enable you to deploy and run applications reliably on elastic infrastructure, whether on-premises or the cloud.

Grasp Essentials of CI/CD Pipelines

Leverage Continuous Integration / Continuous Deployment (CI/CD) platforms like GitHub Actions to automate building, testing and deployment of code changes.

Modern development moves fast - manually managing releases is not sustainable. Learn CI/CD basics to standardize the inner development loop and gain confidence that changes don't break existing functionality.

This establishes a scalable pathway to ship features faster without sacrificing quality.

Always Start by Understanding the Business Context

Beyond technical skills, great software engineers need to deeply comprehend the business domain they are coding for. Before jumping to solutions, seek to grasp the real-world concepts, processes and problems your software aims to improve.

Talk to users, ask probing questions beyond surface-level requirements and constantly iterate your mental models around what business challenges technology can help solve. Curiosity is what separates good from great developers.

Conclusion

Mastering these well-rounded competencies requires dedicated focus over an extended period. Our expert software engineering coaches offer bespoke bootcamp-style training programs - both for individuals and teams - to efficiently equip you with these exact skills tailored to Python stack technologies.

Through hands-on coding review and advice across real projects modelled around business applications, we can guide you to become a versatile modern software engineer ready to thrive in a software-driven business world.

Reach out for a free consultation today to explore how we can launch your career or improve your team's development capabilities!

Jordan Dimov is an experienced software consultant specializing in business process automation, Python code quality, cloud solutions, software engineering training and AI. With over 20 years in the industry, Jordan helps companies boost their productivity by building high-quality, scalable, bespoke software solutions.

Consulting some of the fastest growing brands in the UK and globally, the founder of A115 has a no-nonsense educational approach to modern enterprise software engineering.

Jordan's expertise spans a wide range of technologies and domains:

* Building cloud-based ETL data pipelines for industries like commodity trading and asset management
* Developing e-commerce platforms, online payment processing, and bespoke invoicing, billing, bookkeeping and accounting solutions
* Creating generative AI applications using Python, FastAPI, HuggingFace models, and vector databases
* Productionising code and optimizing software architecture for performance and reliability
* DevOps and infrastructure-as-code using AWS CDK, Azure, Terraform, and Kubernetes

Some of Jordan's notable projects include:

* A position and P&L visualization tool for Shell's trading desks, saving millions by improving efficiency
* An AWS-based platform for automating power trading auctions at Shell and LimeJump
* A high-throughput trading analytics platform for Centrica using Python, Kafka, and serverless tech
* Building multi-currency e-commerce and payments infrastructure for international expansion for a number of clients
* An innovative SMS parking payments system processing 100K+ transactions daily for the city of Sofia, Bulgaria

With strong communication skills, Jordan excels at understanding complex business needs, defining technical solutions, and leading teams to deliver results. He brings a focus on code quality, software security, and process optimization to every project.

Contact Jordan to discuss how he can help your company leverage technologies like Python, cloud platforms, and AI to solve business challenges and achieve your goals.

Categories
Python Training
6
Bespoke Software
0
Code quality
1
Case Studies
1
Tools
1
Industry Insights
2

Subscribe to the A115 weekly newsletter!

By subscribing you agree to our Privacy Policy