Go Down

Topic: Job: Arduino programmer (Start immediately) (Read 311 times) previous topic - next topic

ClaireJ

Jul 05, 2018, 08:09 pm Last Edit: Jul 06, 2018, 02:06 am by ClaireJ
Job: Arduino programmer (Start immediately)
Hello! We are a small company that creates projects using Arduino hardware and software. We mostly use LilyPad components (wearables). Our audience is YOUNG (12-18 years old). We are searching for a new programmer that can do the following:
•   Create codes based on the general project description that I provide (example: making a hat that lights up with movement using an accelerometer and Lilypad USB board)
o   Examples: Hat that lights up depending on the movement, secret message shirt, etc.
•   Codes are usually less than 100 lines, fairly simple.
•   Introduce a new concept every time such as the for loop. The projects are SIMPLE.
•   Explain the code in paragraphs. The students need to understand the program.
o   Examples: The for loop is used here because we want the sequence to……
•   Create a flow chart for the program.
•   Use Gitlab for collaboration.

For this, the requirements are:
•   Proficiency knowledge in Arduino (software and hardware). If you've built projects on your own with Arduino, played with code, and made them work, that's what we are looking for.
•   Proficiency in programming C++ or Arduino.
•   Creative ideas around Arduino based projects.
•   You DON'T have to be a pro.

Pros for this job:
•   You pick your hours.
•   You get paid for tinkering and creating codes.
•   Only 2-5/weekly needed, sometimes even less.
•   You can be creative.

This is a CONTRACT based project. We can arrange a per project fee or hourly (around $30-40). Each project takes about 5 hours.

BEGINNERS, sorry, this may not be for you!

An example of our project code: http://bit.ly/gtm-after-dark

The first TEST task if to clean up a program and create explanations of what each line of code means.

Thank you in advance!

el_supremo

DON'T PM ME WITH A JOB OFFER. That's NOT what PMs are for.

Anyone else getting PM'd by these bozos?

Pete
Don't send me technical questions via Private Message.

wvmarle

Yes, me.
They're probably pretty desperate.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

J-M-L

#3
Jul 08, 2018, 06:30 pm Last Edit: Jul 08, 2018, 10:43 pm by J-M-L
@claire
If I understand your domain name correctly (@girlsthatmake.com)The intent is to get girls coding and into the "makers' world" - that is good, companies need more women in that space - but please don't start by alienating those who can help by invading their privacy....

Quick note on your code - don't teach newbies to use the String class... they will later come to the forum complaining their more complex code fails in weird way and we will tell them to get rid of that class.... (read the evils of arduino strings)


Also not sure where you are but market price for good coders / writers is not at $30/$40 an hour for short term assignments (with all due respect, this is what I pay (tax included) the cleaning lady in my home)... $150  to $200/h would probably start attracting some talent to your project...

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Gippopotam

Quick note on your code - don't teach newbies to use the String class... they will later come to the forum complaining their more complex code fails in weird way and we will tell them to get rid of that class.... (read the evils of arduino strings)


Are you sure?

pert

Yes. The use of String in that sketch is just silly. It adds unnecessary complexity to the code in addition to unnecessary overhead.

Not only is this code easier for a beginner to understand, it saves 250 bytes of precious program memory!:
Code: [Select]
 if (sensor_value <= DARKNESS_LEVEL_THRESHOLD) {
    Serial.print("It's dark, sensor_value is: ");
    Serial.println(sensor_value);
    return(true);
  }
  else {
    Serial.print("It's NOT dark, sensor_value is: ");
    Serial.println(sensor_value);
    return(false);
  }


Or move the string literals to program memory to save even more precious SRAM:
Code: [Select]
 if (sensor_value <= DARKNESS_LEVEL_THRESHOLD) {
    Serial.print(F("It's dark, sensor_value is: "));
    Serial.println(sensor_value);
    return(true);
  }
  else {
    Serial.print(F("It's NOT dark, sensor_value is: "));
    Serial.println(sensor_value);
    return(false);
  }


That's not the only thing in that sketch I'd change.

Gippopotam

Yes. The use of String in that sketch is just silly. It adds unnecessary complexity to the code in addition to unnecessary overhead.

Not only is this code easier for a beginner to understand, it saves 250 bytes of precious program memory!:

Or move the string literals to program memory to save even more precious SRAM:

That's not the only thing in that sketch I'd change.
I do not think that it was about this.

pert

You're right. The original argument was that String's use of dynamic memory allocation can cause memory fragmentation. It may be possible to use String in safe ways but that requires an understanding of what's going on at a low level. It's not something that beginners should be using so using String, even in a safe manner, in a sketch to teach beginners is a very bad idea. The catch is that once you know enough to understand when String is safe to use you also know enough that String is not really helpful.

My reply was just adding additional reasons why String should not be used in that sketch.

wvmarle

That example sketch was a test for cleaning up - so let them give the benefit of the doubt and assume that this (and things like using int for pin numbers, rather than byte) are part of the "test". Indeed a very inappropriate use of String, just doesn't make sense at all to use it there.

There's of course always the problem of "cleaning up a sketch" when you don't have access to the actual hardware it's to run on, or not even a proper circuit diagram... (lemme guess: they use Fritzing?)
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

J-M-L

Are you sure?
Yes and I meant both points

in this small example, this is overkill and as I said, in the long run, this is a bad idea.

Once learners will have a solid understanding of dynamic object allocation and what overloading operations means for that class and can explain what heap versus stack is and can visualize in their mind as they code how the holes in the heap will heal as you allocate and free up then they will be ready to use the String class...

of course if this is aimed at doing a crappy 10 lines of code program that will run once and be put in a drawer.... sure that's a different pedagogical ambition..
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Go Up