What Projects Should Be in Your Developer Portfolio?
Written on
Chapter 1: Crafting a Compelling Portfolio
When a beginner programmer reached out to me with questions about what projects to include in their portfolio for easier hiring, I felt compelled to share some insights. While I typically encourage programmers to find solutions independently—since problem-solving is a core skill in programming—this seemed like an important query worth addressing.
For those leaning towards traditional front-end development for corporate websites, starting with a Single Page Application (SPA) framework is a great choice. You might consider using Angular, Vue, or React. Although React is more of a library than a framework, it can be paired with frameworks like Next.js or Gatsby.js to create an SPA.
Your projects should clearly illustrate your ability to manage application state and its effects on the Document Object Model (DOM). Consider utilizing libraries like Redux or Mobx to aid in this process.
Additionally, it's crucial to demonstrate your proficiency in consuming web services via REST, GraphQL, or WebSockets, which often requires some backend knowledge. For simpler projects, platforms like Firebase can facilitate serverless development with an intuitive interface.
Moreover, improving code quality is essential. Techniques such as throttling and debouncing can help manage browser events effectively. It’s also beneficial to show familiarity with CSS preprocessing tools and standards like Flexbox—unless you are using a CSS framework such as Bootstrap, Bulma, or Material.
If your interest lies in distributed applications (dApps), tools like Metamask, Truffle, Solidity, and Web3 can help you create smart contracts. For instance, you could design a decentralized lottery system that operates within the browser. These contracts can be deployed on a Testnet like Ropsten, or you can share your code on GitHub to allow others to run their own Testnet using tools like Ganache.
The essence of these projects is to exhibit your understanding of blockchain fundamentals and your ability to apply them to enhance product value by ensuring transparency and data immutability. Exploring IPFS can also be beneficial; you could create a site that links user identities on the blockchain to real IPFS documents.
For those inclined towards game development, frameworks such as Phaser and libraries like PixiJS allow you to remix beloved games. I highly recommend learning common game design patterns, especially state machines. Libraries like Xstate can be a good starting point, and there are ample resources available on platforms like Uncle Bob's Clean Coders and Refactoring Guru.
If your focus is on native or desktop applications, learning React Native and Electron.js is advisable. React Native enables the integration of native mobile components while using React, and Electron allows for desktop application development. Numerous free tutorials are available on platforms like YouTube, covering how to create apps similar to Netflix or Instagram using Firebase and these technologies.
It's worth noting that there are countless approaches to project selection, and combining various types of projects can enrich your portfolio. The key is to show your ability to apply business logic within these technologies.
Video Description: This video outlines crucial elements to include in your developer portfolio to increase your chances of landing a job.
Chapter 2: Essential Coding Projects
Including relevant coding projects in your portfolio is vital for securing a software job. A solid project can significantly showcase your skills and understanding of the industry.
Video Description: Discover the essential coding project every developer needs in their portfolio to boost job prospects.