Better Engineers

Better Engineers focuses on improving Android app performance, system design, and development best practices. It covers practical tips, interview preparation, management strategies, and technology-specific guides. Key areas include Android development, Kotlin features, time management, effective meetings, leadership, scalability, and productivity tools.

Android Development System Design Software Engineering Best Practices Interview Preparation Kotlin Programming Management and Leadership Productivity Tools Scalability and Performance

The hottest Substack posts of Better Engineers

And their main takeaways
19 implied HN points β€’ 26 Jul 24
  1. Identifying performance issues in an Android app is crucial. It helps you understand what's wrong and fix problems like slow rendering and frozen frames.
  2. Using tools like Firebase Performance Monitoring can help find specific issues. This way, you can pinpoint what's causing delays and how to address them.
  3. To improve app performance, avoid long-running tasks on the UI thread. Techniques like lazy loading and using View Stubs can make your app run smoother.
19 implied HN points β€’ 18 Jul 24
  1. Avoid common mistakes like leaving commented code and using hardcoded values. These habits can help make your code cleaner and more reliable.
  2. Develop strong code review skills to give helpful feedback and improve your team's coding practices. This will also help you grow as a developer.
  3. Focus on scalability by breaking down large features into smaller tasks and using modern tools and concepts. This approach will make your projects easier to manage as they grow.
19 implied HN points β€’ 16 Jul 24
  1. The Pareto Principle says that 20% of your tasks create 80% of your results. Focus on those key tasks to be more efficient.
  2. The 2-Minute Rule encourages you to do any task that takes two minutes or less right away. This helps prevent small tasks from piling up.
  3. Using a method like Kanban helps manage your tasks visually. It allows you to see what you need to do, what you're working on, and what’s done.
7 HN points β€’ 31 Jul 24
  1. Scaling systems to handle millions of users involves understanding how to make systems work better under pressure. This can be done by adding more resources or managing them effectively.
  2. Vertical scaling means adding more power (like RAM or CPU) to existing servers, while horizontal scaling means adding more servers to share the load. Horizontal scaling is often better for high traffic situations.
  3. Using a master-slave database setup helps balance loads and keeps data safe. If one database fails, another can take over, ensuring the system runs smoothly and reliably.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
0 implied HN points β€’ 09 Jul 22
  1. Singletons help ensure that a class has only one instance, which is useful for managing shared resources like a database.
  2. Delegated properties in Kotlin allow you to reuse common behaviors like lazy loading or observing changes without repeating code.
  3. You can create custom delegates to handle unique cases, like ensuring a property can only be assigned once, adding flexibility to your code.
0 implied HN points β€’ 27 May 20
  1. A Trie is a special data structure that helps store and retrieve strings efficiently by organizing them based on their prefixes. This makes searching and inserting words faster.
  2. Tries are useful in many applications, like predictive text and autocomplete features, because they allow quick access to stored words and their prefixes.
  3. While Tries have advantages over hash tables, such as no key collisions, they can require more memory and may perform slower when accessing stored data on slower devices.
0 implied HN points β€’ 01 Aug 22
  1. You can turn your code into diagrams using different tools. This helps visualize and understand system architectures better.
  2. Tools like Diagrams, Mermaid, and PlantUML allow you to create diagrams with simple text and code. They make it easier to track changes and modify designs.
  3. Using diagramming tools can improve communication in tech teams by providing clear visual representations of complex systems.
0 implied HN points β€’ 19 Jul 24
  1. The interview process at Wolt includes several steps, starting with a friendly conversation with a recruiter to discuss your background and motivation.
  2. Candidates complete a technical assignment to build an Android app, focusing on clean code and chosen architectures, which is then discussed in a follow-up interview.
  3. The final interview assesses cultural fit, exploring past experiences in teamwork and problem-solving, making it important to show good communication and collaboration skills.
0 implied HN points β€’ 03 May 24
  1. You can create REST APIs for managing trade records using Spring Boot and JPA. Start by setting up the project and required dependencies.
  2. Understanding the API endpoints is crucial. You need to handle POST, GET, and provide some query parameters to filter trades.
  3. Don’t forget to design the database schema properly and create service and controller classes for handling requests and responses.
0 implied HN points β€’ 14 Jul 24
  1. To tackle a case study in an engineering manager interview, first understand the problem clearly. Read the case multiple times to catch all the details.
  2. Break down the main problem into smaller parts so it's easier to manage. Think about the perspectives of different people involved to find the best solutions.
  3. After solving each smaller problem, combine all the solutions into one plan. Then, be ready to present your findings clearly using visuals to help explain your points.
0 implied HN points β€’ 24 May 24
  1. The 15-day TED Talk challenge can help you learn and grow. Completing it might make you feel like a better version of yourself.
  2. Each day features a different TED Talk with valuable lessons on topics like learning, communication, and self-mastery.
  3. Participating in this challenge can inspire you to think differently and improve various aspects of your life.
0 implied HN points β€’ 09 May 24
  1. Push notifications are important for keeping users engaged with mobile apps. They help to improve user retention by providing timely updates.
  2. Firebase Cloud Messaging (FCM) is a powerful tool that allows developers to send push notifications to different platforms like Android, iOS, and web applications.
  3. To set up a push notification server using Java Spring Boot, you need to configure the Firebase admin SDK and create an API endpoint to send messages to devices with FCM tokens.
0 implied HN points β€’ 09 Mar 24
  1. For effective meetings, keep the group small enough that two pizzas can feed everyone. This helps everyone communicate better.
  2. Always have an empty chair in meetings to represent the customer. It reminds everyone that the focus should be on improving the customer experience.
  3. Use detailed memos instead of PowerPoint presentations to share information. This ensures everyone has all the necessary context upfront.
0 implied HN points β€’ 05 Mar 24
  1. Celebrating both big and small successes in the workplace makes employees feel valued and appreciated. It’s a great way to boost morale.
  2. Encouraging mindfulness can help employees notice and appreciate the little things around them. Being present improves overall workplace happiness.
  3. Fostering kindness and peer recognition is important. When employees feel appreciated by their peers, it creates a positive work environment.
0 implied HN points β€’ 28 Feb 24
  1. Knowing how to manage your time helps you meet deadlines and reduce stress. You can also balance your work and personal life better.
  2. Using techniques like the Pomodoro method or the 2-Minute Rule can boost productivity. These methods help you stay focused and finish small tasks quickly.
  3. Organizing tasks with methods like the Eisenhower Matrix or Task Batching lets you prioritize what's important. This helps in managing your workload more effectively.
0 implied HN points β€’ 13 Mar 24
  1. Apache Kafka is great for real-time data processing. It helps build systems that can handle lots of data without losing any of it.
  2. Using Kafka, data from different sources can be organized into topics. This is similar to how database tables work, where each topic holds specific types of data.
  3. To set up a Kafka producer, you need to add specific dependencies in your code and configure the properties to enable data to be sent to consumers.
0 implied HN points β€’ 31 Jul 23
  1. Understanding your management style is important. Being flexible and adapting to your team's needs can lead to achieving goals effectively.
  2. Motivating your team through celebrations and clear growth plans can boost performance and morale. When team members see their future, they feel more driven.
  3. Handling conflicts and making tough decisions requires clear communication and a focus on long-term goals. Discussing options and prioritizing what's best for the team can lead to better outcomes.
0 implied HN points β€’ 26 Apr 23
  1. Creating a notification channel is the first step to customize notifications in your Android app. This helps users control how they receive notifications.
  2. Designing a custom layout for the notification is crucial. It allows you to display information in a unique way, making it more engaging for users.
  3. Using NotificationCompat.Builder helps you build and trigger the notification effectively. You can also add interactive elements to enhance the user experience.
0 implied HN points β€’ 23 Apr 23
  1. Using generics in Kotlin allows you to create code that can work with different types, making it more flexible and reusable. For example, you can create a box that holds any type of object.
  2. The 'in' and 'out' keywords help define how generic types can be used, allowing for safer and more organized code. The 'in' keyword is for consuming data, while 'out' is for producing it.
  3. Utility functions like 'applyIf' and 'withNotNull' help you write cleaner code by letting you conditionally run actions only when certain conditions are met or when values are not null.
0 implied HN points β€’ 28 Mar 23
  1. Kotlin has specific types like Unit and Nothing that help clarify your code. Unit shows a function has no meaningful return, while Nothing indicates a function will never finish normally, like when it throws an error.
  2. Destructuring in Kotlin allows you to unpack data structures easily. You can assign multiple values from a list or map to variables in a single line, making your code cleaner and more organized.
  3. Type aliases in Kotlin let you create simpler names for existing types. This can make your code easier to read and understand by replacing complex types with more descriptive names.
0 implied HN points β€’ 23 Mar 23
  1. Composition is often better than inheritance because it allows you to create new classes by combining existing ones. This helps avoid complex class hierarchies.
  2. Using interfaces can help you achieve different behaviors without relying on a single inheritance path. This keeps your code flexible and clear.
  3. Delegation lets you pass tasks to other objects, which helps separate functionality and maintain cleaner, more understandable code.
0 implied HN points β€’ 04 Mar 23
  1. Set clear goals to help you stay focused and achieve what you want. Breaking big goals into smaller steps makes them easier to tackle.
  2. Manage your time wisely by prioritizing important tasks. This helps you get more done and makes the best use of your available time.
  3. Stay curious and keep learning new things. Personal growth is important, and it helps you adapt to changes and challenges in life.
0 implied HN points β€’ 04 Mar 23
  1. Being genuine and authentic is really important. People can tell when you're being fake, and they appreciate honesty.
  2. Listening actively makes a big difference. When you listen and show you care, others feel valued and are more likely to open up.
  3. Building strong relationships helps a lot. When you connect and show interest in others, they are more likely to trust you and be receptive to your ideas.
0 implied HN points β€’ 02 Sep 22
  1. Leaders need to focus on communication to foster positive change in their teams. The right words can motivate and engage everyone more effectively.
  2. Mistakes should be seen as learning opportunities instead of failures. When team members feel safe to make mistakes, it encourages creativity and innovation.
  3. Good leaders should encourage team input and not just impose their ideas. This helps everyone feel valued and helps develop new leaders.
0 implied HN points β€’ 06 Jul 22
  1. Abstraction helps hide complex code, making it easier to manage and change later. This way, users don’t need to see all the details, which simplifies their experience.
  2. Using constants instead of magic numbers improves clarity and makes future changes easier. By giving a meaningful name to a constant, we can change its value without affecting the logic in our functions.
  3. Creating interfaces allows for flexibility in our code. We can build different implementations for the same interface, making it easier to adapt the software for different platforms or needs.
0 implied HN points β€’ 06 Sep 20
  1. GitHub Actions help automate tasks like building, testing, and deploying code. It's a great way to make your workflow easier and more efficient.
  2. Unit testing is important because it checks if individual parts of your code work correctly. Running these tests can help catch bugs early, saving time later on.
  3. You can set up GitHub Actions to prevent merging code if the unit tests fail. This ensures that only tested and working code makes it into your main project.
0 implied HN points β€’ 25 Feb 24
  1. Apache Kafka is great for handling large amounts of data because it can easily grow by adding more servers. This means it can keep up when lots of data needs to be processed quickly.
  2. It keeps data safe even if something goes wrong, so you won't lose important messages. This is important for businesses that need to make sure their data is always reliable.
  3. Kafka allows different apps to work together smoothly, letting them send and receive messages in real-time. This helps companies build faster and better services.
0 implied HN points β€’ 22 Apr 24
  1. Identify and monitor app performance issues, like slow rendering and frozen frames, to enhance user experience. It's important to keep the app responsive to avoid losing users.
  2. Use tools like Firebase Performance Monitoring to track performance data and identify problems, such as long UI thread operations that can cause jank.
  3. Implement strategies to improve performance, like using View Stubs for loading UI components on demand and avoiding long tasks on the main thread, which can make the app freeze.
0 implied HN points β€’ 05 Mar 24
  1. Feeling tired all the time is a sign of burnout, even if you sleep well. It can make you feel weak and worn out every day.
  2. When you're burnt out, you might get sick more often because stress can hurt your immune system. It makes it harder for your body to fight off illnesses.
  3. Burnout can make you feel disconnected from your own feelings and life. You may go through daily activities without really engaging or enjoying them.