What I Do

I have solid skills with Ruby-on-Rails, HTML/CSS, JS and jQuery; so, I can get the job done one way or another. I am capable of writing complex algorithms and building well-tested solutions. Currently, I'm looking for employment as a Full-Stack Junior Developer while taking freelance website design projects under consideration. I learn something new everyday and have a fierce passion for design and programming, of any kind. Get in touch via email

Professional Design

I spent time with Revit, AutoCAD, Adobe Illustrator, Photoshop, and Xcode in highschool and college. In those courses I learned how to use the software properly and how to produce effective design with proven principles. This built a solid foundation of design principles which transferred over to web-development. My true passion is problem solving, and nothing feels better than solving one!

App Development

As a kid I began learning to program and have been tackling programming problems for years. I also taught myself HTML/CSS to the extent that I could build websites from scratch that looked halfway decent. When I went throught The Firehose Projects 24-Week Web-Development Bootcamp, they cleanly defined the path I needed to take to bring all of my skills full-circle. I am now a Full-Stack Developer.

Clean Code

Whether it's a coding challenge from a friend, a kata on codewars, a client's website, a project for an online course, or a personal project; not only do I strive to tackle each challenge, I insist on using the best practices to do so. Cleanly written, well-tested code is the only thing I am willing to produce. I will find the most efficient way to do things, without sacrificing elegance. There's no other way.

About Me

My life as a programmer began in about 2008 taking Python courses for free. I transitioned to design in highschool while taking a CADD class using Revit. That led to college Graphic Design courses where I learned Photoshop, Illustrator, Bridge, and Premiere. However, design didn't steal my heart nearly as hard as my C++ Programming and Networking classes did. Through my entire highschool and college careers I spent my time in non-tech classes reading books on my iPad about Stuxnet, the escapades of Kevin Mitnick, and The Art of Exploitation. I still remember the feelings of awe the first time I ran "python hello-world.py" in my console, when I finally finished that bubble-sort algorithm for C++, and when I built my first web-app. All of that led me to the almighty power of Ruby-on-Rails, an incredible Web-Development Framework with an amazing community of developers.

Ambition

100%

Design

85%

Passion

100%

Programming

80%

My Projects

These are all the projects I've built that are worth showing off. Take a look!

Stream Now!

Two-Sided Video Streaming marketplace

Imstagran

Instagram Clone built using Test-Driven Development.

To Do Application

Single Page Javascript Application

Chess - Agile Team

Project still in development as part of an Agile Team.

Gold Coast Homes

Mobile Homes Real Estate Website

Hiking Gallery

Just a fun website I'm building

I am comfortable working with all the latest technologies to produce extraordinary applications and websites

Cutomized

Designed

Developed

Responsive

Controlled

Styled

Modern

Fast

Code Snippets

This is code that I have written over the last few months while I step up my game as a programmer

Basic Celsius to Fahrenheit Converter


puts "Enter Degrees Celsius:"
fahr = ((gets.chomp.to_i * 1.8) + 32).to_i
puts fahr
        

Basic Fahrenheit to Celsius Converter


puts "Enter Degrees Fahrenheit:"
cels = ((gets.chomp.to_i - 32) / 1.8).to_i
puts cels
        

FooBar


def foo_bar(n)
  i = 1
  while i <= n do 
    if i % 3 == 0 && i % 5 == 0
      puts "FooBar"
    elsif i % 3 == 0
      puts "Foo"
    elsif i % 5 == 0
      puts "Bar"
      else
      puts i
    end
    i += 1
  end
end
puts "How many items do you want to see? "
foo_bar(gets.to_i)
        

Array Sorting


def sort(array)
  return [] if array.empty? || array.nil?
  n = array.length
  return array if n == 1
  loop do
    swapped = false
    (n-1).times do |i|
      if array[i] > array[i+1]
        array[i], array[i+1] = array[i+1], array[i]
        swapped = true
      end
    end
    break if not swapped
  end
  array
end
        

Fibonnaci Benchmark Tests


#https://github.com/ryanveroniwooff/fibonacci/blob/master/lib/fib.rb
require 'benchmark'
def recursive_fib(n)
  n == 0 || n==1 ? n : recursive_fib(n-1) + recursive_fib(n-2)
end

def iterative_fib(n)
  table = [1,1]
  n.times do
    @fib_table = table[table.length-1] + (table[table.length - 2])
    table << @fib_table
  end

  return table.last
end

num = 35
Benchmark.bm do |x|
  x.report("rec:") { recursive_fib(num) }
  x.report("itr:")  { iterative_fib(num)  }
end
        

Check and its Related Methods

Written by me for my Agile Team Chess Application, play it here


def check?
  kings_in_check?('white') || kings_in_check?('black')
end

private

def remaining_pieces(color) # creates an array of the remaining pieces w/desired color
  pieces.includes(:game).where('color = ? and status = 1',
   color == 'white' ? 0 : 1).to_a
end

def opposite_color(color) # returns the opposite color
  color == 'white' ? 'black' : 'white'
end

def kings_in_check?(color)
  king = pieces.find_by(type: 'King', color: color)
  enemy = remaining_pieces(opposite_color(color)) # creates array of enemy pieces
  enemy.each do |piece|
    if piece.valid_move?(king.x_position, king.y_position)
      @piece_in_check = piece # stores piece that has king in check
      return true
    end
  end
  false
end
        

Populate Board Method

Written by me for my Agile Team Chess Application


def populate_board!
  (0..7).each do |i|
    pieces.create(type: 'Pawn', 
      x_position: i, y_position: 1, color: 'white')
  end
  pieces.create(type: 'Rook', 
    x_position: 0, y_position: 0, color: 'white')
  pieces.create(type: 'Rook', 
    x_position: 7, y_position: 0, color: 'white')
  pieces.create(type: 'Knight', 
    x_position: 1, y_position: 0, color: 'white')
  pieces.create(type: 'Knight', 
    x_position: 6, y_position: 0, color: 'white')
  pieces.create(type: 'Bishop', 
    x_position: 2, y_position: 0, color: 'white')
  pieces.create(type: 'Bishop', 
    x_position: 5, y_position: 0, color: 'white')
  pieces.create(type: 'Queen', 
    x_position: 4, y_position: 0, color: 'white')
  pieces.create(type: 'King', 
    x_position: 3, y_position: 0, color: 'white')
  (0..7).each do |i|
    pieces.create(type: 'Pawn', 
      x_position: i, y_position: 6, color: 'black')
  end
  pieces.create(type: 'Rook', 
    x_position: 0, y_position: 7, color: 'black')
  pieces.create(type: 'Rook', 
    x_position: 7, y_position: 7, color: 'black')
  pieces.create(type: 'Knight', 
    x_position: 1, y_position: 7, color: 'black')
  pieces.create(type: 'Knight', 
    x_position: 6, y_position: 7, color: 'black')
  pieces.create(type: 'Bishop', 
    x_position: 2, y_position: 7, color: 'black')
  pieces.create(type: 'Bishop', 
    x_position: 5, y_position: 7, color: 'black')
  pieces.create(type: 'Queen', 
    x_position: 3, y_position: 7, color: 'black')
  pieces.create(type: 'King', 
    x_position: 4, y_position: 7, color: 'black')
end
        

Blog Posts

I have a blog on medium where I talk about programming and such! Check it out!

Materialize: A Responsive Front-End Framework

Dec 3, 2016 in Web-Development

As a web-developer, I’m constantly learning new tools and finding new ways to make my day easier...

The Sieve of Eratosthenes

Sep 3, 2016 in Programming and Mathematics

The Sieve of Eratosthenes is a method of identifying prime numbers in a given list of (2..n)...

Contact Me

If you or your company is looking for a Full-Stack Web Devleoper, please get in touch via email:
ryanwooffdeveloper@gmail.com