Regina Imhoff

Software Engineer in Austin, Texas

Page 2 of 2

Deploying Rails to Heroku

While deploying an initial version of Crapper Keeper, I ran into a problem with Heroku.  Deploying to Heroku is super easy, since you just have to deploy a Github branch and the site is live a few moments later.  My app, which was running well locally, suddenly was having database problems.

Crapper Keeper is a Ruby on Rails app.  Rails comes with SQLite out of the box, but Heroku doesn’t support SQLite.  So after a lot of searching, I was able to find a way to change the database from SQLite to PostgreSQL.  One guide I found handy was on Stack Overflow and here.

One tip, that I forgot, was that you have to make the database but then also remember to migrate the database, using rake db:migrate

Crapper Keeper

Crapper Keeper is a consumer inventory system built with Ruby on Rails backend, Bootstrap frontend and and iOS app. Uses OmniAuth with Facebook login, Postgres database, deployed on Heroku.  Users login using Facebook, enter the location where they are keeping items to be tracked and can upload or take a picture of the item. Users can search for the item name or can browse through containers.

This is a work in progress, check out the site to see what step I’m on!  Code can be viewed on Github.

screen-shot-2016-09-27-at-10-40-21-am

How To Find Freelance Clients

First, I’m going to irritate you:

I was at an interview yesterday and my freelance business came up, since it’s the only programming work experience I have.  The developers interviewing me seemed really intrigued and a little confused on how I find freelance clients.  I’m not going to lie, when I first started freelancing in May 2015, I was looking around and couldn’t find a client in sight.  Now, in September 2016, I turn work down all the time because I’m just too busy with other clients.  I was ALWAYS irritated when reading blogs when the author bragged about turning down work…and here I am telling you just that.  There are a few things that I did that really changed my business for the better and I’m going to try to communicate that to you.  Some of it is magic/luck/#blessed, but I really don’t think that’s the only contributing factor.

Networking

I know, you have been told to get out there and network.  Usually it’s left just at that – go talk to people.  Let me fill you in on a mistake I made.

DO NOT GO NETWORKING WITH PEOPLE LIKE YOU

This was the single biggest mistake I made when trying to find clients.  I would go to https://www.meetup.com/ and look for tech meetups to go to.  DUMMY – tech people can make their own websites.  They don’t need you and they definitely won’t pay you well for something they could do just as easily.  No, instead I want you to go put on your big girl pants, grab a stack of business cards and go to a small business meetup.  Go to the chamber of commerce.  Go to coworking meetups.  Go to the farmer’s market and chat people up.  That’s where you’ll find your first clients.

I know small business meetups sound scary.  You’re a developer, not a small business person.  Actually, you can be both.  As a freelancer, you aren’t quite a small business, but you can talk their talk and understand their needs.  Remember, you are not working as a developer.  You are solving problems for people.  You just happen to use code to solve those problems.

Cold Calling/Emailing

One of my first clients was a local shop.  I was browsing their website and noticed all their image links were broken.  I knew exactly what was wrong, so I sent a quick email to the shop owner telling them what was wrong and how they could fix it.  The shop owner said they didn’t know what the hell I was talking about, but if I came into the shop with my laptop they would pay me to fix it.  I got a ton of business from that owner, because every time one of his small business friends complained about their website, he would tell them to contact me.

Cold Emailing (let’s be honest, you’re much more likely to email than to call) isn’t going to have as high of a success rate as meeting people face to face, but it works often enough that it’s worth trying.  To be clear, you need to address a problem, not say things that are asshole-y or smug.  Say the links are broken, not that a 12 year old could make a better site.  Say the site is not responsive (more on this in a bit) don’t say that the site is complete garbage.  Somebody, and that somebody is likely the owner, spent a lot of time trying to get a website up.  That’s what they heard businesses need.  Let them know, respectfully, that you can make a better site for them.  Again, you are solving a problem.

Freelance Job Boards

90% of them are crap.  Upwork, Freelancer, whatever.  They are crap.  Freelancers are racing to go be the cheapest option because they believe (and a lot of clients on those boards back up this belief) that you can compete on price alone.  That’s nonsense.  If you want, you can bid on a few projects to 1: discover that it’s a race to the bottom and 2: find out I’m right about it being mostly crap.  If you have no portfolio, then go ahead.  Honestly, making a site for you Aunt Gertrude for free will be a better experience, but go ahead and try it out.

There are some freelance job boards, however, that are not total garbage.  In Austin we have Austin Freelance Gigs, which has a lot of great jobs that pop up at all hours of the day and night.  People can tag you in job postings so you see it (again, knowing people is key to freelancing!) or you can just set aside some time to check the page.  You do have to practice some diligence to make sure you aren’t spending all your time on Facebook, but it’s a nice way to find local jobs.

Technical Jargon

This was something that took me WAY too long to figure out.  The people you are helping are not tech wizards.  Many of them will tell you straight up that they are not tech savvy at all.  Knowing that they are not tech savvy, don’t try to impress people by using jargon and concepts they have never heard nor cared about.  Treat them with respect.  If you notice their site isn’t responsive, tell them that it isn’t mobile phone friendly.  Tell them that it affects search results.  Tell them how many people use their phones for checking on websites.  Those are the problems they care about – they do not care about which framework you’ll use or what library you’ll use.  When looking for jobs, remember that Jane Businesswoman isn’t going to ask for a React JS frontend with a Ruby on Rails backend.  She’s going to ask for a site that runs on a single page and can be done quickly.  You aren’t selling Ruby on Rails, WordPress, or any tech stack.  YOU ARE SOLVING A PROBLEM!

Now What?

I would love to hear your questions or other comments about looking for clients.  There is so much work out there, you just have to be found.  Leave a comment!

Add Constraints

Adding constraints to elements in your app helps your app look consistent between different devices that run iOS.  You can have a button that is centered in an iPhone 6 and is also centered in an iPad Pro.  You can also have that button be centered depending on if you are viewing in portrait vs. landscape mode.

Add Constraints

In your project, select the element to which you will add constraints.  You can select it in the view controller navigation on the left side of Xcode.  See it below, the button is highlighted.

Screen Shot 2016-09-06 at 12.06.00 PM

Next click on the bar graph button on the bottom right of the view board.  You can see a menu pops up.

Screen Shot 2016-09-06 at 12.06.12 PM

Then you can click both Horizontally and Vertically in Constraint buttons on the left, then click the bottom button that says “Add 2 constraints”

Screen Shot 2016-09-06 at 12.06.29 PM

Now your element is both vertically and horizontally aligned!  Pretty neat and pretty easy!

What Makes a Good App?

I’ve been brainstorming new app ideas and I’ve been coming up with a list of qualities that makes for a good app.

  • Thumb/finger friendly buttons
  • Doesn’t use up all my battery life
  • Doesn’t use up all of my data
  • Runs fast enough that I don’t give up and switch to something else
  • Does something that would be harder to do without the app —> MAKES LIFE EASIER

I feel like that last point is where we get hung up as app developers.  It’s fun making apps!  It’s fun adding functionality!  But is it easier to do whatever it is we are doing on the app than it is on the website or using some other tool.  That’s the real pickle we’re in.

Site Redesign

After some trouble with hosting issues, the website is back up!

I’ve been keeping busy with freelance projects, primarily fixing sites. In an interview recently, I was asked why I like programming. I responded with “I don’t always like programming!” and it’s true!! When I’m deep in the middle of trying to get a site to show the stupid preview image and there are 48 plugins that aren’t necessarily tested to work with the new WordPress update…I don’t like programming then.

But when I get the site working and running beautifully, I really love programming.

Newer posts »

© 2017 Regina Imhoff

Theme by Anders NorenUp ↑