A key component in the field of automation was how to ensure a safe and easy transition from our repositories to runtime environments, with as few showstoppers as possible. Azure Pipelines was extremely straight forward in taking a concept from grassroots investigation to production in a very short time, without running the problem of vendor locking, allowing continious use of our current infrastructure, tooling and solutions.
Pro-Tip of the day: Stay pure
At Findustrial we strongly stick to the principle of staying pure and not relying on external dependencies. Why? Because every external software library or package we need to include in our code couples us to external companies or projects. Which is especially bad when using external code on your core business logic.
I would always consider and discuss the need of an external library or tool over implementing the code on your own. Rather take a few days in building a custom solution that fits your needs exactly over engineering an external dependency into your product.
Plus: Independence from other software vendors and projects may also drive up your businesses overall evaluation in the end.
The downside of this, of course, is reinventing the wheel. The biggest downside is probably that now all your developers are hostage to your company's ability to write good documentation as well. If its a small shop this isn't as much of a pressure but you're still bottlenecking knowledge transfer of your custom solution to person-to-person communication.
I am planning on creating an application using the following tech-stack. Vue.js (TypeScript) for the front-end, Django (specifically Django REST framework) for the server-side work, and using PostgreSQL as the database. Is there any reason NOT to use this tech stack mentioned or are there better options? Without giving away too much info, my app will be logging information from the user, displaying this information, setting goals, displaying visual graphs, a friend system where you can add other people etc...
Great stack. Very productive and the vue development tools are excellent. The generic views from drf help a lot in productivity
Agreed, a very productive stack. Django takes care of a lot stuff for you down to the serialization of your data models, and Vue is just the best thing out there right now for front end projects, having good component structures while being flexible and easy to use.
Easy stack to start and develop your product. Vue is easy to learn and use, great support from the community if you have questions. Django is a powerful backend framework, the Django Rest Framework comes with a lot of generic views that you can use which will come in handy. Also, Django admin gives you and out of the box interface for all your admin/support needs.
Hello, A question to frontend developers. I am a beginner on frontend.
I am building a UI for my company to replace old legacy one with React and this question is about choosing how to apply design to it.
I have Tailwind CSS on one hand and Ant Design on the other (I didnt like mui and Bootstrap doesn't seem to have enterprise components as ant) As far as I understand, tailwind is great. It allows me to literally build an application without touching the css but I have to build my own react components with it. Ant design or mantine has ready to use components which I can use and rapidly build my application.
My question is, is it the right approach to: - Use a component framework for now and replace legacy app. - Introduce tailwind later when I have a frontend resource in hand and then build own component library
Although I use Hugo instead of React (and don't have experience with Ant Design), I'd highly suggest using Tailwind. The main reason I like it is because I can't tell if a site is using Tailwind or regular CSS, whereas once you've seen a Bootstrap site, you'll see Bootstrap everywhere whenever it's used (and I'd assume the same with Ant Design).
Most probably you don't want to create component's logic from scratch. As you already have an app, try to make a list of all components that you'll need - modals, dropdowns, etc. And then try to find a library that has all of them, because some components are rare (like a range selector).
There's some libraries built with/for tailwind, for example https://headlessui.com. It's pretty basic, but maybe it'll be enough for you.
It's not that when you're using tailwind you're not touching css. It's just a convenient way to write it and it gives you a nice design system by default.
We decided to migrate our existing serverless applications entirely to SST (coming from serverless framework). We're seeing the main benefits in the local developer experience & the use of CDK. Since we are deploying "real" cloud resources with SST during local development, we can iterate much faster, learn more about the serverless / cloud specifics & catch issues before deploying to a preview deployment. Utilizing AWS CDK (Typescript) for IaC matches our full-stack typescript mentality.
I've looked at this closely and we're still on the fence. Many folks like having a completely offline model for testing and SST is not philosophically aligned with that. Further, the finance team is worried about the cost of all developers spinning up cloud resources for their offline development. Have you found either to be a concern?
We also evaluated & actually worked on the "completely offline model" for our apps based on serverless framework. We used local emulators for dynamodb, s3, sqs, sns via localstack etc. However those emulators did not really give us full confidence [e.g. testing if your IAM permissions are setup correctly] & were quite flaky to setup / maintain tbh. Another part is that testing more complex event driven patterns [e.g. api gateway -> lambda -> sns -> sqs -> lambda] was never really possible using those emulators. Running on SST allows to cover those tests during local development.
Regarding financial concerns all used services are pay per usage & usage during development is typically quite low so we don't have any issues around that. For pricey components [e.g. RDS] we're using a shared instance across all preview deployments to avoid high costs for preview envs. We also invested in a proper SSO structure on our AWS accounts, where each engineer has their own AWS account [with budget alarms being setup to avoid any costly accidents].
We're planning to share more on our setup in a blog post soon, stay tuned :)
would love to read when available!
Hi, We are looking to implement 2FA - so that users would be sent a Verification code over their Email and SMS to their phone.
We faced some limitations with Amazon SNS where we could either send the verification code to email OR to the phone number, while we want to send it to both.
We also are looking to make the 2FA more flexible by adding any other options later on.
What are the best alternatives to SNS for this use case and purpose? Looked at Twilio but want to explore other options before making a decision.
Would be great to know what the experience with Twilio has been, especially the limitations/issues with Twilio...
Appreciate any input from users of Twilio and others who have had similar use cases.
I would recommend Twilio as well. If you're objective is to get off the ground quickly and build something that is robust without much effort, Twilio really nails the developer experience and easy of use. It's also light on any kind of set up or infrastructure as code. That said, it's a lot more expensive that AWS alternatives, so if you're operating at scale you may want to look closer at AWS options.
2FA Security is a pretty important topic. While as a convince it would be great to broadcast the security code to as many devices as possible this is fundamentally a bad security practice. Imagine for a minute that a bad actor has compromised one or the other of your message platforms now when you attempt to login to fix things they're also given your security code. If you read enough stories you will find that both email and SMS can be compromised to grab peoples codes.
Secondly, I have never interacted with a product that broadcasts to both messages upon login, they always present a choice of where to send it.
To you actual question; Twilio + SendGrid (a Twillo company) would be the default choice because both of these log what happened when you send a message. For instance with SendGrid you can see the delivery events in their UI to debug issues (e.g. was it delivered to a mailbox, or what was the error code). If you use Amazon SNS you will have to build out all of the logging to know what happened. At some point you'll need to have all of this info in your product because your CS agents will need it for quick debugging of customer issues, but when you first roll out it's great to just let the service do the logging.
For up to 10 users youtrack is free and gives you much more flexibility to manage task than asana, trello or definitely clickup. You have lots of charts and reports. Sprint or kanban. Powerful search. Integrations, rules, ets..
All of the above are either not available or paid in Assana, Trello or Click up.
This is an example of: it does not matter if your product is better, the only thing that matters is marketing (and the money for the marketing). So sad :(
I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.
Flutter is the best one. If you are a new comer in mobile app development, choose
But if you have strong experience in
Ionic also has its strong points such as a lot of prebuilt components for different platforms and minimal dev environment requirement (you only need a browser).
React Native has a very rich ecosystem and if you're already a web developer, the skills that you already possess will transfer over very well. React is the second most popular web framework according to Stack Overlow's 2022 Developer Survey. No one framework is the 'best' as they all serve different purposes and have different use cases. If you're looking to pick up something popular, I would recommend React Native.
I just did a big update for the images optimization, added unzip functionality to the buckets.
I selected CloudFront over NodeJS because a lot of the functionality that I was doing on the lambda functions as preprocessing is now replaced by some functionality on the viewer, request and response of the distributions Edge handlers.
Now you can select the right size based on the query parameter and the same filename, before I was using different names to prevent abuse and improve cache, but now I take some precautions on the viewer handler even with the query parameter
Hi Guys, If you were to learn one of these languages for backend development: Golang, Python or TypeScript/Node.js, which one would you choose? Should meet the following criteria: - Focus on web application development. - Be stable for the next 10 years. - Good for microservices (compete with Java Spring Boot). - Production ready for now and not in the future. (Like Rust) - Have good ecosystems, i.e. libraries, testing, CLI, framework and good deployment options. - Good language features. I'm not interested in ML/AI, Data Science or DevOps.
Both Python and Node.JS solves similar yet different purposes for microservices. As a concern, I choose Node.JS over anything as My services could be handled by any cloud. If you want to perform some tasks requiring more to the server, then definitely go for Python else JS is best.
Thanks Bhupendra, Can you please explain to me what you mean with "requiring more to the server"? some explicit real use cases ma be useful.
Converting files to JSON format or any task requiring computing power might need python as its possible to do in python and JS is just for data processing and all sort of tasks
I would go with Go if you need performance or solve highly concurrent tasks. If not, Node feels easier to work with and is arguably more common (also, it's JS - it's everywhere, and you can switch to FE more quickly since you want to focus on web apps). Python is cool as well, but I hate how the package management is not solved, and the pythonic coding standards are not excellent, in my opinion, of course. As for stability (in terms of their APIs), I guess Go is the safest choice (it's still v1, after all), Python is a close second, and Node changes relatively fast. It's also a question of what language(s) you already know and use.
Nowadays everything is possible with JS. Go deep dive with JS and that will be enough I guess.
Keep on with JS and learn Node. - Node is easy to start with and powerful. It can help you learn the basics of working with servers, authentication, authorization, middleware, etc.
My days of using Firebase are over! I want to move to something scalable and possibly less cheap. In the past seven days I have done my research on what type of DB best fits my needs, and have chosen to go with the nonrelational DB; MongoDB. Although I understand it, I need help understanding how to set up the architecture. I have the client app (Flutter/ Dart) that would make HTTP requests to the web server (node/express), and from there the webserver would query data from MongoDB.
How should I go about hosting the web server and MongoDb; do they have to be hosted together (this is where a lot of my confusion is)? Based on the research I've done, it seems like the standard practice would be to host on a VM provided by services such as Amazon Web Services, Google Cloud Platform, Microsoft Azure, etc. If there are better ways, such as possibly self-hosting (more responsibility), should I? Anyways, I just want to confirm with a community (you guys) to make sure I do this right, all input is highly appreciated.
Firstly, there's nothing wrong with Firebase for scalability, not can I see anything wrong with "cheap" - unless you expect to need the more complex tools that MongoDB offers (such as Map/Reduce, GridFS and such), I don't think you would want to pay more to get the same capabilities. That being said, there are advantages to move to an open-source code base that you have the option of hosting yourself - preventing vendor lock-in is a legitimate requirement.
Now, as for hosting MongoDB: there are a lot of providers that will host MongoDB (or compatible, see AWS DocumentDB) for you - AWS, Linode or Digital Ocean all offer managed database as a service, so you don't have to mess with VMs and installing and maintaining your own instance of the database server - they are often also cheaper than just running a VM. There's no need to co-locate the database near the application - all of those managed MongoDB services offer great connectivity so unless millisecond latency is critical for your application, any will do.
That being said, your best bet for starting to work with MongoDB is probably MongoDB's own Atlas service - it is a managed service provider that allows you to select in which cloud hosting provider to co-locate a managed MongoDB instance - they support AWS, Azure, GCP and others. They always have the latest and greatest MongoDB version (they make it themselves) and they even have a free tier for starting development on the cheap.
you can also use mongodb atlas, it is a dbaas, it also has shared clusters which are essentially free, good to start with. also are you planning to use an ORM( prisma or mongoose) or raw mongodb driver
We startup project with Apollo Client as the fronted data management library with a promise that in the short future we will have Graphql backend but for now you have to connect with standard REST. After 1 year there is no Graphql backend, classical business promises... so we switched to React query.Pros.:
- you do not have to worry about merging objects
- you do not have to worry about writing custom resolvers
- you do not have to worry about writing
__typenamein custom resolvers
- you do not have to worry about schema description in
- you do not have to worry about describing graphql schema
- you need to writing fetch keys
- you need to keep in mind fetch keys similarities
I have an online marketplace and I was wondering which framework will be better Django (Python) or ExpressJS (Node.js). I do plan on using ai, ml and do work on big data from transactions and customer preferences regarding products and such. I do understand that Python is slower than Node.Js and I am wondering if both are able to do microservices but, I am still open to some advice and solutions you have for me. Thank you for your help.
ML immediately tilts your decision towards Python as the ML ecosystem is in Python. Microservices can be programmed in Python. However, as you said, Python is slower than Node.js. This leads to a combination of both languages as the ideal solution. A problem in terms of skills, especially for a limited size team. It also raises the question of how you are going to connect the different microservices. If it is Kafka or MTMQ should not be a problem to connect services in the different languages. If you are limited in terms of size of team, choose Python. As you cannot go very far with Node.js for ML.
Yes ML or AI thing is python but web developing then node js bc it is really fast enough
I am confused whether runtime speed or development and maintenance speed is more important? and if I put ml and ai in my site a bit later, will choosing Node.JS be better. what is the performance difference in runtime and development between Express.JS and Django?
when starting out the development and maintenance speed are way more critical. you can also throw hardware at your service for a long time before getting to a critical mass where you have to look into optimizing your stack.
With the info you have shared so far, here's my recommendation: 1. Python ecosystem is very sophisticated for ML, AI. Build models, and perform most of background work via python. You can expose these models and any business logic needed via python Fastapi. 2. Node and js ecosystem is great for building both server rendered and Single page apps - whichever your preference is. You can easily use something like Next.js and build out the marketplace web/mobile application, interact with ML models via an api or directly read the model from node backend. Hope this helps.
I am confused whether runtime speed or development and maintenance speed is more important? and if I put ml and ai in my site a bit later, will choosing Node.JS be better. what is the performance difference in runtime and development between Express.JS and Django?
Agreed with Yoram's response in this thread.
When you say you want to put ml or ai on to your site, could you elaborate that a bit more?
Since you mentioned online marketplace, my hunch is that you want to use ML or AI for recommendations, search results or even prioritizing the right ads for the shoppers. If that is the only place where you like to use ML / AI, that that part can (or needs to) work with your search infrastructure.
There are two modes of ML application - realtime, and offline
For realtime ML / AI application, there are lot of considerations you have to go through before finalizing the technology. For example, say you are using elasticsearch as your search engine and if you like "personalization" to be a factor in search results, you may want to do offline ML, prepare models, validate which features carry what weights and then apply those weights into your elasticsearch query.
Alternatively if you can also fetch all the results from ES and run through the model to sort them in the order that suits best for a single shopper. It adds more time to respond for search results, but if you can live with that latency that works.
If your usecase is you want to use ML just in offline scenarios, like building a model that satisfies some objective you may want to divide between the work that is needed to analyze, prepare model, test etc AND the work needed to invoke the model at runtime. You can totally use python tech stack for the former and use node js / next js / Blaze js / refine etc for the latter (since node can also invoke a model and return the results).
As a side note, if you are building an entire marketplace, like categories, listings, product page, search, purchase etc AND if the scale is not going to be too high, I would also recommend looking at woocommerce, shopify (paid), magento (open source) etc kind of options to put up a site together. There's a lot to build, not that it is impossible, but it will be more of reinventing the wheel imho.
If you know both at same level, then Express.js is faster in terms of performance and development and maintenance. And it does not preclude connecting to a ML backend model later. So you can have the bestow both worlds.
Gradle build system is our choice for all Android applications at Vinted. We are taking build performance aspects very seriously, therefore we structure our modular projects accordingly and follow all the state of the art recommendations to leverage best possible build performance. Also, Gradle helps us to automate many build related processes.
Hello guys, my first time here, and for requesting advice.
In my Location Germany Industries, Finance, Utilities, Insurances, Retails, and Healthcare dominate Java in the Backend. In my case Java is the logical choice BUT, XML, old codebase, JSP/JSF , boring and verbose syntax without Syntactic Sugar, test Battle, and so on make me crazy.
I have Java, Python, Golang, and Node.js/TypeScript as a choice, but because of a lack of Backend knowledge, I can't make a decision. Which Language and Ecosystem should I learn and master for a long time, my Goal is to work with a selected stack for 10+ years and I don't do Data Science only Software Engineering.
Thanks for reading and Advice! Important! !!! I see via Email somebody send me an Advice, but unfortunately i can't see/read your Advice here :( Users like: Jose Manuel Ortega or nullStack65....
If you have solid js knowledge go with nodejs and express, it's super solid when you're making a Fullstack app and you don't want to switch back and forth with another language Express is really great and honestly the syntax doesn't change like you mentioned, once you got that down you can learn type script and start learning the framework nestjs, which is express(or fastify) but opinionated and well structured and a ton of added features to build a backend.
Alot of apis are written in go too, it's also great for making anything that involves low level networking and such (or anything network related honestly), it's simple efficient and super fast
I agree with you. The most logical and natural choice is Node.JS. @zom bibler: If you can't find good job opportunities, then switch to Java.
Thank's for your Advice!
Have you any experience about Microservice cloud based development like AWS/Azur with Express/TypeScript, that can you share with me? How available is this Stack.
Java development is here very mature and strict, without 3years knowledge of Spring i hardly have a chance xD
I have experience with AWS Lambda functions powered by Node.JS runtime ( https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html ). If you combine them with API Gateway you can create Rest APIs without any additional Node.Js web framework ( https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html ). I've used OSS serverless framework for deployment ( https://www.serverless.com/ ). There are AWS alternatives for deployment, e.g. AWS SAM: https://www.techmagic.co/blog/serverless-framework-vs-aws-sam/
Thanks for your Time Stanislav!
for me it is still unclear whether Java/Spring Boot in the area of Microservices are good enough not to be replaced or Node.js/TypeScript is good enough that more applications are written with it.
I don't think GO can/will replace Java or C# in enterprise environment, it will remain a niche.
I wanna deep dive into the area of Microservices in Java or Node.js, if you starting Backend right now, which you think could be stable and more popular in the next few years. Which one would your pick?
I might use Java to be on the safe side.
Thank's for sharing this link. Nice article.
How much can this future theory help me? Quite honestly, In the Industry nobody interesting how green is it, they wanna make Money, please serious Advice.
It was for reference bro how fast and stable they are Go is better for both time and satble and also provide better multi multithreading Functions ...
Thank you Mehul, i got it, but performance and personal choice is not my Problem, i wanna work for some Companies, that used Big Applications and Microservices via Azur/AWS. Many Companies use Java as Default Language and i want to find out if Express/TypeScript or GO can replace some Part of this Applications instead Java. This happening most in US before happening in Germany, this lead might be helpful to me.
I chose VSC over a (paid) IntelliJ because of its relatively lightweight nature and ability to sync its config to the cloud, so I have the same setup on any device I use and sign in. The extensions are a bit daunting at first but my colleagues provide valuable feedback and it's great using the same extensions as they do because of increased productivity. I mostly use terraform code and k8s yaml files and the community just has outstanding extensions for this to work with.
I had to design a group of services for environmental analysis, with a lot of I/O. After initially trying Golang, we realized that it was too verbose and became more and more difficult to maintain because the language was too low-level. We wanted something more productive, while keeping the memory footprint low and the performance high. Scala Native is a perfect match for this job!
Why? Scala Native is more productive than Go and Rust. It provides a great type system with high-level constructs, so that you can focus on your business logic and not on the technical details. No borrow checker means that it's much more easy to use. And thanks to its Interflow optimizer and Commix/Immix garbage collectors, it delivers impressive performance and uses very little memory. Also, the last version of the language, Scala 3, is surprisingly readable!
To sum up, Scala Native is:
- more productive than Go, because it provides high-level tools and makes you do more with less characters
- safe like Rust thanks to its great type system
- easier to use than Rust, because there's no borrow checker
- very fast and lightweight
Looking for an environment to help with exploring behavioral data, and creating dashboards for an account-based marketing approach. As we dug into options, I learned of Looker Actions, which enabled us to send the results of queries to the Segment Track and Identify api's. This enabled me to easily send CRM data to marketing tools integrated via the Segment CDP. At the time, no other BI environment provided a similar capability to automatically activate data, rather than just visualize it.
Hey everyone! I'm planning on building a personal project - this will be my first full-stack project and will be a web app.
The way it will work is that users will be able to post groups. This can be, groups for studying or groups for work, etc. They can also set the desired group size (e.g. limit the group to 3 members). Other users can then join said group - once the group is full, it will automatically close.
What tech stack would you all recommend for this? I have a lot of experience with Django so maybe that will be good for the backend but I'm not sure where to go from there. I've heard using the Django REST framework with a React frontend might be good. Always open to learning new technologies and thanks in advance!
Actually there are a lot of people that doesn't know that django and react is a good match when using the django rest framework, django is a python framework so that will make it very easy to use when building api endpoints, I recommend that you learn the django rest framework + JWT authentication system and the react routers v6 and protect routes, Hooks and how to fetch some data from api endpoints using the fetch function or axios.
I recently built a web app for college students to interact and trade books. I had built in a similar feature where students could create clubs (groups) and become a member and post content on the club's pages. Used Flask MVC throughout. But you also need to consider your data store and how you would model the data. I went with MySQL. The thing about Flask is that - 1. It's Python-based 2. It's a micro framework and perfect/easy for building MVC apps and also REST APIs to pair with React. 3. It is also modular, so you get to choose what libs/components you want to add on top of it.
We recently migrated from Kafka to RabbitMQ, primarily in favor of (operational) simplicity and YAGNI. In our Spring-based microservice environment, we use a message broker for event-driven communication between backend services. SCDF with Kafka was just overpowered and way too complicated/expensive to operate in production, just to publish and subscribe to events. Therefore we choose to migrate to Spring AMQP with a RabbitMQ backend.
Interesting to hear it wasn't just me who thought Kafka has lot of operational complexity for the features. I happened to choose RabbitMQ as well for its general purpose utility.
I am a beginner in the programming field, and I have started learning Flutter lately but a lot of people around me say that I should learn React or start with learning front end and stuff like this because flutter is new, and I'd get a job quicker if I learn React.
I want to learn a technology that will benefit me in the future. Should I learn React or stick to Flutter?
tl;dr Pick a tool and stick with it. It will be worth it.
Either of these tools is great.
Here's the thing: both of them have a bright future ahead.
We chose GraphQL for our core API because it provides applications and users with the greatest flexibility.
Using GraphQL developers both internally and externally are able to get the data they need quickly and efficiently, without needing to make multiple requests.
GraphQL's self-documenting nature, coupled with tooling to annotate source code to add within the generated GraphQL documentation means that our API documentation is always accurate.