Remote Tech Lead / Architect (ca EUR 120,000 / USD 132,000)
Skynova Inc (Remote) 🇺🇦
Skynova has 60,000 happy customers, is bootstrapped and debt free! What a joy these days :-) Skynova (https://gainful.io/jobs/k9rdo_SbS1w/l/1) provides online invoicing, accounting and 30+ other business modules to self-employed and small businesses. Our main focus is the US, but we have customers from around 100 countries. Our customers are very happy: The service is easy to use and they get a good selection of tools that they can combine to fit their specific needs - all at a very competitive price point.
We were founded more than 10 years ago, but we think this is just the beginning! We have a long list of new modules to create, modules to improve, core systems to refactor, experiments to run, data crunching and page loads to speed up and more. The more we work on this, the more we think of - and our customers have some ideas as well :-)
To step up our efforts, we are now looking for Tech Lead to work on all of the above! This is a fully remote position, so autonomy and independence would be required. We collaborate using git, jira, e-mail, google meet and more. In addition you’ll be invited to occasional meet-ups at the office in Oslo, Norway.
There are in total 14 people working here, four in the US and ten in Europe.
As a Tech Lead you’ll be working directly with the CEO/founder (who has served as tech lead so far) as well as your technical team and others in the company - depending on what needs to be done.
Our stack is the LAMP stack; we use MVC and are moving towards a modular monolith. We don’t use micro-services, Kubernetes or complex cloud offerings. We try to keep things as simple and stable as possible. Boring tech has fewer bugs and requires less maintenance which also equals happy developers.
Your personal desire should be to strive for simplicity. The code base is structured to make it easy to understand and simple to troubleshoot. We aim for code readability, even if this sometimes means more verbose code. We don’t code abstract functions trying to anticipate future needs we don’t yet know anything about. Usually we are wrong about what the future holds, and those abstractions make it harder to adapt the code. Coding to solve concrete well-known problems simplifies things both now and in the future. Our code architecture is sort of inspired by DDD. Each module is loosely coupled and isolated.
Here is an example of what this might mean in a daily life:
You need to code something that should cover the needs of 15 scenarios. After a week of intense thinking you come up with a single nice function following all best practices that handles it all. It will most likely be utterly incomprehensible to anyone but you, and you won’t understand it yourself after 6 months. When a bug surfaces in one of the 15 areas and you fix it, you end up breaking three of the other scenarios because consequences are hard to predict and see. What about the automated tests? It passes those with flying colors because the bugs are new. Instead your natural inclination and instinct should be to create 15 different functions with a good deal of overlap (by violating DRY). It is easier to code since you just handle one situation at a time, but a bit tedious. Others understand it, and when something breaks three years down the road, a fix only affects the intended area. Code review is much easier.
You will discuss such things with the CEO/founder and part of the role is to protect and promote this architecture - and over time help bring it to the next level.
You are a responsible person with a keen eye for details. When you say a ticket is ready for deployment, it means it is ready for deployment. You’ll ensure that the code has been properly reviewed and that it has been tested. You’ll need to test critical aspects yourself even if QA says it is ok, and it passed automated tests. The CEO will deploy the ticket to production.
- Lead a team of six (backend, frontend, QA).
- Code review (provide feedback to make the pull requests simpler and more readable; enforce standards and our code architecture)
- Mentor team members
- Work on architecture
- Some coding
- Provide architecture suggestions when new modules are to be coded or existing ones refactored
- 10+ years as a developer
- Experience with web/saas applications
- Experience as Tech Lead and / or Architect
- Excellent communication skills
- Excellent English skills
- Excellent writing skills
- Master / Ph.D. (Computer Science, Math, Physics, etc.)
- Stable, long-term contract
- Fully remote (with occasional meet-ups)
- Interesting, diverse projects
- High degree of independence and impact
- Competitive wage: EUR 66 / USD 73 per hour
If you have any questions, feel free to ask about anything you want. When applying, please include both a cover letter and a resume/CV. We look forward to hearing from you!