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

giddie
Passionate about good software design? Comfortable pretty much anywhere in the stack? Interested in EVs and clean energy? Wouldn’t say no...
New
paulbutcher
We are a young startup aiming to democratise financial research by applying cutting-edge Machine Learning and Natural Language Processing...
New
IHu
Introductory paragraph We are a young Zurich/Switzerland based Start-up with the vision to disrupt the HR hiring for mid-sized and big c...
New
Jo_hiring
About us A.P. Moller - Maersk - as an international business on a high-tech journey, we don’t just transport millions of tons of cargo....
New
christo-ph
Introductory paragraph For a fresh project, we are going to create a pilot application. UI/UX/Frontend will be provided, needs to be im...
New
james-bowers
Introductory paragraph You’ll be joining a small, focused team working on a reusable cross-platform resiliency layer. You will design so...
New
charliegn
Introduction Exosite is a fast growing company, leading the drive to deliver Internet of Things solutions to the marketplace. The Delive...
New
seatscouts
Introductory paragraph At Broker Genius, we are an industry-leading SaaS provider helping brokers in the event ticket industry automate ...
New
actor
Introductory paragraph My name is Geoffrey and i am the CEO of Qubit GPS a company that offers software to manufacturers who manufacture...
New
bengerson
Introductory paragraph Hello Elixir enthusiasts! We’re excited to announce a great opportunity at Candidately. We’re currently seeking a...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
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
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement