diff --git a/README.md b/README.md index b899784..54289c6 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,16 @@ ## ✨ My personal website built with Next.js -[![Website](https://img.shields.io/badge/my_website-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://www.alpozkan.info?utm_source=github-info&utm_medium=github-count&utm_campaign=github-readme&utm_id=github) +[![Website](https://img.shields.io/badge/my_website-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://www.alpozkan.info?utm_source=github-info&utm_medium=github-count&utm_campaign=github-readme&utm_id=github) # 💫 About Me: -As a seasoned Product Executive with over 10 years of experience, I have consistently delivered groundbreaking products in diverse industries such as E-commerce, FinTech, Delivery Service, Blockchain, and Mobile Apps.

My proven track record includes successfully launching more than 75 products on an international scale. Adept at building robust product organizations, I possess a keen understanding of every stage of product development, from early ideation to launch. +As a seasoned Product Executive with over 10 years of experience, I have consistently delivered groundbreaking products in diverse industries such as E-commerce, FinTech, Delivery Service, Blockchain, and Mobile Apps.

My proven track record includes successfully launching more than 75 products on an international scale. Adept at building robust product organizations, I possess a keen understanding of every stage of product development, from early ideation to launch. ## 🌐 Socials: -[![Resume](https://img.shields.io/badge/my_resume-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://bit.ly/Resume-Alp-Ozkan) -[![LinkedIn](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://linkedin.com/in/alpozkan) -[![Medium](https://img.shields.io/badge/medium-000?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@alpozkanm) + +[![Resume](https://img.shields.io/badge/my_resume-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://bit.ly/Resume-Alp-Ozkan) +[![LinkedIn](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://linkedin.com/in/alpozkan) +[![Medium](https://img.shields.io/badge/medium-000?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@alpozkanm) [![Twitter](https://img.shields.io/badge/twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/Alpozkanm) ---- \ No newline at end of file +--- diff --git a/app/blog/page.tsx b/app/blog/page.tsx index c0f8f6e..4c04fa0 100644 --- a/app/blog/page.tsx +++ b/app/blog/page.tsx @@ -1,4 +1,4 @@ -import { allPosts } from "contentlayer/generated"; +import { allContents } from "contentlayer/generated"; import { compareDesc } from "date-fns"; import Posts from "~/components/posts"; import { Metadata } from "next"; @@ -8,7 +8,10 @@ export const metadata: Metadata = { }; export default function BlogPage() { - const posts = allPosts.sort((a, b) => { + const filteredProjects = allContents.filter((post) => { + return post.image.includes("1_"); + }); + const posts = filteredProjects.sort((a, b) => { return compareDesc(new Date(a.date), new Date(b.date)); }); diff --git a/app/page.tsx b/app/page.tsx index 233a7e1..82f3f35 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,12 +1,15 @@ import Link from "next/link"; -import { allPosts } from "contentlayer/generated"; +import { allContents } from "contentlayer/generated"; import { compareDesc } from "date-fns"; import Hello from "~/components/hello"; import Posts from "~/components/posts"; import NewsletterSignup from "~/components/newsletter-signup"; export default function Home() { - const posts = allPosts + const filteredProjects = allContents.filter((post) => { + return post.image.includes("1_"); + }); + const posts = filteredProjects .sort((a, b) => { return compareDesc(new Date(a.date), new Date(b.date)); }) @@ -29,7 +32,7 @@ export default function Home() { className="font-bold text-gray-100 hover:text-white" href="/blog" > - See all posts + See all posts

diff --git a/app/projects/page.tsx b/app/projects/page.tsx index bc1d6da..5766dc2 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -1,75 +1,19 @@ -import { GraphQLClient, gql } from "graphql-request"; +import { allContents } from "contentlayer/generated"; +import { compareDesc } from "date-fns"; +import Projects from "~/components/projects"; import { Metadata } from "next"; export const metadata: Metadata = { - title: "Projects", + title: "Project", }; -export const revalidate = 60; - -type Repository = { - description: string; - id: string; - primaryLanguage: { - name: string; - color: string; - }; - name: string; - stargazerCount: number; - url: string; -}; - -type PinnedItemsResponse = { - viewer: { - pinnedItems: { - nodes: Repository[]; - }; - }; -}; - -async function getProjects(): Promise { - const endpoint = "https://api.github.com/graphql"; - - const client = new GraphQLClient(endpoint, { - headers: { - authorization: `Bearer ${process.env.GITHUB_TOKEN}`, - }, +export default function ProjectPage() { + const filteredProjects = allContents.filter((project) => { + return project.image.includes("projects_img"); + }); + const projects = filteredProjects.sort((a, b) => { + return compareDesc(new Date(a.date), new Date(b.date)); }); - - const query = gql` - { - viewer { - pinnedItems(first: 6) { - nodes { - ... on Repository { - id - name - description - url - primaryLanguage { - color - name - } - stargazerCount - } - } - } - } - } - `; - - const { - viewer: { - pinnedItems: { nodes: projects }, - }, - }: { viewer: { pinnedItems: { nodes: Repository[] } } } = - await client.request(query); - - return projects; -} - -export default async function ProjectsPage() { - const projects = await getProjects(); return ( <> @@ -79,42 +23,8 @@ export default async function ProjectsPage() { -
-
- {projects.map((project) => ( - -
-

- - {project.name} - -

-

{project.description}

-

- {" "} - - {project.primaryLanguage.name} - - {project.stargazerCount > 0 && ( - - - ⭐️ - - {project.stargazerCount} - - )} -

-
-
- ))} -
+
+
); diff --git a/components/hello.tsx b/components/hello.tsx index b0bb03b..26549ce 100644 --- a/components/hello.tsx +++ b/components/hello.tsx @@ -1,7 +1,5 @@ -import Image from "next/image"; import Link from "next/link"; import styles from "~/styles/aloha.module.css"; -import image from "~/public/images/Alp-Ozkan-Profile-Photo.png"; export default function Hello() { return ( @@ -44,7 +42,7 @@ export default function Hello() { href="/about" className="hover:bg-perple-500 rounded-md bg-purple-600 bg-gradient-to-r from-pink-800 to-purple-600 px-5 py-3.5 font-light text-white shadow-sm hover:from-pink-700 hover:to-purple-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-purple-300" > - About me + About me diff --git a/components/posts.tsx b/components/posts.tsx index 0ec952e..83cc105 100644 --- a/components/posts.tsx +++ b/components/posts.tsx @@ -1,8 +1,8 @@ -import { Post } from "~/.contentlayer/generated"; +import { Content } from "~/.contentlayer/generated"; import Date from "~/components/date"; import Image from "next/image"; -export default function Posts({ posts }: { posts: Post[] }) { +export default function Posts({ posts }: { posts: Content[] }) { return (
{posts.map((post) => ( diff --git a/components/projects.tsx b/components/projects.tsx new file mode 100644 index 0000000..5131b10 --- /dev/null +++ b/components/projects.tsx @@ -0,0 +1,30 @@ +import { Content } from "contentlayer/generated"; +import Date from "~/components/date"; +import Image from "next/image"; + +export default function Projects({ projects }: { projects: Content[] }) { + return ( +
+ {projects.map((project) => ( +
+
+ +
+
+
+

+ {project.title} +

+

{project.description}

+
+ {project.image && ( +
+ {project.title} +
+ )} +
+
+ ))} +
+ ); +} diff --git a/contentlayer.config.js b/contentlayer.config.js index 17e24ec..59cd48d 100644 --- a/contentlayer.config.js +++ b/contentlayer.config.js @@ -2,8 +2,8 @@ import { defineDocumentType, makeSource } from "contentlayer/source-files"; import { codeHighlightOptions } from "./lib/codeHighlightOptions"; import rehypePrettyCode from "rehype-pretty-code"; -export const Post = defineDocumentType(() => ({ - name: "Post", +export const Content = defineDocumentType(() => ({ + name: "Content", filePathPattern: `**/*.{md,mdx}`, contentType: "mdx", fields: { @@ -38,7 +38,7 @@ export const Post = defineDocumentType(() => ({ export default makeSource({ contentDirPath: "posts", - documentTypes: [Post], + documentTypes: [Content], mdx: { rehypePlugins: [[rehypePrettyCode, codeHighlightOptions]], }, diff --git a/posts/1Otelz-Product-Manager.md b/posts/1Otelz-Product-Manager.md new file mode 100644 index 0000000..1ec847c --- /dev/null +++ b/posts/1Otelz-Product-Manager.md @@ -0,0 +1,10 @@ +--- +title: "Otelz - Product Manager" +description: >- + I led the discovery and development phase of Yacht Renting and B2B amenities platform. By driving wireframing, prototyping, and rigorous market research, I ensured an unparalleled user experience. +date: "2023-01-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/otelz.jpg" +--- diff --git a/posts/2Advanced-Blockchain-Ag.md b/posts/2Advanced-Blockchain-Ag.md new file mode 100644 index 0000000..3c97be0 --- /dev/null +++ b/posts/2Advanced-Blockchain-Ag.md @@ -0,0 +1,11 @@ +--- +title: "Advanced Blockchain AG - Product Manager" +description: >- + I played a key role in the development of twelve products, covering lending & borrowing, NFTs, DEX, governance, liquidity pools, perpetual futures, stable coins, yield farming, bonding, swaps, bridges, liquidity pools, dao and privacy solutions. + Collaborating with cross-functional teams, I contributed to the product discovery process, incorporating valuable user feedback, market research, wireframing, and prototyping. This collaborative approach resulted in successful product launches. +date: "2021-12-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/advanced-blockchain.png" +--- diff --git a/posts/3BiSU.md b/posts/3BiSU.md new file mode 100644 index 0000000..72c6a7c --- /dev/null +++ b/posts/3BiSU.md @@ -0,0 +1,11 @@ +--- +title: "BiSU - Product Manager" +description: >- + I played a critical role to increase sales 10x by improving UX and implementing the Trendyol marketplace solution. + Promoted to Technical Group Product Manager, I led Core, Delivery & Ops, and Technical Operation teams, while introducing new product teams as a Hiring Manager. +date: "2021-07-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/bisu.png" +--- diff --git a/posts/4Alegra-Digital.md b/posts/4Alegra-Digital.md new file mode 100644 index 0000000..4a775dc --- /dev/null +++ b/posts/4Alegra-Digital.md @@ -0,0 +1,11 @@ +--- +title: "Alegra Digital - Product Manager" +description: >- + Led the creation of a user-friendly self-service digital product, enabling seamless e-commerce website development. + Launched six successful e-commerce stores through collaborative improvements and stakeholder engagement. +date: "2020-12-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/alegra.png" +--- diff --git a/posts/5Arcelik-Group-Developer.md b/posts/5Arcelik-Group-Developer.md new file mode 100644 index 0000000..c7c32c6 --- /dev/null +++ b/posts/5Arcelik-Group-Developer.md @@ -0,0 +1,11 @@ +--- +title: "Arçelik Group - Software Engineer" +description: >- + I played a critical role in creating a new revenue channel through the 360 omnichannel program, enhancing the visual customer experience through the Videowall project. Overcoming integration challenges with giant plasma screens, touch sensors, and real-size product displays, I achieved success by implementing the project for > 200 local stores and dealers in Turkey. + I led a task force that optimized user engagement, conversions, and SEO scores. Our team efforts reduced page load time from 14.9 seconds to 4 seconds for 75 digital products, attracting over 10 million visitors. +date: "2018-10-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/arcelik.png" +--- diff --git a/posts/6Arcelik-Group-Engineer.md b/posts/6Arcelik-Group-Engineer.md new file mode 100644 index 0000000..b0dd36b --- /dev/null +++ b/posts/6Arcelik-Group-Engineer.md @@ -0,0 +1,12 @@ +--- +title: "Arçelik Group - Software Developer" +description: >- + I played a pivotal role in digital product management and delivering technical solutions for both local and global markets, from discovery to launch. + My contributions were instrumental in increasing company revenue through leadership in special projects and cross-functional task forces. + I adeptly managed outsource development and in-house devops teams, ensuring seamless website operations for Arçelik, Beko, and Grundig brands – key sources of local revenue. +date: "2017-05-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/arcelik.png" +--- diff --git a/posts/7Grundig.md b/posts/7Grundig.md new file mode 100644 index 0000000..ff9c0e3 --- /dev/null +++ b/posts/7Grundig.md @@ -0,0 +1,11 @@ +--- +title: "Grundig Norway - E-Commerce Project Manager" +description: >- + Entrusted with a special assignment by the holding company, I spearheaded B2B/B2C customer portals projects in Oslo, Norway. + Relocating for three months, I successfully managed the on-site project, ensuring seamless integration and delivery of customer portals. +date: "2014-12-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/grundig.png" +--- diff --git a/posts/8Arcelik-Group-Consultant.md b/posts/8Arcelik-Group-Consultant.md new file mode 100644 index 0000000..90abeeb --- /dev/null +++ b/posts/8Arcelik-Group-Consultant.md @@ -0,0 +1,12 @@ +--- +title: "Arçelik Group - Consultant / Digital Products" +description: >- + Content Syndication: Developed a robust backend tool to export product information to local marketplaces, bolstering visibility. + Where to Buy: Implemented a dynamic "Where to Buy" button on 45+ websites without an e-commerce store. This button displayed real-time prices and marketplace information on the Product Detail Page, guiding visitors to shop directly from marketplaces. + These initiatives contributed to a 12% increase in global revenue. +date: "2013-10-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/arcelik.png" +--- diff --git a/posts/9Islem.md b/posts/9Islem.md new file mode 100644 index 0000000..cab9161 --- /dev/null +++ b/posts/9Islem.md @@ -0,0 +1,11 @@ +--- +title: "İşlem Computer - Software Developer" +description: >- + I successfully designed and developed online airline booking solutions for two prominent airlines, Corendon Airlines, and Onur Airlines. + My contribution to software development enabled the creation of an efficient and user-friendly booking platform. +date: "2011-10-01T20:40:27.272Z" +categories: [] +keywords: [] +slug: "#" +image: "/projects_img/islem.png" +--- diff --git a/public/projects_img/advanced-blockchain.png b/public/projects_img/advanced-blockchain.png new file mode 100644 index 0000000..6357390 Binary files /dev/null and b/public/projects_img/advanced-blockchain.png differ diff --git a/public/projects_img/alegra.png b/public/projects_img/alegra.png new file mode 100644 index 0000000..b1b9255 Binary files /dev/null and b/public/projects_img/alegra.png differ diff --git a/public/projects_img/arcelik.png b/public/projects_img/arcelik.png new file mode 100644 index 0000000..dbd9801 Binary files /dev/null and b/public/projects_img/arcelik.png differ diff --git a/public/projects_img/bisu.png b/public/projects_img/bisu.png new file mode 100644 index 0000000..c113b09 Binary files /dev/null and b/public/projects_img/bisu.png differ diff --git a/public/projects_img/grundig.png b/public/projects_img/grundig.png new file mode 100644 index 0000000..dba4d2f Binary files /dev/null and b/public/projects_img/grundig.png differ diff --git a/public/projects_img/islem.png b/public/projects_img/islem.png new file mode 100644 index 0000000..6b24841 Binary files /dev/null and b/public/projects_img/islem.png differ diff --git a/public/projects_img/otelz.jpg b/public/projects_img/otelz.jpg new file mode 100644 index 0000000..e3ebb93 Binary files /dev/null and b/public/projects_img/otelz.jpg differ