📝
How we work (org handbook)
  • Home
  • Onboarding
  • Code of Conduct
  • Project Management
    • Project Initiation
      • Documentation and Checklists
      • Aligning with OpenUp's Mission and Vision
      • Getting Partners and Stakeholders on Board
      • Defining Project Parameters and Limitations (scope)
      • Product Management during the Project Initiation Phase
      • DRAFT COPY
    • Project Implementation
      • Project Planning
      • Agile, Scrum, and the Lean Startup Method
      • Stakeholder Management
      • Meetings
      • Communication
      • Team Management
      • Roles and responsibilities
    • Project Close-out
      • The Close-Out Report
      • Retrospective
      • Donor thanks
      • One page write-up
      • Blog article
      • Maintenance plan (if necessary)
    • Project overviews
      • Citizen Engagement App
      • Our Project List
      • Local Gov Programme
        • Business Portal
      • Tech Infrastructure
    • Project boards
  • How we work
    • Preferred tools
      • Tool sponsorships
    • Budgets & Finance
      • Taxes
        • VAT
        • PAYE and UIF
        • Workmen's compensation
        • Annual PAYE reconciliation
      • The Types of Budgets Used By OpenUp
      • When to Start Planning a Budget
      • Planning a Budget
      • How to Create a Budget
      • How to Spend a Budget
      • How to Adjust a Budget
      • Expense claims
      • Invoicing OpenUp
      • Capturing and approving invoices for payment
      • Allocating AWS costs to a project
      • Allocating Upwork transactions to projects
      • Software, Services and Hosting
      • Downloading Webflow invoices
    • Tool Development
      • Coding Roles
      • Tools For Coding
      • DESIGN
      • The Design Process: Step-By-Step
      • Tools Used In The Design Process
      • Quality Metrics: Design
      • Webflow export rules
      • CONTENT, WRITING, AND MEDIA
      • Creating Substance: The Role of Content in Tool Development
      • Creating Content: Step-By-Step
      • What Goes In Social Media
      • TRAINING & EVENTS
      • Event Planning
      • When, Where, and How to Hold a Training Session
      • Tools Used By Training and Events
      • User testing
      • Making government accessible
    • Outsourcing & Contracting
      • Why do we contract external workers?
      • Platforms We Use To Find Contractors
      • Contracting people for work
      • UpWork Contracting
    • Monitoring & Evaluation
    • Communications & Branding
      • Resizing images
      • Creating an email newsletter
      • Posting a blog
      • Sharing a blog post
      • Marketing Q &A
      • Official communications
      • Tracking app and campaign web traffic sources
    • Human Resources
      • Recruitment
      • Recruitment template: Project lead developer
      • DRAFT Recruitment template: Product owner
      • One-on-ones (1:1s)
    • Organisational Decision Records
      • ODR1: Organisational Decision Records
      • ODR2: Building dynamic web frontends using Webflow
    • Personal Information
    • Password management
  • Tech
    • Development guidelines
    • Preferred tech stack
    • Webflow project guide
      • How to build pages in Webflow so that content can be added using Javascript
    • Setting up a new server
    • Hosting on dokku
    • CDN in front of S3
    • Setting up a new Domain
    • CKAN
  • Product management
    • Our product design process
  • Codebridge
    • Codebridge - the space
Powered by GitBook
On this page

Was this helpful?

  1. How we work
  2. Human Resources

Recruitment template: Project lead developer

For each candidate, create a google sheet with columns Attribute, Strengths, and Weaknesses where the evidence for these can be noted for review.

Attribute

How to evaluate

Experience with our stack

  • Python

  • Django, Flask

  • Javascript, ES6

  • jQuery, React/Vue

  • CSS, SASS

  • Postgres

  • ETL, data processing

  • git, github, PR workflow

Are they able to pick up the bits they don't know or have deep experience on?

  • Ask

  • Look at their code contributions on github

  • Do they use a range of languages?

  • Do they use a range of frameworks?

Disqualifying criteria:

  • No browser Javascript experience - as a proxy for web programming ability - if they haven't done Javascript in the browser, they're probably missing all kinds of things you need to know for the web like DNS, HTTP, browser request and page load/execution cycle. We don't have time for people to learn that on the job.

Tech choices and legacy

  • when do they use a framework or library and when do they roll their own?

  • when do they rewrite and when do they refactor or evolve?

Looking at their code:

  • Do they use frameworks and libraries? In the relevant idiomatic way?

  • Are their changes generally small, relevant adjustments to the code, or big swathes of relevant and irrelevant changes?

Their experience verbally:

  • How do they choose between framework and hand-written?

  • How do they choose which framework?

  • Specific choices they've made

  • Edge cases they've experienced?

  • e.g. When do you build a CMS that can be used in multiple places, and when do you add a simple table with a title and an HTML field with a WYSIWYG editor in front?

Warning flags:

  • Feeling trapped in an org's tech stack, not having the freedom to use the new fandangled. There are valid cases in this - it should ideally be explored as a tech choice discussion for a given case.

Maintain software quality, keep the code maintainable, keep to our development guidelines. Particularly

  • clean software design

  • testing

  • project dev setup

Hold the team to the appropriate level of quality

Looking at their code:

  • Do they name things clearly?

  • Is there intent in how they structure code?

  • Do they use common design patterns? Is it clear which?

  • Do they document sufficiently? Excessively?

Their experience verbally:

  • "What do you need to do on a project so that the speed of making changes doesn't reduce significantly as the project grows?"

  • "What is your approach to structuring code to keep it maintainable?"

  • "When do you use automated tests and when is it better not to?"

  • "How do you make it easy for new developers to join a project and get running quickly?"

  • "How do you get the implementing team to maintain the level of quality needed for the project?"

  • How do you determine the appropriate level of quality for a project? What should be allowed to "slip"

Devops skills needed for our stack

  • Docker

  • Ansible

  • Dokku/heroku

  • Service/uptime monitoring

Ask if and how they've used these.

Technical ownership, management, leadership

  • Technical specification - ensure technical requirements are clear for freelancers, e.g. on upwork

  • Help project manager select qualified freelancers

  • Code integration and quality - review proposed implementations and merge and deploy when ready

  • Plan and manage task deadlines

  • Create and maintain a sense of team and camaradery with the other devs, even if they're freelancers/contractors

  • Ensure dev team is working towards the intent in the user stories, supporting PO in communicating this to the team.

Look at their public contributions (github, stackoverflow, social media)

  • Do they communicate clearly in issues, pull requests, code reviews?

  • Do they communicate kindly and respectfully?

Ask

  • "Have you been responsible for technical delivery on a project before? What were your main activities in this regard?"

  • "Have you outsourced to contractors/freelancers/consultants before? What's important to ensure success?"

  • "How do you ensure that the scope of the deliverable is specific enough to be able to hold someone to account and ensure the problem is actually solved?"

  • "How do you translate project requirements or user stories into tasks an intermediate-level developer can implement on?"

  • "How do you ensure that someone has actually implemented what's needed and met the whole scope?"

    • We tend to look for automated tests specific to the task at hand, and verify that the test actually verifies the intended functionality.

  • "Have you experienced morale or motivation or productivity tanking on a team you've led? How did yo address that?"

Disqualifying criteria:

  • Never led a technical team - we can't afford people learning this on the job when they're in a leadership position.

Technical problem solving - Able to explore functional and non-functional requirements and constraints with Product Owner and Project Manager to help make appropriate compromises to achieve the best outcome on a small budget

Ask about their experience:

  • Have they had projects where some of the project team have assumed a technical solution (e.g. client says: "I'd like a page, with a button here, and..." but there were actually a number of ways of implementing what's needed?

    • What were the tradeoffs?

    • How did they guide the client/PO/PM to make an appropriate choice?

    • What should the client/PO know about the implementation and what should they keep out of?

    • How did they raise the matter of potential better solutions?

  • Will they suggest options for solving the problem at hand or do they blindly build what they're told?

  • How do they figure out a compromise between solution options, requirements, and constraints like budget and time?

Our scale - Able to be productive on our short-lived projects and/or tight budgets. That means

  • able to focus on the task at hand and deliver the essence of it ASAP, and not get distracted and e.g. building a new framework or recompiling the kernel or whatever, when we just need a button on a page.

  • able to identify when something will run over the allotted time, and figure out what the best solution is with the project manager and product owner - whether to cut scope, change direction, or increase the budget for the task.

Ask about their experience:

  • What experience have they had of working with constraints e.g. bootstrapped or scrappy startups (as opposed to apparently endless enterprise dev budgets or startups with gazzilions in seed funding)

  • Ask about projects where they were in a position of making key technical decisions

    • What were the tradeoffs?

    • When did they have to choose between something really cool and impressive and something quick and simple (but useful)? How did they make that call? What were the tradeoffs?

  • Have they ever had a project where the budget was pretty much blown, but there were still contractual obligations that needed to be delivered, now on a tigher-than-expected budget? How did they tackle that?

    • It's not that we expect to blow budgets, but this is a resource-constrained situation where something still has to be delivered. We're interested in what gets delivered, and how that decision is made.

Backup question to promote discussion:

Give a hypothetical, e.g. "Aleph is a flask and react-based search tool. It ingests many file formats, indexes them for full text search, and stores them files in S3. It currently serves the full PDF which sometimes means downloading 100MB to view one page. We have a budget of three days of dev time to make it serve one page at a time. What are our options? How do we avoid them just saying "sure, no problem" and learning nothing from the question?

PreviousRecruitmentNextDRAFT Recruitment template: Product owner

Last updated 3 years ago

Was this helpful?