Deploy Ruby on Rails on Ubuntu 14.04 Trusty Tahr - Gorails

Total Page:16

File Type:pdf, Size:1020Kb

Deploy Ruby on Rails on Ubuntu 14.04 Trusty Tahr - Gorails 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr A guide to setting up a Ruby on Rails production environment Ubuntu 14.04 (/deploy/ubuntu/14.04) Ubuntu 12.04 (/deploy/ubuntu/12.04) Overview This will take about 45 minutes. We will be setting up a Ruby on Rails production environment on Ubuntu 14.04 LTS Trusty Tahr. Since we setup Ubuntu for our development environment, we also want to use it in production. This keeps your application running consistently between development and production. We're using an LTS version of Ubuntu in production because it is supported for several years where a normal version of Ubuntu isn't. Using Ubuntu LTS in production allows you to continue receiving security updates which is important for your production server(s). We're going to be setting up a Droplet on Digital Ocean (https://www.digitalocean.com/?refcode=87fcb9dab7a3) for our server. It costs $5/mo and is a great place to host your applications. Creating A Virtual Private Server You can use any cloud server hosting company you choose for your Rails application. I've had excellent experience with Digital Ocean (https://www.digitalocean.com/? refcode=87fcb9dab7a3) and Linode (https://www.linode.com/? r=a02b271802c33ff2f38b3d5335089d76648ca6c2) with the servers I have used. If you're looking for alternatives outside the US or otherwise, just google "VPS hosting". A VPS is a virtual private server. It's just like a server you setup at home, only virtualize and running with a suite of other servers in a datacenter. https://gorails.com/deploy/ubuntu/14.04 1/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails Since we're using Digital Ocean (https://www.digitalocean.com/? refcode=87fcb9dab7a3) for our cloud server, the first thing we're going to do is configure a new one. I'm going with the Droplet with 1GB of RAM. You can setup whichever size server you prefer, keep in mind that if you choose a 512MB server you may run into some slowness with a low amount of RAM. (http://cl.ly/RGNu/Screen%20Shot%202013-09-08%20at%206.00.59%20PM.png) The next step is to choose your location. Choose one close to you so that you can have better connection speeds. (http://cl.ly/RFcK/Screen%20Shot%202013-09-08%20at%206.02.14%20PM.png) Last, but not least we need to choose which OS to use. We're going to be using Ubuntu 14.04 LTS x64. Your application may require a different OS or version, but if you're not sure this is generally what you should use. https://gorails.com/deploy/ubuntu/14.04 2/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails (http://cl.ly/VRNn/Screen%20Shot%202014-05-08%20at%205.54.39%20PM.png) Once Digital Ocean has configured your server, check your email to get your password for the new cloud server. (http://cl.ly/RGaf/Screen%20Shot%202013-09-08%20at%206.43.18%20PM.png) You should follow the instructions in the email to login via SSH for the very first time and verify it is working. The first thing we will do on our new server is create the user account we'll be using to run our applications and work from there. sudo adduser deploy sudo adduser deploy sudo su deploy https://gorails.com/deploy/ubuntu/14.04 3/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails Before we move forward is that we're going to setup SSH to authenticate via keys instead of having to use a password to login. It's more secure and will save you time in the long run. We're going to use ssh-copy-id to do this. If you're on OSX you may need to run brew install ssh-copy-id but if you're following this tutorial on Linux desktop, you should already have it. Once you've got ssh-copy-id installed, run the following and replace IPADDRESS with the one for your server: Make sure you run ssh-copy-id on your computer, and NOT the server. ssh-copy-id deploy@IPADDRESS Now when you run ssh deploy@IPADDRESS you will be logged in automatically. Go ahead and SSH again and verify that it doesn't ask for your password before moving onto the next step. For the rest of this tutorial, make sure you are logged in as the deploy user on the server! Installing Ruby Choose the version of Ruby you want to install: 2.1.2 (Recommended) The first step is to install some dependencies for Ruby. sudo apt-get update sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadl ine-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-open ssl-dev python-software-properties Next we're going to be installing Ruby using one of three methods. Each have their own benefits, most people prefer using rbenv these days, but if you're familiar with rvm you can follow those steps as well. I've included instructions for installing from source as well, but in general, you'll want to choose either rbenv or rvm. Choose one method. Some of these conflict with each other, so choose the one that https://gorails.com/deploy/ubuntu/14.04 4/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails sounds the most interesting to you, or go with my suggestion, rbenv. Using rbenv Using rvm From source Installing with rbenv is a simple two step process. First you install rbenv , and then ruby-build : cd git clone git://github.com/sstephenson/rbenv.git .rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL rbenv install 2.1.2 rbenv global 2.1.2 ruby -v The last step is to tell Rubygems not to install the documentation for each package locally echo "gem: --no-ri --no-rdoc" > ~/.gemrc Installing Nginx Phusion is the company that develops Passenger and they recently put out an official Ubuntu package that ships with Nginx and Passenger pre-installed. We'll be using that to setup our production server because it's very easy to setup. https://gorails.com/deploy/ubuntu/14.04 5/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails # Install Phusion's PGP key to verify packages gpg --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7 gpg --armor --export 561F9B9CAC40B2F7 | sudo apt-key add - # Add HTTPS support to APT sudo apt-get install apt-transport-https # Add the passenger repository sudo sh -c "echo 'deb https://oss-binaries.phusionpassenger.com/apt/passenger tru sty main' >> /etc/apt/sources.list.d/passenger.list" sudo chown root: /etc/apt/sources.list.d/passenger.list sudo chmod 600 /etc/apt/sources.list.d/passenger.list sudo apt-get update # Install nginx and passenger sudo apt-get install nginx-full passenger So now we have Nginx and passenger installed. We can manage the Nginx webserver by using the service command: sudo service nginx start Open up the server's IP address in your browser to make sure that nginx is up and running. The service command also provides some other methods such as restart and stop that allow you to easily restart and stop your webserver. Next, we need to update the Nginx configuration to point Passenger to the version of Ruby that we're using. You'll want to open up /etc/nginx/nginx.conf in your favorite editor, find the following lines, and uncomment them: ## # Phusion Passenger ## # Uncomment it if you installed ruby-passenger or ruby-passenger-enterprise ## passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /usr/bin/ruby; # passenger_ruby /home/deploy/.rvm/wrappers/ruby-2.1.2/ruby; # If use use rvm, be sure to change the version number # passenger_ruby /home/deploy/.rbenv/shims/ruby; # If you use rbenv The passenger_ruby is the important line here. We want this to match the output of which ruby in terminal. This is probably correct already if you installed Ruby from source. If you used rbenv, it would look something like this /home/deploy/.rbenv/shims/ruby . https://gorails.com/deploy/ubuntu/14.04 6/25 7/12/2014 Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails Once you've changed passenger_ruby to use the right version Ruby, you can run sudo service nginx restart to restart Nginx with the new Passenger configuration. Now that we've restarted Nginx, the Rails application will be served up using the deploy user just how we want. In the Capistrano section we will talk about configuring Nginx to serve up your Rails application. MySQL and PostgreSQL Database Setup Setting up your production database is pretty easy. Make sure to keep in mind that you should use a different password for your production databases. Depending on what database you want to use, follow the steps related to the database: Installing MySQL All you need to do in order to install MySQL is to run the following command: sudo apt-get install mysql-server mysql-client libmysqlclient-dev You can use the root user and password set during installation for your database or you can add a new user (https://www.digitalocean.com/community/articles/how-to- create-a-new-user-and-grant-permissions-in-mysql) to MySQL.
Recommended publications
  • Interfacing Apache HTTP Server 2.4 with External Applications
    Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick November 6, 2012 Who am I? Interfacing Apache HTTP Server 2.4 with External Applications Met Unix (in the form of Xenix) in 1985 Jeff Trawick Joined IBM in 1990 to work on network software for mainframes Moved to a different organization in 2000 to work on Apache httpd Later spent about 4 years at Sun/Oracle Got tired of being tired of being an employee of too-huge corporation so formed my own too-small company Currently working part-time, coding on other projects, and taking classes Overview Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Huge problem space, so simplify Perspective: \General purpose" web servers, not minimal application containers which implement HTTP \Applications:" Code that runs dynamically on the server during request processing to process input and generate output Possible web server interactions Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Native code plugin modules (uhh, assuming server is native code) Non-native code + language interpreter inside server (Lua, Perl, etc.) Arbitrary processes on the other side of a standard wire protocol like HTTP (proxy), CGI, FastCGI, etc. (Java and \all of the above") or private protocol Some hybrid such as mod fcgid mod fcgid as example hybrid Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Supports applications which implement a standard wire protocol, no restriction on implementation mechanism Has extensive support for managing the application[+interpreter] processes so that the management of the application processes is well-integrated with the web server Contrast with mod proxy fcgi (pure FastCGI, no process management) or mod php (no processes/threads other than those of web server).
    [Show full text]
  • Integrating Openshift Enterprise with Identity Management (Idm) in Red Hat Enterprise Linux
    Integrating OpenShift Enterprise with Identity Management (IdM) in Red Hat Enterprise Linux OpenShift Enterprise 2.2 IdM in Red Hat Enterprise Linux 7 Windows Server 2012 - Active Directory Integration Mark Heslin Principal Systems Engineer Version 1.1 January 2015 1801 Varsity Drive™ Raleigh NC 27606-2072 USA Phone: +1 919 754 3700 Phone: 888 733 4281 Fax: +1 919 754 3701 PO Box 13588 Research Triangle Park NC 27709 USA Linux is a registered trademark of Linus Torvalds. Red Hat, Red Hat Enterprise Linux and the Red Hat "Shadowman" logo are registered trademarks of Red Hat, Inc. in the United States and other countries. Microsoft and Windows are U.S. registered trademarks of Microsoft Corporation. UNIX is a registered trademark of The Open Group. Intel, the Intel logo and Xeon are registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. All other trademarks referenced herein are the property of their respective owners. © 2014 by Red Hat, Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, V1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The information contained herein is subject to change without notice. Red Hat, Inc. shall not be liable for technical or editorial errors or omissions contained herein. Distribution of modified versions of this document is prohibited without the explicit permission of Red Hat Inc. Distribution of this work or derivative of this work in any standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from Red Hat Inc.
    [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]
  • Insight: Semantic Provenance and Analysis Platform for Multi-Center Neurology Healthcare Research
    INSIGHT: SEMANTIC PROVENANCE AND ANALYSIS PLATFORM FOR MULTI-CENTER NEUROLOGY HEALTHCARE RESEARCH by PRIYA RAMESH Submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Department of Electrical Engineering and Computer Science CASE WESTERN RESERVE UNIVERSITY January, 2016 ii CASE WESTERN RESERVE UNIVERSITY SCHOOL OF GRADUATE STUDIES We hereby approve the thesis of PRIYA RAMESH candidate for the Master of Science degree*. (signed) Dr. Satya S. Sahoo, Ph.D. (Chair of the committee) Dr. Kenneth A. Loparo, Ph.D. Dr. Martha Sajatovic, MD. (date) November 5th, 2015 *We also certify that written approval has been obtained for any proprietary material contained therein. iii Copyright © Priya Ramesh January, 2016 All rights reserved. iv TABLE OF CONTENTS TABLE OF CONTENTS iv LIST OF FIGURES vi LIST OF TABLES vii ACKNOWLEDGEMENT viii CHAPTER 1. INTRODUCTION 10 CHAPTER 2. BACKGROUND 13 2.1 Managing Epilepsy Well Network 13 2.1.1 Introduction 13 2.1.2 MEW database workgroup 16 2.1.3 MEW Network survey results 17 2.1.4 A common terminology for epilepsy self-management 19 2.1.5 Standardization of data elements 20 2.1.6 Data curation workflow for MEW Network datasets 21 2.1.7 MEW Network database design and functionality 26 2.2 Research Studies 27 CHAPTER 3. METHODS 30 3.1. Semantic Integration Module using MEW Common Data Elements (CDEs) 33 3.2. Data Exploration and Query Module 34 3.3. Ontology-based Inference Module 36 CHAPTER 4. INSIGHT SOFTWARE DEVELOPMENT 38 4.1 Objective 38 4.2 Agile Methodology 39 4.3 User Interface Development 41 CHAPTER 5.
    [Show full text]
  • Vasili Korol
    Vasili Korol Senior Software Developer Odense, Denmark Age: 35 mob.: +45 20 68 50 23 Married, have son (born 2010) e-mail: [email protected] ​ Personal Statement ⚬ Strong IT skills (16+ years of versatile experience) ⚬ Background in physics research ⚬ Work effectively both as team member and leader ⚬ Enthusiastic and committed ⚬ Spoken languages: Russian (native), English (fluent), Danish (Prøve i Dansk 3 / level B2) ​ ​ ​ ​ Education 2006–2008: Master’s degree (with distinction) in applied physics. ​ 2002–2006: Bachelor’s degree (with distinction) in applied physics. Under- to postgraduate student at St. Petersburg State Polytechnical University, Faculty of Physics and Technology, Dept. of Cosmic Physics. The thesis “Search for possible space-time variations of the fine-structure constant and isotopic shifts” (a supervisor Prof. ​ M.G. Kozlov). ​ 1992-2002: School education in St. Petersburg, Russia and Belfast, UK (in 1993). Professional Career 2015 – Feb 2021: Software developer in the QuantBio research group at the University of ​ ​ ​ ​ Southern Denmark (SDU), Institute of Physics, Chemistry and Pharmacy (HPC section). I am the principal developer of VIKING, a service providing a web interface for configuring ​ ​ ​ and running scientific computational tasks on supercomputers. I designed the software architecture, developed the system core and coordinated the work of several developers. 2014 – 2015: Lead programmer (Perl) at Internet Projects LLC, russian informational portals subscribe.ru and sendsay.ru (St. Petersburg, Russia). ​ ​ ​ Worked with a team of developers on projects targeted at developing an API for news aggregation and content processing services. This involved integration with various online platforms (Facebook, Twitter, Vkontakte, LiveJournal, Google Analytics), web scraping and designing instruments for user publications at the portals and beyond.
    [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]
  • 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?.................................................................................................................................
    [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]
  • Leihs, the Leading Free Equipment Booking System It Took Us Eight
    leihs, the leading free equipment booking system It took us eight years to get it right. What we learned about being a FOSS project. Ramón Cahenzli [email protected] OpenVZLinux Containers leihs Multilingual recursive acronym leihs is an easy inventory handling system leihs ist ein einfaches inventarhandhabungssystem leihs permet d'emprunter votre inventaire habilement et systématiquement leihs är ett enkelt inventarhanteringssystem leihs – ei inventaarioita helpommaksi saa Ausleihsystem What does leihs do? Lending Main building managers Film student Theater department Fine arts student Film department Lending Main building managers Film student max. quantity = 1 Theater department Fine arts student Film department Lending Main building managers Film student max. quantity = 2 Theater department Fine arts student Film department Why? Some mistakes Mistake № 1 To have non-English code What might the “show” method be called? http://localhost:3000/gegenstands/list Mistake № 2 To be on the bleeding edge 2004 Rails logo © David Heinemeier Hansson leihs 2004 2005 Rails logo © David Heinemeier Hansson leihs 2004 2005 Photo credit: (CC) By-NC Alex Proimos https://www.flickr.com/photos/proimos/ Rails logo © David Heinemeier Hansson Very scientific chart 100 80 60 Writing new features Catching up to your 40 platform 20 0 New platform Established platform 2000 2003 2005 2007 2010 2013 2014 ... 1.4.0 1.3.0 1.1.1 RubyGems 0.8.3-0.9.4 1.0.0 1.3.6 1.8.24 2.4.5 Rails 0.x 1.0 1.2 2.0-2.3 3.0-3.2 4.0 4.1 4.2 2.2 2.1 2.0 Ruby 1.6 1.8 1.9 2000 2003 2005 2007 2010 2013 2014 ..
    [Show full text]