GUILLAUME BIHET

FULL STACK DEVELOPER


I am a passionate web and software developer. After years as a naval engineer I switched carreer to fully invest myself into coding.

Guillaume Bihet is a passionate software developer. After years as a naval engineer in the yacht building industry he turned the page to go fully his passion for coding.

Web Apps


RedCcup Freediving Competitions

A Ruby on Rails web app that includes online payment, documents uploading, an admin interface for competition creation and management, automaticaly generated start lists based on athletes announcements and advanced database relationships.

Agile Team Project

I worked on an Agile software development team building a chess application. Under the guidance of a senior software engineer, we had weekly Agile team meetings for code reviews, sprint planning, and feature assignments.


NodeJS Movie reviews

A NodeJS/ExpressJS movie review apps powered by The Movie Database API

ReactJS Notes

A ReactJS note-taking app with a fluid user interface


Two-Sided Market Place

A two-sided, video-streaming marketplace platform that features credit card payment capabilities, user role management, complex user interfaces, and advanced database relationships.

Test Driven Development

An Instagram clone that was built using industry-standard, test-driven development following numerous red/green/refactor cycles.


Single Page Todo Application

This single-page to-do application features a fluid user interface that– by using JavaScript and Ajax calls– allows users to rapidly add dynamic content.

Yelp clone for freediving

A Yelp clone that integrates with the Google Maps API and includes features like user comments, star ratings, image uploading, and user authentication.


Code Snippets


K-Ary Tree generator

From any array, this program will generate a tree in which each node has no more than k children. The idea of this came while testing searching algorithms on trees, willing to test them on very large trees out of curiosity, I realized it would be very tideous to hard code the trees node by node.

Cf. my Medium blog post here


        
        


    def obstructable?
      can_protect = false
      king = self
      @squares = (1..8).to_a.product((1..8).to_a)

      game.pieces.each do |piece|
        if piece.type != "King" && piece.color == king.color
          @squares.each do |square|
            target = self.game.pieces.where(position_x: square[0], position_y: square[1])[0]
            if piece.valid_move?(square[0],square[1]) && target == nil
              orig_x = piece.position_x
              orig_y = piece.position_y
              piece.update_attributes!(position_x: square[0],position_y: square[1])
              if king.is_in_check? == false
                can_protect = true
              end
              piece.update_attributes!(position_x: orig_x,position_y: orig_y)
            end
          end
        end
      end
      return can_protect
    end

      

Chess game: is_obstructable?

This snippet is one of the key methods to determine a check mate in the chess game build on an Agile Team project. It scans the game to see if any of the pieces has a move that could protect the king from bein in check, calling other methods in the process.


Fully random Tree generator

Similar to the k-ary tree generator but more advanced in the sense that it will produce totally random trees from any array. The root of the tree, the order of insertion of the array items, the number of children per node will all be random (an upper limit is set for the maximum amount of children per node, in order to give a bit of control on the tree generator).

Cf. my Medium blog post here


Enrollment create action - Redccup

This snippet creates enrollment for an athlete, covering all possible cases, such as:

- create action triggered by an admin
- admin action: no competitor selectedd
- no competition day selected
- competition status set to registration closed


Skills & Tools


I developed proficiency in the following programming languages and comfort with the following tools.


Contact


Currently entertaining new opportunities. Please get in touch via email:

guillaume.bihet@gmail.com