The Art Of Selling A Tiny IT Project

Building tiny projects in your free time is something that you have to do as a programmer.

The main goal is to test out ideas that sometimes work and you can make a lot of money.

The process of selling a website or application had always been an art. 

Therefore, in this post I’ll tell you what it is like to sell a tiny project, and how I think anyone can.

1. Building a Project

According to many successful small-business founders and serial entrepreneurs.

 Your very best idea may not be quite what your customers want, for whatever reason. 

If you’ve spent all your capital on this one product that doesn’t quite get customers to buy, your business may run out of money before it recovers from the misstep. 

That’s a big risk to take, especially if you’re funding your new home-based business out of your own savings.

A more prudent plan is to start by offering a basic version of what you’ve heard your customers ask for and then ask for feedbacks.

One of the best books that I have read about how to make a successful startup is The Lean Startup for the author Eric Ries.

The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

2. Meeting the Buyer

It can be a good idea to make your introductions in a relatively informal setting like a business lunch, where both parties can get to know each other a bit. 

This will help break the ice and can help you feel more at ease.

It’s important to not let your emotions get in the way, as this could influence the buyer’s position.

Clearly state why you want to sell your business, and try to remain as objective as possible. 

It’s possible that the buyer might say something that upsets you or makes you angry, but if this happens, do your best not to show it.

During the meeting, allow plenty of room for questions. If you don’t have the answer to a specific question, say that you’ll look into the matter and let hi, know by email.

Don’t shy away from speaking about challenges your business might be encountering. A buyer who’s really interested will find out anyway during due diligence, so you’re best advised to get everything out in the open.

I highly recommend the book : Get the Meeting!: An Illustrative Contact Marketing Playbook, it has a set of tools you need to get the meetings.

Get the Meeting!: An Illustrative Contact Marketing Playbook

3. Negotiating a Price

When negotiating, seek advantages that allow you to exploit your strength, but don’t disparage the other negotiator in your enthusiasm to obtain victory.

When a negotiation outcome is less than expected, learn from the experience. Commit to getting better. Increase your knowledge of how to use the right tactic, with the right strategy(s), aligned with the right situation.

Make sure you observe and control your biases when assessing the person with whom you’ll be negotiating.

I recommend the book: Never Split the Difference: Negotiating as if Your Life Depended on It, it shows how to be effective when negotiating.

Never Split the Difference: Negotiating as if Your Life Depended on It

4. Receive the payment

How do you securely exchange code for cash?

I think it would be better to use an escrow service.

Their are many platforms providing this service like:

It works like this:

  • Buyer transfers to the escrow service.
  • you transfer the domain name, users, and Github repository to the buyer.
  • Brief video call explaining the code.
  • Buyer has some days to try everything out.
  • Escrow service transfers the money to you.

That’s it, the deal is done.


I understand that to sell a projects you should at least having a small audience.

So, as a programmer, you have to be good technically and a good marketer in order to make money on the internet.

A good strategy could be :

  • Build things you enjoy
  • Write about the process
  • Attract a small audience
  • Attract opportunities (buyers, customers, job offers)

It’s that simple. Code something for a few weeks, maybe publish it on your own blog.

1 people will probably read it, and that’s awesome. Next time it might be ten!

Keep building lots of little things that pique your interest, talk about it, and great things will start happening.


The working environment of an average programmer entails sitting around a desk for long hours surrounded by gadgets.

The reality here is that, there is a huge possibility of programmers developing certain health conditions and computer related injuries.

From my personal experience, I am suffering sometimes from back pain, caused by long hours sitting in front of my computer, sometime with a wrong position.

I recommend a Posture Corrector to regain proper posture which can help to prevent the onset of back, neck and shoulder pain. The Posture Corrector helps provide alignment while sitting, standing, lying down or during your other daily activities.

I write one article per week about programming, thanks for supporting me on patreon, by being my contributor 🙂

Some related articles you might interest in :

1-Make The Code Better Than You Found It

2– 4 Practical Books for Software Architecture

3-The Design Cannot Be Taught

4– 6 Best Programmers of All Time

5-How To Make Your Code Reviewer Like You

6-Most Graduates Unable to Pass Coding Interviews

Most Commonly Asked Java/JEE Interview Questions (Part-2)

In this article I will talk about next part of commonly asked Java/JEE interview questions.

Before, jumping to the list, I want to mention that It is great to be good technically, but you have to be also great on communication to succeed.

Being a good communicator will help you get the interview easier.

One of the tools will help you to write a good cover letter and email message is Grammarly’s AI-powered writing assistant

So, let’s go back to our list. 

25) What is a thin client?

A J2EE application client runs on a client machine and can provide a richer user interface than can be provided by a markup language.

An application client is typically downloaded from the server, but can be installed on a client machine.

26) Differentiate between .ear, .jar and .war files

a) .jar files

These files are with the .jar extension.

The .jar files contains the libraries, resources and accessories files like property files.

b).war files

These files are with the .war extension. 

The .war file contains jsp, html, javascript and other files for necessary for the development of web applications.

c).ear files

EAR is a file format used by Java EE for packaging one or more modules into a single archive so that the deployment of the various modules onto an application server happens simultaneously and coherently.

27) What are the JSP tag?

In JSP tags can be divided into 4 different types.
Directives, Declarations, Scriplets and Expressions

28) What are JSP Directives?

a) page Directives
b) include Directives
c) taglib Directives

29) What is Struts?

Struts framework is a Model-View-Controller(MVC) architecture for designing large scale applications. 

Which is combines of Java Servlets, JSP, Custom tags, and message.

Struts helps create an extensible development environment for the application, based on published standards and proven design patterns.

Model in many applications represent the internal state of the system as a set of one or more JavaBeans.

The View is most often constructed using JavaServer Pages (JSP) technology.

The Controller is focused on receiving requests from the client and producing the next phase of the user interface to an appropriate View component.

The primary component of the Controller in the framework is a servlet of class ActionServlet.

This servlet is configured by defining a set of ActionMappings.

30) What is ActionErrors?

ActionErrors object that encapsulates any validation errors that have been found. 

If no errors are found, return null or an ActionErrors object with no recorded error messages.

The default implementation attempts to forward to the HTTP version of this method. 

Holding request parameters mapping and request and returns set of validation errors, if validation failed; an empty set or null

31) What is ActionForm?

ActionForm is a Java bean that associates one or more ActionMappings.

A java bean become FormBean when extend org.apache.struts.action.ActionForm class. 

ActionForm object is automatically populated on the server side which data has been entered by the client from UI.

ActionForm maintains the session state for web application.

32) What is action mapping ?

The ActionMapping represents the information that the ActionServlet knows about the mapping of a particular request to an instance of a particular
Action class.

The mapping is passed to the execute() method of the Action class, enabling access to this information directly.

33) What is the MVC on struts.

MVC stands Model-View-Controller.

Model : Model in many applications represent the internal state of the system as a set of one or more JavaBeans.

View : The View is most often constructed using JavaServer Pages (JSP) technology.

Controller : The Controller is focused on receiving requests from the client and producing the next phase of the user interface to an appropriate View component. 

The primary component of the Controller in the framework is a servlet of class ActionServlet. 

This servlet is configured by defining a set of ActionMappings.

34) What are different modules in spring?

There are seven core modules in spring: 

1- The Core container module
2- O/R mapping module (Object/Relational)
3- DAO module
4- Application context module
5- Aspect Oriented Programming
6- Web module
7- MVC module

35) What is Spring?

Spring is a light weight open source framework for the development of enterprise application that resolves the complexity of enterprise application development also providing a cohesive framework for J2EE application development. 

Which is primarily based on IOC (inversion of control) or DI (dependency injection) design pattern.

36) Functionality of ActionServlet and RequestProcessor?

Receiving the HttpServletRequest

Populating JavaBean from the request parameters

Displaying response on the web page Issues

Content type issues handling

Provide extension points

37) ActionServlet, RequestProcessor and Action classes are the components of


38) What is default scope in Spring?


39) What are advantages of Spring usage?

Pojo based programming enables reuse component.
Improve productivity and subsequently reduce development cost.
Dependency Injection can be used to improve testability.
Spring required enterprise services without a need of expensive application server.
It reduces coupling in code and improves maintainability.

40)What are the Benefits Spring Framework ?

Light weight container.

No need to read from properties file application code.

It is much easier to unit test Objects are created Lazily. 

Spring’s configuration management services can be used in any architectural layer, in whatever runtime environment

41) What is servlet?
Servlet is a server side components that provide a powerful mechanism for developing server side programs. 

Servlet is a server as well as platform-independent and Servlets are designed for a various protocols. 

Most commonly used HTTP protocols. 

Servlet uses the classes in the java packages javax.servlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.http.HttpSession.

All servlets must implement the Servlet interface, which defines life-cycle methods.

42) Servlet is pure java object or not?

Yes, pure java object.

43) What are the phases of the servlet life cycle?

The life cycle of a servlet consists of the following phases:
Servlet class loading
Servlet instantiation
the init method
Request handling (call the service method)
Removal from service (call the destroy method)

44) What must be implemented by all Servlets?

The Servlet Interface must be implemented by all servlets


I hope that this article will give you a great insight into JAVA/JEE interview questions and answers.

The responses given above will really enrich your knowledge and increase your understanding of JAVA/JEE programming.

Don’t forget the communication plays a big role in the recruiting process.

Make sure to use Grammarly’s AI-powered writing assistant for correcting your texts before sending them to your future employers.


By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system.

Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.

Clean Architecture: A Craftsman’s Guide to Software Structure and Design (Robert C. Martin Series)

Some related articles you might interest in :

1-Most Commonly Asked Java/JEE Interview Questions (Part-1)

2-OOP is Now The Basis of Computer Science

3- 6 Best Programmers of All Time

4-The Most Promising Fields for Programming in the Future

5-The 5 Most Used Languages for Web Development

6- The Best Way To Improve Your Programming Skill Level

7- Recommended Programming Language for Beginner To LEARN First

Connect with me on :Blog, Youtube, Facebook, Twitter

Most Commonly Asked Java/JEE Interview Questions (Part-1)

In this article I will talk about some most commonly asked Java/JEE interview questions.

1- What is J2EE ?

J2EE means Java 2 Enterprise Edition. 

The functionality of J2EE is developing multitier web based applications .

The J2EE platform is consists of a set of services, application programming
interfaces (APIs), and protocols.

2) What are the four components of J2EE application?

Application clients components.

Servlet and JSP technology are web components.

Business components (JavaBeans).

Resource adapter components

3) What are types of J2EE clients?


Application clients

Java Web Start-enabled clients, by Java Web Start technology.

Wireless clients, based on MIDP technology.

4) What are considered as a web component?

Java Servlet and Java Server Pages technology components are web components. 

Servlet is a Java software component that dynamically receive requests and make responses.

 JSP pages execute as servlets but allow a more natural approach to creating static content.

5) What is JSF?

JavaServer Faces (JSF) is a user interface (UI) designing framework for Java web applications.

JSF provide a set of reusable UI components, standard for web applications.

JSF is based on MVC design pattern. 

6) Define Hash table

HashTable is just like Hash Map, but synchronised.

Hashtable stores key/value pair.

7) What is Hibernate?

Hibernate is a open source object-relational mapping and query service. 

In hibernate we can write HQL instead of SQL, which save developers to spend more time on writing the native SQL.

Hibernate has more powerful association, inheritance, polymorphism, composition, and collections. 

8 ) What is the limitation of hibernate?

Slower in executing the queries than queries are used directly.

Only query language support for composite keys.

No shared references to value types.

9) What are the advantage of hibernate.

Hibernate is database independent. It can be used to connect with any database like Oracle, MySQL, Sybase and DB2 to name a few.

Hibernate supports a powerful query language called HQL (Hibernate Query Language).

Hibernate’s transparent persistence ensures the automatic connection between the application’s objects with the database tables.

10) What is ORM?

ORM stands for Object-Relational mapping. 

The objects in a Java class which is mapped in to the tables of a relational database using the metadata that describes the mapping between the objects and the database. 

It works by transforming the data from one representation to another.

11) Difference between save and saveorupdate

a) save()

 This method in hibernate is used to store an object into the database. 

It insert an entry if the record doesn’t exist, otherwise not.

b) saveorupdate ()

This method in the hibernate is used for updating the object using identifier.

 If the identifier is missing this method calls save().

 If the identifier exists, it will call update method.

Hibernate generates lot of SQL statements in runtime based on our mapping, so it is bit slower than JDBC.

12) Difference between load and get method?

get()method returns null if the object can’t be found. 

The load() method may return a proxy instead of a real persistent instance get() never returns a proxy.

13) How to invoke stored procedure in hibernate?
{ ? = call thisISTheProcedure() }

14) What are the benefits of ORM?




Vendor independence

15) What the Core interfaces of hibernate framework?
Session Interface

SessionFactory Interface

Configuration Interface

Transaction Interface

Query and Criteria Interface

16) What is the file extension used for hibernate mapping file?

The name of the file should be like this : filename.hbm.xml

17) What is the file name of hibernate configuration file?

The name of the file should be like this : hibernate.cfg.xml

18) How hibernate or JPA is database independent ?

Database independency means writing no code dependent to the database vendor.

 Hibernate, or in general JPA, prevents you from writing code according to the Oracle specifications or MySQL specifications.

You use JPA classes and interfaces and make JPA implementation(like Hibernate) do the rest.

19) Define connection pooling?

Connection pooling is a mechanism reuse the connection.

which contains the number of already created object connection. 

So, whenever there is a necessary for object, this mechanism is used to directly get objects without creating it.

20) What is the hibernate proxy?
An object proxy is just a way to avoid retrieving an object until you need it. Hibernate 2 does not proxy objects by default.

21) What is HQL?

HQL stands for Hibernate Query Language. 

Hibernate allows to the user to express queries in its own portable SQL extension and this is called as HQL. 

It also allows the user to express in native SQL.

22) What are the Collection types in Hibernate ?

Set, List, Array, Map, Bag


So this brings us to the end of the first part of Java interview questions.

These set of Java Interview Questions will definitely help you succeed in your job interview.

Thanks for checking the next part.

Good luck 🙂


It is great to be good technically, but you have to be also great on communication to succeed. 

Communication skills, play big role when writing documentation for frameworks and libraries, or when sending emails or slack messages to coworkers. 

They’re an important factor in how two or more people convey complex ideas and concepts to each other, which is core to collaborating as a software developer.

 And, more recently, communication skills have become an important part of software developer interviews, where most companies will check for a level of aptitude in a candidate’s communication skills.

So, it is very good to have a tool that will help you compose bold, clear, mistake-free writing.

I recommend Grammarly’s AI-powered writing assistant.

Some related articles you might interest in :

1-5 Principles Will Make your Code Robust

2-OOP is Now The Basis of Computer Science

3- 6 Best Programmers of All Time

4-The Most Promising Fields for Programming in the Future

5-The 5 Most Used Languages for Web Development

Connect with me on :Blog, Youtube, Facebook, Twitter

6 Best Programmers of All Time

In this article I am going to talk about top 6 programmers in the world of all time.

1. Dennis Ritchie

Dennis Ritchie

Dennis Ritchie was an American computer scientist who helped shape the digital era. 

He created the C programming language and with long-time colleague Ken Thompson, the Unix operating system. 

Ritchie and Thompson received the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Clinton in 1999.

Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007.

2. Bjarne Stroustrup

Bjarne Stroustrup

Bjarne Stroustrup is a Danish computer scientist, most notable for the creation and development of the widely used C++ programming language. 

He is a Distinguished Research Professor and holds the College of Engineering Chair in Computer Science at Texas A&M University, a visiting professor at Columbia University, and works at Morgan Stanley.

3. James Gosling

James Gosling

James Arthur Gosling is a Canadian computer scientist, best known as the father of the Java programming language. 

Due to his extra-ordinary achievements, Gosling was elected to Foreign Associate member of the United States National Academy of Engineering.

4. Linus Torvalds

Linus Torvalds

Linus Benedict Torvalds is a Finnish American software engineer, who was the principal force behind the development of the Linux kernel.

He later became the chief architect of the Linux kernel, and now acts as the project’s coordinator.

He also created the revision control system Git as well as the diving log software Subsurface.

He was honored, along with Shinya Yamanaka, with the 2012 Millennium Technology Prize by the Technology Academy Finland, in recognition of his creation of a new open source operating system, for computers leading to the widely used Linux kernel.

5. Anders Hejlsberg

Anders Hejlsberg

Anders Hejlsberg is a prominent Danish software engineer who co-designed several popular and commercially successful programming languages and development tools. 

He is creator of popular programming language C#. 

He was the original author of Turbo Pascal and the chief architect of Delphi. 

He currently works for Microsoft as the lead architect of C# and core developer on TypeScript.

6. Donald Knuth

Donald Knuth

Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. 

He is the author of the multi-volume work The Art of Computer Programming. 

Knuth has been called the father of the analysis of algorithms. 

He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. 

In the process he also popularized the asymptotic notation. 

Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system and the Computer Modern family of typefaces.


It’s very difficult to name just 6 though. 

There are many important contributors to the world of computer science whose names are not widely known. 

But, these names in my opinion are the top.


Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees.

Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship.

Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer, but only if you work at it.

Get your copy using the link below:

Clean Code: A Handbook of Agile Software Craftsmanship

Some related articles you might interest in :

1-The Most Promising Fields for Programming in the Future

2-The 5 Most Used Languages for Web Development

3- The Best Way To Improve Your Programming Skill Level

4- Recommended Programming Language for Beginner To LEARN First

5- Don’t Panic This is The Best way to Learn Programming

6- 4 Great YouTube Channels, that Will Improve Your Programming Skill

7-It is Never too Late to Learn How to Program

8-The Best Advice I Wish I know When I Start Programming

Connect with me on :Blog, Youtube, Facebook, Twitter