HomeSoftware Engineer II (React, Typescript, Java) JobsBrnoSoftware Engineer II (React, Typescript, Java)
J

Software Engineer II (React, Typescript, Java)

📍 Brno, Czechia|🕒 Today
Full-Time🏢 On-Site

Posted

Today

Work Type

On-Site

Employment

Full-Time

Level

All Levels

Ready to apply?

📋Job Description

<div class="content-intro"><p class="p1">At Jamf, we believe in an open, flexible culture based on respect and trust. Our track record and thriving work environment all stem from the freedom we grant ourselves to get the job done right. We take pride in helping tens of thousands of customers around the globe succeed with Apple.</p> <p>The secret to our success lies in our connectivity, while operating with a high degree of flexibility. Work-life balance remains our priority while feeling connected is important to maintain our strong culture, achieve our goals, and thrive as #OneJamf.</p> <p> </p></div><p><span data-contrast="auto">This role is offered as a hybrid in <strong>Brno, Czech Republic</strong>. We are only able to accept applications for those based in the <strong>Czech Republic </strong>or who have sponsorship to live and work in the <strong>Czech Republic</strong>.</span><span data-ccp-props="{}"> </span></p> <h3><span data-contrast="none"><span data-ccp-parastyle="heading 20" data-ccp-parastyle-defn="{"ObjectId":"741782aa-652f-563c-bdc7-8d2b1b3f555d|1","ClassId":1073872969,"Properties":[469777841,"Calibri",469777842,"Calibri",469777843,"Calibri",469777844,"Calibri",469769226,"Calibri",268442635,"32",469775450,"heading 20",201340122,"2",134234082,"true",134233614,"true",469778129,"heading20",335572020,"1",335551500,"6375183",335559739,"80",335559738,"160",469775498,"Normal",469778324,"Normal"]}">What </span><span data-ccp-parastyle="heading 20">you'll</span><span data-ccp-parastyle="heading 20"> do at </span><span data-ccp-parastyle="heading 20">Jamf</span><span data-ccp-parastyle="heading 20">:</span></span><span data-ccp-props="{"335559738":160,"335559739":80}"> </span></h3> <p>At Jamf, we empower people to be their best selves and do their best work. You will join Ocean, the team that owns "Blueprints" - Jamf's implementation of Apple Declarative Device Management (DDM). Blueprints is how Jamf administrators declare the desired state of their Apple fleet and have it delivered reliably to hundreds of thousands of devices.</p> <p><br>This is a primarily frontend role. You'll spend most of your time in our micro-frontend layer, building the interfaces admins use to compose and manage Blueprints. Backend development is not expected: over time you'll grow comfortable reading and debugging the Java services your UI depends on, but that's a bonus, not a day-one requirement.</p> <p><br>You'll work in a close-knit agile team, developing new features, breaking down customer problems, and owning the areas you touch. As part of an international ART, you'll collaborate daily with engineers in Czechia and Poland, and join a team that knows the Blueprints domain deeply and is invested in bringing new members up to speed - with a clear onboarding path, a manager who runs regular 1:1s and cares about your growth, and space to learn Apple device management on the job.</p> <p> </p> <h3><span data-contrast="none">What you can expect to do in this role:</span><span data-ccp-props="{"335559738":120,"335559739":80}"> </span></h3> <ul> <li>Break down customer problems into work you and the team can execute on.</li> <li>Independently complete a majority of identified tasks from start to finish with high quality.</li> <li>Design, build, and maintain Blueprint component user interfaces in our micro-frontend layer.</li> <li>Contribute to the design of new and existing features, and comment thoughtfully on the technical designs of others.</li> <li>Do meaningful code reviews. We value small, reviewable changes and honest, constructive feedback that makes the work better.</li> <li>Write clean, well-tested code and back your refactoring with automated tests.</li> <li>Support the frontend you build in production - participate in on-call rotation, investigate incidents, and help keep our deployment and reporting paths healthy.</li> <li>Collaborate with neighboring engineering teams across the ART.</li> <li>Communicate technical concepts clearly with engineers, QA, and Product.</li> </ul> <p><span data-contrast="auto">#LI-Hybrid</span><span data-ccp-props="{"335559738":120}"> </span></p> <p><span data-ccp-props="{}"> </span></p> <h3><span data-contrast="none"><span data-ccp-parastyle="heading 20">What we are looking for:</span></span><span data-ccp-props="{"335559738":160,"335559739":80}"> </span></h3> <h5><span data-contrast="none"><span data-ccp-parastyle="heading 3">Must-have</span><span data-ccp-parastyle="heading 3">:</span></span><span data-ccp-props="{"201341983":2,"335559740":0}"> </span></h5> <ul> <li><span data-contrast="auto">Experience building enterprise-grade software, with an understanding of testing and quality-assurance practices.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Solid frontend engineering skills: </span><strong><span data-contrast="auto">TypeScript and React </span></strong><span data-contrast="auto">(or a comparable modern component framework such as Angular or Vue, with willingness to work in React).</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Experience working within an </span><strong><span data-contrast="auto">agile </span></strong><span data-contrast="auto">team, and comfort with </span><strong><span data-contrast="auto">CI/CD workflows</span></strong><span data-contrast="auto"> and build systems such as </span><strong><span data-contrast="auto">GitHub Actions</span></strong><span data-contrast="auto">.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Understanding of </span><strong><span data-contrast="auto">REST APIs</span></strong><span data-contrast="auto"> and how a frontend and backend talk to each other.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Ability to complete tasks independently with high quality and to ask the right questions when something is unclear.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Clear written and spoken English for daily cross-team collaboration.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> </ul> <p><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></p> <h5><span data-contrast="none"><span data-ccp-parastyle="heading 3">Nice-to-have</span><span data-ccp-parastyle="heading 3">:</span></span><span data-ccp-props="{"201341983":2,"335559740":0}"> </span></h5> <ul> <li><span data-contrast="auto">Willingness to read and debug backend service code (Java and/or Spring Boot) to understand what powers your UI - no backend development experience required, just the appetite to grow into it.</span></li> <li><span data-contrast="auto">Exposure to micro-frontend architectures (Module Federation) or other modular frontend patterns.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Experience with event-driven systems (Pulsar, Kafka or similar), or with any of MongoDB, PostgreSQL.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Familiarity with Kubernetes, AWS, or API gateways.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Any exposure to Apple device management, MDM, or Declarative Device Management — helpful, but very much learnable on the team.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> <li><span data-contrast="auto">Experience using AI coding tools as part of your everyday workflow.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> </ul> <p><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></p> <h5><span data-contrast="none"><span data-ccp-parastyle="heading 3">How you work</span><span data-ccp-parastyle="heading 3">:</span></span><span data-ccp-props="{"201341983":2,"335559740":300}"> </span></h5> <ul> <li data-leveltext="•" data-font="Symbol" data-listid="10" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"•","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><em>Frontend curiosity. </em>You are happy owning a feature end to end - the UI, <strong>how it talks to the services behind it</strong>, and the tests around it — and you are comfortable not knowing everything yet.</li> </ul> <ul> <li data-leveltext="•" data-font="Symbol" data-listid="10" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"•","469777815":"hybridMultilevel"}" data-aria-posinset="2" data-aria-level="1"><em><span data-contrast="auto">Care about quality and craft.</span></em><span data-contrast="auto"> You keep changes small and reviewable, you test your work, and you would rather ask a good question early than ship a large change no one can review.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> </ul> <ul> <li data-leveltext="•" data-font="Symbol" data-listid="10" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"•","469777815":"hybridMultilevel"}" data-aria-posinset="3" data-aria-level="1"><em><span data-contrast="auto">Ownership and follow-through.</span></em><span data-contrast="auto"> You take a problem from "reported" to "done" and close the loop, rather than handing off half-finished work.</span><span data-ccp-props="{"134233117":false,"134233118":false,"201341983":0,"335551550":1,"335551620":1,"335559685":720,"335559737":0,"335559738":0,"335559739":0,"335559740":259,"335559991":360}"> </span></li> </ul> <ul> <li data-leveltext="•" data-font="Symbol" data-listid="10" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"•","469777815":"hybridMultilevel"}" data-aria-posinset="4" data-aria-level="1"><em><span data-contrast="auto">A constructive, direct communicator.&

Apply on the company website

🛡️

Stay Safe

Never pay to apply. Don't share bank details before an official offer.

🚩 Report

Software Engineer II (React, Typescript, Java)

Jamf