survival

survival

Software crafter at Survival International

Introductory paragraph

Feel free to include an introductory paragraph here.

About us

My name: Ketan Patel
My position: Software developer
Company name: Survival International
Website: www.survivalinternational.org
Company info and history:

Survival International is the global movement for tribal peoples’ rights. We’re the only organization that champions tribal peoples around the world. We help them defend their lives, protect their lands and determine their own futures. We’ve been doing this since 1969.

We have a website that is an important campaigning tool and where we accept donations. We are in the planning phase of rewriting this site and were considering Elixir and are open to suggestions.

About the job

Job title: Software crafter
Job description:

Most of our time is devoted to our multilingual site. It has a monthly site traffic of around 200,000 unique visitors from all around the globe. It has to scale and cope with huge spikes in traffic due to media interest, increase sustainable traffic, and do it without incurring technical debt.

We use mob programming to start new projects and once it has shape and direction we carry on with pair programming. From time to time we may also code solo but we prefer to pair. We follow industry best practices and build everything through TDD and BDD. We don’t merge anything to master until it is reviewed and all tests pass. We work in incremental units and weekly iterations.

Our current tech stack includes Rails, MySQL, several payment APIs, Mailchimp API, Salesforce API, Amazon S3, Vimeo, TLS, Engine Yard hosting, Cloudflare load balancing and DDoS protection, Git, and more. If you don’t have experience with all of these, or any of them puts you off, don’t worry! The web team you’ll be part of is slowly moving to a different tech stack and architecture, and you will contribute suggestions and ideas!

Salary range: £30-35k
Position on remote work: Currently we are onsite full time.
Qualifications or experience required:

Technical requirements
• Passion for software engineering and craftsmanship values.
• Great OO skills and strong design patterns knowledge. Functional programming
experience is also welcome.
• Knowledge of software best practices like refactoring, writing clean and maintainable
code, domain-driven design, encapsulation, clean architecture, etc.
• Experience working with Agile, continuous integration, weekly iterations, code reviews,
etc.
• TDD, BDD, etc. Able to think of a test that forces you to write the code you want. Able
not to write any more code than required to make the test pass.
• Able to do the simplest thing that could possibly work.
• Strict on keeping a clean git history. Heavy use and deep understanding of rebase,
squashing, splitting commits and fixup commits.
• Able to write commit messages that help document the “why” of the change rather than
the “what”, providing useful context when looking at the code months later.
• We work mainly with Ruby but welcome pretty much any other languages like Elixir, Go,

If you have these qualities, we really won’t mind your specific tech stack. We prefer you to have a solid foundation in the principles of good software development.

Non-technical requirements
• Aware and realistic about own strengths and weaknesses.
• Excited about new technologies and constantly learning and keeping up to date with the
latest trends.
• The web team is dynamic, collaborative, transparent, and ego-free. We will expect the
same from you!
• Able to see the big picture and focus on what will help provide value to the organization
in the long term. You do not get distracted with “busy work” and know how to prioritise
tasks that give the most value.
• We encourage everyone in our web team to speak their mind and express their opinions
and concerns as we believe this is the best way for everyone to be on the same page
and move forward as a united team.
• Supportive team member and a team player.
• Comfortable pairing and mob programming. Works well with others.
• Our staff is international and discrimination is not tolerated on the grounds of age,
ethnicity, faith, gender, sexual orientation. You must be comfortable working with non-
technical colleagues, whose expertise lies in other areas.
• Software craftsmanship training by any of 8th Light, Thoughtbot, ThoughtWorks, Pivotal,
and the likes, is an advantage, so if you’ve been trained by them, mention it in the cover
letter!
• We are an international organisation, so if you speak any other languages let us know, as
it is an advantage!

What the successful job applicant will be working on:

The rewrite of our donations system (ruby) and the rewrite of our website (stack not yet decided).

About the interview process

• 15-20 minute technical chat on Skype
• Short technical assignment, fixed delivery time: 1 week
• In-person interview to know more about you, followed by a pair programming test with
somebody from the web team
• Offer & references

Further info

Please visit our job post page to apply.

Most Liked

mischov

mischov

For anybody else who was curious, “onsite” is in London.

Where Next?

Popular in Jobs Top

zacksiri
Introductory paragraph DeeMoney is a Payments / Remittance company located in Bangkok, Thailand. We’re the one and only FinTech in Thail...
New
AstonJ
If you have a freelance or short term contract job, or one where you are looking for interns or equity-only jobs (i.e any job which is no...
New
ImJoeWebb
Introductory paragraph As a Senior Backend Engineer at Community, you will have a deep impact on our platform and engineering culture as...
New
elbasti
Introductory paragraph Trying something new I’ve never seen before: code review as a service! We’re a very small team (2 engineers), bot...
New
ku1ik
Introductory paragraph Vic.ai is a 2 year old startup, based in Oslo, Norway (we also have non-tech offices in NYC and Miami). We’re bui...
New
mrkurt
Fly.io is a platform-as-a-service for running apps close to end users. Elixir is a great way to build distributed apps. We think it’s a m...
New
jgwmaxwell
Introductory paragraph At CoCoCo (Connect. Combine. Collaborate.), we’re on a mission to unlock connectivity across the global print ind...
New
andre1sk
https://adobe.wd5.myworkdayjobs.com/en-US/external_experienced/job/Seattle/Functional-Programming-Generalist_46723-1
New
wolf4earth
Introductory paragraph 7Mind empowers people and organizations alike to lead healthy, happy and purpose-driven lives since 2014. With mo...
New
Judith
Firework is the world’s leading immersive “shoppertainment” platform with shoppable video, live streaming commerce, and monetization capa...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3268 119930 1237
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
AstonJ
You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New

We're in Beta

About us Mission Statement