SlideShare a Scribd company logo
1 of 23
Full-stack development
A bit about everything
The layers of the stack
A webapp : simple full-stack software
Android : A complex stack
●First impressions matter. The UI should look good
●
●UI != UX. Good UX needs good UI. But just good UI doesn’t
ensure good UX.
●
●Do not overdesign. The best UIs are the simplest ones.
●
●UX is a tool to make the user do what you want. But without him
knowing this. (dark and light patterns).
The front-end : UI/UX
●Speed : Computers are faster than humans. Keep it that way.
And users are impatient.
●
●Information : Show what is needed. Hide what isn’t. Users aren’t
developers. They don’t need ‘under-the-hood’ stats.
●
●Depending on the platform, decide the tradeoff between client
and server side processing. (eg. Autodesk Pixlr)
●
●Handle crashes gracefully. Stay with the user. Do not bail out.
The front-end : functionality
●Speed of development matters.
●Validate everything that the user enters in forms or
otherwise.
●MVP first, scale later
●Learn and embrace new tech like Docker
Containers.
The Server Side Stuff
●Use a robust platform. Check its forums, find out if the platform
and it’s providers have downtimes, or issues.
●
●Do not become dependent on the platform or the host. Always
keep bags packed and ready to move.
●
●First MVP with a easy to set up platform. Then move to more
native platform when scaling.
●
●Use containers, servlets, docklets, VM images. These are
The server platform
Performances of common server containers
●Forget Windows/Mac. Learn Linux. Forget GUI. You’re now in
command (pun intended)
●
●Bash/Shell scripting = your single largest tool.
●
●Learn managing a VPS. Learn setting up OpenStack,
OpenCloud, AWS, GAE, Heroku etc instances.
●
●Use monitoring tools like Nagios. Learn network fundamentals.
DNS, iptables etc.
Managing the backend : SysAdmin
It’s not just coding
●Writing code
●Testing and debugging
●Version control
●Managing the databases
●Sysadmin for the backend
●Designing UI for frontend
●Marketing and publicity
●Reach MVP first. Optimize later.
●
●Use comments. Especially //TODO, //FIXME lines.
●
●Run & test often. At least once after adding every 100 lines.
●
●Code may be poetry. But it needs proofreading.
Good practices : coding
Good practices : testing
●Test like your granny would (no offense). Press all the buttons.
Do everything that can crash the app. Trust me, your users will
too.
●
●Test under worst conditions. Slow internet, corrupt data, throw
everything at it.
●
●Test all the cases. Especially the improbable ones. Remember
Murphy’s law.
Good practices : debugging
●Learn to log your code. Learn to read the logs. Developing is
>50% of debugging.
●
●Bug hunting skills are more important coding. Many people can
build stuff. Few can fix things when they are broken.
●
●Investigate bugs systematically. Change one component at a
time. Pinpoint the portion that causes the bug.
●
●DO NOT duct tape your bugs. Solve them properly.
Good practices : data models
●It’s very difficult to change data model after 5000 people have started using your
product. Choose wisely from the start.
●
●Work out the flow of data. In your mind, on a paper, on the drawing board. The data
model should be made accordingly.
●
●Reduce iterations. Reduce number of passes your functions make through each table.
●
●Cache the data that is repetitively used. Make sensitive data redundant.
●
●If your data model depends on your language or framework or platform, you’re
probably doing it wrong. You might need to change your platform or language
tomorrow.
General suggestions for a FSD
●Identify your strong suite. No one can be a true all rounder. Go deep with that. Spread
thin on other areas.
●
●Use ready-to-use solutions for your weaker base. (eg. Ionic/Titanium for client side,
Parse/Firebase for backend)
●
●Make friends with other FSDs. Especially with non-intersecting strengths.
●
●Keep working on new technologies. Follow well known developers. Track some
awesome github projects.
●
●Use cross-end languages in hobby projects. Eg. Python, javascript, java etc which
can be used to make both front and back ends easily.
Tools Used for development
+Server Side : Python(Flask)
+Web APP : Bootstrap,Angular JS
+Android and iOS app : Ionic
framework
Tools used for marketing
+Facebook Ads
+Twitter and facebook bots
+Setting up a content writing team.
Full Stack in Action: Orch.in

More Related Content

What's hot

Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN StackSurya937648
 
Full stack devlopment using django main ppt
Full stack devlopment using django main pptFull stack devlopment using django main ppt
Full stack devlopment using django main pptSudhanshuVijay3
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptxFalgunSorathiya
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 
Web development ppt
Web development pptWeb development ppt
Web development pptParasJain222
 
Introduction to React JS
Introduction to React JSIntroduction to React JS
Introduction to React JSArno Lordkronos
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student Abhishekchauhan863165
 
Introduction to back-end
Introduction to back-endIntroduction to back-end
Introduction to back-endMosaab Ehab
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Oleksii Prohonnyi
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer Ramy Hakam
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web DevelopmentYash Sati
 
Web development | Derin Dolen
Web development | Derin Dolen Web development | Derin Dolen
Web development | Derin Dolen Derin Dolen
 
ReactJS presentation
ReactJS presentationReactJS presentation
ReactJS presentationThanh Tuong
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)PCG Solution
 

What's hot (20)

Web Development
Web DevelopmentWeb Development
Web Development
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN Stack
 
Full stack devlopment using django main ppt
Full stack devlopment using django main pptFull stack devlopment using django main ppt
Full stack devlopment using django main ppt
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
Flutter
FlutterFlutter
Flutter
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Web development ppt
Web development pptWeb development ppt
Web development ppt
 
Introduction to React JS
Introduction to React JSIntroduction to React JS
Introduction to React JS
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
 
WEB DEVELOPMENT USING REACT JS
 WEB DEVELOPMENT USING REACT JS WEB DEVELOPMENT USING REACT JS
WEB DEVELOPMENT USING REACT JS
 
Introduction to back-end
Introduction to back-endIntroduction to back-end
Introduction to back-end
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
 
Web development | Derin Dolen
Web development | Derin Dolen Web development | Derin Dolen
Web development | Derin Dolen
 
ReactJS presentation
ReactJS presentationReactJS presentation
ReactJS presentation
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
 

Viewers also liked

Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology StacksPrakarsh -
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack developmentScott Lee
 
Beyond Full Stack Engineering
Beyond Full Stack EngineeringBeyond Full Stack Engineering
Beyond Full Stack EngineeringAdam Hepton
 
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCFull Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCKarl Stanton
 
Cloud Based Business Application Development
Cloud Based Business Application DevelopmentCloud Based Business Application Development
Cloud Based Business Application DevelopmentMageCloud
 
OSDC- Intro to Full stack javascript development
OSDC- Intro to Full stack javascript developmentOSDC- Intro to Full stack javascript development
OSDC- Intro to Full stack javascript developmentAyush Narula
 
Understanding c# for java
Understanding c# for javaUnderstanding c# for java
Understanding c# for javasagaroceanic11
 
File transfer using cryptography techniques
File transfer using cryptography techniquesFile transfer using cryptography techniques
File transfer using cryptography techniquesmiteshkumar82
 
Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015TryBloc
 
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
6acfbd164b5fb1607d886eaa50548962 fswd-big_pictureEmad Elmogy
 
The Full Stack Deisgner Manifesto
The Full Stack Deisgner ManifestoThe Full Stack Deisgner Manifesto
The Full Stack Deisgner ManifestoRan Segall
 
Microservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerMicroservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerDhilipsiva DS
 
Digital Enterprise Success Depends on DevOps and TestOps
Digital Enterprise Success Depends on DevOps and TestOpsDigital Enterprise Success Depends on DevOps and TestOps
Digital Enterprise Success Depends on DevOps and TestOpsGervais Johnson, Advisor
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk Bui Hai An
 
Technology stack of social networks [MTS]
Technology stack of social networks [MTS]Technology stack of social networks [MTS]
Technology stack of social networks [MTS]philmaweb
 
Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology StackHusain Ali
 
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.jsThe MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.jsMongoDB
 
HTML presentation for beginners
HTML presentation for beginnersHTML presentation for beginners
HTML presentation for beginnersjeroenvdmeer
 
Creating an Interactive Content Strategy that Works with Technology
Creating an Interactive Content Strategy that Works with TechnologyCreating an Interactive Content Strategy that Works with Technology
Creating an Interactive Content Strategy that Works with Technologyion interactive
 
38 Employee Engagement Ideas Your Team Will Love
38 Employee Engagement Ideas Your Team Will Love38 Employee Engagement Ideas Your Team Will Love
38 Employee Engagement Ideas Your Team Will LoveElodie A.
 

Viewers also liked (20)

Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology Stacks
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
Beyond Full Stack Engineering
Beyond Full Stack EngineeringBeyond Full Stack Engineering
Beyond Full Stack Engineering
 
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCFull Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
 
Cloud Based Business Application Development
Cloud Based Business Application DevelopmentCloud Based Business Application Development
Cloud Based Business Application Development
 
OSDC- Intro to Full stack javascript development
OSDC- Intro to Full stack javascript developmentOSDC- Intro to Full stack javascript development
OSDC- Intro to Full stack javascript development
 
Understanding c# for java
Understanding c# for javaUnderstanding c# for java
Understanding c# for java
 
File transfer using cryptography techniques
File transfer using cryptography techniquesFile transfer using cryptography techniques
File transfer using cryptography techniques
 
Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015
 
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 
The Full Stack Deisgner Manifesto
The Full Stack Deisgner ManifestoThe Full Stack Deisgner Manifesto
The Full Stack Deisgner Manifesto
 
Microservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerMicroservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and Docker
 
Digital Enterprise Success Depends on DevOps and TestOps
Digital Enterprise Success Depends on DevOps and TestOpsDigital Enterprise Success Depends on DevOps and TestOps
Digital Enterprise Success Depends on DevOps and TestOps
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk
 
Technology stack of social networks [MTS]
Technology stack of social networks [MTS]Technology stack of social networks [MTS]
Technology stack of social networks [MTS]
 
Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology Stack
 
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.jsThe MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
 
HTML presentation for beginners
HTML presentation for beginnersHTML presentation for beginners
HTML presentation for beginners
 
Creating an Interactive Content Strategy that Works with Technology
Creating an Interactive Content Strategy that Works with TechnologyCreating an Interactive Content Strategy that Works with Technology
Creating an Interactive Content Strategy that Works with Technology
 
38 Employee Engagement Ideas Your Team Will Love
38 Employee Engagement Ideas Your Team Will Love38 Employee Engagement Ideas Your Team Will Love
38 Employee Engagement Ideas Your Team Will Love
 

Similar to Full stack development

Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singhslashn
 
Akademy 2010 presentation
Akademy 2010 presentationAkademy 2010 presentation
Akademy 2010 presentationMarco Martin
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)Ron Munitz
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonNETWAYS
 
Campkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookCampkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookMarco Martin
 
Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012Daniel Woods
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)ncoghlan_dev
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux HeritageOpersys inc.
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)ncoghlan_dev
 
Tokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookTokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookMarco Martin
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLinaro
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)Daniel Juyung Seo
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartConFoo
 
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Opersys inc.
 
Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2Davor Guttierrez
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the ContinuistPaul Blundell
 

Similar to Full stack development (20)

Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
 
Akademy 2010 presentation
Akademy 2010 presentationAkademy 2010 presentation
Akademy 2010 presentation
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
 
Campkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookCampkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbook
 
Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012Gainesville Web Developer Group, Sept 2012
Gainesville Web Developer Group, Sept 2012
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
 
Tokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookTokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma Netbook
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)
Improving Cross Desktop Standard by Cedric BAIL (GNOME Asia Summit 2013)
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Cloud accounting software uk
Cloud accounting software ukCloud accounting software uk
Cloud accounting software uk
 
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011
 
Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 

More from Arnav Gupta

Home automation with javascript
Home automation with javascriptHome automation with javascript
Home automation with javascriptArnav Gupta
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 
What to do after Rooting ?
What to do after Rooting ?What to do after Rooting ?
What to do after Rooting ?Arnav Gupta
 
Rooting an Android phone
Rooting an Android phoneRooting an Android phone
Rooting an Android phoneArnav Gupta
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 
Creating your own Android library and documenting it with Javadocs
Creating your own Android library and documenting it with JavadocsCreating your own Android library and documenting it with Javadocs
Creating your own Android library and documenting it with JavadocsArnav Gupta
 

More from Arnav Gupta (6)

Home automation with javascript
Home automation with javascriptHome automation with javascript
Home automation with javascript
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
What to do after Rooting ?
What to do after Rooting ?What to do after Rooting ?
What to do after Rooting ?
 
Rooting an Android phone
Rooting an Android phoneRooting an Android phone
Rooting an Android phone
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
Creating your own Android library and documenting it with Javadocs
Creating your own Android library and documenting it with JavadocsCreating your own Android library and documenting it with Javadocs
Creating your own Android library and documenting it with Javadocs
 

Recently uploaded

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Full stack development

  • 1. Full-stack development A bit about everything
  • 2. The layers of the stack
  • 3. A webapp : simple full-stack software
  • 4. Android : A complex stack
  • 5. ●First impressions matter. The UI should look good ● ●UI != UX. Good UX needs good UI. But just good UI doesn’t ensure good UX. ● ●Do not overdesign. The best UIs are the simplest ones. ● ●UX is a tool to make the user do what you want. But without him knowing this. (dark and light patterns). The front-end : UI/UX
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. ●Speed : Computers are faster than humans. Keep it that way. And users are impatient. ● ●Information : Show what is needed. Hide what isn’t. Users aren’t developers. They don’t need ‘under-the-hood’ stats. ● ●Depending on the platform, decide the tradeoff between client and server side processing. (eg. Autodesk Pixlr) ● ●Handle crashes gracefully. Stay with the user. Do not bail out. The front-end : functionality
  • 12. ●Speed of development matters. ●Validate everything that the user enters in forms or otherwise. ●MVP first, scale later ●Learn and embrace new tech like Docker Containers. The Server Side Stuff
  • 13. ●Use a robust platform. Check its forums, find out if the platform and it’s providers have downtimes, or issues. ● ●Do not become dependent on the platform or the host. Always keep bags packed and ready to move. ● ●First MVP with a easy to set up platform. Then move to more native platform when scaling. ● ●Use containers, servlets, docklets, VM images. These are The server platform
  • 14. Performances of common server containers
  • 15. ●Forget Windows/Mac. Learn Linux. Forget GUI. You’re now in command (pun intended) ● ●Bash/Shell scripting = your single largest tool. ● ●Learn managing a VPS. Learn setting up OpenStack, OpenCloud, AWS, GAE, Heroku etc instances. ● ●Use monitoring tools like Nagios. Learn network fundamentals. DNS, iptables etc. Managing the backend : SysAdmin
  • 16. It’s not just coding ●Writing code ●Testing and debugging ●Version control ●Managing the databases ●Sysadmin for the backend ●Designing UI for frontend ●Marketing and publicity
  • 17. ●Reach MVP first. Optimize later. ● ●Use comments. Especially //TODO, //FIXME lines. ● ●Run & test often. At least once after adding every 100 lines. ● ●Code may be poetry. But it needs proofreading. Good practices : coding
  • 18. Good practices : testing ●Test like your granny would (no offense). Press all the buttons. Do everything that can crash the app. Trust me, your users will too. ● ●Test under worst conditions. Slow internet, corrupt data, throw everything at it. ● ●Test all the cases. Especially the improbable ones. Remember Murphy’s law.
  • 19. Good practices : debugging ●Learn to log your code. Learn to read the logs. Developing is >50% of debugging. ● ●Bug hunting skills are more important coding. Many people can build stuff. Few can fix things when they are broken. ● ●Investigate bugs systematically. Change one component at a time. Pinpoint the portion that causes the bug. ● ●DO NOT duct tape your bugs. Solve them properly.
  • 20.
  • 21. Good practices : data models ●It’s very difficult to change data model after 5000 people have started using your product. Choose wisely from the start. ● ●Work out the flow of data. In your mind, on a paper, on the drawing board. The data model should be made accordingly. ● ●Reduce iterations. Reduce number of passes your functions make through each table. ● ●Cache the data that is repetitively used. Make sensitive data redundant. ● ●If your data model depends on your language or framework or platform, you’re probably doing it wrong. You might need to change your platform or language tomorrow.
  • 22. General suggestions for a FSD ●Identify your strong suite. No one can be a true all rounder. Go deep with that. Spread thin on other areas. ● ●Use ready-to-use solutions for your weaker base. (eg. Ionic/Titanium for client side, Parse/Firebase for backend) ● ●Make friends with other FSDs. Especially with non-intersecting strengths. ● ●Keep working on new technologies. Follow well known developers. Track some awesome github projects. ● ●Use cross-end languages in hobby projects. Eg. Python, javascript, java etc which can be used to make both front and back ends easily.
  • 23. Tools Used for development +Server Side : Python(Flask) +Web APP : Bootstrap,Angular JS +Android and iOS app : Ionic framework Tools used for marketing +Facebook Ads +Twitter and facebook bots +Setting up a content writing team. Full Stack in Action: Orch.in