Senior Software Engineer (Python, Remote)
Dashly is looking for an independent Senior Software Engineer who enjoys the informal, fast-paced startup environment with lots of freedom and responsibility, and with the following core skill set:
Python (our main programming language)
Microservice architecture (and the challenges it brings to the table)
Cloud-native development (ideally Google Cloud Platform)
Solid English language skills (C1, or B2 at the very least)
Got you interested? Read more below:
What is Dashly?
Our mission is to give homeowners across the UK a better deal on their mortgage, saving them thousands of pounds each and every year.
We’ve got an ambitious vision to create a suite of products that together will reshape the mortgage market for the good of all – borrowers, advisors, brokers and lenders. To do that, we’ve built a powerful mortgage search engine, data platform, together with web and mobile apps. Now it’s time for us to upgrade our platform to scale in line with our growth rate, and utilize our gained experience to design new data solutions that will help lenders to offer new, more efficient ways to design and distribute products. On top of that, we’re building tools that let advisors truly manage their customer relationships and empower them to improve the service they can offer their clients.
Who are we looking for?
We're looking for experienced developers with a passion for technology, software, elegant solutions and clean code. We don't want you to just write code for us, we want you to be part of our feature development pipeline and we want you to be involved (at least in some capacity) in all of its stages: analysis, design implementation, testing, deployment and documentation.+
I’d be awesome if you had experience with all of the following, but we’re happy to work with you and teach you the things you need to know:
Programming (senior level)
Python
Yup, that’s our main language, so this kinda goes without saying
At least few years of experience with the language is needed
Databases
Relational databases and SQL (PostgreSQL dialect)
NoSQL databases
When to use which, pros and cons, and all that
APIs
Best practices for HTTP APIs
Best practices for gRPC APIs
Basic understanding of Protobuf
If you never worked with gRPC and Protobuf, don’t sweat too much about it, it’s easier than it sounds
Understanding of software design patterns
Not just when to use them, but also where and when NOT to use them!
Development of extensible and maintainable solutions
But, must be said, we’re definitely not asking for overengineered, complex solutions!
Functional programming paradigm
We’re NOT talking Haskell or Clojure type of programming
But, we prefer to use functions and modules rather than classes and objects
And we prefer composition and dependency injection to inheritance and class constructors
Attention to detail
Adherence to code conventions
Careful and thought-out naming of variables, functions and other structures (good naming is super, super important for us, “data” variable name simply won’t fly, sorry)
Emphasis on code readability
Best practices as defined by clean code conventions
Clean Code by Robert M. Martin
Clean Code In Python by Mariano Anaya
Microservice architecture and design
You should have at least some idea of what the following terms represent, or at least be willing to learn what they mean:
Domain boundary
Event-driven architecture
Asynchronous programming
Publisher subscriber messaging system
Data replication
Eventual consistency
Personality traits
Openness and solid communication skills
You'll be talking to people from the creative, product and business teams
We want your voice to be heard
Willingness to learn new languages and technologies
Proactive approach, initiative and ownership of responsibility for your work
Proficiency in speaking and writing in English, as you'll be using it on a daily basis
Check out our entire tech stack description below 👇
What do we offer in return?
You'll be joining a dynamic startup environment. What does that mean? Well, if you're looking for corporate development plans organised into several weeks worth of work, outlined in project plans set in stone, with strictly defined assignments, lots of rules and processes and a do-as-you-re-told, don't-ask-questions attitude on top it all, you won't find any of that with us, sorry.
Instead, we're looking for independent mavericks, exceptional individuals, explorers and contributors who enjoy freedom and creativity in their work, and are willing to take initiative and responsibility for their assignments, or even whole portions of our technology stack.
Our core engineering values are:
Leadership and guidance works better than management and rules
People are more important than processes
Failure is a learning experience
Always act in the company's best interest
These values guide our leadership, our managers and our engineers all alike. We're building a team of individuals that strives for a common goal. A team where initiative, innovation and great ideas are welcomed and rewarded, where failing while trying to innovate is considered a success as long as we learn from it, and the only thing that's not allowed is passively sitting around, waiting for someone to tell you what you should be doing.
Okay, that was about enough with the buzzwords, let’s get down to specifics:
Employment type?
Contract, Full-Time
We’ll agree on a fixed sum which you’ll be invoicing us each month, guaranteeing you a consistent and predictable income
We expect you to work roughly 40 hours a week for us in exchange
The contract will have a 2-month termination period, guaranteeing stability and predictability for both parties
Contractor? Does that mean no holidays?
Absolutely NOT!
You’ll get 25 days of paid annual leave, on us!
We want you to take time off every now and then and recharge
Oh, cool, and what about hardware?
We’ll provide you with a laptop, either a Mac or a Dell, whichever you prefer
What’s the work environment at Dashly?
We’re building a relaxed, free working environment built on transparency, communication and mutual trust. As long as everyone’s happy with your performance and results, nobody is going to tell you what to do and how to organize your time.
Flexible working hours
Mandatory late morning daily stand-up
Expected general availability during working hours, especially morning and noon
But you can take a break anytime as long as you let your team members know in advance
You can choose when do you begin and when do you end your work day
Hybrid remote/office mode
If you want, you can stay fully remote
Or go to the office every day
And anything in-between, the choice is yours, really
We’ll still be happy to see you in person a few times a month, should the circumstances allow.
Office space available in Prague (Czechia), Brno (Czechia) and London (United Kingdom) for team meetings and get-togethers.
What about Dashly’s technology stack?
Dashly is running a microservice architecture on Google Cloud Platform written in the following languages:
Python (3.8)
Go (1.15)
Utilizing the following communication protocols:
HTTP REST API (front-end to back-end communication)
gRPC & Protobuf (internal back-end communication between services)
And the following cloud services:
Kubernetes (GKE)
with Helm for deployment
and Istio as the service mesh.
Cloud Functions
CloudSQL (PostgreSQL as relational database)
Firestore (NoSQL database)
BigQuery
Cloud Storage
PubSub
Cloud Build (for CD/CI)
Plus from the “DevOps” point of view, we have:
Terraform for infrastructure management,
and last, but not least, Docker for containerization.
And all of the above is accessed by 3 front end applications:
Client portal (https://my.dashly.com)
Angular 10 & Typescript 4.2
Adviser portal (https://port.dashly.com)
Angular 12 & Typescript 4.0
Mobile application (iOS & Android published in App & Play Stores)
Angular 9 + Ionic 5 & Typescript 3.8
Apps utilize the following tools:
ngrx for state management,
storybook for component development,
primeng as the main component library,
webpack for local development and build compilation,
… and a whole bunch of other useful tools and libraries.
We don't expect you to know all of the languages and technologies. Being an experienced senior in Python is enough, we'll give you the time and support to learn to work with the other languages. Experience with gRPC and Google Cloud is a serious advantage, but even here we're happy to work with you and support you to bring you up to speed. Same applies for front end development, say you have experience with Redux, but never worked with ngrx, no sweat, you’ll get the opportunity to learn the ins and outs of it. Same goes for Ionic and other front end tools.
We're investing heavily in a redesign of our application architecture and code refactoring. On top of that, we're also improving the way we handle our data, our entire infrastructure, and overall improvement and simplification of our solutions. This is a very exciting time to be a part of Dashly, and we're expecting a lot of input and initiative from you in our endeavour.
And what tools do you use?
When it comes to day-to-day operations and work organization, our teams use Google Workspace (Meet for online meetings), Slack for messaging, Github as our repository and Atlassian Cloud’s JIRA and Confluence for issue tracking and documentation. Oh, and we’re big on visual analysis, and we use Miro for boards and diagrams.
Anything else I should know?
Our business and product teams are located in the UK (GMT time zone), our creative, marketing and engineering teams are located in Central Europe (CET timezone, GMT+1).
LOCATION
LONDON, SW11 3BZ
