Where to Find (Python + Full Stack) Developer?

Hi guys,

Kinvert is looking for some developing help. I'm in a bit over my head here. Once someone builds a tool and gets something with all the connections such as OAuth etc, I can start adding code. However I know little to nothing about how and why some languages are best for specific things such as taking data from a SQL server and getting it to Python so I can start to crunch it, then send something back so the website / app can act on the decision the Python code makes.

Where would you suggest I look for help with this? Even just basic consulting so I can have a feel for what it will take to make my (vague) idea happen? I just need someone who knows 'that's a compiled language so it is or isn't good for this or that' and how to get Python to talk well with all the full stack stuff that will need to happen. Also we'll likely want this to work well with Google Drive as well as setting up some APIs such as our autoresponder mailing system.

I prefer to avoid all these freelance website market places and work directly with someone.

Thanks,

Keith
Founder of Kinvert
https://www.kinvert.com/

Comments

  • 19 Comments sorted by Date Added Votes
  • I cannot tell you what is best for your situation, but I can tell you what I have been doing for the last 35 years: You never, ever create a piece of code that touches a database anywhere. Doing so gives you liability willies and puts you on an infinite upgrade treadmill from which you can never escape as the tools "improve."

    What you do is specify .csv and ask your customer if they can create a daemon to scrape the .csv files you leave and, if necessary, create return ones for you to scrape. It works quite well, has worked since the 1960's, and will probably still work in the 2060's, and if the database schema changes then it's not your problem. I have customers that have gone through four mainframe and core enterprise software upgrades without even calling me because the big changes they were doing did not affect the interface we had worked out back in 1993.
  • Why change languages for different tasks? Python is perfectly capable talking to databases. SQLAlchemy is a well written and easy to use Python library that makes access to SQL databases very simple.

    Requests makes interaction with APIs very simple.

    Flask makes it very easy to build a website that runs on Python.

    Put the three together and you pretty much have all you need to interact with a user through whatever browser code you write (HTML, CSS, javascript framework), through all your application logic written in Python, out the backend to you database.

    Nowdays, you can have a simple Web application up and running in most languages with minimal work using frameworks and libraries in most popular languages.
    MOV OUTA, PEACE <div>Rick </div><div>"I've stopped using programming languages with Garbage Collection, they keep deleting my source code!!"</div>
  • My wife and I are both professional, full stack developers and interested in side jobs. Send me a pm with your email address if you'd like to get in touch.
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
  • localroger - Thank you for that insight! I wouldn't have thought of that on my own.

    mindrobots - Yeah I've heard of Flask and have considered Django in the past. One concern is it seems like I'd be leaving behind the convenience of WordPress. Want Stripe, WooCommerce, and 100 plugins that work very well with those and membership sites? Click this button. But with Flask and Django it seems like I'd get a lot of what I want but I'd also have to reinvent the wheel (online store, billing, anything that's an existing WP plugin). Or maybe I'm wrong here? I'm NOT a web expert. I know just enough to get myself in to trouble.

    DavidZemon - Will get back to you later today :smile: though that could turn in to Monday. My newborn is a little extra cranky today and my wife is still struggling with her C Section.

    Anyone have a suggested website to visit to get instructions on starting a basic Flask / Django site? I could just make a subdomain and start trying to mess with it. Hopefully it doesn't require a bunch of custom stuff as I am currently on a shared server.
    Founder of Kinvert
    https://www.kinvert.com/
  • MOV OUTA, PEACE <div>Rick </div><div>"I've stopped using programming languages with Garbage Collection, they keep deleting my source code!!"</div>
  • Anyone have a suggested website to visit to get instructions on starting a basic Flask / Django site? I could just make a subdomain and start trying to mess with it. Hopefully it doesn't require a bunch of custom stuff as I am currently on a shared server.

    I recently did a django project for a client and it was reasonably easy to use: https://docs.djangoproject.com/en/2.1/intro/tutorial01/

    Personally, I tend to lean toward statically typed languages because I find the development to be easier (my IDE knows everything about everything and can help me write code against new-to-me libraries better). That being said, if you just need a really small app, sometimes it's easier to get off the ground with Python than Java (my goto for most apps). Spring Boot has made RESTful services in Java way easier than it ever should be. Check out this little sample I created when I was exploring Spring Boot recently: https://github.com/DavidZemon/SpringBootMeetsH2

    I've also recently done some exploring with GoLang. Interesting concept.... though I hope someone creates a big, high-level framework for it someday because it's a lot of boilerplate right now. Very promising future though.
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
  • What is a "Full Stack" developer?

    Can he/she really build you a whole computing solution from the physics at the bottom, to the transistors, to logic gates, to CPU architecture. Then through all the layers of the software stack from op codes to assembler to high level languages, to WEB servers, to databases to deep learning?

    No, I guess not.

    So what is this BS term supposed to mean?






  • Full stack?

    I guess they can do the HTML, Javascript, CSS, sort of front end stuff. In addition they can do more backend stuff such as PHP, SQL and whatever else.

    Ultimately I'm a Mechanical and Aerospace Engineer so I mostly just know what random people tell me on the internet when it comes to this sort of stuff.

    I don't know the terminology here perfect. But basically I'm trying to get someone who can make Python jive with HTML CSS etc so I can provide different content to each users browser, which I think people vaguely call Full Stack.
    Founder of Kinvert
    https://www.kinvert.com/
  • Take heart Keith Young.

    Five or six years ago, having spent most of my life dealing with embedded systems in the military and aerospace world, using languages like C/C++ and Ada, I became a "full stack" developer. Without even knowing it!

    At the time it happened that the boss took it into his head to have real-time updates to 3D scenes in the browser page using data streamed from remote field units.

    Well, I had no idea how to do that so we hired a consultant software engineer, who knew all about streaming data to browsers and animation in FLASH, to do it.

    As it happened I accidentally discovered that one could do live data updates and 3D animations in the browser using Javascript, websockets for communications and webgl for 3D rendering.

    And all it took was a server that understood websockets and could accept data streams from sockets in XML and talk to an SQL database. Enter my node.js server.

    As it happened the FLASH consultant never finished the job. But my field unit to server to browser demo was up and running in time for the trade show my boss wanted to show off at.

    All in all, six weeks from nothing to "full stack" solution.

    Well, except I had to get the bottom of that stack working before that. Embedded Linux, kernel modules and such...

  • Ah heater., your literal interpretations are always such fun to read :)

    The colloquial definition of "full stack developer" 'round these parts would read something like this:
    A developer with the skillz necessary to develop a complete web application from scratch, including all three major systems: front-end (code running in the browser), back-end (server-side code communicating with persistence layer), and persistence layer (database usually).

    For instance, I know a how to build a front-end app with Angular and bootstrap, I know how to build a back-end service with Java's Spring framework, and I know how to stand up and configure a MySQL database. Crucially, I also know how to make all three of these pieces talk to each other.

    Companies have needs for developers with most any combination of these skills - someone with both front- and back-end knowledge, just front-end, just back-end, and both back-end and database. Putting "full-stack developer" on your resume says "Whatever you have to throw at me, I can do it!" And yes... there's an implied "so long as its a web application" in there because that's all companies care about these days.
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
  • Yes, I was being very literal in my interpretation of "full stack". With reason.

    Your colloquial definition is exactly what I described above. In my anecdotal case it was:

    1) Real-time websocket communications server to browser. A new HTML 5 thing at the time I was warned off from using.

    2) webgl 3D animation in the browser. As above.

    3) Node.js as the web server and web socket server. And as the gateway from field units to database and browsers. As above.

    At the time I was having fun being daring whilst all the serious folks around said I was crazy for wasting time on these new HTML 5/Javascript things.

    So soon later, it's just normal. And now expected of a "full stack" developer.

    That is what one can do in 6 weeks. It's just simple glue to stitch lots of other stacks (that you did not develop) together.
  • I had someone tell me Flask won't be enough and I'll need Django.

    Long story short, want to make an LMS which can choose which versions of content to deliver to user. An easy to use content management system in there so it's easy to make courses, lessons, and lesson versions, etc. Work in all the obligatory gamification etc. Main thing is to have a platform that can be built on over time.
    Founder of Kinvert
    https://www.kinvert.com/
  • What other frameworks could work for this? I think I will want Python making decisions about what the user will be sent since I'll be comfortable writing the algorithm that way. But as far as I know the site could be built with nearly anything.
    Founder of Kinvert
    https://www.kinvert.com/
  • What other frameworks could work for this?

    Lots and lots of frameworks would get the job done nicely. Django and Flask would both be perfectly acceptable Python frameworks. There are others out there too - Google shows Falcon and Bottle are two more. Is there something wrong with Django and/or Flask that you're looking to get around? Here's a list of 10 different Python web frameworks: https://hackernoon.com/top-10-python-web-frameworks-to-learn-in-2018-b2ebab969d1a
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
  • Well one issue is Django developers seem to be more expensive and rare. So say after phase 1 I want to switch developers, I can't throw a quarter into a crowd and hit a Django developer like I can with a Java developer. I got burned with my first developer for the website a few years ago and it turned out they used some goofy infrastructure so switching was a little tough. Luckily this new guy is awesome.

    Sort of like Drupal vs WP when looking at Django vs Java.

    But like you said the whole thing doesn't have to be Python and maybe a fair bit of this can be Java. It's mainly the algorithm choosing content that I prefer to be in Python. I couldn't care less about what else is going on framework-wise as long as it's reliable, scalable, affordable, etc.
    Founder of Kinvert
    https://www.kinvert.com/
  • DavidZemonDavidZemon Posts: 2,511
    edited October 21 Vote Up0Vote Down
    Well, that's not what I intended to say, but you're right. You could definitely split the course decision algorithm into a separate service written in Python, and the rest of it can be Java (maybe monolithic, maybe microservices)
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
  • Also, can any of you guys speculate how they made this work?

    It even knows if you got it 'right'!

    https://www.khanacademy.org/computing/computer-programming/programming/drawing-basics/pc/challenge-simple-snowman
    Founder of Kinvert
    https://www.kinvert.com/
  • parse/code-analyze/eval loop of some sort. Code is data...
  • For that specific example, it's simple math. It's possible that they're scanning the image, but I would bet they're parsing out the parameters to each of the functions.

    For instance, if I type some code:
    ellipse(200, 300, 150, 150);
    ellipse(200, 145, 120, 120);
    
    Then I get an error
    Hm, the second ellipse, for the middle circle of your snowman, seems too far up. It should be sitting firmly on top of the bottom of the snowman. Try making the second number in your second ellipse() larger.
    
    That's pretty simple math. They can do something like:
    errorMessages = '';
    topOfBottomCircle = firstFunctionParams[1] - firstFunctionParams[2] / 2;
    bottomOfMiddleCircle = secondFunctionParams[1] + secondFunctionParams[2] / 2;
    if ( 15 < (bottomOfMiddleCircle - topOfBottomCircle) ) {
      errorMessages += 'Hm, the second ellipse, for the middle circle of your snowman, seems too far up. It should be sitting firmly on top of the bottom of the snowman. Try making the second number in your second ellipse() larger.'
    }
    

    I checked to see if I could insert other lines of code in. I was able to successfully complete the challenge with the following:
    rect(1, 2, 3, 4);
    ellipse(200, 300, 150, 150);
    ellipse(200, 185, 120, 120);
    ellipse(200, 100, 80, 80);
    

    So, my guess is that they're searching the text input for lines that begin with "ellipse" and ignore all other lines. They probably ignore the fourth invocation of ellipse() too, but I haven't tested that.
    David
    PropWare: C++ HAL (Hardware Abstraction Layer) for PropGCC; Robust build system using CMake; Integrated Simple Library, libpropeller, and libPropelleruino (Arduino port); Instructions for Eclipse and JetBrain's CLion; Example projects; Doxygen documentation
    CI Server: http://david.zemon.name:8111/?guest=1
Sign In or Register to comment.