Episoder

  • Anton, co-founder of Codeborne, and I sit together to discuss some of the problems in software engineering - pull requests, microservices, testing, refactoring. Check out annotated chapters below for more details.

    00:00:00 Intro

    00:00:00 Sneak peek

    00:00:49 Episode overview

    00:04:28 Anton's intro, background

    00:06:37 Anton founded Codeborne: TDD and pair programming: following extreme programming principles

    00:08:57 Agile is about short feedback loops

    00:12:09 Under-engineering vs over-engineering

    00:15:29 Tech debt and testing: engineers don't handle tech debt well enough

    00:17:45 Lack of refactoring is a big problem

    00:18:14 Problems with pull requests

    00:27:00 Problems with squash merge

    00:27:30 Good commit messages are essential

    00:31:09 Good code is easy to change

    00:34:34 Pair programming is continuous code review

    00:36:11 Daily code review with a whole team

    00:48:44 Microservices: be careful

    00:59:23 Book recommendations from Anton

    01:00:38 Wrap up



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com
  • Lauri Koobas, ex-Microsoft and currently Head of Data Platform at Bondora, shed insights on data engineering - from early startup to scaling.

    We mostly focused on analytics and building data warehouse - real-world challenges from both data engineering and software engineering sides. We also discussed GDPR and PII challenges when dealing with data.

    You can find video version on MapForEngineers YouTube channel: https://www.youtube.com/@mapforengineers

    Annotated chapters in timeline:

    00:00:00 Sneak peek of episode

    00:01:21 Episode overview

    00:02:44 Introduction, Lauri's background

    00:20:48 Starship robots: huge amount of data there

    00:23:37 Data lake, data warehouse, data lakehouse

    00:26:44 Devil is in the details: timestamps, texts, character sets...

    00:49:44 Moving data from prod to data warehouse

    00:53:09 Analytics tools: PostHog, Amplitude, Redash, Databricks

    01:00:15 Analytics tools vs real-time monitoring like Prometheus/Grafana

    01:04:15 Usability matters: each tool for its job

    01:06:38 Startup grows: needs in data analytics

    01:11:09 Multiple data sources: when data warehouse really begins

    01:19:55 Data and (de-)coupling: software engineers should not be blocked by analytics

    01:22:51 Data ETL

    01:24:59 Changes in data model: multi-phase migrations

    01:29:38 Change data capture, incremental imports

    01:34:21 Should analytics have new data in real time? Maybe not?

    01:39:02 Importing data into DWH through business events

    01:43:37 When DWH subscribes to business events, data model can evolve freely

    01:47:16 Quick recap what we discussed so far

    01:52:25 GDPR and Data Compliance: start early

    01:56:05 PII data: know exactly where you store it, control it well

    02:03:37 Lauri's books recommendations on data engineering - Kimball

    02:07:18 Lauri's podcast on data engineering, in Estonian

    02:08:28 Wrap up



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com
  • Mangler du episoder?

    Klikk her for å oppdatere manuelt.

  • Carl, staff software engineer at Pactum, shed light on some of the latest AI tools in software development. We discussed v0.dev, continue.dev, ollama, and much more! It was an episode with a lot of useful information and insights! To check all content on Map For Engineers including blog posts, feel free to subscribe on https://MapForEngineers.com

    Annotated chapters in timeline on topics that Carl and I covered:

    00:00:00 - Start

    00:04:05 - Small talk, getting into the groove

    00:08:18 - Carl's background: ex-Pipedrive, now engineer in Pactum

    00:19:44 - Early tools: simple autocomplete and simple prompting without context

    00:27:11 - AI tools with context: Cursor IDE, Continue.dev

    00:43:35 - Cursor IDE Composer - Prompt+Apply to Code Instantly

    00:47:29 - Ollama - following docker philosophy

    00:55:15 - V0.dev - LLM to create frontend components

    00:59:27 - Cursor IDE + v0.dev combination as a workflow

    01:02:23 - Claude 3.5 Sonnet

    01:03:10 - OpenAI o1

    01:04:56 - LLMs vs SQL Queries - still to be solved

    01:08:17 - LLM in TDD and Testing Workflows

    01:16:04 - Focus on engineering fundamentals - LLM does not replace your engineering fundamental knowledge

    01:20:13 - Book recommendations

    01:29:09 - Hosting models yourself - expensive

    01:33:27 - Fine-tuning models

    01:35:33 - RAG

    01:49:50 - Chain of thought

    01:51:46 - vyce.app - GenAI helping with compliance questions

    01:54:25 - Summary of tools we covered so far

    01:58:43 - GenAI vs engineering careers

    02:05:39 - Wrap up with Carl



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com
  • I had a pleasure to chat with my friend Joel Mislav Kunst, who is Engineering Manager at Microsoft. We talked about growth in engineering. Some of the topics that we touched upon, with timeline timestamps are:

    00:00:00 - Glimpse of episode

    00:01:16 - Quick episode overview

    00:05:18 - Joel's journey in software engineering

    00:14:55 - Focus on engineering fundamentals

    00:23:34 - Learning from all hard experiences: solving root causes

    00:31:05 - Relationship between engineer and their manager

    00:53:03 - Manager is not your punching bag for complaining: propose initiatives instead, be active

    01:10:55 - Engineer vs manager: fork in career

    01:29:17 - Generative AI in context of engineering career/growth

    01:36:01 - Teaching is essential for growth. Seniors teaching juniors. Knowlede sharing

    01:43:14 - Wrap up

    To get notified of new episodes and blog posts, subscribe at MapForEngineers.com

    For Youtube video version of the episode, check https://www.youtube.com/@mapforengineers



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com
  • Ürgo, ex-Wise, joined Wise.com as one of the first 12 engineers or so. As former colleagues from Wise, we had a great chat about product engineering, domain-driven design, and team collaboration.

    I will give a short summary of key takeaways that I got from this valuable discussion with Ürgo.

    1. Work in agency is different from work in a product company

    Work in agency (outsource) vs product company is different for an engineer. In agency, you get a lot of experience with different projects, but you don’t own a product or its outcomes.

    In contract, in a product company, engineers should care about the end product, getting the feedback from users and customers. Responsibilities and impact are on the next level for an engineer in a product company, that you don’t get in a project-based work in an agency.

    2. Knowledge sharing inside a team. Avoid knowledge silos

    It’s important to avoid pockets of knowledge in a team, where sub-groups form, because then it’s hard to have a cohesive team. There are many tools to avoid it, for example:

    * Pair programming

    * Deliberately rotating knowledge among people

    * Working in pairs (not necessarily pair programming, but just solving some problem together) on a topic for a short time (e.g. a week or two). But then switching pairs and topics, to avoid knowledge silos.

    * I wrote in detail about some practices that I employ in Pactum to avoid knowledge silos in the team in the article Values, Principles and Practices in Engineering Team.

    3. Product engineering begins where the comfort of the coding ends

    Ürgo wrote amazing article about this topic, called Product Engineer, available in his Medium.

    Product engineers need to establish frequent feedback loops to get signal from users on the usefulness of what they delivered. This is essential for closing the feedback loop. Once you get learnings, you repeat the process: Learn → Build → Ship → Learn → …[repeat]

    4. Domain-Driven Design: Metaphors are important

    Coming up with metaphors when modelling software is very important. When you come up with a good metaphor, try to embed it into your ubiquitous language.

    5. GenAI in Software Engineering

    GenAI won’t replace product engineers for a while. In fact, product engineering becomes even more essential than just coding. Coding is just a tool, a means to an end. Product engineering skills will be ever so valuable - to understand which product to build, to iterate, to learn from your users and customers, to be creative. Product engineers will leverage GenAI tools to automate non-interesting tasks (e.g. creating this next frontend component, if it can be automated quickly).

    ---

    And that’s a wrap! I will be recording new episodes soon. Feel free to subscribe if you found it valuable. Also, recording quality in the next episode will be better.

    For all the content, visit MapForEngineers.com



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com
  • I am starting a Map for Engineers Podcast! I am in the process of organizing a first episode with my guest, which will be live-streamed on YouTube :) Will announce more details soon.



    This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit log.mapforengineers.com