Senior Python Engineer with a dollop of AI
Unit tests, pipelines, defensive code, syntactical sugar, functions, pattern matching. It all boils down to if’s and strings. Every line of code you have ever written is just if’s and strings. OK, maybe that’s a bit too far, there may be an else in there too 🤣
Writing code that is elegant, beautiful and works is a true craft and one that can’t be “vibed” away.
We are looking for someone who knows their craft, is a 10x or maybe even a 100x programmer. Someone who has been around the block and got the scars. You have got yourself over the developer hump and haven’t come out too jaded.
You may have been programming for years, probably 10s of years. Because of your time on the road, you probably know what this is and might make you smile “5f4dcc3b5aa765d61d8327deb882cf99”.
Your first programming language probably wasn’t Python, but it has become one of your go-to tools in recent years. You know the difference between a reference type and a value type, and probably feel that comments are just a deodorant. You may have a penchant for C-based languages and would give a reassuring nod to someone like Anders Hejlsberg.
You have strong opinions about code that are loosely held.
To boil down what we are saying into something more digestible, we are looking for the following traits:
Pragmatism
Simplicity
Gets shit done
Collaborative
Open to change
Let’s dig a little deeper into each of these traits.
Pragmatism – adjective “dealing with things sensibly and realistically in a way that is based on practical rather than theoretical considerations.”
Sometimes perfection is the enemy of good. Let’s take CQRS as an example. It might solve the problem, and it might be a great experiment and learning experience. But is it really the most pragmatic solution? I doubt it.
Deciding on architecture or technology depends on more than just what may be perceived as best technically. There may be time or commercial considerations, or possibly maintenance or infrastructure to think about.
You have to be able to zoom out to see the bigger picture to make the right decision – you have to be pragmatic to get the right outcome.
Simplicity – noun “the quality or condition of being plain or uncomplicated in form or design.”
Simplicity is the sister of pragmatism, but simple is hard. The most elegant and simple solution isn’t always obvious. Simple scales, is easy to maintain but doesn’t always feed the ego.
Simple solutions are a trait of the developer who has got over the developer hump.
Gets shit done – verb “gets a job done without distraction or procrastination”
There isn’t a dictionary definition for this one, so I made one up. It is very much a verb, you do. There is something exciting about action. Action drives everything, and there is nothing like getting something done and done well. There is a sense of accomplishment and achievement.
Balls to the red tape, everything is shown in what we do and delivering and getting shit done is paramount. This one should resonate and get you excited, as it is very much a Razor way of thinking.
Collaborative – adjective “produced by or involving two or more parties working together.”
Leave your ego at the door. Smartest person in the room? Possibly, but probably not the smartest at everything, everyone has something they are better at than you.
Listening, teaching, guiding and bringing the best out in people is what we are after. You will be working with lots of different people with different experiences. Some may know more than you in a subject area or tool, and you will know something that they don’t.
Embrace the differences and use them to learn and make something brilliant.
Open to Change – verb “replace (something) with something else, especially something of the same kind that is newer or better; substitute one thing for (another).”
Strong opinions loosely held. You will have plenty of experience, but you aren’t entrenched with entropy. Technology moves fast, and you move fast with it. You give an inexperienced developer some AI tools to help write code, and it turns into a mess; you give the same tools to an experienced developer like you, and you turn into a 1000x developer.
Being open to change and new ways and tools, coupled with the experience, is where magic happens.
Now that you have a bit more of an understanding of the type of person we are after, here is what we are after:
What you’ll do
– Design, build and refine Python-based tools and frameworks that bring AI solutions to life;
– Apply the latest advancements in LLMs, LangChain, vector databases and other modern frameworks in real world applications;
– Collaborate with engineers, consultants and clients to understand challenges and translate them into smart, scalable systems;
– Take ownership- not just of code, but of decisions, priorities and team outcomes;
– Mentor team members and help set engineering standards across the team;
– Write clean, well tested code that’s designed to last;
Stay curious: test, experiment and share what you learn with the team.
What you’ll bring
– Strong Python skills and a solid understanding of software engineering principles;
– Experience working with (or interest in exploring) LLMs, embeddings, vector databases and frameworks like LangChain or OpenAI’s APIs;
– A creative, analytical approach to problem solving;
– A natural ability to lead by example, whether that’s through mentoring, taking the initiative or shaping direction through collaboration;
– Familiarity with cloud platforms and deployment pipelines is a plus;
– Bonus points if you’ve dabbled in C# or other C-based languages, have experience in data-intensive environments or bring a background in AI/ML research or production.
To apply for this job email your details to join@razor.co.uk.