I am self thought c# kiddy and wonder if little projects like one here, are worth showing to potential employers when looking for junior developer position. This code has some issues that i do not know how to tackle, and error handling is poor. What do you think ?


Program is very simple, it is server that accepts incoming connections and spawn two threads for every connection. One to handle incoming packets other to handle outbound packets.

    static void Main(string[] args)
        Server server = new Server(8000, 30);

I looked at your code. I like that you're thinking about improving for your future career! Because this is for a new position, we have to assume they're looking for the basics. So of course, comment your code. Another thing I noticed is that the entire project was uploaded in one commit. Now, I know that if you were told to upload your code to a public repository for review, it would would all be one big git add ., but as a technical reviewer for some potential employer, I'd also like to see some git history. This would show me that you know version control already. A hiring manager won't look at your code, and a technical someone may want to see someone who is easy to work with. Who leaves a history and some code comments.

This is a great example program. Web sockets are an advanced topic these days. I've been developing web apps for a year, and I haven't even touched the stuff. The guy at my job who does understand web sockets? legend...

That being said, in a couple places I can pick up three lines of your code and find the websites that helped you build this program.

Listening with sockets Tcp Client

It's a good thing you're resourceful and can build a program from ideas and google searches into reality. It's not bad that I could find these websites, but I'm going to suggest you build upon the functionality that is currently in your repo.

A good demonstration of your ability to engineer solutions for a potential employer would be to leave this repo's master branch as it is, and then make some dev branches in this repo that use this server to make new clients.

  • Make a branch called "battleship", use it to have a client connect to the server and play battleship with the server.
  • Make a branch called "banking-app", use it to remember user's names and, money, interest. maybe even have it calculate interest in terms of dates.
  • if you have any programs from a programming class, shoe-horn them in to a new branch and just host the input-output needed to make the program work.

When you present your repo, include a description that shows what you're done, give the technical instructions on cloning which branch to get which piece of functionality. and make sure to frame the entire thing as you being this amazing builder of customer-facing services that can manipulate technology to do whatever you want.

I would hire that candidate and I would definitely give them a sign-on bonus!

  • 5
    \$\begingroup\$ Please don't answer off-topic questions. \$\endgroup\$ – 200_success May 7 '19 at 2:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.