yvesgurcan

Senior Software Engineer

AWS Certified

Who's this guy?

I am a senior software engineer with years of professional experience. I founded Parallel45, a consulting agency based in Portland, OR.

Born and raised in France, I moved to the Pacific Northwest in 2014.

When I am not coding, you'll probably find me at the park with my daughter, Amélie.

I am fascinated by 1994 videogame Doom II.


            MovePlayer = (Direction) => {

              let {Player, NoClip} = ...this.state
              if (Player.Dead) return false
          
              // get the target coordinates
              let targetCoordinates = this.MoveObject({x: Player.x, y: Player.y}, Direction)
          
              // out of range
              if (targetCoordinates.y > WallMap.length - 1 || targetCoordinates.y < 0 || targetCoordinates.x > WallMap[targetCoordinates.y].length - 1 || targetCoordinates.x < 0) {
          
                this.SetText(Gameplay.Messages.Collision)
                this.PlaySound("cant_go_there")
          
                return
              }
          
              // check if there is a locked door in the way
              let Door = this.CheckLockedDoors(targetCoordinates)
              if (Door.Locked && !NoClip) {
                let LockedDoor = this.UnlockDoor(Door.Object)
                if (LockedDoor.Unlocked) {
                  let UnlockMessage =
                  Gameplay.PartialMessages.UnlockDoor  + 
                  LockedDoor.Key +
                  Gameplay.PartialMessages.Period
                  this.setState({currentText: UnlockMessage, currentTextImage: null})
                }
                else {
                  this.setState({
                    currentText: Gameplay.Messages.LockedDoor, currentTextImage: null
                  })
                  return
                }
              }

              let WallMap = [...this.state.WallMap]
              let MonsterMap = [...this.state.MonsterMap]
          
              let FullStateUpdate = true
          
              // player is attacking a monster
              if (MonsterMap[targetCoordinates.y][targetCoordinates.x] !== Empty) {
                FullStateUpdate = false
                this.AttackMonster(targetCoordinates)
                // player is not moving
                targetCoordinates.x = Player.x
                targetCoordinates.y = Player.y
          
              }
              else {
          
                // the player can not go there (there is a wall/door in the way)
                if (!this.DetectCollision(targetCoordinates)) {
          
                  this.SetText(Gameplay.Messages.Collision)
                  this.PlaySound("cant_go_there")
                  
                  return
                }
          
              }
          

Passionate about code

  • Users first. I believe that user experience should always be the priority.
  • Avid learner. I enjoy learning new technologies and paradigms.
  • Patient teacher. I share my knowledge with enthusiasm and enjoy teaching others what I know.

Team player

  • Code reviews. I am used to work in an environment where PR reviews are taken seriously.
  • Tests. I believe that writing tests is the best way to keep my sanity intact.
  • Documentation. I write and document code with the next developer in mind.

Responsible

  • Agile. I am comfortable with iterative development and frequent pushes to production.
  • Autonomous. I am in control of my workload and can manage small projects independently.
  • Initiative. I enjoy identifying opportunities to ameliorate processes, communication, or refactor code.

JavaScript all the things!

I first learnt JavaScript about years ago. Things have changed a lot since then! I've kept my knowledge up to date by adopting bleeding edge technologies and tools such as webpack, npm, and git. Since JavaScript is everywhere, my expertise allows me to be comfortable both on the front end and the back end.

My favorite stack:
  • React and GraphQL
  • Node
  • AWS
  • GitHub Pages
React GraphQL
Node
API Gateway Lambda dynamoDB
GitHub Pages