51 | )
52 | }
53 |
54 | export default Comments
55 |
--------------------------------------------------------------------------------
/components/social-icons/facebook.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/social-icons/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/social-icons/index.js:
--------------------------------------------------------------------------------
1 | import Mail from './mail.svg'
2 | import Github from './github.svg'
3 | import Facebook from './facebook.svg'
4 | import Youtube from './youtube.svg'
5 | import Linkedin from './linkedin.svg'
6 | import Twitter from './twitter.svg'
7 |
8 | // Icons taken from: https://simpleicons.org/
9 |
10 | const components = {
11 | mail: Mail,
12 | github: Github,
13 | facebook: Facebook,
14 | youtube: Youtube,
15 | linkedin: Linkedin,
16 | twitter: Twitter,
17 | }
18 |
19 | const SocialIcon = ({ kind, href, size = 8 }) => {
20 | if (!href || (kind === 'mail' && !/^mailto:\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/.test(href)))
21 | return null
22 |
23 | const SocialSvg = components[kind]
24 |
25 | return (
26 |
32 | {kind}
33 |
36 |
37 | )
38 | }
39 |
40 | export default SocialIcon
41 |
--------------------------------------------------------------------------------
/components/social-icons/linkedin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/social-icons/mail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/social-icons/twitter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/social-icons/youtube.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/prism.css:
--------------------------------------------------------------------------------
1 | /**
2 | * CSS Styles for code highlighting.
3 | * Feel free to customize token styles
4 | * by copying from a prismjs compatible theme:
5 | * https://github.com/PrismJS/prism-themes
6 | */
7 |
8 | /* Code title styles */
9 | .remark-code-title {
10 | @apply px-5 py-3 font-mono text-sm font-bold text-gray-200 bg-gray-700 rounded-t;
11 | }
12 |
13 | .remark-code-title + div > pre {
14 | @apply mt-0 rounded-t-none;
15 | }
16 |
17 | /* Code block styles */
18 | .code-highlight {
19 | @apply float-left min-w-full;
20 | }
21 |
22 | .code-line {
23 | @apply block pl-4 pr-4 -mx-4 border-l-4 border-gray-800;
24 | }
25 |
26 | .highlight-line {
27 | @apply -mx-4 bg-gray-700 bg-opacity-50 border-l-4 border-primary-500;
28 | }
29 |
30 | .line-number::before {
31 | @apply pr-4 -ml-2 text-gray-400;
32 | content: attr(line);
33 | }
34 |
35 | /* Token styles */
36 | /**
37 | * MIT License
38 | * Copyright (c) 2018 Sarah Drasner
39 | * Sarah Drasner's[@sdras] Night Owl
40 | * Ported by Sara vieria [@SaraVieira]
41 | * Added by Souvik Mandal [@SimpleIndian]
42 | */
43 | .token.comment,
44 | .token.prolog,
45 | .token.cdata {
46 | color: rgb(99, 119, 119);
47 | font-style: italic;
48 | }
49 |
50 | .token.punctuation {
51 | color: rgb(199, 146, 234);
52 | }
53 |
54 | .namespace {
55 | color: rgb(178, 204, 214);
56 | }
57 |
58 | .token.deleted {
59 | color: rgba(239, 83, 80, 0.56);
60 | font-style: italic;
61 | }
62 |
63 | .token.symbol,
64 | .token.property {
65 | color: rgb(128, 203, 196);
66 | }
67 |
68 | .token.tag,
69 | .token.operator,
70 | .token.keyword {
71 | color: rgb(127, 219, 202);
72 | }
73 |
74 | .token.boolean {
75 | color: rgb(255, 88, 116);
76 | }
77 |
78 | .token.number {
79 | color: rgb(247, 140, 108);
80 | }
81 |
82 | .token.constant,
83 | .token.function,
84 | .token.builtin,
85 | .token.char {
86 | color: rgb(130, 170, 255);
87 | }
88 |
89 | .token.selector,
90 | .token.doctype {
91 | color: rgb(199, 146, 234);
92 | font-style: italic;
93 | }
94 |
95 | .token.attr-name,
96 | .token.inserted {
97 | color: rgb(173, 219, 103);
98 | font-style: italic;
99 | }
100 |
101 | .token.string,
102 | .token.url,
103 | .token.entity,
104 | .language-css .token.string,
105 | .style .token.string {
106 | color: rgb(173, 219, 103);
107 | }
108 |
109 | .token.class-name,
110 | .token.atrule,
111 | .token.attr-value {
112 | color: rgb(255, 203, 139);
113 | }
114 |
115 | .token.regex,
116 | .token.important,
117 | .token.variable {
118 | color: rgb(214, 222, 235);
119 | }
120 |
121 | .token.important,
122 | .token.bold {
123 | font-weight: bold;
124 | }
125 |
126 | .token.italic {
127 | font-style: italic;
128 | }
129 |
--------------------------------------------------------------------------------
/css/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | .task-list-item:before {
6 | @apply hidden;
7 | }
8 |
9 | html {
10 | scroll-behavior: smooth;
11 | }
12 |
13 | /* https://stackoverflow.com/questions/61083813/how-to-avoid-internal-autofill-selected-style-to-be-applied */
14 | input:-webkit-autofill,
15 | input:-webkit-autofill:focus {
16 | transition: background-color 600000s 0s, color 600000s 0s;
17 | }
18 |
--------------------------------------------------------------------------------
/data/authors/default.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Hassan El Mghari
3 | avatar: /static/images/me_compressed.png
4 | occupation: Developer Advocate
5 | company: Vercel
6 | email: hassan@hey.com
7 | twitter: https://twitter.com/nutlope
8 | linkedin: https://www.linkedin.com/in/nutlope
9 | github: https://github.com/nutlope
10 | ---
11 |
12 | I'm a full-stack software engineer based in Philadelphia. I founded [UltraShock Gaming](https://twitter.com/ushockgaming), a game marketing startup with a community of 500,000 members on Steam, and ran it for 4 years before [selling it](https://www.elmghari.com/startup-journey). I'm passionate about startups in the developer tools space and building interesting side projects.
13 |
14 | I graduated with a B.S in computer engineering from Drexel and am currently working as a **developer advocate for Vercel**. When I'm not coding, I'm playing soccer, reading, writing or enjoying some good food with friends.
15 |
--------------------------------------------------------------------------------
/data/authors/sparrowhawk.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Sparrow Hawk
3 | avatar: /static/images/sparrowhawk-avatar.jpg
4 | occupation: Wizard of Earthsea
5 | company: Earthsea
6 | twitter: https://twitter.com/sparrowhawk
7 | linkedin: https://www.linkedin.com/sparrowhawk
8 | ---
9 |
10 | At birth Ged was given the child-name Duny by his mother. He was born on the island of Gont, son of a bronzesmith. His mother died before he reached the age of one. As a small boy, Ged had overheard the village witch, his maternal aunt, using various words of power to call goats. Ged later used the words without understanding of their meanings, to surprising effect.
11 |
12 | The witch knew that using words of power effectively without understanding them required innate power, so she endeavored to teach him what little she knew. After learning more from her, he was able to call animals to him. Particularly, he was seen in the company of wild sparrowhawks so often that his "use name" became Sparrowhawk.
13 |
--------------------------------------------------------------------------------
/data/blog/2021.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: '2021 Year in Review'
3 | date: '2021-12-30T22:40:32.169Z'
4 | tags: ['reflection', 'devrel', 'career']
5 | draft: false
6 | summary: 'A reflection on what my year looked like, what I accomplished, and my goals for 2022.'
7 | layout: PostLayout
8 | ---
9 |
10 | # My 2021 Journey
11 |
12 | 2021 was a year I spent trying to find what I wanted to do. Let me set the scene.
13 |
14 | In September of 2020, I started my senior year of college and decided to change my major from electrical engineering to computer engineering. This happened because I discovered web development during the start of covid and fell in love with it. So starting from September, I worked on side projects to improve my coding skills while taking classes in electronics and hardware (along with a few CS classes).
15 |
16 | ## Transitioning to software
17 |
18 | In January 2021, I landed a full-time job as an electrical engineer with a power company I previously interned at. Even though I knew I wanted to eventually transition to software, I accepted the role. My plan was to start working for them then slowly transition internally or externally to a software role. It was set to start in June, after I graduated.
19 |
20 | Then from February to June of 2021, in addition to going to classes, I worked on side projects and grinded [leetcode](https://leetcode.com/) on the side to prepare for future software engineering interviews. I knew that a lot of companies tested on data structures and algorithms so I spent dozens of hours doing just that.
21 |
22 | June finally rolled around and I got a DM from a startup based in San Fransisco. They said they thought I was a good fit for their developer advocate role and asked if I wanted to interview. The first thing I did was google what a developer advocate even was before starting their interview process. The skills for the role seemed to mesh well with mine, especially with my experience in building communities at my last startup and content creation. The role also seemed exciting, it was in San Fransisco so I'd get to move somewhere new, and it paid well. So when I got an offer, I decided to take it.
23 |
24 | ## Moving to San Fransisco
25 |
26 | The next month, in July, I packed my bags in Philadelphia and moved cross country to San Fransisco.
27 |
28 | I did two months with the startup I joined before they realized they didn't really need a developer advocate, and I got laid off at the end of August. At this point, I'm kind of panicking. I had just settled in a new appartment and bought furniture and was stuck with a 12 month lease in the country's most expensive city without a job. Not to mention, I'm an international student so there was additional pressure in landing a job soon in order to maintain my status in the US.
29 |
30 | I spent September applying and interviewing for developer advocate roles. I DMed CEOs and hiring managers on Twitter, asked my friends for referrals, and applied to tons of Linkedin jobs. After a few weeks, I was fortunate to recieve a few offers and ended up accepting a role at Vercel that I started in late September.
31 |
32 | Vercel has been an incredible ride so far. My boss trusts me and gives me the autonomy and support to do great work. My team inspires me on a daily basis and are incredibly helpful with feedback whenever I need it. I've been able to play a small part in organizing [Next Conf](https://nextjs.org/conf), interact and [grow our Next.js community](https://nextjs.org/blog/discord), and deliver a handful of [conference talks](https://www.youtube.com/watch?v=0mg2zD_DaOU&t=1s&ab_channel=Prisma). I feel fortunate to have found a place I fit so well in and a job I deeply enjoy.
33 |
34 | ## 2021 highlights
35 |
36 | Here are some of my highlights from 2021:
37 |
38 | - 10 side projects (including one for a [medical device that got a patent!](https://dvtpd.com/))
39 | - 90 commits to [open source](https://github.com/withfig/autocomplete) repos
40 | - Spoke at my [first 4 conferences](https://www.youtube.com/watch?v=0mg2zD_DaOU&t=1s&ab_channel=Prisma) on Next.js and Prisma
41 | - Met amazing people in San Fransisco & New York
42 | - Freelanced for 2 startups doing both software and marketing
43 | - Graduated from Drexel with a degree in Computer Engineering
44 | - Landed a dream job with Vercel as a developer advocate
45 |
46 | # Goals for 2022
47 |
48 | My 3 big goals for 2022 are the following:
49 |
50 | ## 1. Become a great frontend developer
51 |
52 | I'm still far from what I would consider a great frontend developer. There's no good definition for this but I like to think of a great frontend developer as someone who can implement any UI design in pixel-perfect fashion. A developer who thinks about accessibility, usability, UX, and just executes on creating beautiful user interfaces. That's what I want to get to.
53 |
54 | As such, this is one of my big goals for 2022. I plan to accomplish this by going through some great resources like [Josh Comeau's CSS course](https://css-for-js.dev/) and [TypeScript in 50 lessons](https://typescript-book.com/). After that, I'm just going to be building as much as possible. My own side projects, cloning popular apps, and contributing to OSS. I'm lucky to be in a place in my life right now where I don't have too much going on besides work and I want to work hard early in my career to set myself up for success in the future, so I'm dedicating 15 hours a week outside of work to do this.
55 |
56 | ## 2. Build better personal habits
57 |
58 | I realized I don't have great habits and want to actively change that. A few habits I want to build are:
59 |
60 | - **An early sleep schedule (10pm-6am).** I find I'm most productive in the early mornings.
61 | - **Getting in better shape.** I gained 15 pounds over the pandemic so I want to lose that and gain some muscle by exercising regularly and eating healthy.
62 | - **Becoming a better cook.** I want to learn a few new dishes and get more comfortable in the kitchen.
63 | - **Get my driver's license.** I'm 23 and still don't have one, which is crazy in the US since most people get their licenses at 16 here.
64 | - **Take care of my health.** I want to make sure I go to the dentist and doctor regularly and get all the work I need taken care of.
65 |
66 | ## 3. Release content regularly
67 |
68 | My last goal revolves around content. This goes back to learning in public; something I love to do but haven't done enough of this year. Through simply learning and taking notes, the idea is to have enough content to be able to write at least 2 blog posts and 2 videos a month. I want to focus on systems over goals, meaning I want to build a great system that enables me to release high quality content consistently as opposed to shooting for a specific number so this is just a baseline for now. I want to experiment with regular YouTube videos, 60 second videos on Twitter/Linkedin, and Tiktok. I want to do a bit of everything then double down on the platforms that do well.
69 |
70 | # Conclusion
71 |
72 | And that's a wrap. For those of you that made it this far, thanks so much for reading. To follow along while I document my journey and learnings, [follow me on Twitter](https://twitter.com/Nutlope). And if you have any questions or comments for me, my DMs are wide open!
73 |
74 | I'm looking forward to an excellent 2022. Happy 2022 everyone!
75 |
--------------------------------------------------------------------------------
/data/blog/2022.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: '2022 Year in Review'
3 | date: '2023-01-01T22:40:32.169Z'
4 | tags: ['reflection', 'devrel', 'career']
5 | draft: false
6 | summary: 'A reflection on what my year looked like, what I accomplished, and my goals for 2023.'
7 | layout: PostLayout
8 | ---
9 |
10 | 2022 was a year of much needed stability for me. After working for 5 different companies last year and living in 3 different cities, I finally found a place I fit in and a job I love. I've been at Vercel now for a little over a year and got to work on lots of cool projects, traveled within the US, and spent a lot of quality time with my family. I'm incredibly grateful for all the opportunities I've had in 2022 and the people I've met along the way.
11 |
12 | ## 2022 highlights
13 |
14 | Here are some of my highlights from 2022:
15 |
16 | - Coded [15 web apps](https://twitter.com/nutlope/status/1609737208746868736)
17 | - Organized [3 Vercel meetups](https://twitter.com/nutlope/status/1574791298506276871) in 3 different cities
18 | - Made [6 short twitter videos](https://twitter.com/nutlope/status/1486899506981609482)
19 | - Helped run one of the largest conferences for web devs: Next.js Conf
20 | - Contributed 30 PRs to different open source projects, mostly Next.js
21 | - Got promoted at my job to Senior Developer Advocate
22 | - Made friends in SF, Austin, & Miami
23 |
24 | ## 2022 evaluation
25 |
26 | Looking back at my goals for the year, they were to:
27 |
28 | 1. Become a great frontend developer
29 | 2. Build better personal habits
30 | 3. Release content regularly
31 |
32 | I'd say I did pretty well on goal #1. I'm still far from a great frontend developer but I'm much better than I was at the beginning of the year. For building personal habits, I only accomplished half of these. I got my driver's license and took better care of my health but I still need to get a better sleep schedule, get in shape, and be a better cook. As far as releasing content, I also partially did this. I released a total of 4 blog posts and 6 twitter videos over the whole year when my goal was 24 blog posts and 24 videos. A little underwhelming.
33 |
34 | Overall, I'd say I accomplished nearly half of these goals. The rest of them I'm going to carry over to 2023.
35 |
36 | # Goals for 2023
37 |
38 | I have 5 goals for 2023:
39 |
40 | ## 1. Spend 15h/week coding side projects
41 |
42 | I learned the most building coding projects in 2022, whether that was at work or in my free time. In 2023, I'm committing to spending 15h a week outside of work coding. I'm privelaged to be in a position in my life right now where I'm single, still living at home, and don't have too many other obligations. I want to take advantage of this time to build as much as possible.
43 |
44 | I'm going to push for coding projects at work and at the same time, build some impressive side projects. I built a bunch of web apps in 2022 but they were smaller. The motto for 2023 is going to be fewer but more impressive projects.
45 |
46 | ## 2. Go to the gym 4x/week and lose 20 pounds
47 |
48 | I gained 15 pounds in 2022 that I want to lose plus gain some muscle. This is probably one of my top goals of 2023 – I want to take my execise and eating seriously. I'm going to go to the gym 4x a week and eat healthy.
49 |
50 | ## 3. Publish 2 videos and 1 blog post per month
51 |
52 | This goal revolves around content. This goes back to learning in public; something I love to do but haven't done enough of this year. I want to focus on systems over goals, meaning I want to build a great system that enables me to release high quality content consistently as opposed to shooting for a specific number so this is just a baseline for now. These will likely be short two minute videos that I'll post to Twitter and one blog post that I'll be posting here on my blog.
53 |
54 | The issue with this goal is it takes away time I could be coding, but I think two short videos and 1 blog post a month is low enough that it shouldn't impact my time too much.
55 |
56 | ## 4. Better personal habits
57 |
58 | Pretty self explanatory but I want to build better personal habits for my life. I want to get disciplined with my sleep schedule, cook most of my meals, and accomplish some religious goals too.
59 |
60 | I've noticed that having an erratic sleep schedule like I do now makes it where I'll be extremely productive one day, but won't do much work the next. My mood is also all over the place when I don't have a consistent sleep schedule.
61 |
62 | For meals, I've been eating a lot of delivered food as well as some home cooked meals thanks to my wonderful mom). I want to learn how to cook for myself.
63 |
64 | ## 5. Spend more time with family and friends
65 |
66 | This is one I want to prioritize because at the end of the day, it's all about the people in your life. I'm going to make a more concious effort to spend more time with family and friends this year.
67 |
68 | # Conclusion
69 |
70 | And that's a wrap. For those of you that made it this far, thanks so much for reading. To follow along while I document my journey and learnings, [follow me on Twitter](https://twitter.com/Nutlope). And if you have any questions or comments for me, my DMs are wide open!
71 |
72 | I'm looking forward to an excellent 2023. Hope you all have a great year as well!
73 |
--------------------------------------------------------------------------------
/data/blog/build-or-sell.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'Build or Sell: The two critical skills in tech'
3 | date: '2019-11-16'
4 | tags: ['tech strategy', 'business', 'naval']
5 | draft: false
6 | summary: "A writeup of the two major skills in tech, how they fit in, and why they're important."
7 | layout: PostLayout
8 | ---
9 |
10 | If you want to be invaluable in the tech industry, you need to learn to build or sell. These two skills are arguably the most important in the tech space since every crucial role falls under one of them.
11 |
12 | Let's dive into what they mean, why they're important, and what they can look like, specifically in the tech industry.
13 |
14 | ## Building
15 |
16 | Building is the process of adding business value in some way. This can manifest itself in different forms, including:
17 |
18 | - Building new features for an application
19 | - Writing code to build an MVP
20 | - Designing the next iteration of a mobile app on Figma
21 | - Building a website with a no-code tool like Bubble or Wordpress
22 | - Managing a service
23 |
24 | ## Selling
25 |
26 | Selling on the other hand is the process of convincing someone to do something. Selling will look different depending on the business model and stage of the company. It could be:
27 |
28 | - Selling to customers in the form of copywriting, outbound sales, or online marketing
29 | - Designing landing pages or sales funnels
30 | - Selling the company's vision to investors when raising money through pitching
31 | - Selling upper management on what features or products to prioritize as a product manager
32 | - Inspiring direct reports by selling the company's vision
33 | - Selling the company's culture to prospective employees to attract talent through recruiting
34 |
35 | ## Conclusion
36 |
37 | At the end of the day, every critical role in a tech company will fall under building or selling. One also can't operate without the other. You cannot sell something that doesn't exist and you can't simply make a great product and not sell it. Nobody will buy it if nobody has heard about it.
38 |
39 | Learn how to do one very well, and you'll become an asset to any business you join. If you're a startup founder, you should be able to do both.
40 |
41 | > "Learn to sell, learn to build. If you can do both, you will be unstoppable." - Naval
42 |
43 | Just knowing what category your role falls under and how it fits into the bigger picture of your organization is invaluable. You'll have more insight into choosing the right problems to work on and how you can add value to your company.
44 |
45 | **Actionable advice**: Learn to build (coding, designing, managing) or sell (copywriting, marketing, sales, PM). Become really good at one of them, then learn one skill on the opposite category to build your [talent stack](https://www.elmghari.com/talent-stack/) and become unstoppable.
46 |
--------------------------------------------------------------------------------
/data/blog/building-a-community.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'How to Build a Community'
3 | date: '2021-05-26'
4 | tags: ['community', 'devrel']
5 | draft: false
6 | summary: 'Lessons learned from building a 700k member gaming community for my startup and how you can build your own community.'
7 | layout: PostLayout
8 | ---
9 |
10 | After a wonderful [twitter spaces talk](https://twitter.com/FrancescoCiull4/status/1397091909487693827) yesterday with my friend [Francesco](https://twitter.com/FrancescoCiull4) on how to build a community, I thought I'd write up a quick blog post on all the advice and thoughts I shared.
11 |
12 | ## Types of Communities
13 |
14 | Before I start, I'd like to address the fact that I'm not an expert on community building. I'm merely sharing what worked for me with building and monetizing a [large gaming community](https://twitter.com/ushockgaming), and hope that some of the strategies I used are useful for you as well.
15 |
16 | I'd also like to mention that there are broadly two types of communities. One where you try to grow as fast as possible and open it up to the general public like the one I ran. The second type is a smaller community where you really care about the quality of people inside. For example, some sort of think tank of people you want to brainstorm startup ideas with or a close intimate meetup group. You want to keep this group small and full of high quality people, so you limit members. Regardless of the type of community you run or would like to run, there is something in this blog post for you.
17 |
18 | ## Background
19 |
20 | With that out of the way, let's talk about how I managed to build a gaming community of over half a million members for my startup, UltraShock Gaming, with $0 of investment. Chances are, you don't have a gaming startup but may be interested in starting some sort of community or would like to learn how to grow one. Regardless, I hope some of the techniques I share in this blog post will be useful.
21 |
22 | Let me start off by giving you some background on my startup first. It started with me realizing how hard it was for game developers to get their games on PC platforms like Steam to sell. Steam required you to have several hundred people to vote and say they would buy your game before they would put it on the store. Small indie game developers did not have an audience like this, so I realized I needed a build a community of gamers who would be willing to help me accomplish this.
23 |
24 | ## The Process
25 |
26 | I contacted game developers who had their game on Steam, and asked them for a few copies of their game to give away in my community. This way, they would get some free marketing, and I'd make my group members happy by giving away free games. As it turns out, people really like free stuff. I made the giveaways happen daily and made them very easy to join. No clicking links or completing tasks, just a simple comment to join.
27 |
28 | I spent 2-3 hours a day contacting game developers to ask for games, posting the giveaways, picking winners, distributing games, and moderating my community. The first two months, we saw almost no traction. We had about 100 members in the group and I couldn't justify the ~20 hours a week I was putting into it. Then all of a sudden, we reached 1000 members after the third month. 6 months in, we had 50,000 members.
29 |
30 | After this, I ended up acquiring some other gaming communities and growing all of them to a collective 700,000 members. I then monetized through ads and sponsored posts, making about $9000 a year. More on that story [here](https://www.elmghari.com/startup-journey/) if you're interested.
31 |
32 | ## 5 Steps to Build a Community
33 |
34 | Now on to the million dollar question, how do you build a community? Here's the 5 step process I used that worked well for me.
35 |
36 | 1. **Define the mission/purpose of the community.** You want to answer the following questions: What does this community revolve around? Why should people join your community? Doing this clarifies the value proposition for new members.
37 |
38 | 2. **Think about what kind of interactions you want group members to have.** Will you have a weekly call with all the members? Will it be more async? If it is async, what is the recommended way for people to communicate? How do you get people to participate? What kind of events will you have?
39 |
40 | 3. **Choose the right platform.** Depending on your target community member, choose a platform that makes the most sense. For gaming, I chose a Steam group (similar to a FB page) since that's where most gamers hang out. I probably wouldn't have been able to grow as much as I did on another platform. For reference, we had 700k members on Steam and only about 30k on Facebook. So consider various platforms like Twitter, Facebook, or Discord, or community specific ones like Circle.
41 |
42 | 4. **Map out the new member onboarding flow.** What happens when a new member joins? Will they be confused and thrust into a discord server with 20 channels that are mostly inactive? Or will they be guided by a strong onboarding process that immediately shows them what the group is about and how they can interact with others?
43 |
44 | 5. **Get help running the community after it's established.** It's very time consuming to run a community alone. When it gets to a certain point, get volunteers or appoint community ambassadors to help take the weight off your shoulders.
45 |
46 | ## Lessons Learned
47 |
48 | Here are two of the biggest lessons I learned when building my community.
49 |
50 | 1. **Maintain consistency.** This is one of the most important and hardest steps to maintain. It's very easy to lose motivation to keep growing a community, especially in the beginning when you're not seeing any results. In the beginning you'll feel like you're giving and giving, but not getting anything back and that's perfectly normal. You just need to persevere through this phase.
51 |
52 | 2. **When in doubt, niche down.** I started with game giveaways and expanded to mini-games, hosting game servers, and more. Having a singular focus in the beginning allows you to be a more focused community and is generally less work than supporting multiple niches.
53 |
54 | ## Conclusion
55 |
56 | At the end of the day, building a community is hard. Think about if you want to go this route and why you'd want to build one. If you find a compelling reason to, I hope this blog post can help guide you and allow you to learn from the mistakes I made.
57 |
58 | If you're building a community, have any questions for me, or would like to share your thoughts on this subject, I'd love to hear from you on [Twitter](https://twitter.com/Nutlope)!
59 |
60 | > “Alone, we can do so little; together, we can do so much” – Helen Keller
61 |
--------------------------------------------------------------------------------
/data/blog/devrel.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'What is Developer Advocacy?'
3 | date: '2022-01-17T22:40:32.169Z'
4 | tags: ['devrel', 'devtools', 'community']
5 | draft: false
6 | summary: 'What developer relations is, what the 3 main areas are, and how to get job in DevRel.'
7 | layout: PostLayout
8 | images: ['static/images/pillars-of-devrel.jpeg']
9 | ---
10 |
11 | You might have seen Developer Relations (also referred to as DevRel or Developer Advocacy) around Twitter lately and been confused on what it was. Or maybe you have a fuzzy understanding of DevRel and want to learn more about it to try to get a job in it.
12 |
13 | Either way, this blog post is for you. We're going to be talking about what developer relations is, exploring its 3 main areas, then talking about how to land a job in this field.
14 |
15 | ## The 3 Pillars of DevRel
16 |
17 | Before we discuss the pillars of DevRel, let's give a quick overview of what it is. DevRel is a role that exists at developer tool companies (companies whose target market is developers). Developer Advocates help raise awareness for a product and collect feedback from the dev community to improve it.
18 |
19 | DevRel has 3 main categories: Community, Content, and Product. Some Devrels do one of these while others are focused on a couple; it ultimately depends on people's skillsets and what the company needs. Both as a startup hiring for devrel and as someone who wants to get into it, it's important to understand these areas to know which you want to focus on. Let's explore each one in more depth.
20 |
21 | 
22 |
23 | ### Community
24 |
25 | Community-focused DevRel usually centers around growing and managing a community of developers. This is typically a Slack or Discord community that's focused on a product or technology. Managing a community consists of greeting new members, answering questions, designing the community in an inclusive way, and making sure your members are getting value from the community. This can also include livestreams, events, and other activities that help the community grow.
26 |
27 | Being a technical community builder is a [very hot skill to have](https://www.swyx.io/community-builder/) nowadays due to the shift developer tool companies are making in the way they obtain their customers.
28 |
29 | ### Content
30 |
31 | Content-focused DevRel is about spreading awareness about a product through written and spoken content. This can involve writing blog posts, making videos, teaching workshops, recording podcasts, and more.
32 |
33 | ### Product
34 |
35 | Product-focused DevRel is about owning the developer exeprience of the product. In other words, it's about improving how it feels for a developer to use a specific product. This can be done by talking to users to understand how they're using it, then making improvements to the documentation and creating guides based on their answers.
36 |
37 | This can also extend to the product ecosystem so working on code examples, templates, and integrations is also common.
38 |
39 | ## Getting a DevRel job
40 |
41 | This is a relatively new role so to stand out though, you should try to have 2 out of 3 of these.
42 |
43 | 1. You can code. For this, you can show off some of your side projects.
44 | 2. You can build communities. You can show off helping build a community or organization.
45 | 3. You're a good content creator. You can show off your talks, YouTube videos, tweets, and blog posts for this one.
46 |
47 | While there aren't pre-requisites for the job, it's very helpful to have prior work in these areas to show off and get your career in developer advocacy started. **If you don't have prior work, you should start creating content (blogs, videos, side projects) that helps demonstrate you can already do the work.**
48 |
49 | Ultimately, this is a role for engineers who enjoy working with developers, creating content, and managing communities.
50 |
51 | ## Conclusion
52 |
53 | As long as you can demonstrate the skills above, you'll likely have no issues finding a role. I also suggest having a website or writing up a document with links to your work to include in your applications. I have a list of some startups that are hiring [here](https://twitter.com/Nutlope/status/1440814837542514703).
54 |
55 | I hope this clarified some things for you regarding what DevRel is. If you have any questions, feel free to shoot me a [DM on Twitter](https://twitter.com/Nutlope)!
56 |
--------------------------------------------------------------------------------
/data/blog/leading-devrel.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'Leading DevRel at a Silicon Valley startup'
3 | date: '2022-11-10T22:40:32.169Z'
4 | tags: ['devrel', 'devtools', 'reflection']
5 | draft: false
6 | summary: 'What I did and learned when I led developer relations at Fig.'
7 | layout: PostLayout
8 | images: ['static/images/leading-devrel.png']
9 | ---
10 |
11 | Moving to San Fransisco and working for a startup in Silicon Valley has been a dream of mine for a while. As a fresh college graduate last year, I got a chance to make it a reality.
12 |
13 | I want to tell the story of leading [developer relations](https://www.whatisdevrel.com/) at an early stage devtool startup called [Fig](https://fig.io/). It all started with a Twitter DM, that lead to an interview, that a few weeks later, led to me moving across the country to San Fransisco.
14 |
15 | ## The work
16 |
17 | We were a small and scrappy team of 6 having recently raised a seed round of two million dollars. And we just needed to execute.
18 |
19 | The fast pace was no joke. In the first week, we spent 12 hours a day at the office for onboarding, that then decreased to 10-11h a day. The founders spent even more time working. We prioritized tasks on a week by week basis which led to me being able to work on a wide variety of things. In terms of the [3 pillars of developer advocacy](https://twitter.com/Nutlope/status/1459765327047315460), I was lucky to do work in every pillar.
20 |
21 |
22 |
23 | # What I did
24 |
25 | What I did while I was at Fig can be broken down into five primary areas:
26 |
27 | ## 1. Discord
28 |
29 | I helped grow the Fig Discord community by DMing new users and answering questions from community members. At one point, I sent a personalized DM to every single new member that joined until it become unscalable.
30 |
31 | I also livestreamed myself contributing to Fig's open source repo weekly on the Discord to encourage our users to contribute and did a livestream with [Nader](https://www.youtube.com/watch?v=Avsjqc2uWQc) on Fig. I ended up helping them scale their Discord community from 1k members to over 2k over the two months I was there.
32 |
33 | ## 2. Twitter
34 |
35 | I came up with our [Twitter strategy](https://elmghari.com/twitter-strategy) and executed, posting around 5 tweets a week. Fig was a very visual product so I also recorded a lot of short videos and GIFs to show it off.
36 |
37 | We also ran promotions and giveaways on Twitter. Fig was invite-only at the time so we partnered with popular developer influencers to give away hundreds of Fig invites and increase our userbase. I ended up growing their Twitter from 2k to over 4.5k followers.
38 |
39 | ## 3. Open Source
40 |
41 | Another thing I did was manage our [open source repo](https://github.com/withfig/autocomplete). Along with a part-time team member, I reviewed dozens of PRs with some back and forth with our contributors to make sure we were pushing quality code and following best practices.
42 |
43 | I also submitted several PRs myself – a total of [63 commits and 19k lines of code](https://github.com/withfig/autocomplete/graphs/contributors). Some of this code was generated using CLI parsers and scripts that I wrote. You can look through my commits [here](https://github.com/withfig/autocomplete/commits?author=Nutlope).
44 |
45 | ## 4. Writing code
46 |
47 | Another area I helped with was the frontend for our Fig settings app. I redesigned and reimplemented it, fixed some bugs, and added features to make it easier for users to customize their settings.
48 |
49 | I also helped with creating parsers for popular CLI tools like curl and GCC. I did this to programatically grab all the different options and arguments of a CLI tool and generate a completion spec so Fig could [autocomplete](https://twitter.com/fig/status/1424856260780847113) for them.
50 |
51 | ## 5. Developer Experience
52 |
53 | The final thing I did was help improve the overall developer experience of the product. I collected feedback from users each week through Discord chats, Twitter DMs, zoom calls, and my livestreams and relayed it over to our engineering team.
54 |
55 | I also revamped our entire documentation to improve the UI, base it on the Divio system (seen below) and write a few extra guides. Naturally, our docs used Next.js and were hosted on Vercel :)
56 |
57 | [](https://documentation.divio.com/)
58 |
59 |
60 |
61 | # Lessons Learned
62 |
63 | Overall, my work contributed to us getting thousands of new members in our Discordm Twitter, and waitlist, which lead to more OSS contributors, more Github stars, and significantly more users. I'm proud of the work I did while at Fig.
64 |
65 | It was a hectic and rewarding couple months and even though it didn't work out in the end, I'm extremely thankful to Fig to giving me my start in the world of silicon valley startups and developer relations.
66 |
67 | They taught me how to ruthlessly prioritize and focus on the biggest pain points first. They taught me that a plan means nothing without solid execution. And they taught me that unexpected events occur and you need to be ready to deal with them.
68 |
--------------------------------------------------------------------------------
/data/blog/naval-almanack.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'The Naval Almanack - 8 key takeaways'
3 | date: '2021-01-28'
4 | tags: ['tech strategy', 'business', 'naval']
5 | draft: false
6 | summary: "My main takeaways from a book packed with naval's wisdom on life and tech."
7 | layout: PostLayout
8 | ---
9 |
10 | Here are my top 8 takeaways from [The Naval Almanack](https://www.navalmanack.com/) by Eric Jorgenson, an excellent book summarizing Naval's thoughts on how to live life and have a successful career.
11 |
12 | ## Takeaway #1: Build wealth
13 |
14 | Wealth can be defined as assets that earn while you sleep.
15 |
16 | Note that traditional employment doesn't count as wealth because you're simply trading your time for money with no leverage. You won't get rich renting out your time.
17 |
18 | Examples of wealth:
19 |
20 | - Info products like courses or books
21 | - Monetized YouTube, podcast, or newsletter
22 | - Running a startup or a saas
23 | - Owning a part of a business
24 | - Real estate that you rent out
25 |
26 | To become wealthy, Naval recommends playing iterated games to take advantage of compounding. These games can include building an audience, practicing a skill over the long-term, or investing.
27 |
28 | As a personal example, I spent roughly 3 hours a day for a month trying to grow a [game marketing community](https://twitter.com/ushockgaming) that I planned to monetize by doing free game giveaways. I'd spent over 80 hours by the end of the month and we didn't only grew by a few hundred members. I could have easily given up, but I stayed with it and within another 5 months, we hit 50,000 members. Consistency over an extended period of time pays off.
29 |
30 | Naval also advocates becoming the best in the world at what you do. This doesn't necessarily mean you need to be the best at a singular skill but rather be the best at whatever you do by cultivating a unique [talent stack](https://www.elmghari.com/talent-stack/).
31 |
32 | ## Takeaway #2: Change yourself
33 |
34 | The ability to change yourself is a superpower.
35 |
36 | Detach your habits from your identity. Study yourself, take habits apart, and analyze them to determine if they're something you should stop doing.
37 |
38 | You should always be internally ready for a complete change. Discard bad habits and build good ones.
39 |
40 | ## Takeaway #3: Grow trust by building in public
41 |
42 | Building trust is how people trust you with more responsibility (and more importantly, money).
43 |
44 | To build trust:
45 |
46 | - Keep great business relationships with individuals
47 | - Do high quality work in a visible and accountable way
48 | - Do things with integrity
49 |
50 | Most people have a problem working in a highly visible way because they're afraid for the world to see their failures. But to get rich you need leverage, which needs labor or capital, which needs credibility, which you can build through working in a visible and accountable way.
51 |
52 | Build & fail in Public. People will forgive failures as long as you were honest and made a high-integrity effort.
53 |
54 | ## Takeaway #4: Take Action
55 |
56 | Inspiration is perishable — act on it immediately.
57 |
58 | Don't spend too much time searching for the one thing you should be doing, just aim to be directionally correct. The direction you’re heading in matters more than how fast you move. So pick the right direction and just start walking.
59 |
60 | Always have a bias towards action. Have an idea? Execute. Think you should send someone a cold email? Do it. Get stuff done.
61 |
62 | One of the biggest indicators of future success is having a bias for action.
63 |
64 | ## Takeaway #5: Invest Deeply
65 |
66 | 99% of effort is wasted.
67 |
68 | For most things (relationships, work, learning), try to find the thing you can go all-in on to earn compound interest. Move slowly when choosing what to focus on, then move very quickly once you've decided. Wait for your moment when something emerges in the world, they need a skill set, and you’re uniquely qualified.
69 |
70 | When you find the right thing to do or the right people to work with, invest deeply. It will pay dividends in the future.
71 |
72 | A great example of this is [Traf](https://twitter.com/traf), he saw a unique opportunity that was 7 years in the making and [made \$100k in 6 days](https://tr.af/6).
73 |
74 | ## Takeaway #7: Be a permissionless apprentice
75 |
76 | Build your brand by giving away free quality work.
77 |
78 | Do you code? Build a beautiful full-stack application and open source it. Do you design? Re-design websites, logos, or apps and write a case study.
79 |
80 | Two great examples of this are Dru Riley and Jack Butcher. Jack designed made up products for brands to establish himself as a unique designer before starting the widely successful [Visualize value](https://twitter.com/visualizevalue). He now makes \$1m+ per year from his digital products and private community.
81 |
82 |
83 | 
84 |
85 |
86 | Dru started writing concise reports on trends in February and initially gave them away for free. 7 months later, he quit his job and now makes \$250k+ per year selling premium versions of his reports through [Trends.vc](http://trends.vc).
87 |
88 | ## Takeaway #8: Cultivate Specific Knowledge
89 |
90 | Specific Knowledge is knowledge that can be learned but can't be taught (only learned through experience).
91 |
92 | It's found by pursuing your talents, curiosity, and passion. Books can help a little but you can only get that level of tacit knowledge from pursuing something in great detail over a long period of time. Choose something and execute, self-correcting along the way.
93 |
94 | When building your specific knowledge, you need to master the fundamentals so you can explain anything to a child. That's when you really know it.
95 |
96 | Make the time to think by budgeting a full day each week and doing nothing but reading and resting.
97 |
98 | ## Conclusion: Naval's Top Advice
99 |
100 | The Naval Almanack was an incredible book jam-packed with insights; the type of book where you want to highlight every sentence. I'll be re-reading over the next few years to really absorb the knowledge and make sure I'm applying it. I'll leave you with this.
101 |
102 | When asked what the top principles he would pass on to his kids were, Naval said:
103 |
104 | 1. Read for fun and to collect mental models
105 | 2. Learn math, the language of nature
106 | 3. Learn persuasion, to influence others
107 |
108 | _If you had any questions or want to say hi, please reach out to me on [Twitter](https://twitter.com/Nutlope) - I'd love to hear from you. Thanks for reading!_
109 |
--------------------------------------------------------------------------------
/data/blog/scrum-master.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'How I became a certified Scrum Master in 3 days'
3 | date: '2020-09-11'
4 | tags: ['business']
5 | draft: false
6 | summary: 'A detailed post on exactly how I got my Professional Scrum Master certification in 3 days, and how you can too.'
7 | layout: PostLayout
8 | ---
9 |
10 | I wrote this guide to share exactly how I studied and [passed](https://www.scrum.org/user/718363) the [Professional Scrum Master I](https://www.scrum.org/professional-scrum-master-i-certification) certification, and how you can too. Let's get started!
11 |
12 | # What is Scrum?
13 |
14 | Scrum is a framework that helps teams work together to solve a complex problem. It's primarily used in software development and encourages teams to self-organize, keep progress transparent, and continuously plan, reflect, and adapt.
15 |
16 | Whether you're just learning what scrum and agile mean for the first time, or you already work in a team that uses these principles, it may be worth it to get scrum master certified to both learn these principles and prove your knowledge to employers. My goal for taking it was to get familiar with the agile methodology and serve as an accomplishment on my resume for job hunting.
17 |
18 | This certification costs \$150, has no requirements, and is taken online.
19 |
20 | _Note that the certification I passed was the [PSM I](https://www.scrum.org/professional-scrum-master-i-certification) certification, not the [CSM](https://www.scrumalliance.org/get-certified/scrum-master-track/certified-scrummaster). They are different - I generally recommend the PSM as it doesn't require you to complete an expensive training like the CSM._
21 |
22 | # My Process
23 |
24 | I dedicated three days for studying - here is everything I did to study for the exam broken down by day. I spent 4-5 hours per day on these tasks.
25 |
26 | ## Day 1
27 |
28 | - Read the [Scrum Guide](https://www.scrumguides.org/scrum-guide.html), an 18 page document written by the founders of Scrum. This is the **main** document that the exam is based on
29 | - Re-read the Scrum Guide, taking detailed notes this time
30 | - Go over the [Scrum glossary](https://www.scrum.org/resources/scrum-glossary) and take notes. These terms are referred to in the exam so make sure you know them
31 |
32 | ## Day 2
33 |
34 | - Review Scrum Guide notes
35 | - Review Scrum Glossary notes
36 | - Do the [Scrum Open Assessment](https://www.scrum.org/open-assessments/scrum-open). This is a 30 question practice exam from the official Scrum organization [Scored 75%]
37 | - Do Mikhail Lapshin's practice quiz in [learning mode](https://mlapshin.com/index.php/scrum-quizzes/sm-learning-mode/) [Scored 78%]
38 | - Do Mikhail Lapshin's practice quiz in [real mode](https://mlapshin.com/index.php/scrum-quizzes/sm-real-mode/) [Scored 93%]
39 | - Valentin Depsa's [Udemy Course](https://www.udemy.com/course/scrum-master-certification-preparation-mock-exam-questions-psm-i/), sections 1-9. This was great to visualize the material from the Scrum Guide and see it in practice
40 | - Valentin Depsa's practice exam #1 [Scored 85%]
41 |
42 | ## Day 3
43 |
44 | - Review Scrum Guide notes
45 | - Review Scrum Glossary notes
46 | - Review notes from practice exams
47 | - Valentin Depsa's practice exam #2 [Scored 82%]
48 | - Do the [Scrum Open Assessment](https://www.scrum.org/open-assessments/scrum-open) a second time [Scored 92% this time]
49 | - Take the exam [passed with 97.5%]
50 |
51 | # Tips for the exam
52 |
53 | If you follow what I did, you'll be more than ready for the exam. Here are a few additional thoughts I want to stress:
54 |
55 | - Look over your notes each day to reinforce the material
56 | - Note what questions you got wrong from practice exams (either in flashcards or jot them down) to review so you don't make the same mistakes on your certification
57 | - The main material of the exam is the [Scrum Guide](https://www.scrumguides.org/scrum-guide.html). I **highly recommend** reading this at least 2-3 times and knowing it well
58 |
59 | # Conclusion
60 |
61 | You now have all the tools and resources you need, along with a detailed process you can follow or refer to. Go get that certification!
62 |
--------------------------------------------------------------------------------
/data/blog/standout-dev-review.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'The Standout Developer - 5 Key Takeaways'
3 | date: '2020-08-30'
4 | tags: ['coding', 'career']
5 | draft: false
6 | summary: "This is a writeup of my top 5 key takeaways from Randall Kanna's book, The Standout Developer."
7 | layout: PostLayout
8 | ---
9 |
10 | ## description: This is a writeup of my top 5 key takeaways from Randall Kanna's book, The Standout Developer.
11 |
12 | As I was reading [The Standout Developer](https://www.thestandoutdeveloper.com/), a book about taking your developer career to the next level, I created a [twitter thread](https://twitter.com/Nutlope/status/1297929885659398145) of my top takeaways from the book. It got some attention, so I decided to write a blog post where I can focus on the top 5, expand on them some more, and include some of my own thoughts.
13 |
14 | ## Takeaway #1: Pick a niche and own it
15 |
16 | There are many schools of thought for whether you should specialize in one technology or stay a generalist. No matter what you believe in, the basic truth is that your market value increases when you specialize.
17 |
18 | The author tells her story about specializing in blockchain, writing blog posts / speaking at meetups, and eventually authoring a blockchain O'Reilly book, and how picking her niche in blockchain led to several oppurtunities and job offers.
19 |
20 | The 5 steps to accomplishing this are:
21 |
22 | 1. Pick something specific to learn about and become good at it
23 | 2. Share your knowledge publicly (blogs/Twitter/YouTube)
24 | 3. Consistently provide value & become known as an expert
25 | 4. Apply to speak at conferences & local meetups
26 | 5. Write a book / Create a course on it
27 |
28 | Here's the kicker: You don't have to do blockchain (or whatever you decide to specialize in) forever. Similar to the author, you may do it for 1-2 years, get bored of it, and move on to the next thing that excites you.
29 |
30 | The best part? Your reputation travels with you regardless of what you decide to specialize in.
31 |
32 | ## Takeaway #2: How to do well on Twitter
33 |
34 | Twitter is one of the best ways to network online as a developer. You get to see & participate in technical discussions, and learn what projects the experts in your field are working on (as well as benefit from their advice).
35 |
36 | One piece of advice the author gives is that you should know your audience and tailor your tweets. Think to yourself about what topics you want to tweet about and the type of people you want to attract. This may take some trial and error at first, but once you figure it out, it becomes easier to create tweets that add value since you're writing for a specific group of people.
37 |
38 | Another interesting piece of advice is to answer DMs to help others and try to commit time every now and then to benefit the community (Randall did it through offering free personalized resume reviews).
39 |
40 | > If I could summarize my general approach to Twitter it’s to
41 | > share interesting things that I encounter as they happen. - Daniel Vassallo
42 |
43 | Tweet about anything that you feel can help others in some way. Tweet about something new you've learned that made you go, "Wow I wish I knew that before". The general rule of thumb is don't tweet if you're not adding value.
44 |
45 | ## Takeaway #3: The power of documentation
46 |
47 | Reading without taking notes:
48 |
49 |
50 | 
51 |
52 |
53 | We forget the vast majority of what we read. To combat this, taking notes when we're learning (and revisiting those notes periodically) is key for a myriad of reasons.
54 |
55 | One, taking notes when someone explains something to you enables you to move faster, always have a reference, and shows respect for the other person's time.
56 |
57 | Taking note of what you're doing daily/weekly can also help you remember your accomplishments to better market yourself and notice trends in the way you're doing things to improve.
58 |
59 | ## Takeaway #4: Building a great portfolio
60 |
61 | Building a great portfolio is an important piece of getting an interview. Companies want to see what you can do.
62 |
63 | The author recommends one high quality project that really showcases your talent as opposed to many smaller projects. Ideally, the high quality project should have the following attributes:
64 |
65 | - Clean & easy to read code
66 | - Excellent documentation
67 | - Well written tests
68 | - A README with screenshots, a link to the demo, and clear instructions on how to run it
69 |
70 | ## Takeaway #5: Powerful tips for your job search
71 |
72 | ### Personalize Everything
73 |
74 | Due to the ocean of resumes that get sent to job annoucements and companies' rising use of applicant tracking systems (ATS), personalization is key to stand out.
75 |
76 | First, you want to personalize your resume to fit key words in the job description in order to pass ATS and get your resume read by an actual person. You can use tools like [JobScan](https://www.jobscan.co/) to optimize your resume for this.
77 |
78 | After that, you want to write a personalized cover letter, send a cold email to the company about why you want to work there, and/or reach out to some employees on LinkedIn for an [informational interview](https://hbr.org/2016/02/how-to-get-the-most-out-of-an-informational-interview).
79 |
80 | Finally, you want to network at meetups, events, and conferences. Unfortunately, these days, it's more about who you know than what you know. If you make strong connections on Twitter, LinkedIn, or at meetups, you can lean on these contacts for referrals and advice when the time comes.
81 |
82 | ### Referrals. Are. Huge.
83 |
84 | According to [careerpivot](https://careerpivot.com/2017/employee-referrals-ticket-next-job/), if an employee refers you for a position you have a ~50% chance of getting an interview versus the ~3% chance if you weren't referred.
85 |
86 | Doing these things will greatly increase your chances of getting an interview (and landing a job).
87 |
88 | ### Technical Interview Prep
89 |
90 | The #1 rule to remember about this step is that practice makes perfect. Make a plan, be disciplined, and stick to it. Even better, find an accountability buddy to give you more motivation to keep going.
91 |
92 | If you'd like to go above and beyond, [Madison Kanna](https://twitter.com/Madisonkanna) has an interesting take. She advises individuals to try to provide value to a company first before getting hired, either by helping them solve a problem or implement a feature.
93 |
94 | ## Conclusion
95 |
96 | All in all, [The Standout Developer](https://www.thestandoutdeveloper.com/) was a great, short read filled with relevant information for any developer seeking a job. It read like a series of blog posts jumping from one topic like blogging to another like preparing for technical interviews. I want to note that these takeaways were just some things I felt were important for me (and hopefully for you too); the book did cover many other topics I didn't address.
97 |
98 | If you had any questions or want to say hi, please reach out to me on [Twitter](https://twitter.com/Nutlope) - I'd love to hear from you. Thanks for reading!
99 |
--------------------------------------------------------------------------------
/data/blog/talent-stack.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'How to Develop Your Talent Stack'
3 | date: '2020-11-03'
4 | tags: ['tech strategy', 'business']
5 | draft: false
6 | summary: 'A breakdown of how to be extraordinary by building your talent stack.'
7 | layout: PostLayout
8 | ---
9 |
10 | From a young age, we're taught that we need to be the best at one thing to be successful. But, this idea is becoming increasingly untrue in this age of infinite leverage.
11 |
12 | This path of being the best (top 1%) at a particular thing is an uphill battle. You’re directly competing with everyone else who wants to be the best at your skill. It requires lots of hard work, talent, and luck, and even then, it may not work out.
13 |
14 | Luckily, there is another way: Become very good at a few skills you can connect well. In other words, learn a set of complimentary skills that make you uniquely qualified. Scott Adams called this a talent stack.
15 |
16 | Before we get into how to build a talent stack, let us examine how Scott, a man with no extraordinary skills, created a \$75 million net worth.
17 |
18 | ### Scott Adam's Story
19 |
20 | Adam Scott is the writer and illustrator of [Dilbert](https://dilbert.com/), a popular comic strip. He publicly admits that he's not the best artist, writer, or comedian in the world. He says he was just a little better than average at each of these skills.
21 |
22 | What he did have is a strong work ethic, a sense of humor, some writing skills and some drawing skills.
23 |
24 | Individually, these skills are common. But together, they become dangerous. They become his talent stack.
25 |
26 | > “The idea of a talent stack is that you can combine ordinary skills until you have enough of the right kind to be extraordinary. You don’t have to be the best in the world at any one thing. All you need to succeed is to be good at a number of skills that fit well together.” - Scott Adams
27 |
28 | ### How can you build your talent stack?
29 |
30 | Explore your talents, curiosity, and passions. It may take some and trial & error to find the intersection of what you love, what you're good at, and what the world needs.
31 |
32 | Take some time to think about your end goal. Do you want to climb the corporate ladder in a particular field or industry? Do you want to freelance? Start a company? Your talent stack should be complimentary to what you want to do.
33 |
34 | Embrace this process and take your time. After some exploration, you want to end up with 2 skills to focus on.
35 |
36 | Some of my personal favorites:
37 |
38 | - Code + ML/AI
39 | - Sales + Design
40 | - Storytelling + Data Analytics
41 | - Code + Design
42 | - Design + Marketing
43 |
44 | Add a third and you'll be unstoppable.
45 |
46 | The trick is to become very good at a skill before you add another one. Not the best, but comfortably above average (top 25%). You don't want to be a jack of all trades and master of none. You want to master a few, taking your time as you focus on sharpening your skills.
47 |
48 | ### My Talent Stack
49 |
50 | Here's the talent stack that I'm developing right now:
51 |
52 | 1. Coding (full-stack web development)
53 | 2. Writing (communicating my thoughts clearly)
54 | 3. Business Strategy (analyzing businesses and identifying trends)
55 |
56 | Coding is very important to me because I like to build products and be able to code up quick prototypes. I'm getting better at this through building side projects.
57 |
58 | Writing is also crucial because I want to be able to scale myself. It allows me to share my thoughts, get feedback from others, and build an audience. I’m developing this skill through writing on twitter and this blog that you’re reading right now.
59 |
60 | Lastly, business strategy is an important skill to have as a startup founder. You need to be able to predict where the market is going and pivot accordingly. I’m improving at this through reading books, case studies, and keeping up with funding deals.
61 |
62 | I'm passionate about coding and startups, so that's what I chose to focus my talent stack on. I recently [sold](https://www.elmghari.com/startup-journey/) my latest startup and plan to start another eventually. But in the near future, my goal is to join a high-growth startup as a software engineer. I believe it's the best way to rapidly develop my talent stack.
63 |
64 | ### Conclusion
65 |
66 | Building your talent stack will give you a unique edge for particular roles or tasks. In doing so, you won't be competing with everyone else anymore. You won't be playing a [zero sum game](https://www.thestreet.com/politics/what-is-a-zero-sum-game-14818535).
67 |
68 | Instead, you'll be focusing on yourself, playing [positive sum games](https://twitter.com/naval/status/1182828053346607106), and building your own path.
69 |
70 | _Thanks for reading! Feel free to DM me on [Twitter](https://twitter.com/Nutlope) and I'd be more than happy to chat about your talent stack._
71 |
--------------------------------------------------------------------------------
/data/blog/time.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Time Management from a Dying Professor
3 | date: '2020-11-03T22:40:32.169Z'
4 | tags: ['business', 'productivity']
5 | draft: false
6 | summary: "My top 10 takeaways from Randy Pausch's brilliant last lecture."
7 | layout: PostLayout
8 | ---
9 |
10 | Time management from a dying professor.
11 |
12 | When Randy Pausch, a renowned Computer Science professor, got cancer, he decided to give one last lecture on time management before he died.
13 |
14 | These are my top 10 takeaways from his brilliant lecture.
15 |
16 | 1. Focus on the highest value tasks & ignore/delegate the rest (see #4)
17 |
18 | 2. Strive for good enough to take advantage of the 80/20 rule, but make sure you do it right
19 |
20 | 3. "Finding time to do things" doesn't exist. You need to make time by actively choosing not to do something else
21 |
22 | 4. Use the Eisenhower decision matrix to categorize tasks.
23 |
24 | If it's urgent + important, do it now.
25 | If it's non-urgent + important, schedule a time to do it
26 | If it's urgent + not important, try to delegate it
27 | If it's non-urgent + not important, ignore it
28 |
29 | 
30 |
31 | 5. Make a fake deadline and pretend it's real to deal with procrastination
32 |
33 | 6. Work to slowly minimize wasted time through weekly reflections and periodically tracking your time
34 |
35 | 7. You can't accomplish anything worthwhile alone. Write thank you notes to people who help you
36 |
37 | 8. Find your creative time, the few hours a day you are most productive in, and guard it with your life (no meetings)
38 |
39 | 9. Set an hourly rate for your time & value it more than your money. Try to outsource most things below your rate
40 |
41 | 10. It takes time to recover after you're interrupted. Checking your phone for 3 minutes takes ~10 minutes away from you, since you need to refocus.
42 |
43 | Minimize this by:
44 |
45 | - eliminating distractions (phone in another room)
46 | - batching tasks (checking email a few times a day)
47 |
48 | ### Conclusion
49 |
50 | Building your talent stack will give you a unique edge for particular roles or tasks. In doing so, you won't be competing with everyone else anymore. You won't be playing a [zero sum game](https://www.thestreet.com/politics/what-is-a-zero-sum-game-14818535).
51 |
52 | Instead, you'll be focusing on yourself, playing [positive sum games](https://twitter.com/naval/status/1182828053346607106), and building your own path.
53 |
54 | _Thanks for reading! Feel free to DM me on [Twitter](https://twitter.com/Nutlope) and I'd be more than happy to chat about your talent stack._
55 |
--------------------------------------------------------------------------------
/data/blog/twitter-strategy.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'Twitter Strategy for Devtool startups'
3 | date: '2022-01-15T22:40:32.169Z'
4 | tags: ['twitter', 'devrel', 'devtools']
5 | draft: false
6 | summary: "A practical guide for how to grow your developer tool startup's Twitter presence."
7 | layout: PostLayout
8 | images: ['static/images/twitter-cool.jpeg']
9 | ---
10 |
11 | Let me know if this sounds familiar. You click on a devtool startup's Twitter handle, and you see a series of tweets promoting their blog posts and webinars with 1-3 likes each, despite the startup having 10k followers on Twitter. Unfortunately, this is way too common.
12 |
13 | Developer tool startups understand that Twitter is the go-to place where developers hang out and know they need to have a solid Twitter presence to take advantage of this. However, most just _don't_ do a very good job at Twitter.
14 |
15 | This is a practical guide on how to consistently grow your startup's Twitter account, establish yourself as a market leader in a niche, and attract developers to your product. These strategies are based on more than doubling the growth of [Fig's Twitter account](https://twitter.com/fig), from 2,000 to over 4,500 followers in 7 weeks, and growing my [personal account](https://twitter.com/Nutlope) to 36k followers.
16 |
17 | ## Purpose
18 |
19 | The first thing you should consider are what your objectives are by growing your company presence on Twitter. It’s going to be an investment in terms of time & money so it’s important to clarify this. Here are some examples:
20 |
21 | - Establish your startup as a market leader in the Database/Observability/React space
22 | - Attract more software engineers to grow your user base
23 | - Attract talented engineers to work at your startup
24 |
25 | ## Metrics
26 |
27 | Progress can be measured through:
28 |
29 | - Twitter followers
30 | - Engagement % per tweet
31 | - Impressions per tweet
32 | - Number of replies on tweets
33 | - Number of people tweeting at your startup
34 |
35 | ## Brand
36 |
37 | You need to think about the personality of your brand to make sure there’s a consistent voice in tweets. Here are some questions you can answer.
38 |
39 | - What words do you want people to associate with your startup?
40 | - Do you want the tweets to be very professional or a little more edgy/playful?
41 | - Is there a style guide for tweets?
42 |
43 | ## Scope
44 |
45 | Another important topic to think about is the scope of the account. Do you want to only tweet from the company account or will you be using the account to respond to support questions?
46 |
47 | Do you want to interject yourself in conversations around a specific topic? For example, you can set up searches for keywords and respond to relevant conversations. This can also extend to other platforms like Reddit and Hackernews.
48 |
49 | Fun fact: Tools like [F5bot](https://f5bot.com/) can be used to monitor your brand or specific keywords on hackernews and reddit.
50 |
51 |
52 |
53 | # 5 Types of Tweets
54 |
55 | Now that we’ve established your reasons for growing on twitter, measuring growth, brand personality, and defining the scope of the company account, let’s talk about what kind of tweets you need to grow.
56 |
57 | Broadly speaking, you can classify tweets from a company account into 5 categories: funny, informational, company updates, questions, and asks. Let’s dive into each one and how often you should be using it.
58 |
59 | ### 1. Funny Tweets
60 |
61 | Funny tweets are memes that relate to some sort of developer struggle. The [Supabase](https://twitter.com/supabase) team does a good job at doing these memes, focused on databases since that’s their focus area. Note that not all startups should do these types of tweets; it depends on your brand image, target audience, and personality.
62 |
63 |
64 |
65 |
66 | I helped do this when I [led Devrel at Fig](https://www.elmghari.com/leading-devrel) as well, with memes focusing on the terminal.
67 |
68 |
69 |
70 |
71 | ### 2. Informative tweets
72 |
73 | These are just any useful tips and tricks that make you go, “WOW, I wish I knew that 2 years ago”. These can either be standalone tweets or a tweet thread. This helps establish yourself as an expert in a certain category if you’re constantly pushing out high quality tips and advice for a niche.
74 |
75 | In my opinion, a company blog post _does not_ fall under this category. This is because you're asking the user to click a link to read the post, which is a favor. Add that to the fact that the Twitter algorithm does not like links and you'll realize it's better to tweet out bite-sized nuggets instead. [Steve Schoger](https://twitter.com/i/events/994601867987619840) did this really well with posting bite-sized design tips to build a following and credibility, before compiling them into a book and [making $2m+](https://twitter.com/swyx/status/1279593886734639104).
76 |
77 | ### 3. Company Updates
78 |
79 | Announcing new features or company updates is great because it gives a sense of “we’re always shipping” to others and allows new users to find your product. Railway does a nice weekly changelog for this and Fig typically announces new features through 10-15 second screencasts since we found that those do well for our visual product.
80 |
81 |
82 |
83 | ### 4. Questions
84 |
85 | Questions can be teasers for new features, like the one to the left, or questions for interesting discussions like the one to the right. They usually don’t do great in terms of likes but can sometimes go viral because Twitter loves to promote Tweets that get a lot of replies, especially in quick succession. May the algorithm be with you.
86 |
87 |
88 |
89 |
90 | ### 5. Asks
91 |
92 | These are Tweets where you’re asking something of your audience. To check out your blog, jobs page, a podcast you were on, give you their email, ect... You should keep these tweets to a minimum. Ideally, you want to give (entertainment with funny tweets & useful information) many times before asking.
93 |
94 |
95 |
96 | # Tweeting Strategy
97 |
98 | You should think about the different types of tweets and come up with a cadence that works well for you. A sample one could be:
99 |
100 | We’re going to post 5 tweets a week. These will be:
101 |
102 | - 0% questions
103 | - 40% Informative tips (2 useful tweets centered around focus area per week)
104 | - 20% company updates (1 changelog or new feature annoucement per week)
105 | - 20% asks (Share 1 piece of content per week)
106 | - 20% memes (1 meme per week)
107 |
108 | Idea: Schedule your tweets each week with a tool like [Typefully](https://typefully.com/). You can
109 | pick the time where you typically get the most engagement and you don’t have to remember to post each day.
110 |
111 | ## Partnerships
112 |
113 | Partnering with developer influencers can also be a good idea. You can partner just for promotions like giveaways or paying for engagement. Thirdweb did this for their [launch tweet](https://twitter.com/thirdweb_/status/1470438460196536332) to the right, where they paid a bunch of influencers to quote tweet at a specific time.
114 |
115 | I’ve seen some companies even get developer influencers as “advisors” in their company where they just put them on the cap table so the influencers are incentivized to spread the word since they’re invested in the success of the company.
116 |
117 | ## Tips and Tricks
118 |
119 | - Ask people to follow you on Twitter when helping users 1:1 and in email drip campaigns after users have signed up. The reality is you need to drive more and more people to Twitter to grow exponentially. In addition to your tweets getting shared and growing organically, if you can funnel in even more followers from outside of Twitter from your blog, content, and emails, that’s great.
120 | - Exclusively only having text in your tweets is boring. Mix in images, GIFs, and screencasts where you can. Especially if you make a visual update (like adding something new to the dashboard). Look for excuses to show off how great your product looks.
121 | - Achievement tweets are great. We’ve reached 1000 users! We’ve reached 2000 Github stars. We’re reached 500 email newsletter subscribers! Whatever it is, it’s a good excuse to send it since it leads even more people to check it out.
122 | - If you have any popular angel investors, making them aware of your Twitter account (and then only posting quality content) will get them to interact with it more and potentially share some tweets.
123 |
--------------------------------------------------------------------------------
/data/headerNavLinks.js:
--------------------------------------------------------------------------------
1 | const headerNavLinks = [
2 | { href: '/blog', title: 'Blog' },
3 | { href: '/tags', title: 'Tags' },
4 | { href: '/about', title: 'About' },
5 | ]
6 |
7 | export default headerNavLinks
8 |
--------------------------------------------------------------------------------
/data/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/data/projectsData.js:
--------------------------------------------------------------------------------
1 | const projectsData = [
2 | {
3 | title: 'A Search Engine',
4 | description: `What if you could look up any information in the world? Webpages, images, videos
5 | and more. Google has many features to help you find exactly what you're looking
6 | for.`,
7 | imgSrc: '/static/images/google.png',
8 | href: 'https://www.google.com',
9 | },
10 | {
11 | title: 'The Time Machine',
12 | description: `Imagine being able to travel back in time or to the future. Simple turn the knob
13 | to the desired date and press "Go". No more worrying about lost keys or
14 | forgotten handphones with this simple yet affordable solution.`,
15 | imgSrc: '/static/images/time-machine.jpg',
16 | href: '/blog/the-time-machine',
17 | },
18 | ]
19 |
20 | export default projectsData
21 |
--------------------------------------------------------------------------------
/data/siteMetadata.js:
--------------------------------------------------------------------------------
1 | const siteMetadata = {
2 | title: "Hassan's Blog",
3 | author: 'Hassan El Mghari',
4 | headerTitle: 'Hassan El Mghari',
5 | description: 'A blog about devrel, tech, and coding',
6 | language: 'en-us',
7 | siteUrl: 'https://www.elmghari.com/',
8 | siteRepo: 'https://github.com/Nutlope/next-blog',
9 | siteLogo: '/static/images/logo.png',
10 | image: '/static/images/avatar.png',
11 | socialBanner: '/static/images/og-image.png',
12 | email: 'hassan@hey.com',
13 | github: 'https://github.com/nutlope',
14 | twitter: 'https://twitter.com/nutlope',
15 | facebook: 'https://facebook.com/nutlope',
16 | linkedin: 'https://www.linkedin.com/in/nutlope',
17 | locale: 'en-US',
18 | analytics: {
19 | // supports plausible, simpleAnalytics or googleAnalytics
20 | plausibleDataDomain: '', // e.g. tailwind-nextjs-starter-blog.vercel.app
21 | simpleAnalytics: false, // true or false
22 | googleAnalyticsId: '', // e.g. UA-000000-2 or G-XXXXXXX
23 | },
24 | newsletter: {
25 | // supports mailchimp, buttondown, convertkit
26 | // Please add your .env file and modify it according to your selection
27 | provider: 'buttondown',
28 | },
29 | comment: {
30 | // Select a provider and use the environment variables associated to it
31 | // https://vercel.com/docs/environment-variables
32 | provider: 'giscus', // supported providers: giscus, utterances, disqus
33 | giscusConfig: {
34 | // Visit the link below, and follow the steps in the 'configuration' section
35 | // https://giscus.app/
36 | repo: process.env.NEXT_PUBLIC_GISCUS_REPO,
37 | repositoryId: process.env.NEXT_PUBLIC_GISCUS_REPOSITORY_ID,
38 | category: process.env.NEXT_PUBLIC_GISCUS_CATEGORY,
39 | categoryId: process.env.NEXT_PUBLIC_GISCUS_CATEGORY_ID,
40 | mapping: 'pathname', // supported options: pathname, url, title
41 | reactions: '1', // Emoji reactions: 1 = enable / 0 = disable
42 | // Send discussion metadata periodically to the parent window: 1 = enable / 0 = disable
43 | metadata: '0',
44 | // theme example: light, dark, dark_dimmed, dark_high_contrast
45 | // transparent_dark, preferred_color_scheme, custom
46 | theme: 'light',
47 | // theme when dark mode
48 | darkTheme: 'transparent_dark',
49 | // If the theme option above is set to 'custom`
50 | // please provide a link below to your custom theme css file.
51 | // example: https://giscus.app/themes/custom_example.css
52 | themeURL: '',
53 | },
54 | utterancesConfig: {
55 | // Visit the link below, and follow the steps in the 'configuration' section
56 | // https://utteranc.es/
57 | repo: process.env.NEXT_PUBLIC_UTTERANCES_REPO,
58 | issueTerm: '', // supported options: pathname, url, title
59 | label: '', // label (optional): Comment 💬
60 | // theme example: github-light, github-dark, preferred-color-scheme
61 | // github-dark-orange, icy-dark, dark-blue, photon-dark, boxy-light
62 | theme: '',
63 | // theme when dark mode
64 | darkTheme: '',
65 | },
66 | disqusConfig: {
67 | // https://help.disqus.com/en/articles/1717111-what-s-a-shortname
68 | shortname: process.env.NEXT_PUBLIC_DISQUS_SHORTNAME,
69 | },
70 | },
71 | }
72 |
73 | module.exports = siteMetadata
74 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "@/components/*": ["components/*"],
6 | "@/data/*": ["data/*"],
7 | "@/layouts/*": ["layouts/*"],
8 | "@/lib/*": ["lib/*"],
9 | "@/css/*": ["css/*"]
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/layouts/AuthorLayout.js:
--------------------------------------------------------------------------------
1 | import SocialIcon from '@/components/social-icons'
2 | import Image from '@/components/Image'
3 | import { PageSEO } from '@/components/SEO'
4 |
5 | export default function AuthorLayout({ children, frontMatter }) {
6 | const { name, avatar, occupation, company, email, twitter, linkedin, github } = frontMatter
7 |
8 | return (
9 | <>
10 |
11 |