Showing posts with label vagrant. Show all posts
Showing posts with label vagrant. Show all posts

Tuesday, June 6, 2017

Coming Back from Disappointment: A New Chapter


Review: Putting it all in context

After 700 pomodoros of studying, coding, blogging, and job-seeking spanning five months, I am still without my first job as a junior developer.  The hardest part of it all is maintaining an optimistic outlook after repeatedly being turned down, especially after the excitement of performing so well in numerous interviews.

But that won't stop me.  There are identifiable reasons for my failure, and the good news is that all the things cited are eminently improvable and correctable:

  1. Quite simply, the quality of my code, into which I have poured so much effort, is still not good enough in the estimation of the interviewers.  This is good news, for I can learn from their feedback and code to a higher standard.
  2. After one poor performance in a pair programming interview, I handled myself well in very similar conditions three days later.  I know where I went wrong in the first one; I know what I did right in the second.  I can build on this.
  3. I need to familiarise myself with the core competencies, frameworks, and tools of front-end development.  My plan was always to give myself a solid foundation of programming in Ruby and a basic sense of DevOps with Vagrant and Docker, and although there is room for improvement in that regard, the task of getting really good at HTML, CSS, Rails, Heroku, etc is now a lot easier.
Add to that, I have gained a lot of contacts, spent plenty of time at meetups, made good impressions on many people, and have a highly sophisticated approach to learning and time-management.

So all things considered, I am many miles further down the road than when I set out on this journey at the beginning of the year.

Where to from here?

Rails

I think I'll muscle through Michael Hartl's Rails tutorials.  Although there are many good ones, this one is updated to Rails 5 and seems to do a fair job of sticking to the core knowledge.  The Odin Project looks good as well, but there's no point in jumping around from course to course.

HTML/CSS

Many experienced developers tell me that most juniors today are pretty weak on HTML and CSS, having jumped straight to boilerplates, JavaScript, and plugins.
As with other endeavours, I believe wholeheartedly in mastering the fundamentals.  It is hard to make such a commitment to something seemingly outdated, but I believe it will benefit me greatly in the long run.

JavaScript

The debate between Ruby and JavaScript rages on, and I have heard it said from those in the front-end world that the only language you really need is JavaScript these days.  I am glad I chose to learn through Ruby, and having gained a grasp of the fundamentals, learning JavaScript will be less daunting from here on out.

Summary

As much as I'd love to have been picked up by a company already, I am not really behind schedule at all, all things considered, and having taken some time to relax, recharge, and review, I am now keenly looking forward to the next couple of months.

Thursday, March 30, 2017

Rails Day 5: VirtualBox It Is, Then

After a lot of fiddling with Docker, I have decided to stick with a simple development environment in a customised Ubuntu box in Vagrant.  I will get back to Docker, but for now I'll stick to what I know and get on with the business of learning Rails properly.

I find sometimes when I'm learning something new and difficult that I have to bash away at it, fail, and then come back a week later.  The concepts haven't quite come together in my head and my work blocks get chewed up without my having much to show for it.

In the meantime, I have a functional Rails development environment with Postgresql running in Vagrant/VirtualBox:


Wednesday, March 29, 2017

Rails Study, Day 4: Docker and Vagrant


I came for Rails, I'm working on DevOps.

The purpose of this post is to give an account of setting up my development environment in order to study Ruby on Rails.

I am already familiar with Vagrant, and initially thought I would spin an Ubuntu 16.04 box and work in that.  However, the obvious and numerous disadvantages of working in a virtual machine on a local hard drive demanded that I find something better.

So I decided to finally invest some time on Docker, and I have to say, once I wrapped my head around the concept of containers, getting started seems fairly straightforward.

Initial Steps:

  1. Install Vagrant on my host
  2. Install Docker on my host
  3. Spin up an Ubuntu box in Vagrant
  4. Install Docker on my VM
  5. Create an account on Docker Hub
  6. Download the Heroku Cedar 16 image
  7. Create a private docker repository on my host
  8. Run the Heroku Docker image
  9. Push a modified Docker image to my own repository
  10. Pull the modified Docker image to my VM
And so forth.


As I want my development environment to mirror Heroku's settings as closely as possible, I decided to see what the Heroku website itself has to say on the matter.

My inclination was to keep it simple by using Vagrant, but Heroku's Cedar stack is available as a Docker image, so I will go with Docker instead.  I've been meaning to familiarise myself with Docker for a while, so this works for me.

Official Notes for Docker are available from Gist.

This videos helps to demystify Docker.



I'm now looking into simplifying it further and using a Droplet from Digital Ocean.

Wednesday, October 19, 2016

Hello, World: DevOps Is My Mission

Hello, world.

My name is Alexander Garber and my mission is to become a software developer. On this blog I will share with you my journey into this exciting and complex profession.

Why DevOps?


This is my road map to Destination DevOps, which you can expect to be updated frequently:

  1. My dream is to work in a Linux environment.
  2. I have a deep interest in open source software.
  3. I love making processes more efficient.
  4. I love automating processes.

So DevOps seems to be the best fit.

How Will I Get There?


This is my current career road map.  In short, over the next 5-10 years:
  1. Study coding and reach out to prospective employers.
  2. Get an internship or a junior developer position.  Work very hard.
  3. Become a successful software developer.  Work even harder.
  4. Become a DevOps engineer.  Redouble my efforts.


SAMPLES OF MY RELEVANT WORK:


CURRENT ENDEAVOURS WITH THE VIEW OF WORKING IN DEV-OPS

My approach, in consultation with people involved in the industry, is to familiarise myself with the tools favoured by DevOps engineers and to solve the kinds of problems, on a small scale, that these tools are intended for.  The following is a summary of the ground I have covered since 1st July 2016.

  • Get Chef running on my Ubuntu 16.04 computer at home
  • Make advances in Vagrant with Virtualbox and AWS
  • Manage EC2 instances, Security Groups, IAM profiles, etc, in AWS.
  • SSH into EC2 instances on AWS.
  • Upgrade an Ubuntu Server from 14.04 to 16.04 over SSH.
  • Build a LAMP stack on an Ubuntu Server EC2 instance.
  • Automate routine activities on the computer by means of Python and BASH scripts.
  • Build a LAMP stack on a NAS drive, install MediaWiki, and configure a fully functional locally hosted wiki, with a collection of useful plugins, on which I document all the business processes and procedures.
  • Compile source code, including recompiling the Linux kernel.

PERSONAL BACKGROUND IN LINUX AND OPEN SOURCE SOFTWARE

  • Contributed source code in Python to the OpenShot project.
  • Member of Linux Users Victoria and attended many meetings.
  • Have run workshops for OpenShot Video Editor.

WORK HISTORY AS AN I.T. PROFESSIONAL

  • Started a computer repair and IT service business, Clockwork PC in 2011.
  • Built up a client base of 62 clients, and am still sought after for my services.
  • Utilise my computing knowledge to automate as much of my daily work as possible.

UPCOMING AREAS OF STUDY

The following is a list of areas that my research suggests would be most useful to learn or improve in.  Is there anything you would add to it, or subtract from it?
  • Ruby
  • Ruby on Rails
  • Chef
  • Puppet
  • Docker
  • Openstack
  • Juju
  • MySQL
  • PHP

1,050 hours

It took me 13 working days to complete my first 100 "work" pomodoros as a Junior Software Tester at Profectus Group.  Much of ...