Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The modern astronomer - a contributing software engineer

The modern astronomer - a contributing software engineer

Practicing modern science is no longer a solitary task; scientists are ever more required to collaborate on larger and larger projects. Data rates in science are exploding, not least in the field of Radio Astronomy. These huge datasets require the aid of software to automate data processing.

The previous two statements require that the modern astronomer is able not only to write software, but also to collaborate in software projects by writing sustainable code. Writing good software is hard and it becomes exponentially harder when the number of developers increases without proper software engineering techniques being used. This talk will be about basic techniques when contributing to, or starting, a scientific software project. The talk will also briefly cover state-of-the-art techniques used to deploy scientific software in a production environment.

Bio: Gijs Molenaar is a software engineer working on data reduction pipelines for MeerKAT (South Africa) and AARTFAAC (Netherlands).

978e79ad01185b39efcfca1482f0f819?s=128

Gijs Molenaar

May 24, 2016
Tweet

Transcript

  1. A CONTRIBUTING SOFTWARE ENGINEER THE MODERN ASTRONOMER Gijs Molenaar -

    http://pythonic.nl - NAC 2016
  2. GIJS MOLENAAR • Software Engineer • AARTFAAC - Transient Detection

    • MeerKAT - software sustainability
  3. None
  4. WHAT I REALLY DO Trying to get crappy scientific software

    into production
  5. KLIKO - SCIENTIFIC COMPUTE CONTAINER FORMAT

  6. None
  7. ASTRONOMER - SOFTWARE ENGINEER? • Data rates grow and grow

    • Automated processing • Basic scripting required
  8. CONTRIBUTING? • Science more collaboration effort • More people working

    on small steps • (re)use other work
  9. PREPARE YOUR WORK FOR FUTURE USE • and your future

    self • Structure your code • Document the code • Unit test the code
  10. SHARE YOUR CODE • Just put it out there •

    Make everything open source • Open and reproducible science • Public money, ethical thing to do
  11. GITHUB PUT IT ON

  12. Advantages • Free hosting • Free other services • People

    can verify your results • People can reuse your work • Public exposure (future job) Disadvantages • Nobody cares? • Need to learn new technology • I’m ashamed • My awesome algorithm, worth money / papers • People will abuse it and publish about it • People will use my code and don’t give credits
  13. FIRST OPEN SOURCE IT THEN ASK

  14. GIT - THERE IS A LEARNING CURVE • But in

    the end it will pay back • Go back in time of code • Backups • Collaboration
  15. QUESTIONS? http://pythonic.nl - @gijzelaerrr