Freelancing feasibility for flask web app projects

Hi There,

Yesterday I completed my first web app with Python’s Flask micro web framework with user authentication and SQLAlchemy (and front-end with Bootstrap). My previous 3 projects were on ASP.NET, C#, AJAX, Bootstrap, and MS SQL Server. So this is my very first experience with Flask. It was fun to create web apps as the code is clean and easy to maintain. I want to do some freelancing to get more and real-world experience. I never did freelancing before and I think, I should start with Fiverr.

  • Is it feasible? I mean what type of customer would like to have a flask web app? I think customers would definitely want a web app developed with Node.js because of the speed.
  • What freelancing platform do you suggest for this type of projects?

I would love to hear your valuable suggestions for this.
Best Regards.

The application is the product, not the technology used. Why would a potential customer, if they just want “a web application” (unless it is contract work on something that needs to fit with some existing tech they already have in place) care what was used to build it? Also what do you mean by “speed”?

1 Like

Because of the architecture difference between Node.js and Python, the Node.js execution process is faster than Python and its web frameworks Flask, Django, etc.

Execution of what? I’m not sure what you’ve read or why you think it makes a difference most of the time, but do you think that (eg) Instagram would work better, that somehow it would be “faster” (whatever that means) if it was written in Node? Node is good at certain very specific kinds of things, outside of those it confers no particular advantage (if a developer/team know Node well, they may produce better software using it than any other given technology when they use it in combination with other tech, they may not :man_shrugging:t3:)

Thanks, you cleared a big doubt.

isn’t there will not be much response time difference for the web app that has to handle high traffic?

What do you mean by “high traffic” and what do you mean by “web app”? Give me some examples.

Modern computers are really fast. If you have something you can cache, then ability to have millions of connections a second is no big thing. If it’s something that isn’t cached, then just throwing more computation at it normally works fine. There are a million and one things that can be tuned and tweaked on a “slow” web application before you even think about changing the language the codebase is written in.

Perceived speed of web applications depends far more on things like network speed. So you use servers physically close to the user. You use load balancers. If it’s using a dB, you fix slow queries. You cache pages. You serve static assets from a CDN. Etc etc. If it’s still slow, and that’s definitely the framework, you just use more servers or more CPUs. You try to do more stuff concurrently if possible. Node doesn’t magically make anything faster. The way it works is useful, performance-wise, for a very small category of applications. It’s useful development-wise for a larger set of applications, because it’s in some respects easier and quicker to build those applications using Node than some other languages. So something like a chat app, for example, possibly benefits from using Node, but there are other technologies that also work just as well.

Are you a beginner? Because if so, this is almost 100% likely to be a non-issue. And regarding working freelance: most small clients aren’t Amazon, aren’t Google, it’s just not that important. There are areas where speed is very important (financial trading, for example, or online gambling), but if that is a massive issue, then they tend to hire people to build very fast custom parts of their products and applications, and that’s not going to be Node, it’s going to be C or Rust or Assembly or whatever. They don’t normally rewrite their entire system, because unless it’s very small that’s pointless, they just take one small part, like say payment processing, and get someone to write a program or programs that deal solely with that.

Edit: I’ve derailed this slightly, but I want to know what you think speed means – it’s really common for people to want to work with the “fastest” language or web framework or whatever and I understand why, sort of, but it’s not exactly super logical from a general “building some webapps”

1 Like

Most of the time you’ll find clients asking for specific technologies so they can continue to use those specific technologies after you leave. Its usually more of a business decision than a technical one.

Any benefits you get form picking the “best” option for a given scenario goes out the window when you, as a business, don’t know much about such options. So for example, if a business runs a bunch of C# applications, they will probably look for C# freelancers to meet new requirements. This way they have some existing experience, and the freelancer can contribute to the existing codebases, or later you only need a developer who knows C# to continue the work. There also could be internal rules (like security audits) so the business minimizes risk to itself by sticking to what it knows.

This might be a little backwards. If you want to freelance I suggest looking at multiple sites (like upwork, freelancer, etc) and seeing what sort of jobs are available, at what price, and what they are looking for in terms of experience and projects.
From there you can see what is popular and at what price points people are looking for a given work and balance that out with your own needs. Its possible “Flask based” back-ends are popular, or they aren’t popular at all. Its also possible its a very popular stack for freelancers, but competition is enormous from highly skilled freelancers asking for low price points.

An alternate approach is more of a “consultant” approach, where you come in with a bunch of experience and skill in a specific type of work, and focus on competing for jobs that fall into your niche. It wont matter what platform you do this on, as there will be less jobs in general in your “niche”. So going to multiple to at least get an idea if your niche is even in demand would work.

There is also a lot of other factors that go into freelancing that are separate from the actual technologies used. Something like your location, cost of living (forcing how much you need to charge), ability to communicate, background to get jobs, project management, ops, marketing, promotion, etc etc.

Freelancing is as much being your own boss as it is running your own business.

2 Likes

Thanks a lot for explaining things in detail. It’s a lot clearer to me now. I can’t wait to start one more project. I appreciate your time. I was thinking it would make a big response time and performance difference after deployment if I wrote backend with Python than Node.

Best Regards,
Karamjot Kaur.

To add to what DanCouper already said, response time for high traffic is generally NOT determined by a particular language or framework.

While yes there are internal differences between Node.js and Python/Flask/Django (and you could measure the speed difference between them if you wanted to), those differences will generally NOT result in any human-perceptible difference of speed that will matter to an end-user of the application. The speed, or lack thereof, that end-users ultimately notice will usually be determined by how many web servers can be dynamically allocated to run the application (i.e. load balancing), if traffic suddenly spikes for any reason. Availability of load balancing is the most common reason that most web apps seem to slow down (or outright crash due to excessive traffic) that end-users will notice. It has nothing to do with which language or framework was used; that’s totally irrelevant.

There’s only one exception I know of with the Elixir programming language, which is uniquely able to handle very high concurrency more safely than most languages.

1 Like

Thanks so much. It is very valuable to me.

Just as an aside, and derailing more, it isn’t unique: combinations of any language plus supporting languages/tools can do what Elixir does. It’s arguably unique (well, the VM Erlang runs on, BEAM, + the library it ships with, OTP) in that it comes as a single package, and therefore provides more tools in one place for soft-realtime systems than any one other thing, but that doesn’t mean it will always handle very high concurrency better than any other solution