<?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: Arve Solland</title>
    <description>The latest articles on DEV Community by Arve Solland (@arvesolland).</description>
    <link>https://dev.to/arvesolland</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%2F3255%2F8x1HadZC.jpg</url>
      <title>DEV Community: Arve Solland</title>
      <link>https://dev.to/arvesolland</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arvesolland"/>
    <language>en</language>
    <item>
      <title>Creating a SaaS the wrong way</title>
      <dc:creator>Arve Solland</dc:creator>
      <pubDate>Mon, 18 Sep 2017 06:03:49 +0000</pubDate>
      <link>https://dev.to/arvesolland/creating-a-saas-the-wrong-way</link>
      <guid>https://dev.to/arvesolland/creating-a-saas-the-wrong-way</guid>
      <description>&lt;p&gt;So, I’ve created a product without really verifying whether people will buy it or not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6c618fervrq7llii5p16.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6c618fervrq7llii5p16.jpg" alt="Ok...i messed up"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I know, I knowâ€Š–â€Šstupid rightÂ ?&lt;/p&gt;

&lt;p&gt;The whole thing got started when doing some client work last year, and I was getting requests to do similar work, to tackle the same problem from multiple clients.&lt;/p&gt;

&lt;p&gt;The solution I delivered workedâ€Š–â€Šbut it was hard to test as it was installed on the client's servers, and I had limited visibility and access to test, monitor and improve the solution after delivery.&lt;br&gt;
Then came my brilliant idea: why don’t I turn this into a SaaS app that I can get multiple clients using?&lt;/p&gt;

&lt;p&gt;It sounded like such a great idea in my head, I mean, I already had developed a first â€˜version’ of it…I just had to “tweak” it and turn it into a generic tool that I could release as a product…easy right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmdyfokvx5my5m7mnqgp0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmdyfokvx5my5m7mnqgp0.gif" alt="Yep...I know"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uh ohâ€Š–â€Ša few months and hundreds of early morning and weekend hours laterâ€Š–â€ŠI had created a SaaS version of my solution. It wasn’t as easy as I thought it would be. It took longer to do than I expected, and now this other part: what do I do now to sell this solutionÂ ??&lt;/p&gt;

&lt;p&gt;While building the SaaS app I consumed so much, way too much, information around startups and bootstrapping. And annoyingly they all reiterated the same thing: before you go and build somethingâ€Š–â€Šmake sure you talk to potential customers and validate your idea!Â &lt;/p&gt;

&lt;p&gt;I kinda heard these words all the way through my development, but I didn’t really want to hear them because I knew I had not done this. I knew I had done this the wrong way around.&lt;/p&gt;

&lt;p&gt;I was still getting interest from clients in doing customised solutions to solve the problem that my new SaaS app was solvingâ€Š–â€Šbut turns out it is a big difference selling a subscription to an unknown online service, instead of just selling my hours to create a custom solution clients could implement on their servers.&lt;/p&gt;

&lt;p&gt;I have had literally no direct experience in marketing digital products or non-digital products for that matter.&lt;br&gt;
Neither have I had experience in direct sales for this kind of products. So what was I going to do next?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnlq3x13bgismn9jjymw6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnlq3x13bgismn9jjymw6.gif" alt="What to do now"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everywhere I turn, there is advice on how to grow your startupâ€Š–â€Šbut once you get down to the point that you are starting with no audience whatsoeverâ€Š–â€Šwhat are potential next steps? Most advice assumes you’ve already done your homework and followed the rulesâ€Š–â€Šnot like me.&lt;/p&gt;

&lt;p&gt;So I have a productâ€Š–â€Šand just because I might have done things the wrong way and not really done any good product/market fit validation– I still want to test out if it this thing could fly. I don’t want to just scrap it just because I didn’t go out and find like 100 people who’d be interested first.&lt;/p&gt;

&lt;p&gt;Now, this does not mean I will never give up on my productâ€Š–â€ŠI know I have an emotional attachment to this little offspring that I’ve created (as most developers do)â€Š–â€Šbut I will try my best to be realistic as I try different tactics to try to get this thing off the ground.&lt;/p&gt;

&lt;p&gt;But I sure as hell just want to give it a good go!&lt;/p&gt;

&lt;p&gt;So whats next for rule-breakers like me now? How can I get my solution in front of prospective customers? Whats my best bet in marketing/promoting this thing? How do I know when to give up?&lt;/p&gt;

&lt;p&gt;As I go through this journey of discovering what my options are at this timeâ€Š–â€ŠI will document my findings in weekly blog posts so that others might also try out some of the strategies that I discover.&lt;/p&gt;

&lt;p&gt;My first step this week is to really try to define my ideal customer(s) and get some ideas on who to find and target these.&lt;/p&gt;

&lt;p&gt;Until next time…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;crossposted from &lt;a href="https://medium.com/p/cb1f14fc08e5" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>bootstrapping</category>
      <category>marketing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Easy &amp; free automated Database backups</title>
      <dc:creator>Arve Solland</dc:creator>
      <pubDate>Mon, 28 Aug 2017 03:55:10 +0000</pubDate>
      <link>https://dev.to/arvesolland/easy--free-automated-database-backups</link>
      <guid>https://dev.to/arvesolland/easy--free-automated-database-backups</guid>
      <description>&lt;p&gt;So you built something, its running, and now you need to have some kind of automated database backup running.&lt;/p&gt;

&lt;p&gt;Wouldn’t it be nice to just be able to implement this with a few lines of code and a git repository ? Rightâ€Š–â€Šthat’s what I thought too.&lt;br&gt;
Lately I’ve been working a lot with sites, servers and users in low-bandwidth areas , and I’ve had to come up with a database backup solution that would run on almost any system, and that would not require much bandwidth.&lt;br&gt;
One solution I’ve found that have worked particularly well for me in these circumstances is a small shell script which dumps the database to a sql file, and then the changes are pushed to a git repository.&lt;/p&gt;

&lt;p&gt;This approach has a few benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to set upâ€Š–â€Šyou only need git repository, a tiny shell script and a cron job&lt;/li&gt;
&lt;li&gt;Low Bandwidthâ€Š–â€ŠBy using git, you will only ever push the changed lines in your sql backupâ€Š–â€Šnot the entire file.&lt;/li&gt;
&lt;li&gt;Easy to track changesâ€Š–â€ŠBy using gitâ€Š–â€Šyou can easily browse the commit’s using your favourite UI to see what changes has actually been made to the database&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How to do it
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Create a git repository that will hold your database backup ( Bitbucket allows free private repositories )&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On your server, clone the git repository into a folder.&lt;br&gt;
&lt;code&gt;git clone git@bitbucket.org:yourusername/db-backup.git .&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a shell script, lets call it run-db-backup.sh, that will dump your database into this folder, and then add the changes, commit and push to git&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
localPATH=’pwd’
echo “Dump Database”
cd /home/ec2-user/db-backup
mysqldump -u dbusername -p”yourdbpasswordhere db_name &amp;gt; db_backup.sql
echo “Commit changes to git and push”
git add .;git commit -m “Latest Database Snapshot”; git push origin master
echo “Done”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create a cron job to execute your new shell script at your desired interval
&lt;code&gt;0 */6 * * * /home/ec2-user/run_db_backup.sh&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you can log into your git repository and watch your automated database backups flow in. :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4ttiolboes5uslb5ktmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4ttiolboes5uslb5ktmp.png" alt="Inspect commit changes"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Bitbucket commit list&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxp8z7xyf3b3yitht3kox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxp8z7xyf3b3yitht3kox.png" alt="Inspect commit changes"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Inspect commit changes&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Restore backup
&lt;/h1&gt;

&lt;p&gt;To restore a specific commit from the repository, just reference your commit ID/hash when doing a git checkout:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git checkout 0d1d7fc32 (where 0d1d7fc32 would be your commit hash)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you can import your db-backup.sql file into your database and have a well deserved cup of coffee.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a cross-post from the &lt;a href="https://medium.com/@ArveSolland/easy-free-automated-database-backups-fc21a18f6b56" rel="noopener noreferrer"&gt;original Medium article&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>development</category>
      <category>backup</category>
      <category>programming</category>
    </item>
    <item>
      <title>You are not a real developer</title>
      <dc:creator>Arve Solland</dc:creator>
      <pubDate>Thu, 16 Feb 2017 18:45:02 +0000</pubDate>
      <link>https://dev.to/arvesolland/you-are-not-a-real-developer</link>
      <guid>https://dev.to/arvesolland/you-are-not-a-real-developer</guid>
      <description>&lt;p&gt;So it has surfaced again, the ugly head of the underground mob that feels they should label who is a developer and who isn't.&lt;/p&gt;

&lt;p&gt;These claims comes up every now and again, from different individuals and groups as they try to somehow assert their “authority in the community. Some tries to assert themselves as purists, thought leaders or leaders by essentially saying that if others don't do what they do, or follow their advice, they are not real developers.&lt;/p&gt;

&lt;p&gt;Really…Is that the depths you have to go to, to get some attention ? Quite sad really.&lt;/p&gt;

&lt;p&gt;I guess what is worse is, that these people actually feels that this is correct. That they sit on the universal definition what is a developer, and gets to decide who is and who isn't.&lt;/p&gt;

&lt;p&gt;In my opinion, people who knock other people's work methods, and tries to invalidate others should not be seen as thought leaders, or be followed for any advice whatsoever.&lt;/p&gt;

&lt;p&gt;Of course, everyone is free to express their opinion, share their methods and advocate for them — that's what can make our tech community great — but stay clear of invalidating others in your profession just because they don't use the same tools or approach as you.&lt;/p&gt;

&lt;p&gt;Front End Developer, Back End Developer, Web Developer, Mobile Developer or maybe just Developer. Point is…You make things with code. You make them your own way — and this is good — this is how new ideas and diversity is created.&lt;/p&gt;

&lt;p&gt;Never feel obliged to follow and approach that does not make sense to you, or to not to use a tool or framework that makes your task easier just because someone else don't like it. Be pragmatic and use whatever methods or tools that makes your tasks easier.&lt;/p&gt;

&lt;p&gt;Be yourself, be a developer, its good, its great — you'll love it :)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is a cross post from my original story &lt;a href="https://medium.com/p/eaa46d2f93bf"&gt;on Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>developer</category>
      <category>pragmatism</category>
    </item>
  </channel>
</rss>
