{"data":{"markdownRemark":{"id":"d3068389-ad96-565d-9537-85d7499f1df0","html":"","fields":{"slug":"/blog/python-vs-c-sharp-detailed-comparison/"},"frontmatter":{"title":"Python vs C# - a detailed comparison","cover":"/img/python-vs-c-_cover-duz-y-2x.jpg","tags":["Python","C#"],"lead":"Coders nowadays have quite a wide array of tools and languages to choose from when faced with the task of writing an application. Not all programming languages are made equal, though. In this article we learn about two specimens from two seemingly different worlds - Python and C#.\n","content":[{"body":"## Python vs C# - high level comparison\n\nTl;dr: both are cool 😎\n\nBut if such a laconic statement doesn’t satisfy you, I am happy to report that **C#** is a general-purpose high-level\\* statically-typed\\* programming language and **Python** is a general-purpose high-level dynamically-typed* programming language. \n\nSounds more or less similar but some caveats have popped up - that’s because in both cases your mileage may vary. If you need to write low level pointer arithmetic software in C#, nothing is stopping you. Similarly, if you would like type checks in Python, you can have them as of version 3.6. All in all, the way you write your code comes down to personal preference, or the team’s coding standards.\n\n## Differences between C# and Python\n\nWere the two programming languages the same, this comparison would be very brief indeed. Let’s explore some of their quirks that a keen observer can use to tell them apart.\n\n### Hello world!\n\nA mandatory and customary point in every such comparison - how do you print a piece of text data to the console? Let’s have a look at the code you would usually write to achieve that.\n\n**In Python:**\n\n```\nprint(\"Hello world!\")\n```\n\n**And in C#:**\n\n```\nusing System;\n\nnamespace MyApp\n{\n    public static class App\n    {\n        public static void Main()\n        {\n            Console.WriteLine(\"Hello world!\");\n        }\n    }\n}\n```\n\nCharacter-wise you can immediately see that Python's software is about brevity - no curly braces, no semicolons, no classes, namespaces, all that fluff, only the thing that counts - greeting the world like a polite person would. \n\nBut those two pieces of code are not equal at all! In C# we’re declaring a namespace, a class, a method and then calling our print function. That’s a lot of boilerplate for a simple hello world app, do we really need it?\n\nNo, we do not. The following is a valid C# script:\n\n```\nConsole.WriteLine(\"Hello world!\");\n```\n\nThe programming language is the same but most of the code has vanished. We can achieve that by not doing the usual thing™ and putting the code through a regular compiler but instead using the C# interactive compiler or dotnet-script tool, although, to be fair, the namespace, class and Main() method are still defined, just not explicitly by us, which I believe to be the point of it all anyway.\n\n![developers](/img/02346-_tst1374-2x.jpg)\n\n### Whitespaces\n\nPython uses **semantic whitespace** to delimit blocks of code as seen in the snippet below:\n\n```\ntext = input()\nfor c in text:\n    if c == \" \":\n        print(\"Found space!\")\n```\n\nIf we were to reduce the indentation level of the _print_ function call, the interpreter will refuse to work:\n\n```\n File \".\\whitespaces\\whitespace.py\", line 4\n\tprint(\"Found space!\")\n    \t^\nIndentationError: expected an indented block\n```\n\nOn the other hand, C# doesn’t give a damn about indentation and while the following is a well-formatted snippet according to the [coding conventions](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions),\n\n```\nstring text = Console.ReadLine();\nforeach (char c in text)\n{\n    if (c == ' ')\n    {\n        Console.WriteLine(\"Found space!\");\n    }\n}\n```\n\nthe alternative is also valid, though painful to behold:\n\n```\nstring text=Console.ReadLine();\nforeach(char c in text)\n{\nif(c==' ')\n{\nConsole.WriteLine(\"Found space!\");\n}\n}\n```\n\nAs a bonus fact, it is possible to omit the curly braces if the loop or if-statement body consists of a single statement, allowing for a quite Python-y C# snippet:\n\n```\nstring text = Console.ReadLine();\nforeach (char c in text)\n    if (c == ' ')\n        Console.WriteLine(\"Found space!\");\n```\n\nOn the other hand, it might be [worth typing these anyway](https://nakedsecurity.sophos.com/2014/02/24/anatomy-of-a-goto-fail-apples-ssl-bug-explained-plus-an-unofficial-patch/). And while I do admit to being notorious for breaking this rule for the sake of brevity, adding those few lines is not a big price to pay for the correctness of your code and the reliability of your software.\n\n### Typing\n\nIt was said in our introduction to these two programming languages, C# is statically typed, Python is dynamically typed. And this holds true most of the time, as seen here:\n\n```\ngreeting = \"Hello, world\"\ngreeting = 100\n```\n\nCompletely fine.\n\n```\nstring greeting = \"Hello world\";\ngreeting = 100;\n```\nCauses a compiler error:\n```\nCannot implicitly convert type 'int' to 'string' [static.csx].\n```\n\nYou can also write the following:\n\n```\ndynamic greeting = \"Hello world\";\ngreeting = 100;\n```\n\nWhich will do as advertised - **dynamic**ally change the runtime type with no errors.\n\nAs well as this:\n\n```\ndef print_greeting(g: str) -> None:\n    print(g)\n\ngreeting = \"Hello world\"\nprint_greeting(greeting)\ngreeting = 100\nprint_greeting(greeting)\n```\n\nWhich will… also run just like any correct Python code would but with some help from mypy, or a checker bundled with an IDE like PyCharm, you can get some type errors! More details can be found in this article.\n\n<RelatedArticle title={`Speeding up e-commerce content moderation with Machine Learning based on Amazon Web Services`} />\n\n### Execution model\n\nWith C# being a compiled language and Python an interpreted one there doesn’t seem to be much room for a comparison. They are just different, right? \n\nTaking a closer look, we learn they are not that far apart. In both cases we begin with **source code in the form of a text file** (sometimes more than one). The C# compiler, when fed such files, emits .exe or .dll files which contain IL - intermediate language understood by the .NET runtime. \n\nIL can be generated from any **.NET compliant language** - C#, F#, Visual C++, VB.NET and many more. These files can be executed using the runtime which uses a JIT compiler to create native machine code as it runs the IL for the first time. Any subsequent call to the code that has been JITed will use the native instructions instead.\n\nOn the other hand, Python interpreter turns the **source scripts into Python VM bytecode** which is then executed, skipping the whole JIT business. That is, unless you are using a different Python implementation - [PyPy](https://pypy.org/) - which comes with its own JIT compiler which helps to achieve better performance, particularly for long-running, pure Python (i.e. not calling C/C++ code) programs.\n\nIn Microsoft’s .NET framework world, it is also worth mentioning that there is a project called [CoreRT](https://github.com/dotnet/corert) which aims to enable the creation of standalone, native binaries out of .NET code. It is in an early stage of development but if it succeeds, the world of framework-free, compact, high-performance applications will open for the .NET devs.\n\n\n### \"is\" keyword and == operator\n\nFalse friends, you might call them, because both exist in either programming language but have different meanings, depending on the context. \n\nIn C#, the **is** keyword can be used to check whether a variable **is of a certain type**, whereas in the object oriented Python it is for checking if two variables **refer to the same object**. To check the latter in C# you would use the == operator but for **reference types only** - if used with built-in value types, it will check value equality. \n\nThis behavior can be changed by overriding the operator for a type like it has been done for _string_, a reference type, where comparison using == checks the actual values. \n\nThis is also the case for this operator in Python - you need to override the \\_\\_eq\\_\\_ method in a class for the comparison to work. It is worth noting that in Python you can override \\_\\_eq\\_\\_ and leave \\_\\_ne\\_\\_ as is and it will be just fine, while in C# it is a compile-time error to override just one of the == and != operators.\n\nI feel I should mention that there is more to [equality in C#](https://blogs.msdn.microsoft.com/seteplia/2018/07/17/performance-implications-of-default-struct-equality-in-c/) than [described here](https://docs.microsoft.com/en-us/dotnet/api/system.iequatable-1?view=netframework-4.7.2) but it is also heavily tied to [CLR internals](https://blogs.msdn.microsoft.com/seteplia/2017/09/21/managed-object-internals-part-4-fields-layout/) and as such is well beyond the scope of this article.\n\n## Similarities between languages\n\nA great number of concepts and features sets the two programming languages apart, though there are a few striking similarities between the two. Besides classes, ifs, and fors, which can be found in any language that supports object-oriented, imperative programming, there are some more unique features to be found in the two languages in question.\n\n### async/await\n\nAs of C# 5 and Python 3.5, both programming languages support async/await keywords which help make asynchronicity and concurrency in code more manageable. Here’s how the two languages compare:\n\n```\nimport random\nimport asyncio\n\nasync def greet_after(who, when):\n    await asyncio.sleep(when)\n    print(f\"Hello, {who}\")\n\n\nasync def main():\n    tasks = [asyncio.create_task(greet_after(x, random.random())) for x in [\"John\", \"Jill\", \"Jane\", \"Jake\"]]\n    await asyncio.wait(tasks)\n\nasyncio.run(main())\n```\n\nAnd for C#:\n\n```\nasync Task GreetAfter(string who, int when)\n{\n    await Task.Delay(when);\n    Console.WriteLine($\"Hello, {who}\");\n}\n\nvar random = new Random();\nvar taks = new[] { \"John\", \"Jill\", \"Jane\", \"Jake\" }.Select(x => GreetAfter(x, random.Next(0, 999)));\nawait Task.WhenAll(taks);\n```\n\nThose two snippets greet the people from the list in parallel but will wait a random amount of time before each name. If these two snippets got any more alike, would we even consider them written in separate languages? Probably not, given that C# is quite adamant about its semicolons.\n\n<NewsletterSmall id={`article-middle`} />\n\n### Tuples\n\nTuples are lightweight data objects often used to return multiple values from a function without having to wrap them in an aggregating record, like a class. Comparing tuples in the two languages, they can be near identical syntactically (unless you omit the braces), with some differences in how they behave. \n\nIn Python they are simple collections (like a list) which are immutable (unlike a list), while in C# ValueTuples are increasingly more versatile objects with some dedicated syntax to create them out of other objects. \n\nHere’s some basic Python code:\n\n```\n# cannot have named fields by default - use namedtuple for that\ntup = (\"this\", \"is\", \"a\", \"tuple\")\n\nfor t in tup: # can iterate over items\n    print(t)\n\n# t[0] = \"that\" # error - Python tuples are immutable\n\ndef makeTuple():\n    return \"The answer is\", 42\n\nt = makeTuple()\nprint(t) # prints ('The answer is', 42)\n\nt1, t2 = makeTuple() # tuple deconstruction\nprint(t1, t2) # prints The answer is 42\n\nprint(t + t) \n```\n\nAnd here’s some marginally less basic C#:\n\n```\n// C# tuples can have named items\nvar tup = (\"this\", \"is\", \"a\", literallyTuple: \"tuple\");\n// Named items can still be accessed by the .ItemX property\nConsole.WriteLine($\"{tup.Item4} is the same as {tup.literallyTuple}\");\n\n// foreach(var item in tup) // error - tuples are not iterable\n// {\n//     Console.WriteLine(item);\n// }\n\ntup.Item1 = \"that\"; // values can be reassigned\n\n(string, int) MakeTuple() => (\"The answer is\", 42);\n\nvar t = MakeTuple();\nConsole.WriteLine(t); // prints (The answer is, 42)\nvar (t1, t2) = MakeTuple(); // tuple deconstruction\nConsole.WriteLine($\"{t1} {t2}\"); // prints The answer is 42\n\nclass TheAnswer\n{\n    public int Answer { get; set; }\n    public string Description { get; set; }\n\n    // classes can have deconstructors (not to be confused with finalizers)\n    // you can have as many as you like, out parameters define the resulting tuple\n    public void Deconstruct(out int answer, out string description)\n    {\n        answer = Answer;\n        description = Description;\n    }\n}\n\nvar theAnswer = new TheAnswer\n{\n    Answer = 42,\n    Description = \"The ultimate answer to life, universe and everything\"\n};\n\nvar (a, d) = theAnswer;\nConsole.WriteLine($\"{d} is {a}.\");\n// unsurprisingly prints The ultimate answer to life, universe and everything is 42.\n```\n\nThis feature is available from C# 7 and is separate from generic Tuple<>. If you see a compiler error along the lines of Predefined type 'System.ValueTuple`2' is not defined or imported, make sure that you have referenced the System.ValueTuple NuGget package.\n\n### Ranges and indices\n\nAs of C# 8, the language supports two new types - Range and Index. They were inspired by a similar syntax in languages like Swift, Perl and, obviously, Python, and their purpose is to simplify any code that operates on collection subsets. In Python, one would write code similar to the following:\n\n```\nmyList = [n for n in range(0, 10)]\nprint(\"Whole:\", myList)\n# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nprint(\"From index 2 onward:\", myList[2:])\n# [2, 3, 4, 5, 6, 7, 8, 9]\nprint(\"From index 2 onward, skip every other:\", myList[2::2])\n# [2, 4, 6, 8]\nprint(\"From index 2 to 4:\", myList[2:4])\n# [2, 3]\nprint(\"From index 1 to second from the end:\", myList[1:-1])\n# [1, 2, 3, 4, 5, 6, 7, 8]\nprint(\"Last: \", myList[-1])\n```\n\nWhereas in C# the syntax is near identical, although does not support declaring ranges which skip a number of elements. Moreover, at the time of writing this article, only Arrays and Spans can make use of this feature, but it may change before the final release.\n\n```\nvar myArray = Enumerable.Range(0, 10).ToArray();\nPrintArray(myArray, \"Whole\");\n// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nPrintArray(myArray[2..], \"From index 2 onward\");\n// [2, 3, 4, 5, 6, 7, 8, 9]\n// PrintList(myArray[2..^0:2], \"This does not work\");\nPrintArray(myArray[2..4], \"From index 2 to 4\");\n// [2, 3]\nPrintArray(myArray[1..^1], \"From index 1 to second from the end\");\n// [2, 3, 4, 5, 6, 7, 8]\nConsole.WriteLine($\"Last: {myArray[^1]}\");\n// 9\n\nstatic void PrintArray<T>(IEnumerable<T> list, string description) =>\n    Console.WriteLine($\"{description}: [{string.Join(\", \", list)}]\");\n```\n\n### Open source? Cross-platform?\n\nThis is not really a language feature but it is well worth mentioning that both Python and C# are fully open source, which, for the former, is not a new affair but quite so for the latter. With the advent of .NET Core, not only can we have a sneak peek at what is going on under the hood of the compiler, but the [runtime](https://github.com/dotnet/coreclr) and [BCL](https://github.com/dotnet/corefx) as well. \n\nYou can also run the code written in both programming languages on all major platforms like Windows, Linux, MacOS, Android and iOS. More on that later.\n\n![Developers](/img/02262-_tst1290-2x.jpg)\n\n## Frameworks and applications\n\nIn the following section, we will learn about a number of different scenarios where both languages can be applied and see how well-suited they are for a given task.\n\n### Cross platform apps\n\nWPF, WinForms, UWP - all of these come from the .NET framework world and can be used to write Windows desktop apps. With the addition of projects like AvaloniaUI and the upcoming Xamarin.Forms support for desktop scenarios, a C# developer is able to target any major desktop platform out there. \n\nFor Python devs, there’s Qt (or PySide with a more permissive license), Kivy, BeeWare, PyGTK/PyGObject, and TkInter, the latter being bundled with the default Python installation. All of them allow the making of cross-platform desktop apps, so if you know Python and need to write such an app, you are covered.\n\n### Mobile apps\n\nXamarin, Kivy and BeeWare all serve as mobile frameworks as well as desktop ones. We could mention UWP as well but given that Microsoft’s Windows 10 Mobile was discontinued, it is safe to ignore it for mobile scenarios. If you need your app to run on Android or iOS, you have some choice as a Python developer, less so in C#, but both options remain viable.\n\n### Web\n\nYou could fill whole libraries with articles comparing various web frameworks with one another, so for the sake of being DRY, let’s just say that for any developer coding in any language, options do exist to make a web application. Just looking at the [TechEmpower Fortunes](https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=fortune) benchmark can reveal that there are both C# and Python based tools readily available. \n\nYou can run the following JavaScript snippet in the browser’s console to filter out all the languages unrelated to the topic of this article:\n\n```\nvar rows = document.querySelectorAll(\"div#bar-fortune table tr\")\nfor(r of rows) r.style.display = r.children[6].innerText != \"Py\" ? \"none\" : \"initial\"; // or “C#”\n```\n\nFlask, Bottle, Django, Pyramid, to name just a few - all of them will help make a Python web app. NancyFX and ASP.NET, or in particular - ASP.NET Core, are there for you if you would rather use C# and might even be a better choice if performance is of critical priority as ASP.NET Core made it to the top 10 of the benchmark.\n\n### Serverless\n\nAs a bonus, it is worth mentioning that both AWS Lambda and Azure Functions support either language to write serverless code, with Azure’s support for Python being experimental. Google’s Cloud Functions can be written in Python but .NET is not supported.\n\n### Gamedev\n\nAs a gamer, I sometimes find myself wondering what programming language and frameworks were used in the making of the games I play. As it turns out, one of my all-time favourites, _Mount and Blade_, was written in Python! \n\nPyGame or Panda is what you should become friends with if you are looking out to create game software using that language. On the other hand, C# can be used with MonoGame (an open source implementation of Microsoft’s XNA Framework), Unity3D, Xenko, or even CryEngine.\n\n### Machine Learning\n\nThis is the part of the programming world where Python reigns supreme. Numpy, SciPy, TensorFlow, PyTorch, Apache Spark, Keras, the choice of software available is staggering for a Python dev. With a metric ton of courses and tutorials available both free and paid on the web, it is arguably THE language for your ML needs. \n\nAs for C#, there’s a new kid on the block, ML.NET, as well as some older libraries like Accord.Net and[ bindings for TensorFlow](https://github.com/migueldeicaza/TensorFlowSharp). Microsoft’s Cognitive Toolkit (CNTK) also supports C# for both evaluation and training (since v2.2) but at the same time has a more polished Python api.\n\n## Conclusion\n\nIt is hard to decide which is top, really. Both languages have free, mature tooling, a plethora of frameworks and libraries, and active communities. They are also flexible enough to fit any task a programmer can come up against, and are truly cross platform, running on desktops, phones, in the cloud, and even IoT devices. \n\nOne is the king of Machine Learning, the other shines on the servers, and even, if you are feeling adventurous, in browsers via WebAssembly. Personally, I would not give up C#’s type system for Python’s concise syntax, but hey, that’s just me and as it was stated in the beginning - **your mileage may vary**. \n\nJust use the tool that you feel is right for the task, and you should be good.","fullwidthImage":{"image":"","alt":"","comment":null}}],"settings":{"date":"2019-03-13T13:41:33.216Z","category":"Tech","metaDescription":"In this article we take a closer look at two specimens from two seemingly different worlds - Python and C# and consider their similarities and differences.","metaTitle":"Python vs C# - a detailed comparison","related":[{"title":"What exactly can you do with Python? "},{"title":"Predictive maintenance for wind turbines - an interview with Boldare’s machine learning engineers"},{"title":"Marble.js – new open source framework for JavaScript"}],"slug":"python-vs-c-sharp-a-comparison","canonical":""},"contributor":"Krzysztof Miczkowski","mainContent":null}},"allMarkdownRemark":{"edges":[{"node":{"excerpt":"","id":"a9a74167-061d-5449-a2c6-dc7c1782dc89","fields":{"slug":"/blog/6-benefits-from-having-a-qa-ba-in-your-development-team/"},"frontmatter":{"title":"6 benefits from having a QA/BA in your development team","job":null,"photo":null,"cover":"/img/team-meeting-in-conference-room.jpg","templateKey":"article-page","settings":{"date":"October 11, 2018","slug":"6-benefits-from-having-qa-ba-in-your-team","type":"blog","category":"How to"},"contributor":"Natalia Kolińska","box":{"content":{"title":"6 benefits from having a QA/BA in your development team","tags":null,"clientLogo":null,"coverImage":"/img/team-meeting-in-conference-room.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"4063b7a7-933f-5dc0-ad59-812f89ab802d","fields":{"slug":"/blog/digitalizing-renewable-energy/"},"frontmatter":{"title":"Digitalizing renewable energy","job":null,"photo":null,"cover":"/img/wind-turbines-photo-by-jason-blackeye.jpg","templateKey":"article-page","settings":{"date":"October 23, 2018","slug":"digitalizing-renewable-energy","type":"blog","category":"Future"},"contributor":"Kamil Mizera","box":{"content":{"title":"Digitalizing renewable energy","tags":null,"clientLogo":null,"coverImage":"/img/wind-turbines-photo-by-jason-blackeye.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"209d906b-0385-5007-8608-34403e51f78e","fields":{"slug":"/blog/system-story-the-little-sentence-that-builds-big-things/"},"frontmatter":{"title":"System Story – the little sentence that builds big things","job":null,"photo":null,"cover":"/img/system-story.jpg","templateKey":"article-page","settings":{"date":"October 29, 2018","slug":"system-story-the-little-sentence-that-builds-big-things","type":"blog","category":"How to"},"contributor":"Anna Bil","box":{"content":{"title":"System Story – the little sentence that builds big things","tags":null,"clientLogo":null,"coverImage":"/img/system-story.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"a3748254-2e36-5a1e-b1c3-e12684fd7a66","fields":{"slug":"/blog/marble-js-new-open-source-framework-for-javascript/"},"frontmatter":{"title":"Marble.js – new open source framework for JavaScript","job":null,"photo":null,"cover":"/img/marblejs.jpg","templateKey":"article-page","settings":{"date":"November 07, 2018","slug":"marblejs-new-open-source-framework-for-javascript","type":"blog","category":"Tech"},"contributor":"Kamil Mizera","box":{"content":{"title":"Marble.js – new open source framework for JavaScript","tags":null,"clientLogo":null,"coverImage":"/img/marblejs.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"594cc335-68ab-5f32-a312-9ca32b8ec9a8","fields":{"slug":"/career/qa-business-analyst-warszawa/"},"frontmatter":{"title":"QA Business Analyst Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"qa-business-analyst-warszawa","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"d8e30317-a1e2-524d-bd1c-ef42b29e651d","fields":{"slug":"/career/social-media-strategiest-warszawa/"},"frontmatter":{"title":"Social Media Strategist Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"social-media-strategiest-warszawa","type":"career","category":"Marketing"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"1b9bd994-2308-5d94-96c1-c5d847deb012","fields":{"slug":"/career/product-designer-warszawa/"},"frontmatter":{"title":"Product Designer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"product-designer-warszawa","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"5fd9230c-2c5f-5e3f-a6f6-f37117047653","fields":{"slug":"/career/php-developer-warszawa/"},"frontmatter":{"title":"PHP Developer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"php-developer-warszawa","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"d6826549-8d52-56d2-9b00-73735c4ce91f","fields":{"slug":"/career/java-developer-gliwice/"},"frontmatter":{"title":"JAVA Developer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"java-developer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"d0757525-e447-59d2-96c2-5db00efdd966","fields":{"slug":"/career/python-developer-warszawa/"},"frontmatter":{"title":"Python Developer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"python-developer-warszawa","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"058baa2d-fe58-58db-809f-5835a01341ad","fields":{"slug":"/career/scrum-master-warszawa/"},"frontmatter":{"title":"Scrum Master Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"scrum-master-warszawa","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"17ffb8fe-12d1-50e1-b094-e9b7e748ff70","fields":{"slug":"/career/finance-and-administrations-specialist-gliwice/"},"frontmatter":{"title":"Finance and Administrations Specialist Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"finance-administrations-specialist-gliwice","type":"career","category":"Operations"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"e6fb07bd-2a4b-5964-bac2-c651e255cd75","fields":{"slug":"/career/devops-engineer-gliwice/"},"frontmatter":{"title":"DevOps Engineer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"devops-engineer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"95c0f56e-e668-5c8e-9615-cc674fdc1e5f","fields":{"slug":"/career/qa-engineer-warszawa/"},"frontmatter":{"title":"QA Engineer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 18, 2018","slug":"qa-engineer-warszawa","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"d242e797-634b-5c1c-94f0-711b73d53775","fields":{"slug":"/career/social-media-strategiest-gliwice/"},"frontmatter":{"title":"Social Media Strategist Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"social-media-strategiest-gliwice","type":"career","category":"Marketing"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"d8a55b1f-f6bc-5ac3-ab78-ce7df7706572","fields":{"slug":"/career/scrum-master-gliwice/"},"frontmatter":{"title":"Scrum Master Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"scrum-master-gliwice","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"008fd063-191a-5e71-a7d7-c95884746fb7","fields":{"slug":"/career/python-developer-gliwice/"},"frontmatter":{"title":"Python Developer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"python-developer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"8956fba2-8e4b-5d11-a3a4-112f110c8134","fields":{"slug":"/career/php-developer-gliwice/"},"frontmatter":{"title":"PHP Developer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"php-developer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"241104c9-d806-5fcb-a8a2-bc771d824876","fields":{"slug":"/career/php-developer-wroclaw/"},"frontmatter":{"title":"PHP Developer Wroclaw","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"php-developer-wroclaw","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"92bba01b-1041-5b5a-8fa4-cb42a9af478b","fields":{"slug":"/career/qa-engineer-gliwice/"},"frontmatter":{"title":"QA Engineer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"qa-engineer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"a8cc031a-3526-5ab6-9889-4589e69c387a","fields":{"slug":"/career/qa-business-analyst-gliwice/"},"frontmatter":{"title":"QA Business Analyst Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"qa-business-analyst-gliwice","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"28afd319-72b8-5ccd-b10b-b13905bc4f23","fields":{"slug":"/career/product-designer-gliwice/"},"frontmatter":{"title":"Product Designer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"product-designer-gliwice","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"da24caca-b571-573f-ac8b-431bbc084e37","fields":{"slug":"/career/product-designer-wroclaw/"},"frontmatter":{"title":"Product Designer Wroclaw","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"product-designer-wroclaw","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"a6893e76-0dc4-5213-9990-af16c36e632d","fields":{"slug":"/career/javascript-developer-wroclaw/"},"frontmatter":{"title":"JavaScript Developer Wroclaw","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 19, 2018","slug":"javascript-developer-wroclaw","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"43f7c991-491f-5b3b-ad28-1fd852c0a875","fields":{"slug":"/blog/differences-between-class-and-dex-files-in-java-android/"},"frontmatter":{"title":"Differences between .class and .dex files in Java & Android","job":null,"photo":null,"cover":"/img/25094713777_cae2db29e7_k-1-.jpg","templateKey":"article-page","settings":{"date":"November 29, 2018","slug":"differences-between-class-and-dex-files-in-java-android","type":"blog","category":"Tech"},"contributor":"Grzegorz Kukla","box":{"content":{"title":"Differences between .class and .dex files in Java & Android","tags":null,"clientLogo":null,"coverImage":"/img/devsatwork.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"625ca873-6a9d-55e6-8564-9390834dc2bf","fields":{"slug":"/blog/hackyeah-2018-boldare-team-at-the-biggest-stationary-hackathon-in-the-world/"},"frontmatter":{"title":"HackYeah 2018 – Boldare Team at the biggest stationary hackathon in the world!","job":null,"photo":null,"cover":"/img/img_9134.jpg","templateKey":"article-page","settings":{"date":"December 04, 2018","slug":"hackyeah-2018-boldare-team-at-the-hackathon","type":"blog","category":"People"},"contributor":"Claudia Wensierska","box":{"content":{"title":"HackYeah 2018 – Boldare Team at the biggest stationary hackathon in the world!","tags":null,"clientLogo":null,"coverImage":"/img/img_9134.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"4ad6cf8e-d46b-5ee1-9542-91bdcc2e3b8d","fields":{"slug":"/blog/10-steps-to-becoming-a-javascript-developer/"},"frontmatter":{"title":"10 Steps to Becoming a JavaScript Developer","job":null,"photo":null,"cover":"/img/boldare-js-developers-team.jpg","templateKey":"article-page","settings":{"date":"December 05, 2018","slug":"10-steps-becoming-javascript-developer","type":"blog","category":"Tech"},"contributor":"Mateusz Grzesiukiewicz","box":{"content":{"title":"10 Steps to Becoming a JavaScript Developer","tags":null,"clientLogo":null,"coverImage":"/img/boldare-js-javascript-developers-team.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"f3b97c7c-4034-565a-89af-dd7bdfd33cea","fields":{"slug":"/blog/digital-product-prototyping-it-s-a-team-effort/"},"frontmatter":{"title":"Digital Product Prototyping – it’s a team effort","job":null,"photo":null,"cover":"POC-teameffort-blog_cover_v4.jpg","templateKey":"article-page","settings":{"date":"December 07, 2018","slug":"digital-product-prototyping-team-effort","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Digital Product Prototyping – it’s a team effort","tags":null,"clientLogo":null,"coverImage":"POC-teameffort-miniatura.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"10cea117-d483-585e-a95f-66a05d8db143","fields":{"slug":"/career/customer-success-guide-warszawa/"},"frontmatter":{"title":"Customer Success Guide Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"December 09, 2018","slug":"customer-success-guide-warszawa","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"a8b1d57b-582d-55da-8968-18f6c4f487ad","fields":{"slug":"/career/customer-success-guide-gliwice/"},"frontmatter":{"title":"Customer Success Guide Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"December 09, 2018","slug":"customer-success-guide-gliwice","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"1dceda6f-73a4-58bb-8340-b0d3d867a7b5","fields":{"slug":"/career/devops-engineer-warszawa/"},"frontmatter":{"title":"DevOps Engineer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"December 12, 2018","slug":"devops-engineer-warszawa","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"3dbc7b9b-b163-5855-8b9a-b6b4b94ba3db","fields":{"slug":"/blog/effective-scaling-through-teamwork/"},"frontmatter":{"title":"Effective scaling through teamwork","job":null,"photo":null,"cover":"/img/working-in-the-office.jpg","templateKey":"article-page","settings":{"date":"December 13, 2018","slug":"scaling-team-for-digital-product","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Effective scaling through teamwork","tags":null,"clientLogo":null,"coverImage":"/img/working-in-the-office-2.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"3bc4a242-1228-50d6-9aad-a141515624dc","fields":{"slug":"/career/content-writer-warszawa/"},"frontmatter":{"title":"Content Writer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"December 14, 2018","slug":"content-writer-warszawa","type":"career","category":"Marketing"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"ad58d0ec-f978-541a-bf81-acccfe623d8f","fields":{"slug":"/career/content-writer-gliwice/"},"frontmatter":{"title":"Content Writer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"December 14, 2018","slug":"content-writer-gliwice","type":"career","category":"Marketing"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"3ddb8338-24b7-5e73-8490-339437d999a7","fields":{"slug":"/blog/building-digital-products-based-on-machine-learning-the-cost-perspective/"},"frontmatter":{"title":"Building digital products based on machine learning - the cost perspective","job":null,"photo":null,"cover":"/img/team-meeting-discussion.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"machine-learning-digital-product-costs","type":"blog","category":"Strategy"},"contributor":"Kamil Mizera","box":{"content":{"title":"Building digital products based on machine learning - the cost perspective","tags":null,"clientLogo":null,"coverImage":"/img/team-meeting-discussion.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"66c4db9b-3dd4-5ab6-b8ef-9c515cf2c141","fields":{"slug":"/blog/lean-process-for-a-better-product/"},"frontmatter":{"title":"Lean process for a better product","job":null,"photo":null,"cover":"/img/team-meeting-in-mir-room.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"lean-process-for-better-product","type":"blog","category":"Digital Product"},"contributor":"Kamil Mizera","box":null}}},{"node":{"excerpt":"","id":"e9c5a21b-f2e8-536e-a8b7-80f47bce5e3d","fields":{"slug":"/blog/digital-product-prototyping-what-s-it-all-about/"},"frontmatter":{"title":"Digital Product Prototyping – what’s it all about?","job":null,"photo":null,"cover":"POC-prototyp-blog_cover.jpg","templateKey":"article-page","settings":{"date":"December 18, 2018","slug":"digital-product-prototyping-whats-it-all-about","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"What is a igital product prototype?","tags":null,"clientLogo":null,"coverImage":"POC-prototyp-miniatura_2x.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"e4247904-a734-55b0-b6b1-5efb16eb8ed6","fields":{"slug":"/blog/digital-travel-trends-in-the-experience-economy/"},"frontmatter":{"title":"Digital travel trends in the experience economy","job":null,"photo":null,"cover":"/img/travel-digital-trends.png","templateKey":"article-page","settings":{"date":"December 21, 2018","slug":"digital-travel-trends-in-experience-economy","type":"blog","category":"Ideas"},"contributor":"Radek Grabarek","box":{"content":{"title":"Digital travel trends in the experience economy","tags":null,"clientLogo":null,"coverImage":"/img/travel.png"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"1125509f-7b32-5388-bfc9-52dea1165eb0","fields":{"slug":"/blog/converter-pattern-in-java-8/"},"frontmatter":{"title":"Converter pattern in Java 8","job":null,"photo":null,"cover":"/img/converter-pattern-in-java8-boldare-blog.jpg","templateKey":"article-page","settings":{"date":"January 01, 2019","slug":"converter-pattern-in-java-8","type":"blog","category":"Tech"},"contributor":"Anna Skawińska","box":{"content":{"title":"Converter pattern in Java 8","tags":null,"clientLogo":null,"coverImage":"/img/converter-pattern-in-java-8-boldare-blog-cover.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"ffad3fbb-e3e1-5785-9d35-95ce10a13143","fields":{"slug":"/blog/2018-at-boldare-the-story-of-great-changes-in-ten-graphics/"},"frontmatter":{"title":"2018 at Boldare: the story of great changes in ten graphics","job":null,"photo":null,"cover":"/img/cover-na-bloga.jpg","templateKey":"article-page","settings":{"date":"January 16, 2019","slug":"2018-at-boldare-the-story-of-great-changes","type":"blog","category":"News"},"contributor":"Kamil Mizera","box":{"content":{"title":"2018 at Boldare: the story of great changes in ten graphics","tags":null,"clientLogo":null,"coverImage":"/img/blog-miniaturka.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"7e5ab016-da29-5222-9e79-1442657b5cb9","fields":{"slug":"/career/qa-business-analyst-wroclaw/"},"frontmatter":{"title":"QA Business Analyst Wroclaw","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"January 18, 2019","slug":"qa-business-analyst-wroclaw","type":"career","category":"Product"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"1f967c77-6045-55b9-9c94-30e792ce69f6","fields":{"slug":"/career/qa-engineer-wroclaw/"},"frontmatter":{"title":"QA Engineer Wroclaw","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"January 24, 2019","slug":"qa-engineer-wroclaw","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"a64966ec-0fd9-5528-a7f7-526540c87f49","fields":{"slug":"/blog/eres-yachting-designing-a-premium-online-booking-experience-for-luxury-travel/"},"frontmatter":{"title":"ERES Yachting - designing a premium online booking experience for luxury travel","job":null,"photo":null,"cover":"/img/coverfoto-blogpost-big.jpg","templateKey":"article-page","settings":{"date":"January 30, 2019","slug":"eres-yachting-designing-premium-online-booking-experience","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"ERES Yachting - designing a premium online booking experience for luxury travel","tags":null,"clientLogo":null,"coverImage":"/img/coverfoto-blogpost-small.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"5df42308-319e-5e86-b1df-42dcad8f925d","fields":{"slug":"/blog/choosing-digital-product-development-partner-political-and-economic-issues/"},"frontmatter":{"title":"Choosing a digital product development partner - the political and economic issues","job":null,"photo":null,"cover":"img/video-call-at-conference-room.jpg","templateKey":"article-page","settings":{"date":"February 01, 2019","slug":"choosing-digital-product-development-partner-political-and-economic-issues","type":"blog","category":"Strategy"},"contributor":"Paweł Kaiser","box":{"content":{"title":"Choosing a development partner - the political and economic issues","tags":null,"clientLogo":null,"coverImage":"img/video-call-at-conference-room.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"95f1cc78-0016-5002-b2d9-074325c4687e","fields":{"slug":"/blog/how-much-should-you-pay-for-digital-product-development/"},"frontmatter":{"title":"How much should you pay for a digital product development?","job":null,"photo":null,"cover":"img/webp.net-resizeimage-1-.jpg","templateKey":"article-page","settings":{"date":"February 01, 2019","slug":"how-much-should-you-pay-for-digital-product-development","type":"blog","category":"Strategy"},"contributor":"Paweł Kaiser","box":{"content":{"title":"Looking for a digital product development partner? ","tags":null,"clientLogo":null,"coverImage":"img/webp.net-resizeimage-1-.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"17a0958e-87fb-568c-91ab-17183a611644","fields":{"slug":"/blog/face-validator-open-source-symfony3-facial-recognition-bundle/"},"frontmatter":{"title":"Face Validator: open source Symfony3 facial recognition bundle","job":null,"photo":null,"cover":"/img/facevailidator.jpg","templateKey":"article-page","settings":{"date":"February 13, 2019","slug":"face-detection-open-source-symfony3","type":"blog","category":"Tech"},"contributor":"Paweł Krynicki","box":{"content":{"title":"Face Validator: open source Symfony3 facial recognition bundle","tags":null,"clientLogo":null,"coverImage":"/img/facevailidatorsymfony3.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"69cd8e52-1dad-5209-89a1-8a40687b4835","fields":{"slug":"/reviews/tauron-polska-energia/"},"frontmatter":{"title":"Tauron Polska Energia, an energy company","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 05, 2019","slug":"tauron-polska-energia","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"cc5b368e-1a10-5747-91b1-fc826264d915","fields":{"slug":"/reviews/virgin-radio-oman/"},"frontmatter":{"title":"Virgin Radio Oman, a part of Sabco Media ","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 05, 2019","slug":"virgin-radio-oman","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"d9dbfd84-e0e2-5719-acbf-2b9a5745c048","fields":{"slug":"/reviews/eres-yachting/"},"frontmatter":{"title":"Eres Yachting - a booking platform","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 05, 2019","slug":"eres-yachting","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"2aa0994b-173c-5455-a4f7-ce8edab3dfc6","fields":{"slug":"/reviews/numera-lighting/"},"frontmatter":{"title":"Numera Lighting, a lighting manufacturer","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 06, 2019","slug":"numera-lighting","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"67da4b02-5c53-5e7e-a103-fde6c3803144","fields":{"slug":"/reviews/holiday-taxis/"},"frontmatter":{"title":"Holiday Taxis - a transport booking service","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 06, 2019","slug":"holiday-taxis","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"d068d911-945a-540c-a07f-2f3f6b91b3fc","fields":{"slug":"/reviews/ezycount/"},"frontmatter":{"title":"EZYcount - a fintech startup","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 06, 2019","slug":"ezycount","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"828e7028-9bdf-59d5-bbbb-f851267671ab","fields":{"slug":"/reviews/lamden/"},"frontmatter":{"title":"Lamden - a blockchain startup","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 06, 2019","slug":"lamden","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"d854d112-347e-5811-8551-d652ddfe5e2c","fields":{"slug":"/reviews/brasswillow/"},"frontmatter":{"title":"BrassWillow - a consulting company","job":null,"photo":null,"cover":null,"templateKey":"review-page","settings":{"date":"March 06, 2019","slug":"brasswillow","type":"reviews","category":null},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"c1ec5b4f-7e91-5e73-bc13-fd87f40119a9","fields":{"slug":"/blog/top-3-products-weve-built-in-php-challenges-and-conclusions/"},"frontmatter":{"title":"TOP 3 products we've built in PHP – challenges and conclusions","job":null,"photo":null,"cover":"/img/webp.net-resizeimage-1-.jpg","templateKey":"article-page","settings":{"date":"March 12, 2019","slug":"top-3-products-php-tojjar","type":"blog","category":"Tech"},"contributor":"Mariusz Bąk","box":{"content":{"title":"TOP 3 products we've built in PHP – challenges and conclusions","tags":null,"clientLogo":null,"coverImage":"/img/takamol-tojjar-case-study-boldare-product-development-team.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"c41c41c0-b0ba-5f70-88ce-c4d3f425fa7f","fields":{"slug":"/blog/when-two-become-one-the-story-of-boldare/"},"frontmatter":{"title":"When two become one. The story of Boldare","job":null,"photo":null,"cover":"/img/anna-zarudzka-and-piotr-majchrzak.jpg","templateKey":"article-page","settings":{"date":"June 04, 2018","slug":"the-story-of-boldare","type":"blog","category":"News"},"contributor":"Kamil Mizera","box":{"content":{"title":"When two become one. The story of Boldare","tags":null,"clientLogo":null,"coverImage":"/img/anna-zarudzka-and-piotr-majchrzak.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"e20e0491-9012-501f-9237-56c08d8a7dda","fields":{"slug":"/blog/wtf-open-source-web-testing-framework/"},"frontmatter":{"title":"WTF: Open Source Web Testing Framework","job":null,"photo":null,"cover":"/img/kamil-chyrek.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"web-testing-framework","type":"blog","category":"Tech"},"contributor":"Tomasz Konieczny","box":null}}},{"node":{"excerpt":"","id":"ae745671-5fac-5bf4-8fc6-5584ce0332f4","fields":{"slug":"/blog/transforming-us-politics-with-a-voting-platform-for-concerned-citizens/"},"frontmatter":{"title":"Transforming US politics with a voting platform for concerned citizens","job":null,"photo":null,"cover":"/img/usa-flag.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-study-polco","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"Transforming US politics with a voting platform for concerned citizens","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"3d384b14-f104-5965-86f7-224829f22c9d","fields":{"slug":"/blog/speeding-up-e-commerce-content-moderation-with-machine-learning-based-on-amazon-web-services/"},"frontmatter":{"title":"Speeding up e-commerce content moderation with Machine Learning based on Amazon Web Services","job":null,"photo":null,"cover":"/img/human-eye.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"machine-learning-content-moderation","type":"blog","category":"Case Study"},"contributor":"Paweł Krynicki","box":{"content":{"title":"Speeding up e-commerce content moderation with Machine Learning based on Amazon Web Services","tags":null,"clientLogo":null,"coverImage":"/img/human-eye.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"31250d56-d30d-516c-a1e6-eddf4a60ad16","fields":{"slug":"/blog/how-we-do-digital-products-at-boldare-and-what-it-means-for-your-business/"},"frontmatter":{"title":"This is how Boldare Development Teams process addresses your business needs","job":null,"photo":null,"cover":"/img/open-space.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"agile-process-for-digital-product-development","type":"blog","category":"How to"},"contributor":"Kamil Mizera","box":{"content":{"title":"This is how Boldare Development Teams process addresses your business needs","tags":null,"clientLogo":null,"coverImage":"/img/open-space.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"364acb1e-105f-5dc3-b49b-265e7ef8c5a9","fields":{"slug":"/blog/how-to-start-a-neural-network-with-javascript-in-5-minutes/"},"frontmatter":{"title":"How to start a neural network with JavaScript in 5 minutes","job":null,"photo":null,"cover":"/img/barbara-strak.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"neural-network-with-javascript","type":"blog","category":"Tech"},"contributor":"Kamil Mikosz","box":null}}},{"node":{"excerpt":"","id":"05a33609-f9e8-55af-a595-50e4bdd418a2","fields":{"slug":"/blog/how-to-scale-a-monolithic-mvp-application-without-losing-business/"},"frontmatter":{"title":"How to scale a monolithic MVP application without losing business?","job":null,"photo":null,"cover":"/img/dubai.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-study-ionoview","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"How to scale a monolithic MVP application without losing business?","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"98547217-caf0-56f6-955f-a615b8aaf688","fields":{"slug":"/blog/how-to-deliver-an-e-commerce-platform-mvp-in-just-6-weeks/"},"frontmatter":{"title":"How to deliver an e-commerce platform MVP in just 6 weeks","job":null,"photo":null,"cover":"/img/arabian-women.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-study-tojjar","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":null}}},{"node":{"excerpt":"","id":"28bad4be-ff41-5eb1-a1fa-922cfa1e511c","fields":{"slug":"/blog/how-to-create-a-teal-space-for-enhancing-creativity-and-productivity-of-self-managing-teams/"},"frontmatter":{"title":"How to create a teal space for enhancing creativity and productivity of self-managing teams","job":null,"photo":null,"cover":"/img/relax-space-big-hammock.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"teal-space-for-creativity-and-productivity","type":"blog","category":"Ideas"},"contributor":"Patrycja Kasperkiewicz","box":{"content":{"title":"How to create a teal space for enhancing creativity and productivity of self-managing teams","tags":null,"clientLogo":null,"coverImage":"/img/relax-space-hammock-and-bike.jpg"},"settings":{"tileColor":null,"textColor":null,"link":"/blog/teal-space-for-creativity-and-productivity/"},"type":"BLOG"}}}},{"node":{"excerpt":"","id":"6d31c771-b3eb-519e-850c-bd4b6ddb51d0","fields":{"slug":"/blog/from-design-to-development-in-4-weeks-creating-a-mobile-and-web-mvp-for-an-iconic-brand/"},"frontmatter":{"title":"From design to development in 4 weeks. Creating a mobile and web MVP for an iconic brand","job":null,"photo":null,"cover":"/img/virgin-radio-oman-mobile-app-design.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-study-virgin-radio-oman","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"From design to development in 4 weeks. Creating a mobile and web MVP for an iconic brand","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"12ceee0c-1750-5780-b53a-7dbefa112d19","fields":{"slug":"/blog/designing-a-simple-search-experience-for-a-complex-product-with-a-luxurious-interface/"},"frontmatter":{"title":"Designing a simple search experience for a complex product with a luxurious interface","job":null,"photo":null,"cover":"/img/yacht.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-study-eres-yachting-booking-platform","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"Designing a simple search experience for a complex product with a luxurious interface","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"a4fe2a8a-4bf4-5978-855a-7ea9ca9f5c05","fields":{"slug":"/blog/best-outsourcing-practices-meetup-–-designed-for-ctos/"},"frontmatter":{"title":"Best Outsourcing Practices Meetup – designed for CTOs","job":null,"photo":null,"cover":"/img/outsourcing-best-practices-meetup-group.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"cto-asks-meetup","type":"blog","category":"People"},"contributor":"Kamil Mizera","box":{"content":{"title":"Best Outsourcing Practices Meetup – designed for CTOs","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"6e6f6df1-3ef1-5301-867f-a342d766efd9","fields":{"slug":"/blog/agile-and-skilled-development-teams-for-a-french-unicorn/"},"frontmatter":{"title":"Agile and skilled development teams for a French unicorn","job":null,"photo":null,"cover":"/img/blablacar-office.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"case-story-blablacar","type":"blog","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"Agile and skilled development teams for a French unicorn","tags":null,"clientLogo":null,"coverImage":null},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"2c5d6b57-5f85-5d02-9fe0-8696c2519059","fields":{"slug":"/blog/a-step-by-step-guide-to-event-storming-–-our-experience/"},"frontmatter":{"title":"A step by step guide to Event Storming – our experience","job":null,"photo":null,"cover":"/img/woman-in-room-with-glass-walls.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"event-storming-guide","type":"blog","category":"How to"},"contributor":"Natalia Kolińska","box":null}}},{"node":{"excerpt":"","id":"ce64d144-f9f4-528b-be78-62cda2836cbb","fields":{"slug":"/blog/5-signs-you’re-ready-for-holacracy/"},"frontmatter":{"title":"5 Signs You’re Ready for Holacracy","job":null,"photo":null,"cover":"/img/team-meeting-during-holacracy-workshop.jpg","templateKey":"article-page","settings":{"date":"June 05, 2018","slug":"5-signs-you-are-ready-for-holacracy","type":"blog","category":"Ideas"},"contributor":"Piotr Majchrzak","box":{"content":{"title":"5 Signs You’re Ready for Holacracy","tags":null,"clientLogo":null,"coverImage":"/img/team-meeting-during-holacracy-workshop.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"2dab7565-9fc1-5d04-a721-3f7e72eec8f0","fields":{"slug":"/work/how-to-create-predictive-maintenance-software-for-wind-turbines-using-machine-learning-algorithms/"},"frontmatter":{"title":"How to create predictive maintenance software for wind turbines using machine learning algorithms","job":null,"photo":null,"cover":"/img/wind-turbine-predictive-maintenance-software-case-study.jpg","templateKey":"case-study-page","settings":{"date":"October 29, 2018","slug":"case-study-predictive-maintenance","type":null,"category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"How to create predictive maintenance software using machine learning","tags":["#machinelearning #python #ux #lean"],"clientLogo":null,"coverImage":null},"settings":{"tileColor":"white","textColor":"black","link":"https://www.boldare.com/work/case-study-predictive-maintenance"},"type":null}}}},{"node":{"excerpt":"","id":"a14e040a-8768-5d38-80fe-c023cc6de5bd","fields":{"slug":"/blog/introducing-data-visualization-in-d3-javascript-library/"},"frontmatter":{"title":"Introducing Data Visualization in D3 JavaScript library","job":null,"photo":null,"cover":"/img/giant-globe.jpg","templateKey":"article-page","settings":{"date":"November 07, 2018","slug":"data-visualization-in-d3-javascript-library","type":"blog","category":"Tech"},"contributor":"Marcin Brach","box":{"content":{"title":"Introducing Data Visualization in D3 JavaScript library","tags":null,"clientLogo":null,"coverImage":"/img/giant-globe.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"77d570b2-f7ec-5415-af3e-d335793486d2","fields":{"slug":"/blog/lean-startup-series-vanity-metrics-vs-actionable-metrics/"},"frontmatter":{"title":"Lean Startup Series: Vanity Metrics vs. Actionable Metrics","job":null,"photo":null,"cover":"/img/meeting-room-1440.jpeg","templateKey":"article-page","settings":{"date":"November 19, 2018","slug":"lean-startup-vanity-metrics-vs-actionable-metrics","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Lean Startup Series: Vanity Metrics vs. Actionable Metrics","tags":null,"clientLogo":null,"coverImage":"/img/meeting-room-1440.jpeg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"05f28b4e-5320-595c-b7b3-d147bc0bb129","fields":{"slug":"/blog/lean-startup-series-validated-learning/"},"frontmatter":{"title":"Lean Startup Series: Validated Learning","job":null,"photo":null,"cover":"/img/team-at-work-1440.jpg","templateKey":"article-page","settings":{"date":"November 21, 2018","slug":"lean-startup-validated-learning","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Lean Startup Series: Validated Learning","tags":null,"clientLogo":null,"coverImage":"/img/team-at-work-1440.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"e9317355-0ae3-5691-ade0-f06e70ac4ab3","fields":{"slug":"/blog/practical-tips-on-changing-the-service-provider-and-keeping-your-digital-product-delivered/"},"frontmatter":{"title":"Practical tips on changing the service provider and still delivering your digital product","job":null,"photo":null,"cover":"/img/dev-team-at-work.jpg","templateKey":"article-page","settings":{"date":"November 25, 2018","slug":"changing-the-digital-product-service-provider","type":"blog","category":"Strategy"},"contributor":"Adam Ziemba","box":{"content":{"title":"Practical tips on changing the service provider and keeping your digital product delivered ","tags":null,"clientLogo":null,"coverImage":"/img/dev-team-at-work-cover.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"3c699bf0-2b0f-5b91-a69a-41dee56279f7","fields":{"slug":"/blog/lean-startup-series-innovation-accounting/"},"frontmatter":{"title":"Lean Startup Series: Innovation Accounting","job":null,"photo":null,"cover":"/img/lean-startup-chart.jpg","templateKey":"article-page","settings":{"date":"November 28, 2018","slug":"lean-startup-innovation-accounting","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Lean Startup series: innovation accounting","tags":null,"clientLogo":null,"coverImage":"/img/lean-startup-chart.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"23ac8e45-1c10-544a-ae63-73a9dc74bc77","fields":{"slug":"/blog/predictive-maintenance-for-wind-turbines-an-interview-with-boldare-s-machine-learning-engineers/"},"frontmatter":{"title":"Predictive maintenance for wind turbines - an interview with Boldare’s machine learning engineers","job":null,"photo":null,"cover":"/img/machine-learning-team-boldare.png","templateKey":"article-page","settings":{"date":"November 30, 2018","slug":"predictive-maintenance-wind-turbine","type":"blog","category":"Digital Product"},"contributor":"Mateusz Kościelak","box":{"content":{"title":"Predictive maintenance for wind turbines - an interview with Boldare’s machine learning engineers","tags":null,"clientLogo":null,"coverImage":"/img/machine-learning-team-boldare.png"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"545ca9ce-097c-5047-a759-a6fd14566899","fields":{"slug":"/blog/product-market-fit-for-expanding-market-demand/"},"frontmatter":{"title":"Product-Market Fit for expanding market demand","job":null,"photo":null,"cover":"/img/team-board.jpg","templateKey":"article-page","settings":{"date":"December 05, 2018","slug":"product-market-fit-expanding-demand","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Product-Market Fit for expanding market demand","tags":null,"clientLogo":null,"coverImage":"/img/team-board-miniatura.jpeg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"68a10263-08e5-5906-aa47-8a3e56250b23","fields":{"slug":"/blog/product-vision-workshops-seeing-clearly-from-the-beginning/"},"frontmatter":{"title":"Product Vision Workshops – seeing clearly from the beginning","job":null,"photo":null,"cover":"/img/team-meetings.jpg","templateKey":"article-page","settings":{"date":"December 11, 2018","slug":"product-vision-workshops-toolkit","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Product Vision Workshops – seeing clearly from the beginning","tags":null,"clientLogo":null,"coverImage":"/img/team-meetings.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"be4dba11-a1c4-5a55-94de-13271c6c5fe7","fields":{"slug":"/blog/the-what-why-and-how-of-mvps/"},"frontmatter":{"title":"MVP development - what, why & how","job":null,"photo":null,"cover":"/img/rallo.png","templateKey":"article-page","settings":{"date":"December 12, 2018","slug":"mvp-what-why-how","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"MVP development - what, why & how","tags":null,"clientLogo":null,"coverImage":"/img/rallo-mini.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"97b4ca81-c274-565c-84db-4d0e62bf2d7a","fields":{"slug":"/blog/user-satisfaction-user-perspective-user-oriented-approach-an-interview-with-product-designer-pawel-capaja/"},"frontmatter":{"title":"\"User satisfaction. User perspective. User-oriented approach\" - an interview with Paweł Capaja","job":null,"photo":null,"cover":"/img/cover-photo-blogspot.jpg","templateKey":"article-page","settings":{"date":"December 12, 2018","slug":"product-desinger-pawel-capaja-interview","type":"blog","category":"Ideas"},"contributor":"Kamil Mizera","box":{"content":{"title":"What does it mean to be a Product Designer- an interview with Paweł Capaja","tags":null,"clientLogo":null,"coverImage":"/img/cover-photo-miniaturka.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"960777c2-f59c-58c3-8323-72557ba6353d","fields":{"slug":"/blog/product-market-fit-teamworking-for-results/"},"frontmatter":{"title":"Product-Market Fit – teamworking for results","job":null,"photo":null,"cover":"/img/team-meeting-1440.jpeg","templateKey":"article-page","settings":{"date":"December 14, 2018","slug":"product-market-fit-team-for-results","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Product-Market Fit – teamworking for results","tags":null,"clientLogo":null,"coverImage":"/img/team-meeting-1440.jpeg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"25800c12-fafc-5c39-ac21-19b137e9928b","fields":{"slug":"/blog/minimum-viable-products-it-s-all-about-the-team/"},"frontmatter":{"title":"Minimum Viable Products? It’s all about the team","job":null,"photo":null,"cover":"/img/teamwork.jpg","templateKey":"article-page","settings":{"date":"December 18, 2018","slug":"minimum-viable-product-team","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Minimum Viable Products? It’s all about the team","tags":null,"clientLogo":null,"coverImage":"/img/teamwork.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"7838a388-62b3-5d2c-b68e-3f89949c8470","fields":{"slug":"/blog/what-is-design-thinking/"},"frontmatter":{"title":"What is Design Thinking","job":null,"photo":null,"cover":"/img/design-thinking.jpg","templateKey":"article-page","settings":{"date":"December 18, 2018","slug":"what-is-design-thinking","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"What is Design Thinking","tags":null,"clientLogo":null,"coverImage":"/img/design-thinking.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"356867d7-a9ea-5c30-9725-03f4e16f5804","fields":{"slug":"/blog/the-5-dares-of-functional-testing-an-application-in-arabic/"},"frontmatter":{"title":"The 5 dares of functional testing an application in Arabic","job":null,"photo":null,"cover":"/img/openspace-work.jpg","templateKey":"article-page","settings":{"date":"January 29, 2019","slug":"5-dares-of-functional-testing-in-Arabic","type":"blog","category":"How to"},"contributor":"Natalia Kolińska","box":{"content":{"title":"The 5 dares of functional testing an application in Arabic","tags":null,"clientLogo":null,"coverImage":"/img/openspace-work.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"a662207b-eeea-5020-8b5e-7063b88e066f","fields":{"slug":"/blog/people-dont-buy-products-people-buy-meanings/"},"frontmatter":{"title":"People don't buy products. People buy meanings","job":null,"photo":null,"cover":"/img/cover.jpg","templateKey":"article-page","settings":{"date":"February 07, 2019","slug":"design-driven-innovation","type":"blog","category":"Ideas"},"contributor":"Anna Zarudzka","box":{"content":{"title":"People don't buy products. People buy meanings","tags":null,"clientLogo":null,"coverImage":"/img/cover-mini.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"1ecc7b10-fe5e-58fb-a3db-55e65e2e1f87","fields":{"slug":"/blog/what-exactly-can-you-do-with-python/"},"frontmatter":{"title":"What exactly can you do with Python? ","job":null,"photo":null,"cover":"/img/developers-working-on-machine-learning-algoritm.jpg","templateKey":"article-page","settings":{"date":"February 27, 2019","slug":"what-exactly-can-you-do-with-Python","type":"blog","category":"Tech"},"contributor":"Mateusz Wyciślik","box":{"content":{"title":"What exactly can you do with Python? ","tags":null,"clientLogo":null,"coverImage":"/img/developers-working-on-machine-learning-algoritm.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"1c8073b0-a59b-5f51-8ceb-ee4206c84b69","fields":{"slug":"/blog/what-is-node-js-used-for/"},"frontmatter":{"title":"What is Node.js used for? ","job":null,"photo":null,"cover":"node.js_a_cover_photo.png","templateKey":"article-page","settings":{"date":"March 01, 2019","slug":"what-is-node-js-used-for","type":"blog","category":"Tech"},"contributor":"Kacper Geisheimer","box":{"content":{"title":"Learn about Node.js characteristic","tags":null,"clientLogo":null,"coverImage":"node.js_.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"1dd3e9ac-ee33-5abc-bb9d-77ba0c05dbf2","fields":{"slug":"/blog/java-vs-javascript-whats-the-difference/"},"frontmatter":{"title":"Java vs. JavaScript: what's the difference? ","job":null,"photo":null,"cover":"/img/java-vs-java-script.jpg","templateKey":"article-page","settings":{"date":"March 01, 2019","slug":"java-vs-javascript-what-is-the-difference","type":"blog","category":"Tech"},"contributor":"Grzegorz Kukla","box":{"content":{"title":"See the main differences between Java and JavaScript","tags":null,"clientLogo":null,"coverImage":"/img/javascript-vs-java.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"7c10cc73-8a0f-5ada-aec9-f06400ee6913","fields":{"slug":"/blog/machine-learning-obstacles-and-limitations/"},"frontmatter":{"title":"Machine learning - obstacles and limitations","job":null,"photo":null,"cover":"machine_learning_b.png","templateKey":"article-page","settings":{"date":"March 03, 2019","slug":"machine-learning-obstacles-and-limitations","type":"blog","category":"Strategy"},"contributor":"Jonathan Wooddin","box":{"content":{"title":"See the real power of Machine Learning","tags":null,"clientLogo":null,"coverImage":"machine_learning_b.png"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"a179fdd9-84ab-5f5d-9673-c344c54057e0","fields":{"slug":"/blog/how-to-use-javascript-classes-three-different-ways/"},"frontmatter":{"title":"How to use JavaScript Classes? Three Different Ways","job":null,"photo":null,"cover":"/img/dev-team-at-work2.jpg","templateKey":"article-page","settings":{"date":"March 21, 2019","slug":"how-to-use-javascript-classes","type":"blog","category":"Tech"},"contributor":"Sebastian Musiał","box":{"content":{"title":"How to use JavaScript Classes? Three Different Ways","tags":null,"clientLogo":null,"coverImage":"/img/dev-team-at-work-cover.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"cc9ad27c-1e05-5a65-b6b8-fd0fa0fe3340","fields":{"slug":"/work/case-study-sonnen-customer-portal/"},"frontmatter":{"title":"Visualising Energy","job":null,"photo":null,"cover":"/img/sonnen-web-app-mockup.jpg","templateKey":"case-study-page","settings":{"date":"June 05, 2018","slug":"case-study-sonnen","type":"work","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"Visualising Energy","tags":["ReactJS","MVP"],"clientLogo":"/img/sonnen-logo.png","coverImage":"/img/sonnen-case-study-boldare-min.jpg"},"settings":{"tileColor":"white","textColor":"black","link":"/work/case-study-sonnen/"},"type":"CASE_STUDY"}}}},{"node":{"excerpt":"","id":"3914c4ff-8699-5b32-8b57-338e0a21a76c","fields":{"slug":"/blog/wondering-about-viability-let-impact-mapping-reassure-you/"},"frontmatter":{"title":"Wondering about viability? Let impact mapping reassure you","job":null,"photo":null,"cover":"/img/team-meeting-in-apollo.jpg","templateKey":"article-page","settings":{"date":"July 06, 2018","slug":"build-product-that-make-impact","type":"blog","category":"How to"},"contributor":"Natalia Kolińska","box":null}}},{"node":{"excerpt":"","id":"8d37b599-7a71-566e-ae63-a2cbd9b38c3f","fields":{"slug":"/blog/5-git-commands-i-wish-i-d-known-about-when-i-started-coding/"},"frontmatter":{"title":"5 Git commands that will make your work smarter","job":null,"photo":null,"cover":"5_useful_git_command.jpg","templateKey":"article-page","settings":{"date":"March 01, 2019","slug":"5-git-commands-that-will-make-your-work-smarter","type":"blog","category":"Tech"},"contributor":"Łukasz Mitusiński","box":{"content":{"title":"Learn super useful Git commands","tags":null,"clientLogo":null,"coverImage":"img/5_Useful_command_cover29.03.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"ba18bf7b-b537-52c3-8689-9abaf926ada0","fields":{"slug":"/blog/the-new-dawn-of-functional-reactive-programming-in-node-js-marble-js/"},"frontmatter":{"title":"The New Dawn of functional reactive programming in Node.js - Marble.js 2.0","job":null,"photo":null,"cover":"/img/marble_fb.png","templateKey":"article-page","settings":{"date":"March 12, 2019","slug":"functional-reactive-programming-nodejs-marblejs","type":"blog","category":"Tech"},"contributor":"Józef Flakus","box":{"content":{"title":"The New Dawn of functional reactive programming in Node.js - Marble.js 2.0","tags":null,"clientLogo":null,"coverImage":"/img/marble.js-2.0-2-.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"d3068389-ad96-565d-9537-85d7499f1df0","fields":{"slug":"/blog/python-vs-c-sharp-detailed-comparison/"},"frontmatter":{"title":"Python vs C# - a detailed comparison","job":null,"photo":null,"cover":"/img/python-vs-c-_cover-duz-y-2x.jpg","templateKey":"article-page","settings":{"date":"March 13, 2019","slug":"python-vs-c-sharp-a-comparison","type":"blog","category":"Tech"},"contributor":"Krzysztof Miczkowski","box":{"content":{"title":"Python vs C# - a detailed comparison","tags":null,"clientLogo":null,"coverImage":"/img/python-vs-c-_miniatura-2x.jpg"},"settings":null,"type":"BLOG"}}}},{"node":{"excerpt":"","id":"aaa6ddb7-41d7-5322-a719-642d4ec9a332","fields":{"slug":"/work/how-to-test-a-business-idea-with-minimum-cost-time-and-effort/"},"frontmatter":{"title":"How to test a business idea with minimum cost, time and effort","job":null,"photo":null,"cover":"/img/lean-startup-moodboard.jpg","templateKey":"case-study-page","settings":{"date":"July 18, 2018","slug":"case-study-boldare","type":"work","category":"Case Study"},"contributor":"Karolina Kołodziej","box":{"content":{"title":"How to test a business idea with minimum cost, time and effort","tags":["Lean Startup","MVP","ReactJS"],"clientLogo":null,"coverImage":null},"settings":{"tileColor":"yellow","textColor":"black","link":"/work/case-study-boldare/"},"type":"CASE_STUDY"}}}},{"node":{"excerpt":"","id":"7e0e1169-5c9d-5504-a3c6-bdff665380e7","fields":{"slug":"/blog/scaling-your-product-thriving-in-the-market/"},"frontmatter":{"title":"Scaling Your Product – thriving in the market","job":null,"photo":null,"cover":"/img/ionoview-web-app-mockup.jpg","templateKey":"article-page","settings":{"date":"September 12, 2018","slug":"scaling-your-product-thriving-in-the-market","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"Scaling Your Product","tags":null,"clientLogo":null,"coverImage":"/img/ionoview-web-app-mockup.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"b5d246ec-f16d-5e88-aacf-fbfd7fcc38a8","fields":{"slug":"/blog/how-machine-learning-is-boosting-businesses/"},"frontmatter":{"title":"How machine learning is boosting businesses","job":null,"photo":null,"cover":"/img/developers-working-on-machine-learning.jpg","templateKey":"article-page","settings":{"date":"September 12, 2018","slug":"how-machine-learning-is-boosting-businesses","type":"blog","category":"Future"},"contributor":"Dave Foxall","box":{"content":{"title":"Artificial Intelligence: the next digital frontier","tags":null,"clientLogo":null,"coverImage":"/img/developers-working-on-machine-learning-algoritm.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"65930467-2328-534f-aa46-090ceb6c826c","fields":{"slug":"/blog/what-are-design-sprints/"},"frontmatter":{"title":"What are design sprints?","job":null,"photo":null,"cover":"/img/lean-startup-moodboard.jpg","templateKey":"article-page","settings":{"date":"September 12, 2018","slug":"what-are-design-sprints","type":"blog","category":"Digital Product"},"contributor":"Dave Foxall","box":{"content":{"title":"What are design sprints?","tags":null,"clientLogo":null,"coverImage":"/img/lean-startup-moodboard.jpg"},"settings":null,"type":null}}}},{"node":{"excerpt":"","id":"0c153fd2-b6cb-5b8a-8b39-adaf355814cc","fields":{"slug":"/career/javascript-developer-gliwice/"},"frontmatter":{"title":"JavaScript Developer Gliwice","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 05, 2018","slug":"javascript-developer-gliwice","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"79d159fe-b91f-57e9-ab54-1bba5d1dcb22","fields":{"slug":"/career/javascript-developer-warszawa/"},"frontmatter":{"title":"JavaScript Developer Warszawa","job":null,"photo":null,"cover":null,"templateKey":"job-offer-page","settings":{"date":"November 05, 2018","slug":"javascript-developer-warszawa","type":"career","category":"Technology"},"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"f8664000-0175-575e-a57b-f0fec19fb5a6","fields":{"slug":"/categories/digital-product/"},"frontmatter":{"title":"Digital Product","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"aeb35f54-7b85-58ec-8161-46d3a6fd589d","fields":{"slug":"/categories/future/"},"frontmatter":{"title":"Future","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"f0d198ed-1809-5505-8e7e-a97d2a75a238","fields":{"slug":"/categories/how-to/"},"frontmatter":{"title":"How to","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"06eefb24-632a-5c1d-a885-32b84016f220","fields":{"slug":"/categories/news/"},"frontmatter":{"title":"News","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"f07ffebb-bac3-54c3-9c75-e41a29f90c8d","fields":{"slug":"/categories/ideas/"},"frontmatter":{"title":"Ideas","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"533db729-1580-5a09-9a54-13c2f19965b4","fields":{"slug":"/categories/people/"},"frontmatter":{"title":"People","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"9edae576-6321-53db-9438-b43635ee49e7","fields":{"slug":"/categories/strategy/"},"frontmatter":{"title":"Strategy","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"e8f53529-9f9f-5478-beea-c2caf5f888b1","fields":{"slug":"/categories/tech/"},"frontmatter":{"title":"Tech","job":null,"photo":null,"cover":null,"templateKey":"category-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"ad4a22c2-f1f9-5eed-a322-08c0cbfc72b4","fields":{"slug":"/contributors/adam-ziemba/"},"frontmatter":{"title":"Adam Ziemba","job":"Customer Success Guide","photo":"/img/adam-ziemba.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"de38694f-459b-5c43-a04d-e017daecf733","fields":{"slug":"/contributors/anna-bil/"},"frontmatter":{"title":"Anna Bil","job":"Product Designer","photo":"/img/ania_bil_blog.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"2b26f7a5-7fad-52f7-a597-110764a5b39c","fields":{"slug":"/contributors/anna-skawinska/"},"frontmatter":{"title":"Anna Skawińska","job":"Java Developer","photo":"/img/anna-skawin-ska-java-developer-.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"487500a7-95fa-52ce-b66e-8fbd7390a170","fields":{"slug":"/contributors/anna-zarudzka/"},"frontmatter":{"title":"Anna Zarudzka","job":"Co-CEO of Boldare","photo":"/img/anna-zarudzka.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"811fb6bd-64da-5b1f-86af-87488bdd2f99","fields":{"slug":"/contributors/claudia-wensierska/"},"frontmatter":{"title":"Claudia Wensierska","job":"Product Designer","photo":"/img/image-from-ios-2-2-.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"1daa2bfc-f4d9-54e8-af4c-26803363f04e","fields":{"slug":"/contributors/dave-foxall/"},"frontmatter":{"title":"Dave Foxall","job":"Blog Editor","photo":"/img/dave-foxall-2-.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"7fb675ae-3ebc-5aae-a81c-5a1d7ece03b0","fields":{"slug":"/contributors/dawid-rogowicz/"},"frontmatter":{"title":"Dawid Rogowicz","job":"Frontend Developer ","photo":"Dawid_Rogowicz.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"96148145-77e2-521e-8483-a24d368a85ff","fields":{"slug":"/contributors/grzegorz-kukla/"},"frontmatter":{"title":"Grzegorz Kukla","job":"Java Developer","photo":"/img/grzegorz-kukla.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"ac376421-4cfd-5885-9162-114eaf8a15f3","fields":{"slug":"/contributors/jonathan-wooddin/"},"frontmatter":{"title":"Jonathan Wooddin","job":"Guest Blogger","photo":"Jonathan_Wooddin.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"74b0f21e-659c-5e80-bba2-06603fb3eb65","fields":{"slug":"/contributors/kamil-mizera/"},"frontmatter":{"title":"Kamil Mizera","job":"Content Editor-in-Chief","photo":"/img/kamil-mizera-.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"8fd24eb6-db34-56ea-bcd4-5492c800964d","fields":{"slug":"/contributors/kacper-geisheimer/"},"frontmatter":{"title":"Kacper Geisheimer","job":"JavaScript Developer","photo":"Kacper_Geisheimer_JavaScript_Developer.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"be6c3e0b-6fbf-5517-99c8-650f78c63b1f","fields":{"slug":"/contributors/kamil-mikosz/"},"frontmatter":{"title":"Kamil Mikosz","job":"Frontend Developer","photo":"/img/kamil-mikosz.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"ab98f2af-26b1-50c1-a372-8f9059cff184","fields":{"slug":"/contributors/jozef-flakus/"},"frontmatter":{"title":"Józef Flakus","job":"Senior JavaScript Developer","photo":"/img/20840986_1453742828012914_5601588540288690596_n.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"ebd2adc5-39b1-5a8e-9cfa-cca58c133b21","fields":{"slug":"/contributors/karolina-kolodziej/"},"frontmatter":{"title":"Karolina Kołodziej","job":"Communications Manager","photo":"/img/karolina-kolodziej.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"06e843fa-c803-5d46-b8da-3392606c180b","fields":{"slug":"/contributors/lukasz-mitusinski/"},"frontmatter":{"title":"Łukasz Mitusiński","job":"Java Developer","photo":"Lukasz_Mitusinski_Java_Developer.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"c285c3f7-5108-5295-a238-b4d2bc4107d8","fields":{"slug":"/contributors/krzysztof-miczkowski/"},"frontmatter":{"title":"Krzysztof Miczkowski","job":".NET developer","photo":"/img/wp_20150704_002-2-.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"7fe90594-3623-5803-b924-3440cd3cb887","fields":{"slug":"/contributors/mariusz-bak/"},"frontmatter":{"title":"Mariusz Bąk","job":"Senior Software Developer ","photo":"/img/1810317.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"23fe696e-bdd9-5db5-97e5-7c415a90f53a","fields":{"slug":"/contributors/marcin-brach/"},"frontmatter":{"title":"Marcin Brach","job":"JavaScript Developer at Boldare","photo":"/img/marcin-brach.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"3c39dd75-dc4d-5085-ab47-49eedb24d940","fields":{"slug":"/contributors/mateusz-grzesiukiewicz/"},"frontmatter":{"title":"Mateusz Grzesiukiewicz","job":"Senior JavaScript Developer ","photo":"/img/mateusz-grzesiukiewicz.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"1166809c-2652-55ff-a9a9-d35c5ff10b32","fields":{"slug":"/contributors/mateusz-koscielak/"},"frontmatter":{"title":"Mateusz Kościelak","job":"Direct Marketing Lead","photo":"/img/mateusz-koscielak.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"88a52405-13b1-51d6-90dd-dd1f2b4a8c89","fields":{"slug":"/contributors/natalia-kolinska/"},"frontmatter":{"title":"Natalia Kolińska","job":"QA Business Analyst","photo":"/img/natalia-kolinska.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"159c6e0d-8b74-571e-b355-120ec5a6e00a","fields":{"slug":"/contributors/mateusz-wycislik/"},"frontmatter":{"title":"Mateusz Wyciślik","job":"Machine Learning/Python developer","photo":"/img/prof_sqr.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"3e951423-0b04-53b7-afb7-e787c02cc143","fields":{"slug":"/contributors/patrycja-kasperkiewicz/"},"frontmatter":{"title":"Patrycja Kasperkiewicz","job":"Office Coordinator","photo":"/img/patrycja-kasperkiewicz.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"424b273f-f67e-515f-84cd-eeae16915cfb","fields":{"slug":"/contributors/pawel-kaiser/"},"frontmatter":{"title":"Paweł Kaiser","job":"Customer Success Guide ","photo":"/img/pawelkaiser.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"7e7643bb-e010-5f35-aadb-341b15aa453e","fields":{"slug":"/contributors/pawel-krynicki/"},"frontmatter":{"title":"Paweł Krynicki","job":"Senior PHP Developer","photo":"/img/paweł-krynicki.jpeg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"91ebd35e-d1c1-5a34-8844-03cfcba5816d","fields":{"slug":"/contributors/radek-grabarek/"},"frontmatter":{"title":"Radek Grabarek","job":"Guest Blogger","photo":"/img/radek-portret-800.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"9cfe40f6-01b4-55c9-b937-fafd7bd7bf34","fields":{"slug":"/contributors/piotr-majchrzak/"},"frontmatter":{"title":"Piotr Majchrzak","job":"CEO","photo":"/img/piotr-majchrzak.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"28ee12d9-7f00-5e75-adce-539ff4326637","fields":{"slug":"/contributors/sebastian-musial/"},"frontmatter":{"title":"Sebastian Musiał","job":"Senior JavaScript developer","photo":"/img/_musial.png","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}},{"node":{"excerpt":"","id":"99f1dc20-b1c5-507f-b4a6-7e24c1f8f3f5","fields":{"slug":"/contributors/tomasz-konieczny/"},"frontmatter":{"title":"Tomasz Konieczny","job":"QA Engineer","photo":"/img/tomasz-konieczny.jpg","cover":null,"templateKey":"contributor-page","settings":null,"contributor":null,"box":null}}}]}},"pageContext":{"id":"d3068389-ad96-565d-9537-85d7499f1df0","isCanonical":""}}