<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mark Pollmann's blog</title><link>https://markpollmann.com/</link><description>Recent content on Mark Pollmann's blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 04 Jun 2024 15:22:59 +0100</lastBuildDate><atom:link href="https://markpollmann.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Saving Money on the AWS platform</title><link>https://markpollmann.com/post/2024-05-15-aws-money/</link><pubDate>Tue, 04 Jun 2024 15:22:59 +0100</pubDate><guid>https://markpollmann.com/post/2024-05-15-aws-money/</guid><description>Note: This article is a work in progress and is updated regularly.
Maybe your company is already on AWS and the monthly bill is giving you a stomach ache. Or you want to move from on-prem to the cloud but are afraid of surprises.
Moving from on premise to the cloud can save a lot of money and headaches. Fewer people needed for infrastructure, security is (more or less) handled by the cloud provider and not some overworked operation person and you can just turn stuff off you don&amp;rsquo;t need anymore.</description></item><item><title>Refactor CDK AppSync resolvers from Velocity to JavaScript</title><link>https://markpollmann.com/post/2024-04-18-appsync-resolver/</link><pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2024-04-18-appsync-resolver/</guid><description>If you started using AppSync to create a GraphQL API in the past you might have resolvers written/generated in this beautiful templating language called Velocity . At the time it was the only supported way to write resolvers. In 2022 AWS started to support JavaScript resolvers which for most people is more natural to write and better understood. Here I want to show how you can convert a TypeScript CDK project.</description></item><item><title>Infrastructure as Code with the AWS CDK</title><link>https://markpollmann.com/post/2024-03-28-cdk/</link><pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2024-03-28-cdk/</guid><description>Creating cloud infrastructure nowadays is done via Infrastructure as Code (IaC). The big players here are Terraform, Pulumi and CloudFormation. You write configuration files (usually in YAML or JSON) which can be checked into git, reviewed and be part of the software lifecycle of your company. With a single command those files are translated into real resources by your cloud provider.
Why do we use IaC?
To make things consistent and reproducible (you can destroy and re-create your infrastructure with a few commands).</description></item><item><title>GraphQL - From Beginner To Expert</title><link>https://markpollmann.com/post/2024-03-04-graphql/</link><pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2024-03-04-graphql/</guid><description>GraphQL is growing fast. Created by Facebook in 2012 and released to the public in 2015 it has taken the world by storm. Companies using it include Airbnb, Shopify, Lyft, GitHub and hundreds more. So something seems to be working right. Let&amp;rsquo;s take a look why it might make sense to start your next project with GraphQL or even to convert your current API.
Why GraphQL The standard before GraphQL came along was RESTful web services.</description></item><item><title>Using NodeJS with TypeScript in 2024</title><link>https://markpollmann.com/post/2020-05-07-typescript-node/</link><pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2020-05-07-typescript-node/</guid><description>Note: This article is aimed at Node developers looking into TypeScript and is planned as a living document. When I find something noteworthy I will add it. If you have something cool to share, send me an email!
What TypeScript promises Be more confident about your code and catch issues early You will catch errors right in your editor, instead of in your tests (or production).
For example, one mistake that is quite hard to spot in plain JavaScript is not awaiting a promise in an async function:</description></item><item><title>Understanding the Kubernetes architecture</title><link>https://markpollmann.com/post/2021-01-15-kubernetes-architecture/</link><pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2021-01-15-kubernetes-architecture/</guid><description>Introduction One cool thing about Kubernetes is that the infrastructure is transparently handled by Kubernetes objects themselves. If you want to see how everything works together, you can just inspect the pods, services and other objects themselves.
Disclaimer: This setup is valid for Kubernetes in Docker Desktop on Mac. In a managed environment, or in your setup, the setup might be different and components are not necessarily deployed as simple pods.</description></item><item><title>Migrating a React Codebase to TypeScript</title><link>https://markpollmann.com/post/2018-07-02-react-moving-to-typescript/</link><pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-07-02-react-moving-to-typescript/</guid><description>Note: This post was originally published in July 2018 and has been updated for accuracy and comprehensiveness (you know, hooks and stuff).
More and more React developers are starting to appreciate the type safety TypeScript allows when working with React. Libraries like Formik , react-apollo or anything from the Prisma people have been leveraging it for years.
Here are the steps to you need to take to get that warm fuzzy feeling when your code compiles.</description></item><item><title>How To Fix Your Scrum</title><link>https://markpollmann.com/post/2020-01-07-scrum/</link><pubDate>Wed, 22 Jan 2020 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2020-01-07-scrum/</guid><description>Intro Every team i&amp;rsquo;ve ever been on has done scrum. And every time I felt like things could have been improved by doing things differently. But as the old saying goes: Nobody ever got fired for choosing scrum.
A Scrum Primer Scrum is one implementation of agile .
There&amp;rsquo;s the Product Owner, responsible for prioritising requirements.
There&amp;rsquo;s the team that develops the product.
And there&amp;rsquo;s the Scrum Master who manages the process (and purchases Scrum certificates).</description></item><item><title>TypeScript 3 - What you might have missed</title><link>https://markpollmann.com/post/2020-01-09-ts-3/</link><pubDate>Thu, 09 Jan 2020 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2020-01-09-ts-3/</guid><description>TypeScript has quite the fast release cycle so it&amp;rsquo;s easy to miss some of their nice features. Here are some of the things I missed when they came out.
Optional Chaining extra goodies (3.7) JavaScript will get optional chaining soon so the Microsoft team implemented it in TS as well.
I&amp;rsquo;m sure you know the basics already:
foo?.bar?.baz // returns undefined if foo or bar is nullish (null or undefined). That means you can replace code that looks like this:</description></item><item><title>Career Options for Developers</title><link>https://markpollmann.com/post/2019-12-07-career-options-devs/</link><pubDate>Sat, 07 Dec 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-12-07-career-options-devs/</guid><description>For most of us in the industry, developing software is a dream job.
We like to tinker with stuff, try out new technology, solve those little puzzles that come up every day.
But after a while the work might start to become less exciting. Having to learn the newest, hottest framework to stay employable. An endless row of Jira tickets waiting to get done in sprint after sprint. Overhearing higher-ups calling us resources one more time.</description></item><item><title>Startup Sales</title><link>https://markpollmann.com/post/2019-12-04-startup-sales/</link><pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-12-04-startup-sales/</guid><description>Tyler Bosmeny, CEO and Co-founder of Clever gave a great talk at Startup School on how to approach sales as a freshly minted company.
He talks about his experience of going from 0 to $1 Million in revenue doing high-touch sales in a B2B enterprise environment. Most of it is applicable to a lower-touch kind of sales as well, though.
These are my notes of it.
How to Sell First things first: Don&amp;rsquo;t expect sales to be like in the movies.</description></item><item><title>Advanced Docker for NodeJS</title><link>https://markpollmann.com/post/2019-11-11-advanced-docker-nodejs/</link><pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-11-11-advanced-docker-nodejs/</guid><description>The Dockerfile add lots of comments and documentation use copy not add. add has side-effects use node not npm (problems with PID 1 signals) workdir instead of mkdir (creates if not there and cd&amp;rsquo;s into it) (unless you need permissions) FROM base images https://news.ycombinator.com/item?id=10782897 basic, slim, alpine use stable, even numbered, LTS use alpine if you&amp;rsquo;re not migrating and think size matters. Smaller and more secure, even though debian gets smaller too and 100mb is not significant (caching).</description></item><item><title>An Introduction to Docker for NodeJS</title><link>https://markpollmann.com/post/2019-11-04-intro-docker-nodejs/</link><pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-11-04-intro-docker-nodejs/</guid><description>Docker is everywhere nowadays and not going away. We&amp;rsquo;ve been using it for years but do we really understand it?
This post is meant to be an introduction to this technology for newcomers. The next post in the series will be all about how to work productively with Docker in a NodeJS development environment.
Instead of memorizing facts and APIs I like to think and explain from another angle:
What problem are we trying to solve?</description></item><item><title>Notes on How to Plan your MVP by Michael Seibel</title><link>https://markpollmann.com/post/2019-10-30-plan-mvp/</link><pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-10-30-plan-mvp/</guid><description>This is a short talk Michael Seibel gave at Startup School on his approach to building an MVP (Minimum Viable Product) and getting your first users before launching your startup.
** An MVP is the thing with which you can ask your first potential users if you provide any value at all. **
&amp;ldquo;How to find your first customers?&amp;rdquo;
-&amp;gt; Wrong question because if you found the problem you want to solve the customers are apparent</description></item><item><title>Gatsby</title><link>https://markpollmann.com/post/2019-06-25-jekyll-to-gatsby/</link><pubDate>Tue, 25 Jun 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-06-25-jekyll-to-gatsby/</guid><description>Introduction So I when I started this blog I wanted something simple to get started which let me focus on writing content. GitHub pages worked well with Jekyll for writing in Markdown so that&amp;rsquo;s what I used.
In the last six months I thought about doing some cooler things on this site than just writing content and when I heard about Gatsby I decided to check it out when I have some free time.</description></item><item><title>Books</title><link>https://markpollmann.com/post/2018-01-01-books/</link><pubDate>Tue, 30 Apr 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-01-01-books/</guid><description>This page is for people asking what books I can recommend in software engineering. I&amp;rsquo;ll try to keep it updated as I go.
You won&amp;rsquo;t find anything on here about the newest JavaScript framework or esoteric languages. Frameworks change too fast for books about them being useful and I haven&amp;rsquo;t played with other languages since uni. Anyhow, let&amp;rsquo;s get started.
The Web As the web is the main focus of my work it makes sense to start with it.</description></item><item><title>About Me</title><link>https://markpollmann.com/about/</link><pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/about/</guid><description>Hi, I&amp;rsquo;m Mark, a freelance software developer from Germany. I am working mainly on cloud-native projects and helping to drive digitalization forward.
Technologies I work with are TypeScript, Java, Go, React, Angular, GraphQL, AWS and Kubernetes.
For project inquiries feel free to write me on LinkedIn or via email .</description></item><item><title>Improving React Performance</title><link>https://markpollmann.com/post/2019-01-13-react-performance/</link><pubDate>Sun, 13 Jan 2019 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2019-01-13-react-performance/</guid><description>Introduction This post is supposed to give a quick overview on how to avoid the biggest performance gotchas. Without further ado let&amp;rsquo;s get right into it.
Use the production build Sounds funny but some companies use the development build in production without knowing. The dev build is considerably slower by adding all those checks for mistakes we know and love. The bundle size is of course bigger as well.
Performance Measuring with the Profiler React 16.</description></item><item><title>Progressive Web Apps: An Introduction</title><link>https://markpollmann.com/post/2018-09-01-intro-to-progressive-web-apps/</link><pubDate>Sat, 01 Sep 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-09-01-intro-to-progressive-web-apps/</guid><description>How to build your platform You want to showcase your products or services on the internet and reach as many people as possible, what do you do?
Nowadays you basically have two choices: Building a native app (iOS and Android) or building a web app that people visit in their browser of choice. Let&amp;rsquo;s take a closer look at those options:
Native Apps A native app is a good choice if you want full device support, offline capabilities, notifications, what have you.</description></item><item><title>Staying productive on the road</title><link>https://markpollmann.com/post/2018-07-12-productive-on-the-road/</link><pubDate>Thu, 12 Jul 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-07-12-productive-on-the-road/</guid><description>Introduction Working remotely is something many people dream about. While some people try it out and realize it&amp;rsquo;s not for them, others would love to keep doing it but struggle with the day-to-day challenges of keeping distractions at bay. In this post I want to share some of my learnings and tips for people interested in trying it out.
Routines If you&amp;rsquo;re an early bird or a night owl, having set routines is, in my view, essential to not burn out as well as not procrastinating and in the end not getting any work done.</description></item><item><title>Testing JavaScript Applications with Jest</title><link>https://markpollmann.com/post/2018-06-23-testing-react-applications/</link><pubDate>Sat, 23 Jun 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-06-23-testing-react-applications/</guid><description>Introduction Writing tests for JavaScript applications can be quite fun and easy if you find a tool you like. In this post I will talk about my favorite way to test React.js applications, namely the Jest Framework .
Before you even start writing tests Consider using static type-checking with a tool like Flow or Typescript in your project. This catches a lot of compile-time bugs. Also setting up a linter like ESLint is worth a lot!</description></item><item><title>The old vs new React Context API</title><link>https://markpollmann.com/post/2018-06-15-react-context/</link><pubDate>Fri, 15 Jun 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-06-15-react-context/</guid><description>With React 16.3 a new Context API will be introduced, making the old, experimental Context API obsolete. This marks a good time to take a look at the old and the new, what changes and why context is even needed in the first place.
What is Context? I&amp;rsquo;m sure you&amp;rsquo;ve had the problem of a component needing some data from way up the component tree. Without using a state-management library like Redux the only solution seems to be prop drilling,passing the data down each component in-between the data provider and the data receiver, which looks something like this:</description></item><item><title>Styling React Applications</title><link>https://markpollmann.com/post/2018-05-03-styling-react/</link><pubDate>Thu, 03 May 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-05-03-styling-react/</guid><description>When you start writing web applications in React, sooner or later you have to handle styling. React itself doesn&amp;rsquo;t have an opinion about how to style components, so it&amp;rsquo;s on you to find something that works best for you.
Here are some of the options:
Write Oldschool CSS This is probably the easiest way to get started. You just write css classes in your .css files, import the files into your app and apply classes to your components with the className attribute.</description></item><item><title>All About Serverless</title><link>https://markpollmann.com/post/2018-04-05-serverless/</link><pubDate>Thu, 05 Apr 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-04-05-serverless/</guid><description>So maybe you heard stories of a guy serving 30k pageviews for $0.21 , or people reducing their hosting costs by two orders of magnitude and you want to know what all the fuss is all about. What is this Serverless thing and is it for me? How about security and maintainability?
In this blog post I want to talk about the current state of serverless and if it&amp;rsquo;s the correct choice for your business.</description></item><item><title>Notes on Jason Cohen's Talk at MicroConf</title><link>https://markpollmann.com/post/2018-02-08-perfect-startup/</link><pubDate>Tue, 06 Feb 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-02-08-perfect-startup/</guid><description>In light of Jason Cohen&amp;rsquo;s company WP Engine passing $100M in annual recurring revenue I decided to re-watch his great talk on Designing the Ideal Bootstrapped Business . These are my notes.
The target Building a business that predictably and recurringly gives you $10,000 per month per founder, even if you didn&amp;rsquo;t work on it for the whole month.
This was his early target for WPEngine. Selling one-offs never get easier because you start each month from scratch.</description></item><item><title>Understanding Redux Middleware by understanding redux-thunk</title><link>https://markpollmann.com/post/2018-01-31-redux-middleware-thunk/</link><pubDate>Wed, 31 Jan 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-01-31-redux-middleware-thunk/</guid><description>There has always been the notion that Redux middleware is some kind of black magic but the idea behind it is actually quite simple and elegant.
The Main Idea Before reaching reducers actions can be manipulated with global functions called middleware. They can do whatever they want to the actions: log them to the console, change properties or stop some of them entirely. If you already know ExpressJS middleware you know Redux middleware, it&amp;rsquo;s the same idea.</description></item><item><title>Writing Custom Authorizers for AWS API Gateway</title><link>https://markpollmann.com/post/2018-01-27-lambda-authorizer/</link><pubDate>Sat, 27 Jan 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-01-27-lambda-authorizer/</guid><description>If you want to go serverless with your web app and you need an API running Lambda functions behind API Gateway on AWS is an excellent choice. The technology is mature, fast and cheap (if you know what you&amp;rsquo;re doing). You even get the first 1 million invocations for free each month. Once it&amp;rsquo;s set up you don&amp;rsquo;t have to provision servers and worry about over- or underprovisioning; you just pay per API call.</description></item><item><title>React Development in TypeScript</title><link>https://markpollmann.com/post/2018-01-24-typescript-react/</link><pubDate>Wed, 24 Jan 2018 00:00:00 +0000</pubDate><guid>https://markpollmann.com/post/2018-01-24-typescript-react/</guid><description>Using TypeScript for ReactJS development is something I started a couple months ago and it&amp;rsquo;s a definite improvement on the speed of development and refactoring. In this blog post I want to write about why you should consider writing your React apps with TypeScript, how to get started and where to go to learn more.
Why TypeScript? TypeScript promises less run-time errors by introducing a superset of JavaScript that makes developing big projects easier.</description></item></channel></rss>