Adam Nikolic

Full stack software developer - Angular | Laravel | ASP.NET

As a graduate student at ICT College, I've been immersed in the world of programming for the past six years, a journey that began back in high school. I found my niche in automatic programming CNC machine competitions, even clinching the top spot twice at the national level. Currently, my focus is on my thesis project, where I'm working on a solution that aims to blend technology with real-world applications. Through dedicated learning and practical experience, I've developed a knack for solving intricate coding puzzles and I'm excited to continue exploring the ever-evolving field of computer science.

Email: nikolic.adam9@gmail.com

Phone: +381693819139

Experience

IC Systems

Remote IT Internship

Successfully upgraded application's console and main app to newer version of Angular 17, enhancing user interface and performance for streamlined data tracking, analysis, and management.

Angular

TypeScript

Refactoring

Git

2023 Dec - 2024 Jan

Education

Skills

Front-end Skills

Angular 13+

Angular 13+

Leveraged Angular 13+ along with TypeScript to build dynamic and responsive user interfaces

Utilized RxJS for handling asynchronous operations and managing streams of data

Implemented various design patterns such as Guards, Signals, and Observables to enhance code organization and maintainability

Developed Services to encapsulate business logic and facilitate data exchange between components

Integrated Interceptors for intercepting HTTP requests and responses to apply common functionalities like error handling or authentication

Leveraged Template bindings and Directives to create dynamic and interactive UI components

Utilized Angular's HTTP Client module for making API requests to backend services

Employed Pipes for transforming data in the template HTML

Implemented File upload functionality to handle file uploads efficiently

TypeScript

TypeScript

Defined and implemented interfaces in TypeScript to enforce contracts and ensure consistency in data structures and function signatures

JavaScript

JavaScript

Utilized JavaScript as the primary programming language for front-end and/or back-end development

Leveraged modern JavaScript features introduced in ECMAScript 6 (ES6) and later versions to write cleaner and more expressive code, such as arrow functions, destructuring assignment, spread syntax, and async/await

Used JavaScript to interact with the Document Object Model (DOM) to dynamically modify the content, structure, and styling of web pages based on user actions or application logic

Implemented event handling in JavaScript to respond to user interactions such as clicks, mouse movements, keyboard inputs, and form submissions

Utilized asynchronous programming techniques in JavaScript, such as callbacks, promises, and async/await, to handle non-blocking operations and improve application responsiveness

Made HTTP requests to external APIs using JavaScript to fetch data from remote servers and integrate it into web applications

Material UI

Material UI

Implemented Material UI for consistent and visually appealing UI components

CSS3

CSS3

Utilized CSS3 for styling and layout customization, ensuring a responsive and aesthetic design

SCSS

SCSS

Utilized SCSS for styling and layout customization, ensuring a responsive and aesthetic design

Back-end Skills

PHP

PHP

Developed dynamic web applications using PHP for server-side logic

Integrated PHP with HTML/CSS to create interactive and responsive web pages

Utilized PHP framework Laravel for efficient development and adherence to MVC architecture

C#

C#

Utilized collections like lists, arrays, dictionaries, and queues to manage and manipulate data efficiently

Implemented generic classes and methods to write reusable code that works with different data types

Implemented robust error-handling mechanisms using try-catch blocks to handle exceptions gracefully and ensure application stability

Implemented asynchronous programming patterns using async and await keywords to handle long-running tasks without blocking the main thread

Integrated asynchronous methods and tasks seamlessly into applications for improved responsiveness

Leveraged LINQ queries to retrieve, filter, and transform data from various data sources with ease

Utilized LINQ operators effectively to perform complex data manipulations and queries

Successfully interacted with databases using ADO.NET or Entity Framework, implementing CRUD operations and managing database connections efficiently

Developed web applications using ASP.NET Core framework, implementing MVC architecture with clear separation of concerns

Laravel

Laravel

Utilized Laravel for building robust and scalable back-end systems

Implemented API endpoints using Laravel's built-in routing system

Leveraged the Repository pattern for abstracting data access and manipulation logic

Utilized Migrations for managing database schema changes over time

Implemented Seeders and Factories for populating the database with test data

Utilized Sanctum for API token authentication

Employed Middleware for handling cross-cutting concerns such as authentication and logging

Utilized Laravel Requests for validating incoming HTTP request data

Implemented Traits to share methods across multiple controller classes

Utilized Laravel Eloquent for ORM and database interaction

ASP.NET Core

ASP.NET Core

Implemented Clean Architecture to maintain separation of concerns and improve code maintainability

Utilized CQRS pattern for separating read and write operations, improving scalability and performance

Ensured adherence to SOLID principles for writing clean, modular, and maintainable code

Employed Code First approach for database development, ensuring version control and easy deployment

Integrated JWT (JSON Web Tokens) for secure authentication and authorization

Utilized Middleware for intercepting and processing HTTP requests

Leveraged SQL Server as the database backend, managed using SQL Server Management Studio (SSMS)

Utilized Entity Framework Core for object-relational mapping and database interactions

SQL Server

SQL Server

Designed and modeled relational databases using SQL Server, including defining tables, columns, relationships, constraints, and indexes

Normalized database schemas to eliminate redundancy and improve data integrity

Developed stored procedures and user-defined functions (UDFs) in T-SQL to encapsulate business logic and enhance code reusability

Implemented triggers to enforce data integrity constraints, automate tasks, and maintain data consistency

REST APIs

REST APIs

Demonstrated proficiency in utilizing various HTTP methods (GET, POST, PUT, DELETE) to perform CRUD (Create, Read, Update, Delete) operations on resources

Handled HTTP status codes appropriately to convey the outcome of API requests and responses effectively

Implemented clean and intuitive URL structures for RESTful APIs, mapping resource endpoints to corresponding controller actions or methods

Implemented authentication mechanisms such as JWT (JSON Web Tokens), OAuth, or API keys to verify the identity of clients accessing the API

Enforced access control policies based on user roles and permissions to restrict unauthorized access to sensitive resources

Documented API endpoints, request/response formats, authentication mechanisms, and usage examples using tools like Swagger, OpenAPI, or custom documentation formats

Followed API design best practices to create intuitive, consistent, and developer-friendly APIs with clear and predictable behavior

OOP

OOP

Successfully applied core OOP principles including encapsulation, inheritance, polymorphism, and abstraction in various projects

Created well-structured classes and instantiated objects to represent entities and functionalities within applications

Utilized inheritance to establish hierarchical relationships between classes, promoting code reuse and extensibility across different modules

Implemented polymorphic behavior in PHP by leveraging method overriding and dynamic method binding, allowing for flexible and adaptable code

Demonstrated proficiency in defining abstract classes and methods to enforce common behavior and ensure consistency across subclasses

Implemented interfaces in classes to define contracts and ensure adherence to predefined standards, promoting interoperability and code reusability

Employed visibility modifiers effectively to control access to class members, ensuring encapsulation and minimizing dependencies between different parts of the codebase

Leveraged static members and methods to encapsulate shared functionality within classes, promoting code organization and improving maintainability

Extra Skills

Git

Git

Utilized Git for version control and collaboration with team members

Linux

Linux

Worked in Linux environment for development and deployment

SOLID principles

SOLID principles

Applied SOLID principles to write modular, maintainable, and extensible code

Design patterns

Design patterns

Implemented various Design Patterns to solve recurring design problems efficiently

Bugsnag

Bugsnag

Utilized Bugsnag for error monitoring and tracking in applications

Firebase

Firebase

Employed Firebase for backend services such as authentication, real-time database, and cloud functions