Giter Site home page Giter Site logo

teknosenpai's Introduction

Hello, I'm Emanuele! πŸ‘‹

Murakami Shiina Atomic Kotlin

I'm a developer (and an aspiring photographer) from Italy. I'm currently studying Computer Science at I.T.I. G.Β Ferraris, Napoli (NA), Italy. πŸ’œ

Pronouns badge Email badge Email badge




My skills and passions πŸš€

Even though I'm still a student, I have a lot of experience in software development, mainly thanks to the fact that I'm an inquisitive person, and I'm very passionate about what I do. Plus, I’m a rapid learner, and I'm always looking for new things to learn and new challenges. My experience ranges from frontend development to backend development, and I've also worked with databases, container applications, and I know how to deal with Linux and Windows servers management and configuration.

My very first approach to CS was when I was 9, and I started learning JavaScript and, since then, I've matured a lot of experience with contributions to little private projects and big public ones. I moved from JavaScript to TypeScript (which was my main language for a very long time), then I started learning Java, which opened me the doors to the JVM-compatible languages world. After that, I started learning Kotlin, which is now my favorite language, and the one I've worked with most (well... excluding JS and TS of course).

I've also had a fair share of experience with C# and Rust, and I'm currently learning how to use them properly.

A new passion of mine is malware analysis and reverse engineering, and I'm currently studying it in my free time, and hope to be able to create something in that matter in the future.

Following this, you will find an extensive list of the languages, frameworks, tools and technologies I've worked with during the past years in the form of a Kotlin data class. I find this to be a unique way to show off my skills, and it's also a way to show my love for Kotlin.

My overview πŸ“

A textual version is available here. This is Kotlin code that you can run here, or you can read it!

enum class Status {
    MASTERED,
    LEARNING
}

typealias ListEntry = Pair<String, Status>

data class AboutMe(
    val fullname: String = "Emanuele Iannuzzi",
    val nickname: String = "Tekno",
    val location: String = "Italy",
    val contacts: List<Pair<String, String>> =
        listOf(
            "email" to "[email protected]",
            "github" to "https://github.com/TeknoSenpai",
            "discord" to "the.avogatto"
        ),
    val languages: Map<String, List<ListEntry>> =
        mapOf(
            "Frontend" to
                    listOf(
                        "HTML5" to Status.MASTERED,
                        "CSS3" to Status.MASTERED,
                        "Sass" to Status.MASTERED,
                        "Less" to Status.MASTERED,
                        "JavaScript" to Status.MASTERED,
                        "TypeScript" to Status.MASTERED
                    ),
            "Backend" to
                    listOf(
                        "Kotlin" to Status.MASTERED,
                        "Java" to Status.MASTERED,
                        "C#" to Status.LEARNING,
                        "Rust" to Status.LEARNING
                    ),
            "Database query" to
                    listOf(
                        "SQL" to Status.LEARNING,
                        "MongoDB" to Status.LEARNING
                    ),
            "Scripting" to
                    listOf(
                        "bash" to Status.LEARNING,
                        "zsh" to Status.LEARNING,
                        "python" to Status.MASTERED
                    )
        ),
    val frameworks: Map<String, List<ListEntry>> =
        mapOf(
            "Frontend" to
                    listOf(
                        "Angular CLI" to Status.LEARNING,
                        "Vue.js" to Status.LEARNING,
                        "Nuxt.js" to Status.LEARNING,
                        "TailwindCSS" to Status.LEARNING
                    ),
            "Backend" to listOf("Nest.js" to Status.MASTERED, "Ktor" to Status.MASTERED)
        ),
    val technologies: Map<String, List<ListEntry>> =
        mapOf(
            "Package Managers" to listOf("npm" to Status.MASTERED, "yarn" to Status.MASTERED),
            "Error reporting" to listOf("Sentry" to Status.MASTERED),
            "Container application" to listOf("Docker" to Status.LEARNING),
            "Databases" to
                    listOf(
                        "MySQL" to Status.MASTERED,
                        "MariaDB" to Status.MASTERED,
                        "PostgreSQL" to Status.MASTERED,
                        "MongoDB" to Status.LEARNING,
                        "Redis" to Status.LEARNING
                    ),
            "Server" to
                    listOf(
                        "Express" to Status.MASTERED,
                        "Fastify" to Status.LEARNING,
                        "Apache 2 (HTTPD)" to Status.MASTERED,
                        "Nginx" to Status.MASTERED,
                    ),
            "Object Storage" to listOf("Amazon S3" to Status.MASTERED, "MinIO" to Status.MASTERED)
        ),
    val spokenLanguages: List<ListEntry> =
        listOf(
            "Italian" to Status.MASTERED,
            "English (UK)" to Status.MASTERED,
            "French" to Status.LEARNING
        ),
    val operatingSystems: Map<String, List<String>> =
        mapOf("desktop" to listOf("Win10", "Manjaro"), "laptop" to listOf("Manjaro", "Win11")),
    val ides: List<String> =
        listOf(
            "WebStorm",
            "IntelliJ IDEA",
            "GoLand",
            "PyCharm",
            "Visual Studio",
            "Visual Studio Code"
        ),
) {
    fun rightPad(inStr: String) = inStr + " ".repeat(30 - inStr.length)

    fun formatKey(inStr: String): String {
        val targetWidth = 38
        val hyphenCount = 3
        val totalPadding = targetWidth - hyphenCount * 2 - inStr.length

        val paddingLeft = totalPadding / 2
        val paddingRight = totalPadding - paddingLeft

        return "---" + " ".repeat(paddingLeft) + inStr + " ".repeat(paddingRight) + "---\n"
    }

    fun getStringFromListEntryMap(v: Map<String, List<ListEntry>>, name: String): String {
        var ret = "$name:\n"
        for (i in v) {
            ret += formatKey(i.key)
            for (j in i.value) {
                ret += "${rightPad(j.first)}${j.second}\n"
            }
        }
        return ret + "\n"
    }

    override fun toString(): String {
        var ret = "Full name: $fullname; Nickname: $nickname; Location: $location; Contacts: ${
            contacts.joinToString(", ") { "${it.first}: ${it.second}" }
        }\n"
        ret += getStringFromListEntryMap(languages, "Languages")
        ret += getStringFromListEntryMap(frameworks, "Frameworks")
        ret += getStringFromListEntryMap(technologies, "Technologies")
        ret += "Spoken languages:\n${spokenLanguages.joinToString("\n") { "${rightPad(it.first)}${it.second}" }}"
        return ret
    }
}

fun main() {
    print(AboutMe())
}

My gear πŸ–₯️

Desktop πŸ–₯

Nfortec Lynx Gaming Tower

Notebook πŸ’»

Acer Nitro 5 AN515-58

Model: Acer Nitro 5 AN515-58 (In the picture on the right!)

  • CPU: Intel Core i9-12900H
  • GPU: NVIDIA GeForce RTX 4060 + Intel Iris XE Graphics (NVIDIA Optimus)
  • RAM: 32GB DDR5 4800MHz
  • Storage: 2 x 1TB NVMe SSD + 1 x 1TB SATA HDD
  • OS: Manjaro Linux (KDE Plasma) + Windows 11 Pro

Camera πŸ“·

Nikon D800

Model: Nikon D800

Other peripherals πŸ–±οΈ

My projects πŸ› οΈ

I'm currently working on a lot of projects, but here are some of the most important ones:

  • NISD: It's a multipurpose bot that can do a lot of things, from moderation to fun commands. (Closed source)
    • Technologies used:
      • Backend: Java, JDA, MongoDB
  • Hosto: A simple (yet complete), fast, and secure file hosting and file serve platform that I'm developing with my friends. (Closed source)
    • Technologies used:
      • Frontend: Angular CLI, TailwindCSS
      • Backend: Ktor (Kotlin on JVM), PostgreSQL

I'm also planning on releasing a multitude of other Open Source projects, but I can't talk about them yet. Stay tuned!


teknosenpai's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.