<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dominic Monn</title>
    <description>The latest articles on DEV Community by Dominic Monn (@dqmonn).</description>
    <link>https://dev.to/dqmonn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F167433%2F6087f032-f1a5-45c1-9bcf-0d16379b3dfb.png</url>
      <title>DEV Community: Dominic Monn</title>
      <link>https://dev.to/dqmonn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dqmonn"/>
    <language>en</language>
    <item>
      <title>Tips to improve your web development skills more efficiently</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Mon, 22 Jun 2020 07:33:30 +0000</pubDate>
      <link>https://dev.to/dqmonn/tips-to-improve-your-web-development-skills-more-efficiently-4pdi</link>
      <guid>https://dev.to/dqmonn/tips-to-improve-your-web-development-skills-more-efficiently-4pdi</guid>
      <description>&lt;p&gt;&lt;strong&gt;Original Post on &lt;a href="https://mentorcruise.com/blog/8-tips-learn-and-improve-your-web-development-skil/" rel="noopener noreferrer"&gt;MentorCruise.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Development is one of the most exciting and interesting fields to break into. It provides a constant feeling of having learned so much, and yet still having so much left to learn!&lt;/p&gt;

&lt;p&gt;To help you move from where you are today to where you want to be tomorrow, we've gathered eight tips designed to help programmers improve their development skills &lt;em&gt;and&lt;/em&gt; make measurable progress. &lt;/p&gt;

&lt;p&gt;Let’s dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Develop, every day
&lt;/h2&gt;

&lt;p&gt;This is a must for any skill you're trying to develop (pun intended). If you want to get good at something, it has to become a daily habit — a routine you &lt;em&gt;don't&lt;/em&gt; skip. This commitment provides you with two critical benefits. &lt;/p&gt;

&lt;p&gt;First, ‘practice makes perfect’ as they say. All of those hours of development add up &lt;em&gt;fast&lt;/em&gt;, and before you know it you’ll have projects, knowledge, and languages firmly established in your figurative tool belt. This experience is essential to hone your craft &lt;em&gt;and&lt;/em&gt; land exciting jobs.  &lt;/p&gt;

&lt;p&gt;Second, and equally important, developing every day will make you &lt;em&gt;feel&lt;/em&gt; like a developer. You will quickly stop feeling like a "wannabe" — seeing yourself as the real deal instead. This will boost your confidence and feed your motivation.&lt;/p&gt;

&lt;p&gt;So how much practice should you make space for?&lt;/p&gt;

&lt;p&gt;Aim for one hour each day. It's ok if you fall short, but one hour should be your goal.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Practice what you enjoy
&lt;/h2&gt;

&lt;p&gt;When you're spending all those hours tapping away at your keyboard, it's important that you enjoy what you're doing. This is also rooted in association: if you always feel bored or frustrated when programming, how do you think you’ll feel when you make development your &lt;em&gt;job&lt;/em&gt;? &lt;/p&gt;

&lt;p&gt;If your few first steps towards professional programming are laborious and unpleasant, you’re on a path to burning out before you've even had a chance to begin! &lt;/p&gt;

&lt;p&gt;To avoid this, pursue areas of development that get you excited, that you have ideas for throughout the day. These will be the things that carry you through the inevitable low moments — the days when you wonder "Is this really what I want?" These feelings of doubt are unavoidable for most people. But the more positivity you have to reflect on, the better chance you'll have at succeeding with development. &lt;/p&gt;

&lt;p&gt;Plus, you'll improve the development skills that you &lt;em&gt;genuinely&lt;/em&gt; care about, which is the substance of fulfillment. &lt;/p&gt;

&lt;h2&gt;
  
  
  3. Participate in open-source projects
&lt;/h2&gt;

&lt;p&gt;Open-source projects are a great way to flex your development muscles. Most open-source projects use pull requests and code reviews to ensure quality, so unless the project moderators aren't paying attention, you should be able to make positive changes to a project without bugging it up. &lt;/p&gt;

&lt;p&gt;If you're not sure where to find an open-source project, start by looking at the software you already have on your computer. How many frameworks, tools, apps, CLI programs, etc, do you use that are open-source? &lt;/p&gt;

&lt;p&gt;Odds are, as a developer yourself, you have access to at least a handful of open-source programs. Figure out how to contribute to them and start brainstorming some ideas. Even if your change requests are denied, you still learned something along the way. &lt;/p&gt;

&lt;p&gt;For those who don't use any open-source software or simply don't have any ideas, &lt;a href="https://up-for-grabs.net/#/" rel="noopener noreferrer"&gt;this website curates open-source project tasks that are beginner level&lt;/a&gt;. So that's one problem already solved through the magic of development. Go solve more!&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use pro tools
&lt;/h2&gt;

&lt;p&gt;As a developer, you're going to be introduced to unknown tools, routines, workflows, frameworks, VCS's, IDE's, etc, — especially if you’re freelance or self-employed. Either the client will request it, or the project will demand it. &lt;/p&gt;

&lt;p&gt;Development tends to create a &lt;em&gt;personal&lt;/em&gt; bond between the programmer and their computer — a relationship that lay-people don't really understand! You know how &lt;em&gt;your&lt;/em&gt; computer works and can make it work for you. The way you work is often highly personal, based on your preferences and opinions — changing those routines can be unsettling, to say the least. &lt;/p&gt;

&lt;p&gt;However, being comfortable with multiple different work structures, formats, and tools will make you more adaptable &lt;em&gt;and&lt;/em&gt; desirable for employers.&lt;/p&gt;

&lt;p&gt;The more tools you know how to use, the less likely it is that someone will ask you if you can do a certain project and you will reply "I'm not sure," or "I guess I can make it work." &lt;/p&gt;

&lt;p&gt;Don't hesitate to step out of your comfort zone — that’s how you improve your web development skills!&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Read, read, read
&lt;/h2&gt;

&lt;p&gt;There’s a lot to be gained from picking up a book — even when you work in tech!&lt;/p&gt;

&lt;p&gt;The length and detail of a book allows the writer to reach a depth that can't be found on Codecademy, in an article, or a YouTube video. No matter what level of developer you are, you have something to learn from nearly every programming book out there. And if you're self-taught, there's hardly any better method for learning aside from practice and &lt;a href="https://mentorcruise.com/" rel="noopener noreferrer"&gt;mentorship&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Looking for a book recco? &lt;em&gt;Practical Object-Oriented Design In Ruby&lt;/em&gt; is a great place to start. There are design concepts in this book that branch way beyond the programming part of development, helping you be a better creative thinker on the whole.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Design is more the art of preserving changeability than it is the act of achieving perfection." - Sandi Metz (author of Practical Object-Oriented Design In Ruby)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  6. Look for new challenges and lessons
&lt;/h2&gt;

&lt;p&gt;Though it's important to practice things in programming that you enjoy, it's just as important to seek out challenges that you haven't yet tackled. This will force you to learn new skills and try out new ideas that will immensely benefit your career. &lt;/p&gt;

&lt;p&gt;Build something that relies on a tool or technique you tend to struggle with, try out a new language, or build something that you would normally use a framework for without a framework. &lt;/p&gt;

&lt;h2&gt;
  
  
  7. Study different coding styles
&lt;/h2&gt;

&lt;p&gt;If you've been developing for a while, you've likely encountered different coding styles. Your style is where you get to show a bit of personality in the way you code, and it's a great thing to hone if you want to spark your inspiration in an area of coding that is sometimes overlooked. &lt;/p&gt;

&lt;p&gt;Learning different coding styles has several benefits. One, it'll teach you how to better structure your code, which is great for improving your design. Two, it'll become easier to read other people's code. And three, you'll start to develop opinions and habits with your code that deepen the relationship between you and your projects. Nice!&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Learn from experienced developers
&lt;/h2&gt;

&lt;p&gt;Lastly, any new, up-and-coming, or improving developer should seek out a more experienced programmer to act as a mentor. Developers tend to be some of the best and most willing mentors, as they've spent so much time learning from others. &lt;/p&gt;

&lt;p&gt;You can find mentors in coding clubs and programs, in online communities like Reddit and Twitter, or in places where mentors congregate, like &lt;a href="https://mentorcruise.com/" rel="noopener noreferrer"&gt;MentorCruise&lt;/a&gt;. Having a mentor will not only provide you with honest and direct feedback on your projects, but it will also give you insights into the inner workings of the industry, how to network, and how to find &lt;em&gt;your&lt;/em&gt; path to a career in this ever-evolving field. &lt;/p&gt;

&lt;h2&gt;
  
  
  How to improve your web development skills? Start today!
&lt;/h2&gt;

&lt;p&gt;Programming and computer science is an exciting field — one that’s as challenging as it is rewarding. For better or worse, this can leave many developers feeling like a perpetual beginner; always trying to keep up with the latest piece of knowledge. &lt;/p&gt;

&lt;p&gt;No matter where you are in your development journey, these tips will help you practice your craft and push yourself even further.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>learning</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>How to make an existing Django app up to 3x faster</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Wed, 27 May 2020 14:34:53 +0000</pubDate>
      <link>https://dev.to/dqmonn/how-to-make-an-existing-django-app-up-to-3x-faster-11g2</link>
      <guid>https://dev.to/dqmonn/how-to-make-an-existing-django-app-up-to-3x-faster-11g2</guid>
      <description>&lt;p&gt;Django might not be the most trendy framework to use anymore, but it's insanely stable, extendable and has an active community around it. That, and simply because I am able to build stuff with it fast, I used it to build my app &lt;a href="https://mentorcruise.com" rel="noopener noreferrer"&gt;MentorCruise.com&lt;/a&gt;. After 2.5 years and a few ten thousand more rows in the database, things started to get sluggish though. Here's how I solved that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I initially published this piece on the blog of the app I am building. You can check it out &lt;a href="https://mentorcruise.com/blog/how-easily-make-existing-django-app-3x-faster/" rel="noopener noreferrer"&gt;over there&lt;/a&gt; and see the speedups in action :)&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where we are starting
&lt;/h2&gt;

&lt;p&gt;I built my app during weekends and evenings since the start, so I was aware that not all code is probably as clean as it should be. When I started getting Google alerts and even some customer reports that some of the views felt sluggish, I started to get worried that the years of tired coding finally came back to bite me.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://search.google.com/search-console/core-web-vitals/drilldown" rel="noopener noreferrer"&gt;Google Web Vitals screen on the Google Search Console&lt;/a&gt; is the first place I checked. It will show and bundle all URLs that are slower than the "acceptable" 4 seconds on a mobile phone, which can give you a great idea on where to start.&lt;/p&gt;

&lt;p&gt;In my case, this was the case on quite a few of my pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The mentor profiles&lt;/li&gt;
&lt;li&gt;The mentor search/marketplace&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://mentorcruise.com/blog/" rel="noopener noreferrer"&gt;blog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Some landing pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I went over to &lt;a href="https://tools.pingdom.com/" rel="noopener noreferrer"&gt;Pingdom&lt;/a&gt; to see whether I could nail that problem down further. Were my files too large? Did some JS prevent those screens from loading? Well, yes – all of the above... but fixing or optimizing that gave me a speedup in the area of 0.1 seconds, not the 2-3 seconds I was looking for.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Debug Toolbar
&lt;/h3&gt;

&lt;p&gt;So, for Django, we need to go into our local environment and install the &lt;a href="https://django-debug-toolbar.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;Django Debug Toolbar&lt;/a&gt;, a handy helper when it comes to issues like that. I still remembered using debug toolbar from my times as a "professional" Django dev, and installing it for my side-project felt right at home.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3nt9z7h1oawzffqfgsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3nt9z7h1oawzffqfgsb.png" alt="Django Debug Toolbar" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The debug toolbar already displays a fair share of great information, but for our cause, we also want to see template timings and use the profiling panel, which are not enabled by default. In my &lt;code&gt;settings.py&lt;/code&gt; I therefore at least add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DEBUG_TOOLBAR_PANELS = [,
        'debug_toolbar.panels.timer.TimerPanel',
        'debug_toolbar.panels.headers.HeadersPanel',
        'debug_toolbar.panels.request.RequestPanel',
        'debug_toolbar.panels.sql.SQLPanel',
        'debug_toolbar.panels.cache.CachePanel',
        'debug_toolbar.panels.profiling.ProfilingPanel',
        'template_timings_panel.panels.TemplateTimings.TemplateTimings',
    ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives me the debug toolbar with everything I need and removes everything that is not required for our exercise here.&lt;/p&gt;

&lt;p&gt;Depending on version, the template timings are built-in or need to be installed. If you face an issue, just follow the &lt;a href="https://pypi.org/project/django-debug-toolbar-template-timings/" rel="noopener noreferrer"&gt;installation directions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hotspot: Templating Engine
&lt;/h2&gt;

&lt;p&gt;If you are running into similar issues, my advice is to look at the number of template tags and variables you are using first. Here's the thing: Django's templating engine isn't necessarily fast or built to scale. As you start having views with a lot of info on it, those views will take a lot longer to load.&lt;/p&gt;

&lt;p&gt;Especially &lt;code&gt;{% for %}&lt;/code&gt; and &lt;code&gt;{% include %}&lt;/code&gt; are known to be slow out of the box. In my case, I was doing includes IN a for loop, oh my! The absolute values I am showing you here aren't correct (they run on an extremely slim Macbook in Debug mode), but as you go into your templating timings you will see: Those includes and for loops take a LOT of time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn7nfhvqu8qnkyqqdbce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn7nfhvqu8qnkyqqdbce.png" alt="Django Template Timings" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, I am loading my pretty heavy template and it takes 7 seconds (again, the absolute values do not matter here). I then include this little bit of HTML code that almost takes a second to include by itself, and then do that 8 times!&lt;/p&gt;

&lt;p&gt;I ended up leaving those for loops and includes, as I was able to speed the loading time up with the following points, but if it's an issue for you, it's time to let off the loops and render things directly on the frontend.&lt;/p&gt;

&lt;p&gt;A bonus was that I was already using &lt;a href="https://docs.djangoproject.com/en/3.0/topics/pagination/" rel="noopener noreferrer"&gt;pagination&lt;/a&gt;. If I wasn't doing that and loading all 300 mentors, this would have taken almost 5 minutes to load, yikes!&lt;/p&gt;

&lt;h3&gt;
  
  
  Reducing the use of expensive methods and @property
&lt;/h3&gt;

&lt;p&gt;So, why do these includes take so much time in the first place? Sure, Django's templating engine is slow, but not THAT slow, right?&lt;/p&gt;

&lt;p&gt;The great things about Django's templating engine is that you can write whatever method or &lt;code&gt;@property&lt;/code&gt; you want in your models, and then use that in your template directly. I did that a lot, which caused over 100 queries to the database for EVERY single one of those includes. I reduced this a lot by:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Not using the same method multiple time, but saving the result somewhere&lt;/li&gt;
&lt;li&gt;Running expensive calculations (e.g. related users) async and periodically and saving it&lt;/li&gt;
&lt;li&gt;Using cache for expensive calculations (see later)&lt;/li&gt;
&lt;li&gt;Using fewer variables&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I ended up only doing 12 queries to the database after that. Still plenty, but things felt quicker overall.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jinja2
&lt;/h3&gt;

&lt;p&gt;If I am calling a single mentor profile, why do I need 12 queries still? The way that the Django templating engine is built, it's going to send a request to your database for every single variable you use. For some of the views, that's okay, for others not so much.&lt;/p&gt;

&lt;p&gt;The overall sentiment seems to be that you should jump to &lt;a href="https://jinja.palletsprojects.com/en/2.11.x/switching/#django" rel="noopener noreferrer"&gt;Jinja2&lt;/a&gt; in these situations at some point. Jinja works together with Django really closely. It's a very similar way of working and syntax, and the migration consists of about 5 changes you will have to make to loops, function calls and similar.&lt;/p&gt;

&lt;p&gt;That change is quite easy to do but can break a lot of things. I am still in the process of pulling this through, but it should enable quite an amazing speedup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Embrace Frontend/Backend split
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://www.django-rest-framework.org/" rel="noopener noreferrer"&gt;Django Rest Framework&lt;/a&gt; is one of the most amazing API engines out there. If your app can do it, and if you have the resources for it, now would be the time to turn your backend into an API, and build your frontend in something newer, be it Vue, React or anything else that you would like.&lt;/p&gt;

&lt;p&gt;There is only so much you can do from Django's side or by switching to Jinja2. Delivering all needed info through an API seems annoying at first, but it also enables you to build fast, smooth clients.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cache Everything!
&lt;/h2&gt;

&lt;p&gt;Django has an amazing &lt;a href="https://docs.djangoproject.com/en/3.0/topics/cache/" rel="noopener noreferrer"&gt;caching framework&lt;/a&gt; and I feel foolish for not using it earlier.&lt;/p&gt;

&lt;p&gt;I have my app behind &lt;a href="https://cloudflare.com" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt; and assumed that something, somewhere should be cached on there. Utilizing Django's framework and &lt;a href="https://memcached.org/" rel="noopener noreferrer"&gt;Memcached&lt;/a&gt; I was able to cache exactly what I wanted to cache, such as landing pages, blog posts and even very specific calculations (like the reaction/reply time of each mentor, which is an expensive calculation) and return them from RAM, rather than pulling them from somewhere else.&lt;/p&gt;

&lt;p&gt;To cache specific landing pages, I made use of the &lt;code&gt;cache_page&lt;/code&gt; decorator in my URLs file as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;urlpatterns = [
    path('foo/&amp;lt;int:code&amp;gt;/', cache_page(60 * 15)(my_view)),
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To cache certain includes and template fragments with a lot of DB calls in them, I used the template tag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{% load cache %}

{% cache 21600 mentor mentor.user.username %}
    ....
{% endcache %}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, to cache certain expensive calculations, I used the low-level API&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.core.cache import cache
if cache.get('something', None):
    ...
else:
    s = expensive_calculation()
    cache.set('something', s, 21600)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works extremely well if certain content isn't changing regularly. I used this for my blog, for mentor profiles and the landing page. Loads blazingly fast once it's cached!&lt;/p&gt;

&lt;h2&gt;
  
  
  Re-visit the basics last
&lt;/h2&gt;

&lt;p&gt;I think before you even try to increase your resources, think about scaling up, load balancers, workers, CDNs &amp;amp; co. you need to get those points right. Especially if you use RAM-based Memcached as a caching framework, you will see how much memory that soaks up, but also how much load on your DB is saved. In my case, I had to take a few more steps after.&lt;/p&gt;

&lt;h3&gt;
  
  
  I ran out of RAM
&lt;/h3&gt;

&lt;p&gt;So, I deployed my changes at some point, and everything seemed to go great. Things loaded faster, Google got happier and everything seemed right. Sometime after the first day, my chat server continued to go down. Then the caching stopped working. I restarted everything, it worked again fine, and then the same thing. What happened?&lt;/p&gt;

&lt;p&gt;Turns out, as my cache grew, my RAM got increasingly sparse. Linux started killing processes to stay alive, and it hit my chat server first, every single time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcx82egz1garst5k383d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcx82egz1garst5k383d.png" alt="RAM Graph for MentorCruise" width="496" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you look at that graph prior to Friday the 15th, you will see memory usages lashing out and being kind of unstable. The crazy thing here is that at this point, I actually only had 50% of the RAM available, compared to the time after (because I scaled the server). So whenever that memory goes over 50%, it actually went over 100% and started killing processes.&lt;/p&gt;

&lt;p&gt;So on Friday 15th, I stopped the server, doubled it's RAM and made it go back up. Since then, it has been happy at around 50-60% usage. Yay!&lt;/p&gt;

&lt;h3&gt;
  
  
  I scaled up my Gunicorn workers
&lt;/h3&gt;

&lt;p&gt;The bigger server brought another benefit: More CPU cores. I am running a pretty standard nginx+gunicorn setup, so I was able to scale up my workers.&lt;/p&gt;

&lt;p&gt;Gunicorn workers are the small little processes that take requests and forward them to the right player internally, take the results and return it. If you have one worker, that one is responsible for EVERY request coming in. If you have three, they can split the work. If you have 6, but over 100 people on your page at the same time, things can get slow.&lt;/p&gt;

&lt;p&gt;The recommendation is to have 2-4 workers per CPU core, so more cores means more workers. Yay!&lt;/p&gt;

&lt;h3&gt;
  
  
  I set up monitoring to look at my speeds and have a plan for the future
&lt;/h3&gt;

&lt;p&gt;I am using &lt;a href="https://www.pingdom.com/" rel="noopener noreferrer"&gt;Pingdom&lt;/a&gt; to test my speed regularly, and use the &lt;a href="https://www.digitalocean.com/" rel="noopener noreferrer"&gt;DigitalOcean&lt;/a&gt; daemon to tell me if I am running out of RAM. That should help me knowing when it's time to optimize things again.&lt;/p&gt;

&lt;p&gt;I have not pulled all triggers yet to make things faster: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I can use &lt;code&gt;RawSQL&lt;/code&gt; for some of the more complicated queries that are not optimized&lt;/li&gt;
&lt;li&gt;I am not making use of many &lt;a href="https://docs.djangoproject.com/en/3.0/topics/db/optimization/" rel="noopener noreferrer"&gt;database optimizations&lt;/a&gt; (because that hasn't been a problem)&lt;/li&gt;
&lt;li&gt;I could move to a Vue/React+Rest API setup, or at least use Jinja2&lt;/li&gt;
&lt;li&gt;There is definitely more to cache&lt;/li&gt;
&lt;li&gt;I haven't done much on the frontend site, I am not even minifying my static files (because I haven't figured out a good way to do so without a lot of hassle, mainly). That costs me some time and data.&lt;/li&gt;
&lt;li&gt;Except for some security updates, I am using the same packages from around 2 years ago. I am sure Django itself might be faster now in some of these cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are developing Django apps (stay strong!), I hope that this can help you a little bit with starting to speed up your app. In my case, these changes have provided a 3x speedup for the two worst cases (mentor profiles and landing pages).&lt;/p&gt;

&lt;p&gt;I have been doing this for a few years, but I don't really consider myself a Django expert. If you have inputs about how to make it even faster, I am certainly all-ears 😁&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>webdev</category>
      <category>performance</category>
    </item>
    <item>
      <title>Improve your resume format for your next tech job</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Tue, 26 May 2020 08:20:15 +0000</pubDate>
      <link>https://dev.to/dqmonn/improve-your-resume-format-for-your-next-tech-job-2272</link>
      <guid>https://dev.to/dqmonn/improve-your-resume-format-for-your-next-tech-job-2272</guid>
      <description>&lt;p&gt;Whether you're new to the industry or a veteran in search of pastures new, creating or updating your resume is the first step in taking your career forward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The original version of this post can be found on &lt;a href="https://mentorcruise.com/blog/it-job-resume-format-how-highlight-your-skills-and/" rel="noopener noreferrer"&gt;MentorCruise.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;However, a resume — and an IT job resume in particular — requires a certain format and approach. You need to let your relevant skills sing out, while convincing the reader that you’re the right fit for the job.&lt;/p&gt;

&lt;p&gt;It’s not easy, but it &lt;em&gt;is&lt;/em&gt; an art worth learning!&lt;/p&gt;

&lt;p&gt;Grab a pen and paper, and get ready to brush up your IT resume writing skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why your IT resume format matters
&lt;/h2&gt;

&lt;p&gt;Creating a resume tends to be one of the murkier tasks of advancing your career. You rarely know &lt;em&gt;exactly&lt;/em&gt; what a recruiter is looking for, you probably aren't sure how to translate your years of experience into a couple of bullet points, and you may not have created a resume in a long time — or ever! &lt;/p&gt;

&lt;p&gt;So here’s the first reassuring thing to hear: you don’t need to reinvent the wheel. You can very easily use a technology resume template to get your first thoughts in order — but* don’t stop there. *&lt;/p&gt;

&lt;p&gt;While there's nothing wrong with using a template, you should go the extra mile to make your IT resume stand out. Your resume is (hopefully) going to land you an interview with your future employer. It needs to be competitive, attention grabbing, and a shining representation of &lt;em&gt;your&lt;/em&gt; unique talents. &lt;/p&gt;

&lt;p&gt;Once you’ve found an IT resume template that works for you, it’s time to jazz it up and make it more distinctly yours...&lt;/p&gt;

&lt;h2&gt;
  
  
  5 tips for crafting the perfect IT resume
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Utilize the hierarchy of information
&lt;/h3&gt;

&lt;p&gt;The layout of your resume is going to help recruiters and interviewers understand who you are, where you’ve come from, where you want to head, and why they should be interested in you.&lt;/p&gt;

&lt;p&gt;How you visually convey information of varying importance should &lt;em&gt;not&lt;/em&gt; be an afterthought in your resume creation. Let’s imagine you’ve got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your personal details (name, number, email, etc.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your summary (a bit about you as an IT professional — and a person!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your skills (soft and hard)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your education (and where did you learned those skills)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your experience (what you’ve done and who you’ve done it for)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the time, the order you present your information in will resemble the order we've created above; personal info first, summary next, etc. — this a nice, logical flow to it. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;However&lt;/em&gt;, how much time you spend in each section is where you'll get to exercise a bit of creativity. &lt;/p&gt;

&lt;p&gt;For example, if you've worked for a major company handling a range of responsibilities, you'll probably spend more time in the "experience" section than someone who just graduated from college. If you’re looking for an IT job in a company that’s a great cultural match to your values as an individual, then you’ll want to take time to explain who you are in a personal summary.&lt;/p&gt;

&lt;p&gt;Look at the scope of your career, determine which points are the most interesting, and use the structure of your resume to bring attention to these assets. &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Keep it short and sweet
&lt;/h3&gt;

&lt;p&gt;We know it’s hard, but try to keep your resume to one page and &lt;em&gt;one page only.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While it might seem counterintuitive to condense your years of experience into only a few lines, you need to view your resume as an elevator pitch for your profile and skills. Let’s imagine you’ve got 60 seconds to impress — how will you do it?&lt;/p&gt;

&lt;p&gt;Rather than thinking, "I can't talk about anything interesting with just one page," reframe it as, "Okay, I have one page. How can I guarantee this recruiter wants to meet me and learn more?". &lt;/p&gt;

&lt;p&gt;If you've worked on a really exciting project, touch on what makes it impressive without diving into the detail. Pique their interest with the resume, and win them over them during the interview. &lt;/p&gt;

&lt;h3&gt;
  
  
  3. Focus on your &lt;em&gt;skills&lt;/em&gt;, not your roles
&lt;/h3&gt;

&lt;p&gt;The IT sector has a lot of flashy titles, but recruiters will want to see through your job description and find out what value you can add to their organization.&lt;/p&gt;

&lt;p&gt;So, when creating an IT job resume, try to frame each of your previous roles in the context of the skills you acquired at these positions. Rather than saying, "I worked for the ABC Factory for five years," say, "In my five years at the ABC Factory, I learned how to do X, Y, and Z with efficiency and precision."&lt;/p&gt;

&lt;p&gt;Bonus points for subtly relating that back to the job you’re applying for, too.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Keep it simple
&lt;/h3&gt;

&lt;p&gt;It’s a perfectly normal impulse to over-prove yourself in an IT resume, typically by using an excess of terminology and industry jargon. While this can prove that you know what you're talking about, it doesn’t allow much of you — as a person — to shine through.&lt;/p&gt;

&lt;p&gt;Showing off that you have industry expertise is perfectly fine and even important. However, if your entire resume exists to show off just how much of an expert that you are, then you risk leaving a bad impression.&lt;/p&gt;

&lt;p&gt;Be professional and humble, focus on your accomplishments and skills, and don't turn your resume into a thesaurus. Remember: companies hire &lt;em&gt;people&lt;/em&gt;, not employment histories.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Beat the bots
&lt;/h3&gt;

&lt;p&gt;Last but not least, don't forget that your resume may make its way through an automated scanner before it lands in a recruiter’s lap. And if you want the algorithm to highlight your resume as ‘one to meet’, you need to use the right keywords and phrases.&lt;/p&gt;

&lt;p&gt;The first step is to read &lt;em&gt;and reread&lt;/em&gt; the job description and advert you’re applying to. Mirror the language used there, even if it’s not necessarily the way you’d talk about your skills and experience. Avoid acronyms and initialisms; chances are the bots are scanning through for the full phrase.&lt;/p&gt;

&lt;p&gt;Of course, there’s a delicate balance to be met here. You want to pass through this first stage with flying color, while still putting a big tick against the four other tips we’ve gone through in this guide.&lt;/p&gt;

&lt;p&gt;Hopefully these insights have you feeling more ready than ever to write your new and improved IT resume.&lt;/p&gt;

</description>
      <category>career</category>
      <category>resume</category>
      <category>cv</category>
      <category>tech</category>
    </item>
    <item>
      <title>Learn Web Development with courses recommended by mentors</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Wed, 29 Jan 2020 10:34:20 +0000</pubDate>
      <link>https://dev.to/dqmonn/learn-web-development-with-courses-recommended-by-mentors-5goe</link>
      <guid>https://dev.to/dqmonn/learn-web-development-with-courses-recommended-by-mentors-5goe</guid>
      <description>&lt;p&gt;Original Post on &lt;a href="https://mentorcruise.com/blog/learn-web-development-courses-recommended-our-ment/" rel="noopener noreferrer"&gt;mentorcruise.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Having a team of almost 200 mentors can come in handy when you are looking for a great set of resources. We asked our community: Which are your favourite web development courses – and they replied. Here are some of our favourite picks.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://mentorcruise.com/mentor/SandrinaPereira/" rel="noopener noreferrer"&gt;Sandrina&lt;/a&gt;: Become a Front-End Master
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://css-tricks.com/become-a-front-end-master-in-2020-with-these-10-project-ideas/" rel="noopener noreferrer"&gt;Become a Front-End Master in 2020 With These 10 Project Ideas&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Looking for ideas to practice your frontend skills? You can start here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Project-based learning is one of the best way to receive a large, diverse amount of knowledge in a short time. Chris Coyier, the author of this course, makes use of this fact and built a course around that.&lt;/p&gt;

&lt;p&gt;The course leads to a set of 10 fully fledged product, from movie search app with React to chat app with Vue and to-do app with Svelte. You are sure to receive some basic insights into every modern web framework. A great starter.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://mentorcruise.com/mentor/BapusahebPatil/" rel="noopener noreferrer"&gt;Bapusaheb&lt;/a&gt;: Bento
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://bento.io/" rel="noopener noreferrer"&gt;Bento&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I love this site because it has roadmaps for web development, from A to Z. It can take a beginner to the advanced level in no time, with the clear roadmaps it has defined.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bento provides a selection of helpful tracks to learn a new skill. For skills like CSS or HTML it shares resources that help build your foundations, then go further to deep dives and projects, before showing you how to move on.&lt;/p&gt;

&lt;p&gt;For anyone who is just getting started and at the beginning of a journey of learning something new, this can be a true timesaver.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://mentorcruise.com/mentor/SandrinaPereira/" rel="noopener noreferrer"&gt;Sandrina&lt;/a&gt;: CSS Guidelines by Harry Roberts
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://cssguidelin.es/" rel="noopener noreferrer"&gt;CSS Guidelines by Harry Roberts&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;High-level advice and guidelines for writing sane, manageable, scalable CSS. This will help you to write readable and reusable CSS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CSS can get messy. If you have worked through some of the projects mentioned above or some of your own, you will realize how hard it becomes to keep an overview of all your styles. The worst part? There are no strictly enforced practices like it is common in many other languages.&lt;/p&gt;

&lt;p&gt;The CSS guidelines course shows you a bit of advice on writing manageable CSS that is maintainable and readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://mentorcruise.com/mentor/TapasAdhikary/" rel="noopener noreferrer"&gt;Tapas&lt;/a&gt;: You Don't Know JS
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://github.com/getify/You-Dont-Know-JS" rel="noopener noreferrer"&gt;You Don't Know JS&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are working with JavaScript or EcmaScript for a while and think you know it better, here is a book to validate that. Start reading it up asap. If you a beginner, what could be better than starting with a bang? Embrace it. One of my favorites on JavaScript.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The "You don't know JS" is a book series and workshop all about the more advanced parts of Javascript. It's a great pathway to learn about everything beyond simple DOM manipulation, such as closures, types, async, ES6 and beyond.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intro to AWS
&lt;/h2&gt;

&lt;p&gt;Visit &lt;a href="https://introtoaws.com/" rel="noopener noreferrer"&gt;Intro to AWS&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Beginner-friendly resources ranging from KBs breaking down core AWS services, introduction to AWS video courses, eBooks, and newsletter courses with newbies with zero prior-experience in mind.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you are excited to get your hands wet with some DevOps, this is a great course for you. Specifically built for those with zero prior knowledge, it's a great resource that can take you from nothing to being ready pursuing further material and even certifications.&lt;/p&gt;

</description>
      <category>mentor</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>education</category>
    </item>
    <item>
      <title>Top Books to get started in Machine Learning</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Mon, 27 Jan 2020 15:39:42 +0000</pubDate>
      <link>https://dev.to/dqmonn/top-books-to-get-started-in-machine-learning-1kja</link>
      <guid>https://dev.to/dqmonn/top-books-to-get-started-in-machine-learning-1kja</guid>
      <description>&lt;p&gt;Original Post at &lt;a href="https://mentorcruise.com/blog/top-books-get-started-machine-learning/" rel="noopener noreferrer"&gt;mentorcruise.com/blog/top-books-get-started-machine-learning/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The internet is filled with technical resources that help beginners pick up a new topic, and Machine Learning is no exception there. It's filled so much, it's hard to distinguish good resources from bad, and create a good roadmap of resources. We've put together a list of resources for your first step in ML together with our mentors, and are excited to share it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;At the start of your journey into ML, you should prepare and build all the skills needed to make full use of the tools needed in Machine Learning itself. While the journeys differ, it's fair to say that &lt;strong&gt;Python&lt;/strong&gt; is a stable in this area. To make the most use of Machine Learning frameworks, it's also crucial to learn data processing and data analysis skills. So where can you learn all of this?&lt;/p&gt;

&lt;h4&gt;
  
  
  Python Cookbook by David Beazley &amp;amp; Brian K. Jones
&lt;/h4&gt;

&lt;p&gt;The cookbook series of O'Reilly is always a great starting point for any language. In Machine Learning, you can really profit from a big universal understand of Python, even if it's not about the data domain specifically.&lt;/p&gt;

&lt;p&gt;The Python Cookbook takes you through all those basics by providing practical examples. Unlike other language learning books, it's not just a collection of syntax examples, but shows you how to achieve things in different ways, showing you many faces of the Python Programming Language&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377" rel="noopener noreferrer"&gt;Python Cookbook by David Beazley &amp;amp; Brian K. Jones&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython By Wes McKinney
&lt;/h4&gt;

&lt;p&gt;Before data can be fed into a Machine Learning model, it's usually a good thing to analyze it, process it and learn from it. The tools needed for that are usually Pandas, Numpy and Matplotlib.&lt;/p&gt;

&lt;p&gt;The Data Wrangling book by Wes McKinney leads you through all of that and makes you comfortable working with a variety of datasets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1491957662" rel="noopener noreferrer"&gt;Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython By Wes McKinney&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning the Basics
&lt;/h2&gt;

&lt;p&gt;Let's get to the core! These books can help you learn ML theory and practice.&lt;/p&gt;

&lt;h4&gt;
  
  
  Machine Learning for Absolute Begineers by Oliver Theobald
&lt;/h4&gt;

&lt;p&gt;Machine Learning can be a mind-boggling concept. While this may not be a technical introduction, this book may be a great intro to all thise terminologies and concepts around Machine Learning.&lt;/p&gt;

&lt;p&gt;Again, this is not a technical book at all, but it can help understand the further materials better. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Machine-Learning-Absolute-Beginners-Introduction/dp/1549617214/" rel="noopener noreferrer"&gt;Machine Learning For Absolute Beginners by Oliver Theobald&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow by Aurélien Géron
&lt;/h4&gt;

&lt;p&gt;The Hands-On ML book by Aurélien Géron is the all-in-one guide to solving Machine Learning problems. From solving easy predictions with Scikit-Learn, to building complex Neural Networks with TensorFlow.&lt;/p&gt;

&lt;p&gt;Theory is important, that's why this book does its best to combine ML theory with useful applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/gp/product/B07XGF2G87/" rel="noopener noreferrer"&gt;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurélien Géron&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Grokking Deep Learning by Andrew Trask
&lt;/h4&gt;

&lt;p&gt;Let's take it right from the website: Grokking Deep Learning teaches you to build deep learning neural networks from scratch! Using only Python and its math-supporting library, NumPy, you’ll train your own neural networks to see and understand images, translate text into different languages, and even write like Shakespeare!&lt;/p&gt;

&lt;p&gt;If you are looking to understand the theory behind Neural Networks more without all the theoretical load, then doing it grokking style can be a great idea!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.manning.com/books/grokking-deep-learning" rel="noopener noreferrer"&gt;Grokking Deep Learning by Andrew Trask&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips &amp;amp; Tricks
&lt;/h2&gt;

&lt;p&gt;So, now that you have the basics done, what can you do to really get that 'wow' effect when applying or trying out something new?&lt;/p&gt;

&lt;h4&gt;
  
  
  Strengthening Deep Neural Networks by Katy Warr
&lt;/h4&gt;

&lt;p&gt;Machine Learning algorithms can be fooled by a variety of methods, and it will be a rising skill to know how to guard against that! This book shows you through the process of attacking and defending neural networks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Strengthening-Deep-Neural-Networks-Susceptible/dp/1492044954" rel="noopener noreferrer"&gt;Strengthening Deep Neural Networks by Katy Warr&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  TinyML by Pete Warden
&lt;/h4&gt;

&lt;p&gt;Machine Learning is entering the production and with that, there are new requirements. The common 'state of the art' methods are usually done on large, complex algorithms that take a long time to load and execute.&lt;/p&gt;

&lt;p&gt;So what if you need to run on a tiny device with a few kilobytes of memory and not a ton of power! This book can show you some way to make these nets more efficient for low power environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/TinyML-Learning-TensorFlow-Ultra-Low-Power-Microcontrollers-ebook/dp/B082TY3SX7/" rel="noopener noreferrer"&gt;TinyML by Pete Warden&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>books</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Using my own platform to mentor others</title>
      <dc:creator>Dominic Monn</dc:creator>
      <pubDate>Tue, 14 May 2019 13:18:12 +0000</pubDate>
      <link>https://dev.to/dqmonn/using-my-own-platform-to-mentor-others-4o0o</link>
      <guid>https://dev.to/dqmonn/using-my-own-platform-to-mentor-others-4o0o</guid>
      <description>&lt;p&gt;Around a year ago, after graduating from a Nanodegree and mentoring other students for close to a year, I decided to set up my own mentorship program with the goal of forming formal mentorship connections between people in Tech.&lt;/p&gt;

&lt;p&gt;To get a sense of the challenges and benefits of my newly recruited mentors, I decided to put myself in the game too, and set up my profile on &lt;a href="https://mentorcruise.com" rel="noopener noreferrer"&gt;MentorCruise&lt;/a&gt; (my own platform).&lt;/p&gt;

&lt;p&gt;It didn't take long before the first applicants came in. In the beginning, I was one of the only Machine Learning mentors, but it was and still is one of the most popular topics to get a mentor for, so people were interested. The fact that I mentored for free (and for only $10 after I had some undedicated mentees) might have helped too. This is what I've learned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The audience is not who I had expected. When I first started the platform, I expected this to be a place for students and mentors. Shorty after, I realized that &lt;a href="https://mentorcruise.com/learn/reasons-find-mentor/" rel="noopener noreferrer"&gt;the user base is way more diverse than that&lt;/a&gt;. I talked to students, but also marketing managers preparing for a career change and a mom looking to re-enter the workforce. It has been encouraging to help those people.&lt;/li&gt;
&lt;li&gt; I learned a lot! People with different backgrounds applied to me, many of which had done prior work in Machine Learning too. It has helped me to broaden my horizons, &lt;a href="https://mentorcruise.com/learn/why-should-you-become-mentor/" rel="noopener noreferrer"&gt;learn new things&lt;/a&gt; and see certain situations from other perspectives (e.g. data security, AI ethnics, ...)&lt;/li&gt;
&lt;li&gt;Using my own platform has made it better for others. From time to time I get feature requests from fellow mentors, and I'm happy to evaluate and build them. However sometimes, your power users are not ready to "bother" you with yet another feature, so I implemented things that I found to be annoying or suboptimal. Out of this, an optimized feedback loop, better notifications and an overhauled design got born. If I didn't use the product myself, we might still be stuck with an old version.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From time to time, I still get bad comments from people. Especially paying for mentorship leaves a bad taste on a lot of tongues. But we have our reasons and have to take certain steps to ensure quality and availability of mentors. Having a &lt;a href="https://mentorcruise.com/testimonials/" rel="noopener noreferrer"&gt;wall of love&lt;/a&gt; has helped - and so did using my own product. It has helped me gain confidence that this can work out, and that the 120 mentors on the platform can genuinely help people.&lt;/p&gt;

</description>
      <category>career</category>
      <category>mentorship</category>
      <category>education</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
