Perfect Programmers

Total Page:16

File Type:pdf, Size:1020Kb

Perfect Programmers TYTUŁHOW DOKUMENTU WE WORK AsdasdaAsdasda asdasdad asdasdasd TABLE OF CONTENTS Collaboration in a nutshell................................................................................................................................. 3 First contact.......................................................................................................................................................... 3 Prepare for development.................................................................................................................................... 4 Development......................................................................................................................................................... 5 Development teams............................................................................................................................................. 5 Agreements........................................................................................................................................................... 6 Estimates............................................................................................................................................................... 6 FA ......................................................................................................................................................................... 6 Do I have to pa" for bugs?.................................................................................................................................. 6 APPEND!% A& REC())ENDED *((+,............................................................................................................ - APPEND!% B: *EC/$(+(01 S*AC2................................................................................................................. - Ragnarson sp. z o.o. *argo3a 35 bi45ragnarson.com N!P67A*8E9& P+-:-:-6;<=: <=8=43 Łód@A Poland 333.ragnarson.com KR,& 0===365-;B RE0($& 1==<6=<55 Collaboration in a nutshell ,o "ouCre an entrepreneur 3ith a ground8breaDing idea for the 3orldCs neEt 3eb8 based application. FatCs great! (ne catch& "ou lacD the technical skills to build the soft3are, and maDe "our idea a realit". FatCs 3here 3e come in. Ie are 'ub" developers speciali4ed in building 3eb applications for start8ups. *ogetherA 3e can surel" reali4e "our vision and bring "our product to marDet sooner than "ou thought possible. Before 3e embarD on this JourneyA 3e think it is important for us to get to Dno3 each other and to ensure that our 3a" of 3orD is a good Kt for "ou. !n order to give "ou a general idea of ho3 3e 3orDA 3e have prepared a brief roadmap of our onboarding and soft3are development process: 1. First contact 2. ,igning a non8disclosure agreement (NDAM (optionalM 3. ,haring a code repositor" (if one eEistsM and other useful materials with us 4. Preparing estimates (optionalM 5. !ntervie3s with developers 6. ,igning a contract -. Development ;. Possible directions of development <. Ending the contract First contact Before starting an" proJect 3e al3a"s arrange an introductor" call Lor a meeting in person if possibleM. Ie 3ould love to get to Dno3 "ou and "our idea and maDe sure that 3e are a good match for each other. Ihen "ou Krst get in touch 3ith us be read" to ans3er lots of Nuestions. Ie 3ant to Dno3 if and ho3 3e can help you. Ragnarson sp. z o.o. *argo3a 35 bi45ragnarson.com N!P67A*8E9& P+-:-:-6;<=: <=8=43 Łód@A Poland 333.ragnarson.com KR,& 0===365-;B RE0($& 1==<6=<55 A t"pical conversation consists of& • !ntroduction • Pitch of your idea. A good pitch should ans3er follo3ing questions: ◦ Ihat pain would you liDe to relieve? ◦ Iho eEperiences this pain (3ho is your target marDetM# ◦ Ihat distinguishes you from competitors? ◦ /o3 do you plan to maDe money from it# ◦ Ihat is the current stage of your product# ◦ Ihat does your current team looD liDe? ◦ Ihat are your milestones for the neEt 3 months? • /o3 3e 3orD in a nutshell: Ie 3ill briefl" describe ho3 3e 3orDA and 3hat 3e eEpect from you. • *echnical deep8dive: Apart from the pitch 3e also need to get some additional information. !n order to get an idea of 3hat Dind of developers and ho3 man" of them youCll needA we would reall" liDe to kno3& ◦ Ihen would you liDe to start# ◦ /o3 man" developers do you think you need# ◦ Ihat is your test coverage? (optionalM ◦ Ihat is your budget# • (ur rates and available developers • PA • $eEt steps After a conversation "ou 3ill receive a summar"A along 3ith an outline of required documents – t"picall" templates of non8disclosure agreement LNDAM and6or frame agreement. !f, after speaDing 3ith us, "ou liDe our oRer and 3ish to proceed to the neEt stepA we will arrange intervie3s with selected developers. Prepare for development 1ou have a great idea for a soft3are service! Fe million dollar Nuestion is: ho3 3ill people use it and ho3 are you planning to maDe a business out of it# At the beginningA if "ou havenCt done so alread"A "ou 3ill have to gather information on 3ho 3ill use "our soft3are service and ho3 3ill they do it. Fe simplest approach to translating this information into soft3are requirements is to 3rite Suser storiesT. 9ser stories are ver" shortA clear statements of things that Ragnarson sp. z o.o. *argo3a 35 bi45ragnarson.com N!P67A*8E9& P+-:-:-6;<=: <=8=43 Łód@A Poland 333.ragnarson.com KR,& 0===365-;B RE0($& 1==<6=<55 "our users 3ish to use "our soft3are forA and 3h". A t"pical user stor" looDs liDe this: As a [type of user/type of roleV ! want to [do something using this softwareV ,o that I can [accomplish something that is important to meV As a picture is 3orth a thousand 3ords, 3e also encourage "ou to dra3 mocD8 ups and 3ireframes. Fese donCt have to be comprehensive or fanc" – they can be hand8dra3n on pieces of paper and then scanned if need me – but they need to be detailed enough so that 3e can start the 3orDA and at least cover )inimall" 7iable Product L)VPM usage scenarios. Focus on the main functionalit" and 3e 3ill fill in the blanks later on, as we proceed with development. Ie usuall" use Pivotal *racDer for proJect managementA and to Deep tracD of all the user stories that guide the development. !t is ver" important that "ou set aside enough time to lead the development. We 3ill build "our soft3are service, but 3e 3ill need "ou to guide us, provide us 3ith clariKcations and be available 3hen 3e have Nuestions. At the beginningA "ou will need to set aside the better part of a da" or t3o to clarif" what you want to achieve and to get used to the tools. +ater on, each feature 3ill require "our inputA clariKcation and guidance – so as to ensure that our implementation lives up to your vision and eEpectations. !t is essential for both sides to have a common understanding of, and agreement on, that at 'agnarson 3e 3orD on a time and materials L*P)M basis. Ihat this means practicall" speaDingA is that "ou have to pa" for each hour of development. !n our eEperience, this approach is 3hat start8ups need to properl" lead the development of their productA and get it to marDet in as NuicD and cost8effective manner as possible. Ragnarson sp. z o.o. *argo3a 35 bi45ragnarson.com N!P67A*8E9& P+-:-:-6;<=: <=8=43 Łód@A Poland 333.ragnarson.com KR,& 0===365-;B RE0($& 1==<6=<55 Development Fe Krst steps are similar for all proJects. Ie 3ill suggest a number of services that 3ill help us 3ith development. !f "ou 3ould liDe to use other tools, thatWs Kne as long as they are not terribl" outdatedA not 3ell8supported b" their authors, or barel" usable. Ie practice agile soft3are development b" follo3ing ,C'9) rules. Even though 3e provide "ou 3ith a team of self8sufficient professionals it is eEpected that "ou 3ill lead the proJect. Follo3ing each iteration, "ou should gather the team and discuss, at minimumA the t3o most important things: 1. Ihat was done during this sprint# 2. Ihat do you plan to accomplish in the neEt one? FirstA "ou should carefull" revie3 each delivered task in order to maDe sure that it worDs and6or looDs as you anticipated it would. Fe neEt step is to choose the most important tasks from an iceboE Lstories not assigned to an" sprintM and move as man" of them as "our developers are able to do to bacDlog. For each of the task "ouCve selectedA the 3hole team 3ill estimate the relative compleEit" and assign a certain number of points Lthe higher the amount of points, the harder the taskM. 1ou then move the tasks that 3e eEpect are possible to complete in this sprint from the iceboE to the bacDlog. 1ou can think of the bacDlog as the Sto doT list for a given sprint. Fe more sprints 3e do togetherA the more accurate 3e 3ill get at Kguring out ho3 man" points 3orth of 3orD can be tacDled successfull" in the neEt sprint. Fis is called soft3are development velocit" and it is relative to ever" proJectA Ragnarson sp. z o.o. *argo3a 35 bi45ragnarson.com N!P67A*8E9& P+-:-:-6;<=: <=8=43 Łód@A Poland 333.ragnarson.com KR,& 0===365-;B RE0($& 1==<6=<55 and to ever" soft3are development teamA 3hich is 3h" it taDes a fe3 sprints to get a good sense of what we can accomplish within a week. During the 3eekA 3hen developers start to 3orD on particular tasks, there is inevitably something unclearA reNuiring a more detailed descriptionA or something for 3hich 3e require a 3ider perspective from "ou in order to implement it properl". Fis is a completel" normal part of the soft3are development process. !n order to ensure that 3e can sta" on schedule 3ith each sprintA maDe sure that "ou reserve some time throughout the 3eek to Keld
Recommended publications
  • Alexander, Kleymenov
    Alexander, Kleymenov Key Skills ▪ Ruby ▪ JavaScript ▪ C/C++ ▪ SQL ▪ PL/SQL ▪ XML ▪ UML ▪ Ruby on Rails ▪ EventMachine ▪ Sinatra ▪ JQuery ▪ ExtJS ▪ Databases: Oracle (9i,10g), MySQL, PostgreSQL, MS SQL ▪ noSQL: CouchDB, MongoDB ▪ Messaging: RabbitMQ ▪ Platforms: Linux, Solaris, MacOS X, Windows ▪ Testing: RSpec ▪ TDD, BDD ▪ SOA, OLAP, Data Mining ▪ Agile, Scrum Experience May 2017 – June 2018 Digitalkasten Internet GmbH (Germany, Berlin) Lead Developer B2B & B2C SaaS: Development from the scratch. Ruby, Ruby on Rails, Golang, Elasticsearch, Ruby, Ruby on Rails, Golang, Elasticsearch, Postgresql, Javascript, AngularJS 2 / Angular 5, Ionic 2 & 3, Apache Cordova, RabbitMQ, OpenStack January 2017 – April 2017 (project work) Stellenticket Gmbh (Germany, Berlin) Lead developer Application prototype development with Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql. September 2016 – December 2016 Part-time work & studying German in Goethe-Institut e.V. (Germany, Berlin) Freelancer & Student Full-stack developer and German A1. May 2016 – September 2016 Tridion Assets Management Gmbh (Germany, Berlin) Team Lead Development team managing. Develop and implement architecture of application HRLab (application for HRs). Software development trainings for team. Planning of software development and life cycle. Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql, PL/pgSQL, Golang, Redis, Salesforce API November 2015 – May 2016 (Germany, Berlin) Ecratum Gmbh Ruby, Ruby on Rails developer ERP/CRM - Application development with: Ruby 2, RoR4, PostgreSQL, Redis/Elastic, EventMachine, MessageBus, Puma, AWS/EC2, etc. April 2014 — November 2015 (Russia, Moscow - Australia, Melbourne - Munich, Germany - Berlin, Germany) Freelance/DHARMA Dev. Ruby, Ruby on Rails developer notarikon.net Application development with: Ruby 2, RoR 4, PostgreSQL, MongoDB, Javascript (CoffeeScript), AJAX, jQuery, Websockets, Redis + own project: http://featmeat.com – complex service for health control: trainings tracking and data providing to medical adviser.
    [Show full text]
  • Contributed to Open Source in Ruby Community by Building Lazyload-Image-Rails Gem and Contribution to Rails
    Name: Sunkuru Abhishek Mobile: +91-9840515108 Email: [email protected] Git: https://github.com/abhisheksunkuru Skype: abhisheksunkuru Professional Summary Having Around 6 years of experience in building Web Applications Using RubyonRails. Experienced in technologies like Facebook Open graph. Good at relational databases MySql, PostgreSQL. Active team player, mentor and a self-starter, capable of working independently. Exposure to Software Development Life Cycle. Experienced in javascript libraries like Jquery,React Js. Experienced in Amazon services like Aws-s3,Cloudfront. Experienced in building REST API Experienced in Heroku and Capistrano deployment process. Knowledge in programming languages like Ruby,java. Contributed to open source in ruby community by building lazyload-image-rails gem and contribution to Rails. Utilized the Git and Svn Repository for our project to maintain the code versioning. Professional Experience Working as Senior Software Engineer in Tranway technologies from may 2018 to till date. Working as Senior Software Engineer in Nuware Systems LLP from Oct 2016 to Dec 2017. Working as Senior Software Engineer in Sedin Technologies Pvt Ltd from Dec 2013 to Oct 2016. Working as Software Engineer in Maisa Solutions Pvt Ltd,Hyderabad from June 2013 to November 2013. Worked as Software Engineer in Rising Sun Technologies Pvt Ltd., Jaipur from May 2012 to May 2013. Educational Qualifications B.Tech (IT) from Jawaharlal Nehru Technological University with 63.7%. Intermediate (M.P.C) from Sri Chaitanya Junior college with 90.1 %. S.S.C from Zilla Parishad High School with 85.3 %. Technical Skills Languages : Ruby. Web Technologies : HTML, XML, CSS , JAVASCRIPT, Jquery, Haml, ReactJs. Application Server : Thin, Webrick,puma.
    [Show full text]
  • Questions for Mongrel
    www.YoYoBrain.com - Accelerators for Memory and Learning Questions for Mongrel Category: Introduction - (16 questions) Mongrel is described in what way in the "A web application container for Ruby on Mongrel pdf available from O Reilly Rails" Mongrel is compared with what web servers production performance: Fast CGI or SCGI in the Rails world in terms of production performance and development Development: WEBrick simplicity/speed Creator of Mongrel Zed A Shawwww.zedshaw.com Mongrel is developed on what mixture of Ruby and C programming/scripting languages Documentation for Mongrel mongrel.rubyforge.org/docs/index.html The creators of Mongrel describe it how? a fast HTTP library and server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI. It is framework agnostic Three key technologies that are used for A custom HTTP 1.1 parser (based on RFC Mongrel's internals standard, written using Ragel in C and Java as a Rby extension) Simple server that uses the parser and URIClassifier to process requests, find the right handlers, then pass the results to the handler for processing Handlers are responsible for using HttpRequet and HttpResponse objects to "do their thing and then return results" Component of Mongrel responsible for Handlers dealing with HttpRequest and HttpResponse How does Mongrel support threading one thread per request, but it will start closing connections when it gets "overloaded"while Mongrel is processing HTTP requests and sending responses it uses Ruby's threading system What platforms that already work with Camping and Og+Nitro Mongrel are throught to be "thread-safe" Have not been heavily tested Is Ruby on Rails thread safe? no How does Mongrel handle Rails" " Ruby on Rails is not thread safe so there is a synchronized block around the calls to Dispatcher.dispatch.
    [Show full text]
  • Test Kitchen, Inspec Docker - Fastest Way to Run Stuff (Virtual Virtual Machines) DOCKER
    TEST DRIVEN INFRASTRUCTURE COMPLIANCE AS CODE by Joaquín Menchaca À PROPOS DE MOI ABOUT ME ROCKET LAWYER SENIOR DEVOPS BUILD/RELEASE ENGINEER aka Linux Ninja Pants Automation Engineering Mutant actual photo https://slides.com/devopsstu dio/lisa18_tdi AGENDA 1. Setup 2. Context 3. Chef + InSpec 4. Ansible + InSpec 5. Bonus SETUP THE CODE https://github.com/darkn3rd/lisa18_t est_driven_infra CODE git clone \ https://github.com/darkn3rd/lisa18_test_driven_infra cd lisa18_test_driven_infra # Using Virtual Workstation vagrant up vagrant ssh cd lisa18_test_driven_infra # Using Host (MacOS X or Linux) #### Install Requirements # Using Host (Windows) #### Install Rrequiremnts #### Warning: Might not work, had success w/ Chef THE HOST SETUP must be able to run Docker or Vagrant MINIMUM REQUIRED ChefDK - bundles ruby, test kitchen, inspec Docker - fastest way to run stuff (virtual virtual machines) DOCKER Easiest Path is Docker Desktop DOCKER PACKAGE MANAGERS choco install docker-for-windows https://chocolatey.org/ brew cask install docker https://brew.sh/ DIRECT DOWNLOAD https://www.docker.com/products/docker-desktop DOCKER Debian Package on Ubuntu sudo apt-get update -qq sudo apt-get install -y apt-transport-https \ curl ca-certificates software-properties-common DOCKER_REPO="https://download.docker.com/linux/ubuntu" curl -fsSL ${DOCKER_REPO}/gpg | \ sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] ${DOCKER_REPO} \ $(lsb_release -cs) \ stable" sudo apt-get update -qq sudo apt-get install -y docker-ce sudo usermod -aG docker $USER
    [Show full text]
  • Summer Camps
    SUMMER | 2014 RECREATION CAMPS ADULT CLASSES SENIOR SERVICES CITY RECREATION PROGRAMS & SERVICES Special Events Table of Contents Featured Events 2 Lafayette’s Annual Restaurant Walk Summer Camp Calendar 3 Tour Lafayette’s finest dining establishments and sample the Summer Camps 4-19 signature cuisine of each restaurant Preschool/Youth Classes 20-23 Tuesday, May 20, 2014 • 5:30–9:00pm Adult Classes 24-29 Wine Reception • Restaurant Tastings • Coffee and Dessert Musical entertainment at selected locations Adults 55+ Classes 30-33 Raffle Prizes • Auctions General Information 34 $45 per person Registration Form 35 www.lafayettechamber.org Summer Shows Back Cover Benefits Lafayette Community Foundation and the programs and services of the Lafayette Chamber of Commerce Lafayette Fall Ball 2014 Big League Fundamentals for Little League Players—All the Training, without the Travel! June 6, 13, 20 & 27 5/6 Yrs 7/8 Yrs 9/10 Yrs 3:30 to 4:30 4:30 to 5:30 5:30 to 6:30 Music Begins at 6:30pm Rock SESSION/DAYS DATES I: Mon/Wed 9/8 to 10/1 Visit www.LafayetteChamber.org II: Mon/Wed 10/6 to 10/29 The Plaza for full details 11/12 Yrs 3:30 to 5:30 SESSION/DAYS DATES Fridays in the Lafayette Plaza I: Thurs 9/11 to 10/2 II: Thurs 10/9 to 10/30 FEE MIN/MAX LOCATION $203 15/25 Buckeye Fields Lafayette Boys Basketball or Girls Volleyball Boy’s Basketball for Boys entering Grades 1–8 this fall & Girl’s Volleyball for Girls entering Grades 4–8 this fall New This Year: 1.
    [Show full text]
  • UNIVERSITY of CALIFORNIA, SAN DIEGO Toward Understanding And
    UNIVERSITY OF CALIFORNIA, SAN DIEGO Toward Understanding and Dealing with Failures in Cloud-Scale Systems A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science by Peng Huang Committee in charge: Professor Yuanyuan Zhou, Chair Professor Tara Javidi Professor Ranjit Jhala Professor George Porter Professor Stefan Savage 2016 Copyright Peng Huang, 2016 All rights reserved. The Dissertation of Peng Huang is approved and is acceptable in quality and form for publication on microfilm and electronically: Chair University of California, San Diego 2016 iii DEDICATION To my parents, brother and fiancée for their unconditional love and support. iv EPIGRAPH Quis custodiet ipsos custodes? (But who can watch the watchmen?) Juvenal Anything that can go wrong, will go wrong. Murphy’s law Those who fail to learn from the mistakes are doomed to repeat them. George Santayana In the middle of the night, [...] He would awaken and find himeself wondering if one of the machines had stopped working for some new, unknown reason. Or he would wake up thinking about the latest failure, the one whose cause they’d been looking for a whole week and sitll hadn’t found. The bogeyman—la machine—was there in his bedroom. Tracy Kidder, The Soul of a New Machine v TABLE OF CONTENTS SignaturePage...................................... .................. iii Dedication ......................................... .................. iv Epigraph........................................... .................. v TableofContents
    [Show full text]
  • The Apple Ecosystem
    APPENDIX A The Apple Ecosystem There are a lot of applications used to manage Apple devices in one way or another. Additionally, here’s a list of tools, sorted alphabetically per category in order to remain vendor agnostic. Antivirus Solutions for scanning Macs for viruses and other malware. • AVG: Basic antivirus and spyware detection and remediation. • Avast: Centralized antivirus with a cloud console for tracking incidents and device status. • Avira: Antivirus and a browser extension. Avira Connect allows you to view device status online. • BitDefender: Antivirus and malware managed from a central console. • CarbonBlack: Antivirus and Application Control. • Cylance: Ransomware, advanced threats, fileless malware, and malicious documents in addition to standard antivirus. • Kaspersky: Antivirus with a centralized cloud dashboard to track device status. © Charles Edge and Rich Trouton 2020 707 C. Edge and R. Trouton, Apple Device Management, https://doi.org/10.1007/978-1-4842-5388-5 APPENDIX A THe AppLe ECOSYSteM • Malware Bytes: Antivirus and malware managed from a central console. • McAfee Endpoint Security: Antivirus and advanced threat management with a centralized server to track devices. • Sophos: Antivirus and malware managed from a central console. • Symantec Mobile Device Management: Antivirus and malware managed from a central console. • Trend Micro Endpoint Security: Application whitelisting, antivirus, and ransomware protection in a centralized console. • Wandera: Malicious hot-spot monitoring, jailbreak detection, web gateway for mobile threat detection that integrates with common MDM solutions. Automation Tools Scripty tools used to automate management on the Mac • AutoCasperNBI: Automates the creation of NetBoot Images (read: NBI’s) for use with Casper Imaging. • AutoDMG: Takes a macOS installer (10.10 or newer) and builds a system image suitable for deployment with Imagr, DeployStudio, LANrev, Jamf Pro, and other asr or Apple Systems Restore-based imaging tools.
    [Show full text]
  • Why Devops Stops
    1 What is Krista? Intelligent Automation Deployment is Simple Krista is a modern conversational Intelligent Krista's Natural Language Processing supports Automation platform designed to easily leverage voice, text, and *bots to deliver automation anyone existing IT assets. Krista's unique informal understands. By utilizing existing communication approach enables business process owners to methods in conversations, you take advantage of quickly build new lookup or data entry workflows how your employees already communicate. Krista without waiting in line for expensive IT or quickly deploys to existing desktops, mobile development resources. Krista uses a unique phones, Slack, and web browsers that your programming method similar to a text conversation employees are already using. You won't need to between one or more people. By following the way train employees or maintain brittle documentation humans already communicate, Krista enables since the automation follows existing voice and anyone to build and create workflows around texting conversations similar to WhatsApp or business process constraints. The conversational Facebook Messenger. If your employees can text, workflows eliminate maintenance and upkeep they can interact with numerous systems to required from traditional record and playback support customers, consume enterprise services, automation tools. Krista's conversations are deploy IT changes, or update important KPIs. beautifully simple, with enough power, scale, and security to find any answer inside the largest enterprises. DevOps – It’s improving. DevOps Evolution Model Stage 1 Stage 2 Stage 3 Stage 4 Stage 5 Automated infrastructure Normalization Standardization Expansion Self-service delivery Many DevOps initiatives and cultures slow or stop at Stage 3 and fail to scale since organizational structures (aka people) become constraints in the Neutral Zone.
    [Show full text]
  • Idiomatic and Reproducible Software Builds Using Containers for Reliable Computing
    Master’s Thesis Idiomatic and Reproducible Software Builds using Containers for Reliable Computing Jonas Weber April 18, 2016 arXiv:1702.02999v1 [cs.SE] 9 Feb 2017 Albert-Ludwigs-Universität Freiburg Faculty of Engineering Department of Computer Science Bioinformatics Eingereichte Masterarbeit gemäß den Bestimmungen der Prüfungsordnung der Albert-Ludwidgs-Universität Freiburg für den Studiengang Master of Science (M.Sc.) Informatik vom 19. August 2005. Bearbeitungszeitraum 12. Januar 2016 - 12. Juli 2016 Gutachter Prof. Dr. Rolf Backofen Head of the Group Chair for Bioinformatics Zweitgutachter Prof. Dr. Christoph Scholl Director Chair of Operating Systems Betreuer Dr. Björn Grüning Abstract Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high degree of reproducibility which can be accomplished using uniquely identified images as units of computation. It will be shown in this thesis that the most widely used approaches to create an image from pre-existing software or from source code lack the ability to provide idiomaticity in their use of the technology as well as proper reproducibility safe-guards. In the first part, existing approaches are formalized and discussed and a new approach is introduced. The approaches are then evaluated using a suite of three different examples. This thesis provides a framework for formalizing operations involving a layered file system, containers and images, and a novel approach to the creation of images using utility containers and layer donning fulfilling the idiomaticity and reproducibility criteria.
    [Show full text]
  • VPS Vs Heroku for Small Team
    VPS vs Heroku for small team Piotr Macuk <[email protected]> Deployment history ● csv / subversion ● tgz files with timestamp ● zip / scp / unzip ● diff / scp / patch Technology history ● 2005 Git + Rails 1.0 ● 2007 Rails 2.0 / Ruby 1.9 / Capistrano / Heroku ● 2008 GitHub / Bitbucket ● 2010 Rails 3.0 ● 2013 Rails 4.0 / Ruby 2.0 / Slack ● 2016 Rails 5.0 My perception ● 1997-2013 Linux on my desktop computer ● 2000-∞ Linux on servers at work ● 2000 First apps deployment (zip / diff) ● 2005 First Rails app deployment (zip / diff) ● 2007 First Capistrano deployment (real production apps) ● 2012 Konfeo is live on VPS server ● 2012 First Heroku deployment (pet projects) ● 2015 Heroku deployment (real production apps) ● 2019 Wetea is live on Heroku VPS deployment ● Create server ● Setup and secure Nginx ● Update & upgrade packages ● Setup and secure Passenger ● Set locales, timezone, other env settings ● Install packages required by Ruby ● Install additional tools ● Setup and secure SMTP ● Create and setup deployment account ● Create database and database user ● Setup and secure SSH ● Install Ruby in selected version ● Setup firewall ● Setup Capistrano ● Setup logrotate ● Setup SSL in Nginx ● Setup and secure PostgreSQL server ● Setup server backup and monitoring VPS tech concerns ● Regular packages and kernel updates ● Regular logs and database analysis ● Regular Ruby, RVM and GEM updates ● Regular SSL health monitoring ● Regular monitoring (live / security / restarts) VPS business concerns ● Site reliability engineering (SRE) (procedures) ● Business
    [Show full text]
  • Sometimes Tools Matter
    Sometimes Tools Matter John E. Vincent DevOpsDays Goteborg 2011 We all know about DevOps We all know about DevOps I R DEV! I R OPS! So what's the big deal? “With XXXXX you are be able to do easily common task on your local or remote machine. The aim of XXXXX is to become the unique and universal tool language that permit you to make your own brew, apt-get or yum package, same syntax for all your machine.” Not Puppet Not Chef Not Capistrano “With XXXXX you are be able to do easily common task on your local or remote machine. The aim of XXXXX is to become the unique and universal tool language that permit you to make your own brew, apt-get or yum package, same syntax for all your machine.” Not Fabric Not DeployML Not CFengine YANFT (yet another f*ing tool) We're doing something wrong. Something is missing. I'll be over here with Capistrano, kthx You just need to write a Chef recipe and …. You can't solve cultural issues with tools You can't solve cultural issues with tools or can you? Some Issues ● Repository mismatch ● Different languages ● Volatile configuration ● Visibility ● Sensitive information ● Testability ● Packaging Caveats and Comments ● No single tool is going to solve all your problems – sorry. ● You may have already heard of some of these tools. ● You will likely have to “mold” some of these tools to fit your environment ● The tool itself is not the point, it is the end result ● I don't have all the answers..
    [Show full text]
  • CV Senior Software Developer
    Growth Powering Solutions ALEXANDER SENIOR / LEAD DEVELOPER SUMMARY Experienced software engineer with 10+ years in Ruby development. 15+ years overall experience in software development, including project management and team leading. Strong communication and leadership skills. Great problem-solving skills, a flexible thinker. Deep understanding of software development principles, OOP. Hands-on experience in all stages of software development using open source and commercial tools and frameworks. Participation in all project lifecycle phases. CORE TECHNOLOGIES STACK Languages: Ruby, C, C++, PHP, Java, Elixir, Haskell. Server side frameworks: Ruby on Rails, Laravel, Symfony, phoenix. Databases: ySQL, PostgreSQL, Redis, MongoDB. Testing: rspec, minitest, cucumber. Servers: nginx, puma, apache. Deployment: docker, capistrano, bash scripts, chef. Operation Systems: Linux (Ubuntu/Debian), MacOS, Windows. Software methodologies: Design patterns, TDD/BDD, Agile, Scrum, Code refactoring. Continuous Integration: CircleCI, jenkins, travisCI. Alexander is interested in studying new technologies and has significant xperiencee with functional programming languages: Haskell (linux desktop manager (xmonad)), Elixir (web-service to manage instant notifications). Growth Powering Solutions LANGUAGE English level: B2 (Upper-Intermediate). EDUCATION Name of Institution: Belarusian State University of Informatics and Radioelectronics Qualification: Software Engineer Trainings: The University of New Mexico, Web Application Architectures PROFESSIONAL EXPERIENCE Essential projects: Project Platform for Swiss Travel Holding Period: 07/2020– now Project role: Lead Software Developer/Technical Consultant Description: A complex large-scale project for a group of travel companies based in Switzerland. The project involves continuous development of an end-to- end solution to manage the business of the whole group. The solution covers CMS integration, back-office and front-end for management and search&book of accommodation, flights, cruises and other products.
    [Show full text]