SlideShare a Scribd company logo
TOOTLE:
RETURNING TO
RAILS
ANDREW GRIMM
ROROSYD JUNE 9 2015
MY CAREER SO FAR…
UNIVERSITY OF SYDNEY
• Bachelor of Science (Bioinformatics) Honours
Class I (Biology)
• Final undergraduate year half biology, half
computer science
• Honours year involved a bioinformatics project
CHILDREN’S HOSPITAL AT
WESTMEAD
• Worked on RettBASE, an online database of
mutations to MECP2 which causes Rett syndrome
• Biological knowledge important, plus general
computing skills, but not much programming
MARINE BIOLOGICAL
LABORATORY
• Work related to the Encyclopedia of Life, a website
aiming to have a series of pages for each species
known to science
• ~ 6 months PHP, 6 months Ruby on Rails
UNSW AUSTRALIA
• Analysis of mutation in HIV
• Used Ruby (without Rails)
CURRENT POSITION
• Back-end Rails developer at a large product
company
CHANGES FROM PREVIOUS TO
CURRENT JOB
• Solo development => Group development
• Research => commercial environment
• Ruby => Rails
PULL REQUESTS
• Have to get two approvals for each pull request
• Advantage: Source of feedback
• Disadvantage: More work when you thought you’d
finished
PACE OF WORK
• Previous job involved weekly or twice-weekly
meetings
• Now daily standups and JIRA tickets
RUBY TO RAILS
• Bit more magical
TESTING
• In previous job used test/unit, real objects, and
tested actual results
• Now use RSpec, factory girl. Techniques include
mocking, and testing that one class is calling the
correct methods on other classes and objects.
COMPARISON OF TESTING
TECHNIQUES: SCENARIO
• A product has a delivery postcode, which must be
four digits, and must be to a location we deliver to
• ‘Sydney’ is not valid, because it isn’t 4 digits
• ‘0800’ is not valid, because we don’t deliver there
• ‘2000’ is valid, because we deliver there
TESTING TECHNIQUES: REAL
OBJECTS
• Is a product with postcode ‘Sydney’ invalid?
• Is a product with postcode ‘0800’ invalid?
• Is a product with postcode ‘2000’ valid?
TESTING TECHNIQUES:
MOCKING
• Testing that Product successfully uses postcode
format validation
• The format validator says that the postcode does
not contain 4 digits. Is the postcode valid?
• The format validator says that the postcode does
contain 4 digits. Is the postcode valid?
WHY THE DIFFERENCE?
• Can’t do dependency injection
• Have to intercept calls to objects or classes
INHERITANCE
• Delegation (as opposed to inheritance):
• spreadsheet = Library::Spreadsheet.new
• spreadsheet.serialize(@spreadsheet_filename)
• Inheritance
• class MutationSpreadsheet < Library::Spreadsheet
• end
MAGIC
• Ruby-only style:
• length_validator = LengthValidator.new(dna)
• length_validator.valid?
• Rails style:
• validates :dna, length: true

More Related Content

Viewers also liked

CUENTOS BIBLIOTECA: FREDERICK de 3º curso Leo Lionni
CUENTOS BIBLIOTECA: FREDERICK de 3º curso  Leo LionniCUENTOS BIBLIOTECA: FREDERICK de 3º curso  Leo Lionni
CUENTOS BIBLIOTECA: FREDERICK de 3º curso Leo Lionni
Mª Carmen de la Victoria León
 
The very-hungry-caterpillar-1224994450325802-9
The very-hungry-caterpillar-1224994450325802-9The very-hungry-caterpillar-1224994450325802-9
The very-hungry-caterpillar-1224994450325802-9Julieth Gil Ardila
 
The Giving Tree
The Giving TreeThe Giving Tree
The Giving Tree
Seta Wicaksana
 
If You Give a Moose A Muffin
If You Give a Moose A MuffinIf You Give a Moose A Muffin
If You Give a Moose A Muffin
Molly Burnell
 
The Giving Tree by Shel Silverstein
The Giving Tree by Shel SilversteinThe Giving Tree by Shel Silverstein
The Giving Tree by Shel Silversteinpeneglos
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of It
Jennifer Jones
 

Viewers also liked (9)

CUENTOS BIBLIOTECA: FREDERICK de 3º curso Leo Lionni
CUENTOS BIBLIOTECA: FREDERICK de 3º curso  Leo LionniCUENTOS BIBLIOTECA: FREDERICK de 3º curso  Leo Lionni
CUENTOS BIBLIOTECA: FREDERICK de 3º curso Leo Lionni
 
The very-hungry-caterpillar-1224994450325802-9
The very-hungry-caterpillar-1224994450325802-9The very-hungry-caterpillar-1224994450325802-9
The very-hungry-caterpillar-1224994450325802-9
 
The Giving Tree
The Giving TreeThe Giving Tree
The Giving Tree
 
English 3 lm quarter 1
English 3 lm quarter 1English 3 lm quarter 1
English 3 lm quarter 1
 
The Carrot Seed
The Carrot SeedThe Carrot Seed
The Carrot Seed
 
If You Give a Moose A Muffin
If You Give a Moose A MuffinIf You Give a Moose A Muffin
If You Give a Moose A Muffin
 
The Giving Tree by Shel Silverstein
The Giving Tree by Shel SilversteinThe Giving Tree by Shel Silverstein
The Giving Tree by Shel Silverstein
 
The Very Hungry Caterpillar
The Very Hungry CaterpillarThe Very Hungry Caterpillar
The Very Hungry Caterpillar
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of It
 

Similar to Tootle returning to rails

Science fair powerpoint 2012
Science fair powerpoint 2012Science fair powerpoint 2012
Science fair powerpoint 2012ljmccauley
 
Sarvesh karn testing
Sarvesh karn testingSarvesh karn testing
Sarvesh karn testing
sarvesh karn
 
Mihai mahulea the zen of test driven development
Mihai mahulea   the zen of test driven developmentMihai mahulea   the zen of test driven development
Mihai mahulea the zen of test driven development
Codecamp Romania
 
Prototyping - Get the right tools and workflow
Prototyping - Get the right tools and workflowPrototyping - Get the right tools and workflow
Prototyping - Get the right tools and workflow
Aurelien Labonne
 
Learn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshopLearn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshop
chartjes
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Dinis Cruz
 
Content strategy for public lands websites part 2 2
Content strategy for public lands websites part 2 2Content strategy for public lands websites part 2 2
Content strategy for public lands websites part 2 2ss4appl
 
iGEM Open House Winter 2015
iGEM Open House Winter 2015iGEM Open House Winter 2015
iGEM Open House Winter 2015
Waterloo iGEM
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true storyAki Salmi
 
Agile Work Quality: Test Driven Development and Unit Tests
Agile Work Quality:  Test Driven Development and Unit TestsAgile Work Quality:  Test Driven Development and Unit Tests
Agile Work Quality: Test Driven Development and Unit Tests
David Pledger
 
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Rehgan Avon
 
WordCamp Orlando 2015 - WordPress for Everyone
WordCamp Orlando 2015 - WordPress for EveryoneWordCamp Orlando 2015 - WordPress for Everyone
WordCamp Orlando 2015 - WordPress for Everyone
Angelica Yarde
 
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
Aaron Blythe
 
Welcome to iLUX
Welcome to iLUXWelcome to iLUX
Welcome to iLUX
jimacunningham
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example Implementation
Synerzip
 
Shawn Wallace - Test automation in brownfield applications
Shawn Wallace - Test automation in brownfield applicationsShawn Wallace - Test automation in brownfield applications
Shawn Wallace - Test automation in brownfield applicationsQA or the Highway
 
Hindsight lessons about API testing
Hindsight lessons about API testingHindsight lessons about API testing
Hindsight lessons about API testing
Viktor Slavchev
 
Test Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-itsTest Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-its
Sarah Joy Arnold
 
Test Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-itsTest Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-its
Sarah Joy Arnold
 

Similar to Tootle returning to rails (20)

Science fair powerpoint 2012
Science fair powerpoint 2012Science fair powerpoint 2012
Science fair powerpoint 2012
 
Sarvesh karn testing
Sarvesh karn testingSarvesh karn testing
Sarvesh karn testing
 
Idea-Product
Idea-ProductIdea-Product
Idea-Product
 
Mihai mahulea the zen of test driven development
Mihai mahulea   the zen of test driven developmentMihai mahulea   the zen of test driven development
Mihai mahulea the zen of test driven development
 
Prototyping - Get the right tools and workflow
Prototyping - Get the right tools and workflowPrototyping - Get the right tools and workflow
Prototyping - Get the right tools and workflow
 
Learn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshopLearn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshop
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
 
Content strategy for public lands websites part 2 2
Content strategy for public lands websites part 2 2Content strategy for public lands websites part 2 2
Content strategy for public lands websites part 2 2
 
iGEM Open House Winter 2015
iGEM Open House Winter 2015iGEM Open House Winter 2015
iGEM Open House Winter 2015
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
 
Agile Work Quality: Test Driven Development and Unit Tests
Agile Work Quality:  Test Driven Development and Unit TestsAgile Work Quality:  Test Driven Development and Unit Tests
Agile Work Quality: Test Driven Development and Unit Tests
 
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
 
WordCamp Orlando 2015 - WordPress for Everyone
WordCamp Orlando 2015 - WordPress for EveryoneWordCamp Orlando 2015 - WordPress for Everyone
WordCamp Orlando 2015 - WordPress for Everyone
 
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
Continuous Delivery: Delivering Client Value at Light Speed - DevCon 2015
 
Welcome to iLUX
Welcome to iLUXWelcome to iLUX
Welcome to iLUX
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example Implementation
 
Shawn Wallace - Test automation in brownfield applications
Shawn Wallace - Test automation in brownfield applicationsShawn Wallace - Test automation in brownfield applications
Shawn Wallace - Test automation in brownfield applications
 
Hindsight lessons about API testing
Hindsight lessons about API testingHindsight lessons about API testing
Hindsight lessons about API testing
 
Test Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-itsTest Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-its
 
Test Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-itsTest Fest and the Tale of Too Many Post-its
Test Fest and the Tale of Too Many Post-its
 

More from Andrew Grimm

Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)
Andrew Grimm
 
Git Tips and Tricks
Git Tips and TricksGit Tips and Tricks
Git Tips and Tricks
Andrew Grimm
 
RuboCop
RuboCopRuboCop
RuboCop
Andrew Grimm
 
Finding Japanese flatmates with Ruby
Finding Japanese flatmates with RubyFinding Japanese flatmates with Ruby
Finding Japanese flatmates with Ruby
Andrew Grimm
 
YHA Japan travel night (internet version)
YHA Japan travel night (internet version)YHA Japan travel night (internet version)
YHA Japan travel night (internet version)
Andrew Grimm
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
Andrew Grimm
 
Avoiding niseko syndrome
Avoiding niseko syndromeAvoiding niseko syndrome
Avoiding niseko syndrome
Andrew Grimm
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
Andrew Grimm
 
Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)
Andrew Grimm
 
Rubyist in oz
Rubyist in ozRubyist in oz
Rubyist in oz
Andrew Grimm
 
Japanese: a programmers language
Japanese: a programmers languageJapanese: a programmers language
Japanese: a programmers language
Andrew Grimm
 
Ruby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthRuby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthAndrew Grimm
 
Ruby 1.8.8 and professor
Ruby 1.8.8 and professorRuby 1.8.8 and professor
Ruby 1.8.8 and professor
Andrew Grimm
 
Sapporo ruby kaigi
Sapporo ruby kaigiSapporo ruby kaigi
Sapporo ruby kaigi
Andrew Grimm
 
How to talk like a ge1sha
How to talk like a ge1shaHow to talk like a ge1sha
How to talk like a ge1sha
Andrew Grimm
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-masAndrew Grimm
 
Mistakes I have made
Mistakes I have madeMistakes I have made
Mistakes I have made
Andrew Grimm
 
Ampersand method
Ampersand methodAmpersand method
Ampersand method
Andrew Grimm
 
Nihon go do you speak it
Nihon go do you speak itNihon go do you speak it
Nihon go do you speak it
Andrew Grimm
 
Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011Andrew Grimm
 

More from Andrew Grimm (20)

Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)
 
Git Tips and Tricks
Git Tips and TricksGit Tips and Tricks
Git Tips and Tricks
 
RuboCop
RuboCopRuboCop
RuboCop
 
Finding Japanese flatmates with Ruby
Finding Japanese flatmates with RubyFinding Japanese flatmates with Ruby
Finding Japanese flatmates with Ruby
 
YHA Japan travel night (internet version)
YHA Japan travel night (internet version)YHA Japan travel night (internet version)
YHA Japan travel night (internet version)
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
 
Avoiding niseko syndrome
Avoiding niseko syndromeAvoiding niseko syndrome
Avoiding niseko syndrome
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
 
Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)
 
Rubyist in oz
Rubyist in ozRubyist in oz
Rubyist in oz
 
Japanese: a programmers language
Japanese: a programmers languageJapanese: a programmers language
Japanese: a programmers language
 
Ruby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthRuby for newbies Lake Ainsworth
Ruby for newbies Lake Ainsworth
 
Ruby 1.8.8 and professor
Ruby 1.8.8 and professorRuby 1.8.8 and professor
Ruby 1.8.8 and professor
 
Sapporo ruby kaigi
Sapporo ruby kaigiSapporo ruby kaigi
Sapporo ruby kaigi
 
How to talk like a ge1sha
How to talk like a ge1shaHow to talk like a ge1sha
How to talk like a ge1sha
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-mas
 
Mistakes I have made
Mistakes I have madeMistakes I have made
Mistakes I have made
 
Ampersand method
Ampersand methodAmpersand method
Ampersand method
 
Nihon go do you speak it
Nihon go do you speak itNihon go do you speak it
Nihon go do you speak it
 
Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Tootle returning to rails

  • 1.
  • 3. MY CAREER SO FAR…
  • 4. UNIVERSITY OF SYDNEY • Bachelor of Science (Bioinformatics) Honours Class I (Biology) • Final undergraduate year half biology, half computer science • Honours year involved a bioinformatics project
  • 5. CHILDREN’S HOSPITAL AT WESTMEAD • Worked on RettBASE, an online database of mutations to MECP2 which causes Rett syndrome • Biological knowledge important, plus general computing skills, but not much programming
  • 6. MARINE BIOLOGICAL LABORATORY • Work related to the Encyclopedia of Life, a website aiming to have a series of pages for each species known to science • ~ 6 months PHP, 6 months Ruby on Rails
  • 7. UNSW AUSTRALIA • Analysis of mutation in HIV • Used Ruby (without Rails)
  • 8. CURRENT POSITION • Back-end Rails developer at a large product company
  • 9. CHANGES FROM PREVIOUS TO CURRENT JOB • Solo development => Group development • Research => commercial environment • Ruby => Rails
  • 10. PULL REQUESTS • Have to get two approvals for each pull request • Advantage: Source of feedback • Disadvantage: More work when you thought you’d finished
  • 11. PACE OF WORK • Previous job involved weekly or twice-weekly meetings • Now daily standups and JIRA tickets
  • 12. RUBY TO RAILS • Bit more magical
  • 13. TESTING • In previous job used test/unit, real objects, and tested actual results • Now use RSpec, factory girl. Techniques include mocking, and testing that one class is calling the correct methods on other classes and objects.
  • 14. COMPARISON OF TESTING TECHNIQUES: SCENARIO • A product has a delivery postcode, which must be four digits, and must be to a location we deliver to • ‘Sydney’ is not valid, because it isn’t 4 digits • ‘0800’ is not valid, because we don’t deliver there • ‘2000’ is valid, because we deliver there
  • 15. TESTING TECHNIQUES: REAL OBJECTS • Is a product with postcode ‘Sydney’ invalid? • Is a product with postcode ‘0800’ invalid? • Is a product with postcode ‘2000’ valid?
  • 16. TESTING TECHNIQUES: MOCKING • Testing that Product successfully uses postcode format validation • The format validator says that the postcode does not contain 4 digits. Is the postcode valid? • The format validator says that the postcode does contain 4 digits. Is the postcode valid?
  • 17. WHY THE DIFFERENCE? • Can’t do dependency injection • Have to intercept calls to objects or classes
  • 18. INHERITANCE • Delegation (as opposed to inheritance): • spreadsheet = Library::Spreadsheet.new • spreadsheet.serialize(@spreadsheet_filename) • Inheritance • class MutationSpreadsheet < Library::Spreadsheet • end
  • 19. MAGIC • Ruby-only style: • length_validator = LengthValidator.new(dna) • length_validator.valid? • Rails style: • validates :dna, length: true