Our Blog

We also write. Its healthy.

Learnings as a software engineer

In this article, I Julien, one of the engineers behind DevLog will share some key learnings from years of building features as a software engineer at my daily job. --- ## Documentation is Key Starting to document early on in the project is crucial. We generated documents at all stages of our project in order to gather feedback at a technical, product and design level. This helped in aligning with teams, enabling smooth collaboration, and setting a solid foundation for feature development and delivery. These documents allow close and continuous collaboration between stakeholders from both product, technical and design perspectives from the early stages of feature discovery to the start of implementation. However documentation doesn’t stop there, once the implementation is done, it is equally as important to capture in writing your feature from both product and technical aspects, supported by architectural diagrams and swimlanes, so that stakeholders within the company have a clear reference when interacting with the feature in the future. ## Always communicate Establishing open communication channels, such as dedicated Slack channels for internal stakeholders, and providing regular updates in order to foster collaboration. Promptly raising blockers and organizing group discussions with colleagues from various competences ensures transparency and helps in addressing challenges effectively. Having an open channel to discuss and update on progress also helped streamline our communication and avoid unnecessary meetings. Having an open channel also serves as an accountability mechanism and a great way to keep track of the conversations and topics over time. The dedicated channel also provides an easy way to share documents and highlight the important ones for quick and easy access by adding them to the channel bookmarks. Our team saved countless hours spent in meetings by setting up and maintaining a dedicated Slack channel from the start. ## Beyond Engineering, think Product Combine the product and ownership mindset with engineering to ensure alignment is kept between development efforts with the product roadmap. Understanding user needs and product goals ensures that engineering decisions are driven by a customer-centric approach. Through taking ownership of the product, we organized regular demos with stakeholders. These touchpoints were extremely valuable to us, keeping us accountable while also getting early feedback in the process. A better understanding of the product also allowed us to better grasp the potential value and impact of our feature and how to measure impact after the release, in terms of metrics and KPIs. With this mentality, we also better understood the needs of all kinds of stakeholders including internal ones. We baked in mechanisms for easier internal testing and improving Developer experience within the company as a whole. An area often overlooked when building new features. ## Pragmatism in Execution Striking a balance between quality and efficiency is vital. Having a clear implementation strategy, understanding the release process, and being accountable for milestones helps in delivering high-quality features within set timelines. As an example, we started with the in-app screens while the technical discovery was still ongoing, so that we already had screens to work with when adding the logic. We also took the decision to implement in-memory databases for our models before actually persisting the data once we were fully confident in our data handling and relationships between the different models, thus allowing us to move faster and avoid subsequent unnecessary database migrations. ## Teach, Support, Learn, Repeat Understand early on your own strengths and weaknesses and how they fit within the dynamics of the team. This way you can optimize the time spent by supporting the rest of the team with what you already know while also sharing this knowledge by teaching others. This can be done via pair programming sessions, hosting frequent and concise knowledge sharing sessions, and fostering a culture of collaborative code reviews. If everyone shares the same mentality, you have the opportunity to learn from others, so seize this moment to expand your knowledge, learn new things, improve on your weaknesses or gaps in knowledge. For example, I learned about different backend strategies to encapsulate logic within service functions and learned to work with redux toolkit for the first time in the client. ## Be smart about your time management To stay focused on the implementation of complex features while managing daily tasks and duties, developing a structured approach is essential. A strategy used, such as the 3/3/3 method can be particularly effective. (Oliver Burkeman, author of “Four Thousand Weeks: Time Management for Mortals.”) Begin your day with a focused 3-hour deep dive into feature development, followed by accomplishing 3 urgent tasks and then addressing 3 maintenance tasks. This cyclical routine enables you to prioritize your core feature work while ensuring that essential daily tasks are consistently managed. There are days where it is difficult to respect this structure, due to incidents occurring, open investigations or workshops, but this is completely fine. This time management technique only serves as a general path to follow, not as a rigid rule to abide by. It can sometimes be beneficial to break the routine and have a mob programming session or hackathon to dive deeper into a certain topic. ## Don’t overlook code hygiene and maintenance Adhering to the revered “Leave the code cleaner than how you found it” principle, inspired by the Boy Scout rule outlined in Clean Code, embodies a crucial philosophy for developers. Actively seek opportunities to enhance code quality through refactoring, thereby making it more organized. For instance, our team invested efforts in converting our JavaScript codebase over to TypeScript when files were touched as part of the feature development. We also ensured that existing routes comply with our internal guidelines and software best practices. These represent proactive steps toward maintaining a high standard of code cleanliness. To emphasize this point further, our team experimented with dedicating 2 days each month to maintenance work. ## Don’t forget to enjoy the ride Last but not least, don’t forget to have fun while learning! Working on a big feature demands a high level of effort and can exert a lot of pressure and stress. Even so, embrace the challenges and be grateful for the opportunities to learn and grow alongside your colleagues. We experienced a major incident following the initial release which was stressful. However we transformed this into an opportunity to dig deeper into the existing code to understand and solve the issue, which also led us to solving longer standing issues. ## Conclusion These consolidated learnings are a result of me regularly taking notes on what works well for me during feature development, so I can keep track and reflect. Putting these learnings down in writing has helped me consolidate them over time. If you’re curious about getting started with a developer journal, give DevLog a try. We are striving to build as many useful features, leveraging AI, for you to build the best developer journal for your specific needs. Happy journaling!

Journaling for Developers: A Simple Habit for Big Results

Software development is more than just writing code — it's problem-solving, learning, experimenting, and growing. Journaling gives you a way to process all of that. Here's why you should make it a habit. --- ## Why Developers Should Journal Software development is more than just writing code — it's problem-solving, learning, experimenting, and growing. Journaling gives you a way to process all of that. Here's why you should make it a habit: - **Reinforce what you learn**: Writing down what you did helps you remember it better. Explaining it in your own words deepens understanding and creates a quick reference for the future. - **Track your progress**: Development isn’t always linear — some days feel like setbacks. Journaling lets you zoom out and see long-term growth. Over time, you’ll notice how your thinking, debugging skills, and confidence have evolved - **Prepare for performance reviews and job interviews**: Journals give you real examples of your growth and can help you remember what you achieved over the past months or years. - **Debug**: Feeling stuck? Your journal is your personal rubber-duck. By writing out what you're thinking, what you’ve tried, and where things broke down, you often solve the problem mid-sentence. It forces clarity. - **Clear your head**: Ideas, tasks, bugs, random thoughts — when they’re all swirling in your mind, it creates mental clutter. Journaling lets you offload that noise. ## How to Start Journaling as a Developer Journaling is more than just a tool for recording your thoughts — it’s a powerful method to accelerate and track your growth as a software engineer. Whether you're a junior or a staff dev, keeping a journal can help you reflect on your work and keep your mind clear. But how do you start? Let’s break it down. ### When to Journal Incorporating journaling into your workflow doesn’t have to be complicated. The best time to journal depends on you. If you are not sure, try different ways. You could write down a few lines when you’re wrapping up your day, reflecting on what you accomplished and what you struggled with. If you're tackling a tricky bug or feature, write about your process, before even starting to code. Then proceed to write about what worked, and what didn’t. This reflection allows you to see patterns in your problem-solving approach and identify areas for improvement. You can also journal after a code review or a major release. Take a moment to record feedback you received, how you handled it, and what you’ll do next time. These reflections can be invaluable for long-term growth. ### What to Write The key to effective journaling is clarity. You don’t need to write long paragraphs — just enough to help you reflect and improve. Start by writing about the tasks you worked on and any significant decisions you made. What new insights did you gain? What challenges did you face, and how did you overcome them? Did you hit any blockers, and how did you approach solving them? You can also use your journal to record ideas that come to you throughout the day. Maybe something isn’t working today, but it will be important tomorrow. Writing down these ideas helps you externalize your thoughts and get them out of your head, leaving space for more focused work. ### Tools You Can Use There are plenty of tools available to help you journal, from simple text files to advanced note-taking apps. Plain text or Markdown files are perfect for quick, no-fuss journaling, while tools like Notion or Obsidian offer more structure, however they might feel overwhelming or distracting. After experimenting with these tools, we found they didn’t meet our long-term needs. That’s why we created **DevLog**. We aim to make journaling as effortless and efficient as possible, with a clean interface, a flexible editor and features tailored for levering all this data. We’re constantly building features that ensure your journal entries don’t get lost in the past — with DevLog, your data is actively leveraged over time, helping you gain insights and track your growth, with AI making it easier to reflect on and act upon what you’ve written. ## Integrating Journaling into Your Workflow The real power of journaling comes when you make it a part of your routine. It’s about consistency, not volume. Journaling doesn’t need to take hours, but it should be a habit you stick to. Write whenever works best for you, should it be at the end of your workday or after a major task is complete, or somewhere in between. This helps you consolidate everything you’ve learned and makes it easier to look back on later. One way to integrate journaling into your workflow is by linking it with other development habits, such as writing commit messages, preparing for code reviews, or after a meeting. When you complete a feature, take a few minutes to reflect on what went well and what could be improved. Another tip is to add tags and action items in your journal entries. For example, use tags like `#bug`, `#feature`, or `#learning` to organise your entries by theme. This makes it easy to revisit specific topics later and track your progress over time. You can also use simple checkboxes to create follow-up tasks, helping you stay organised and focused. ### Keep It Simple Journaling should help you think clearly. Keep your entries short and actionable. It’s about quality, not quantity. A few sentences that highlight what you learned or a quick reflection on the day’s challenges can be just as effective as a long, detailed entry. ## Conclusion Journaling is a simple yet powerful tool that can help you grow as a developer. By reflecting on your work, tracking your progress, and clearing your mind, you’ll improve both your technical and soft skills. It’s not about writing long entries; it’s about making journaling a consistent habit that supports your development process. Start small, stick to it, and you’ll begin to see the benefits. After a few weeks of journaling, you could notice patterns in your growth, clearer thinking, and better decision-making. So why not give it a try? And if you're looking for a tool that’s built for developers and by developers, **DevLog** is here to help you get started.

The Power of Keeping a Developer Journal: Leveraging AI to Access Your "Second Brain"

As developers, we spend a significant portion of our time writing and solving problems, often immersed in complex code and systems. While technical skills are paramount to success, there’s another skill that is often overlooked: the ability to reflect and track our growth over time. This is where the concept of keeping a developer journal comes in—a practice that can revolutionize the way you learn, solve problems, and optimize your workflow. But here’s the twist: the benefits of journaling can be greatly enhanced by leveraging Artificial Intelligence (AI) to create a ‘second brain.’ In this article, we’ll explore the key benefits of keeping a developer journal and how AI can elevate this practice to a whole new level. --- ## Tracking Progress and Growth As a developer, it's easy to get caught up in the daily grind of coding, meeting deadlines, and tackling bugs. However, it’s often only when we stop and look back that we truly realize how much we’ve grown. Keeping a journal allows you to document your daily coding sessions, challenges faced, and solutions found. It helps you track your progress, identify recurring patterns, and observe how your problem-solving approaches evolve over time. With AI integration, you can unlock deeper insights from your journal. AI tools can analyze your journal entries, identify recurring patterns in your learning journey, and even suggest areas where you might be stuck. It can act as a reflective mirror, providing suggestions based on your past entries and offering tailored advice for further improvement. Your journal then becomes a powerful tool for self-assessment, revealing growth areas that you might not have noticed on your own. ## Documenting Solutions and Techniques As developers, we often face similar problems multiple times in different projects. Whether it’s a particular bug or a tricky algorithm, having a journal where you document solutions, code snippets, and techniques you’ve used is invaluable. Over time, your journal will become a repository of strategies and solutions that you can quickly reference when you encounter similar issues in the future. AI can take this a step further by creating an intelligent knowledge base from your journal entries. By categorizing and tagging your entries, AI can quickly retrieve relevant solutions and code examples when you’re faced with a problem. Imagine having a personalized assistant that knows exactly which solutions you’ve applied before and can suggest them when you need them most. This “second brain” can save you time and effort, ensuring that you’re never reinventing the wheel. ## Improving Problem-Solving Skills Sometimes, the best solutions come when we step away from the problem and reflect. A developer journal provides a space to record your thoughts, ideas, and inspirations—whether they come from a failed project or a moment of insight during a break. The process of writing allows you to explore ideas that might otherwise go unnoticed. Over time, these small sparks of creativity can grow into breakthrough innovations. AI can act as a creative partner, helping you explore new ideas and solutions. By analyzing your journal, AI can suggest ways to improve your ideas, merge concepts, or even present alternative methods to approach a problem. For instance, if you’re exploring a new technology or framework, AI could provide you with relevant resources, tutorials, and code examples, accelerating your learning and innovation process. ## Facilitating Knowledge Sharing and Collaboration In a team environment, a developer journal can also serve as a way to track ideas that you want to share with your colleagues. It can help you capture concepts that might be worth discussing during team meetings or brainstorming sessions. Over time, your journal becomes a collaborative asset that can drive group discussions and collaborative projects. AI can make collaboration even easier by organizing your journal entries in a way that’s easy to share and digest. It can summarize long-form notes, highlight key takeaways, and even suggest the best times to bring up certain ideas based on your team’s ongoing projects. This allows you to stay in sync with your team and contribute more effectively. ## Developing Consistency and Discipline Journaling is most effective when it’s a regular habit. By committing to daily or weekly journal entries, you establish a routine that encourages consistency and discipline in your work. This habit encourages you to think critically about your daily work and helps you stay focused on your learning objectives. AI can help reinforce this habit by reminding you to journal and tracking your progress over time. It can send notifications, track your consistency, and even provide motivational feedback. By incorporating AI, your journal becomes a more interactive and personalized tool that adapts to your workflow, ensuring that you stay engaged with your personal development. ## Tracking Achievements and Building Your Promotion Case A developer journal isn’t just about tracking problems and solutions—it’s also about celebrating your achievements. Whether it’s completing a complex project, mastering a new technology, or fixing a critical bug, documenting your successes gives you a tangible record of your hard work and accomplishments. This not only boosts your confidence but also serves as a powerful reminder of your progress over time. AI can help you use your journal to build a compelling case for promotion or career advancement. By analyzing your journal, AI can automatically highlight your key achievements and contributions, categorize your progress in different technical areas, and provide insights into your growth. When it’s time for a performance review or promotion discussion, you’ll have a well-documented record of your achievements, projects, and areas of improvement, making it easier to demonstrate your value to your team and managers. ## Conclusion Keeping a developer journal is a powerful practice that can significantly enhance your learning, problem-solving, and overall development journey. It provides you with a space to reflect, document solutions, track progress, and nurture creativity. However, the true potential of journaling is unlocked when you pair it with AI. By leveraging AI, your journal becomes a “second brain” that can organize your thoughts, suggest improvements, and even help you unlock new ideas. For developers looking to level up their careers, adopting a developer journal and integrating AI into the process is a game-changer. It’s not just about documenting your work—it’s about creating a dynamic, intelligent system that supports and accelerates your growth. Start journaling today and discover how AI can help you unlock your full potential as a developer. If you’re curious about getting started with a developer journal, give DevLog a try. We are striving to build as many useful features, leveraging AI, for you to build the best developer journal for your specific needs. Happy journaling!