Hello! I'm Cankut

Proceed to learn more...

about me

who are you?

I am a civil engineer who is very passionate about software development and now eager to follow this passion more professionally. For more detailed info about me and my past professional life, you can visit my linkedin page here.

why are you doing this?

After having grown some interest in programming in 4th quarter in 2021, I have tried it picking up some courses online at the start of 2022. I simply got addicted to it and since then I dont have a day without thinking about programming. This made me realize I've never really liked civil engineering and what doing "something you love" actually means. As the notion of doing this for living has become so strong, I could not resist deciding on a career change.

what is your end goal anyway?

Well, my first goal is to step into the industry but I don't necessarily set an end goal for myself. I rather try to enjoy the journey. However, during this journey I surely have goals to accomplish along the way. Learning constantly and using these skills to be a part of something meaningful, being contributive to the world could broadly define the general theme. Additionally, I do want to further educate myself on computer science fundamentals, actually considering a master's degree as long as the suitable conditions are met.



  • structure of a web page
  • semantic tags
  • inline & block elements
  • element attributes
  • forms
  • responsive images


  • inheritance & specificity
  • flexbox
  • grid
  • transitions & animations
  • box-model
  • position property
  • pseudo classes & elements


  • value & reference types
  • control flow & loops
  • OOP, constructors & prototypal inheritance
  • ES6 (arrow fs, spread & rest)
  • async JS (promises, async/await)
  • the DOM
  • fetch & consuming APIs


  • JSX & Rules
  • useState, useEffect & useRef
  • controlled & uncontrolled inputs
  • props & children
  • lists & conditional rendering

web3 & dapps

  • how blockchain works
  • solidity fundamentals
  • truffle fundamentals
  • connecting metamask to client
  • connecting front-end to blockchain




This is a prototype of the popular game Tetris. Project is coded in a OOP approach where JS class syntax is used. RequestAnimationFrame API is utilized to model a sequence for class method calls for every certain time interval. Project is based on storing ids for the divs that are the CSS grid children and manipulating these ids every interval. As these ids imply the coordinates of the relevant divs in the layout, it was possible to make a DOM selection using them and do whatever action is necessary with the selected DOM element. As for the 2D rotation logic, I have implemented a global function where an anchor point is chosen considering the number of elements that anchor connects to, and then the members of the existing shape is looped over all to find their x and y distances relative to the anchor point. Finally, horizontal distance is equated to the vertical distance and vertical distance is equated to the horizontal distance of the rotated state to simulate a 90 degrees rotation. It should be noted that project is subject to relatively minor gameplay improvements and some styling upgrades.

Dynamic Wordle

This is a popular "Wordle" game with a twist. In this version, secret word can be any size and the amount of attempts given to player equals to the number of letters in the secret word. Thanks to "https://dictionaryapi.dev/", I was able to connect to the API and check if any of the guesses made by the player is an actual English word. Potential upgrade to this project could be providing replayability. However, most of the APIs suitable for this upgrade comes with a cost. Thus, I sticked with a fixed secret word to demonstrate functionality of this project for the time being.

calculator without eval

This is a JS calculator project without using eval function and it supports nested parantheses and allow calculation expressions just like in Windows' calculator. It runs on a stack-like model to handle strict priority rules. To execute the calculations w.r.t priority rules, a master array is defined to store the command types and order of these commands. When a calculation is requested, last command in the master array is fired and sequence is proceeded until the first member. Since a low priority command is never stored in the last member of the master array if any higher prio command is present, calculation rules are made sure to be complied.

Poll on Blockchain

This is a fun project regarding upcoming elections in Turkey where I created the front-end for voting and used blockchain as the database. User can connect and disconnect to MetaMask and through it interact with the smart contract deployed on blockchain via voting button on front end. It is also possible for poll owner to pause the voting by calling the relevant smart contract function. Vote counts are fetched on page load and/or voting action and percentages are dynamically visualized.

find path

This is a relatively simple pathfinding project where I have tried to derive a shortest path algorithm. Main goal was to find all possible paths with weights assigned to them and store them in a very large array. However, this was a failed attempt. I have still included this project since I have learned a lot trying and it is open to improvements in the future as an ambitious pathfinding visualizer project.

JS Mini Projects

This is a repository including many different Vanilla Javascript projects I have completed for practise purposes. They include CRUD app on local storage, smooth scroll, several fetch/display apps, pagination and more. This is also a decent reference for myself to keep for reminders/revisits in the future.

React Mini Projects

This is a repository including several React projects I have completed for practise purposes. They include CRUD app on local storage, color shades visualizer, lorem-ipsum generator, slider and more. This is also a decent reference for myself to keep for reminders/revisits in the future.

cnkt.dev project

This is the repository for my portfolio website you are currently visiting :).

contact me