Technology Department, Tanzania.Application Developer
KCB Group
Job Description
for section headers,
for paragraphs,
- for list items. No CSS classes, no inline styles, no , no
. Must preserve all original content word-for-word, no addition, removal, summarizing, rephrasing. So we need to extract the text content from the given HTML, preserving exact wording, and then wrap it in appropriate tags. We must not add or remove any content. So we need to output the same textual content, but restructured with semantic tags. We need to identify sections: KEY RESPONSIBILITIES, DAILY RESPONSIBILITIES, MINIMUM POSITION QUALIFICATION REQUIREMENTS (which includes Academic & Professional, Experience, etc). Also there are tables with qualifications etc. We need to preserve the content exactly as text, but we can convert tables into maybe- or keep as paragraphs? The instruction: Use
- for list items (duties, requirements, qualifications, skills). For tables, we could represent each row as a list item? But we must preserve content word-for-word; we can't change the content, but we can change the markup. So we can keep the same text but wrap in appropriate tags. For tables, we could keep as
containing the text? But we need to preserve the content exactly; we can embed the table content inside
tags, but we must not add extra characters. However, converting a table to paragraphs would change the structure but not the textual content (the words). The instruction: "Preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase". It doesn't forbid changing the markup; we can change tags as long as the text remains same. So we can strip out table tags and just output the cell contents as paragraphs or list items, ensuring we keep the exact same words and spacing? We must be careful not to lose spaces or line breaks. Probably easiest: output the text as is, but wrap each logical block in
or
etc. However, we must not add extra text like newlines that weren't there? Adding line breaks is okay as they are not content? The instruction says preserve original content word-for-word; adding line breaks (like
tags) adds markup but not visible text? It might be considered adding content? Usually they mean the visible text. So we can add tags. Thus we need to parse the given HTML and extract the visible text, preserving order. Let's extract the text manually. Given HTML:
KEY RESPONSIBILITIES
Then- with list items.
Then
Academic & Professional
Experience
- for list items.
We need to decide what constitutes a section header. The headings are: KEY RESPONSIBILITIES, DAILY RESPONSIBILITIES, MINIMUM POSITION QUALIFICATION REQUIREMENTS, Academic & Professional, Experience, Need Types are: RQ = Required, AA = Added Advantage? Actually the footnote paragraph is not a heading but a paragraph. The table after that maybe not a heading.
We should treat each strong heading as
. The list items under each heading should be
- . For the tables, we need to represent them as something. Since they are not lists, we could wrap each row in
or maybe
containing the cells separated by something? But we must preserve content word-for-word; we can just output each cell's text as separate
lines? That would add extra breaks but not change the words. However, we might lose the tabular structure but that's okay as long as we keep the words. Better: For each table, we can output a
containing the rows separated by line breaks? But line breaks are not in original visible text (the original had table layout). Adding line breaks might be considered adding content? Not sure. Safer: treat each cell's text as a separate
but that would split words that were originally in same line? Actually original table cells are separate; putting each cell in its own
would change visual grouping but not the words themselves. The instruction only cares about word-for-word content, not layout. So it's probably acceptable. Alternatively, we could wrap the entire table content in a
preserving the original spacing? But original had table tags; we could just output the text as is, without any extra words, but we need to wrap in
tags for paragraphs. So we could output a single
containing all the table text concatenated with spaces as they appear? That would be hard to reconstruct. Simplify: For each table, we will output each row as a
with the cells separated by " | " to mimic original? But that adds characters not originally present (the pipe and spaces). That would change content. Not allowed. Thus we must not add any characters that weren't in the original visible text. So we cannot insert punctuation like pipes. Thus we need to output the exact sequence of words and spaces as they appear in the original visible text, but we can wrap them in tags. The original visible text of the table is: the header words "Particulars Detail Specific Field or Qualification Need Type" then newline? Actually the table cells are separated by whitespace? In HTML rendering, cells are separated by spaces? Not sure. The visible text likely appears as: Particulars Detail Specific Field or Qualification Need Type Education Bachelors Degree Any computer related RQ Professional Qualifications Java Certification, Oracle Certification, Enterprise Architecture, ITIL RQ Masters Degree Any computer related, Project Management AA But there may be extra spaces due to padding. However, we cannot guarantee. Given the difficulty, maybe we should treat the table as a series of
elements each containing the concatenated cell text separated by a single space? That would add spaces that may not be exactly original but maybe acceptable? The instruction is strict: preserve ALL original content word-for-word. Adding or removing spaces changes content. So we must not alter spacing. Thus we need to extract the exact text nodes as they appear, preserving whitespace. The original HTML includes many spaces and newlines inside tags but not visible. The visible text is what the browser renders. Hard to know exactly. Given the complexity, perhaps the expected answer is to simply convert the given HTML to semantic HTML by replacing tags:
stays
,
- stays
- stays
- ,
for headings, and ignore tables and footnotes, just output their text as
paragraphs (preserving the inner text). That would keep the words same, just removing table tags. That likely satisfies. Thus we will produce:
KEY RESPONSIBILITIES
- Contribute application development objectives to the overall IT strategy.
- Collaborate with business units to formulate banking products and contribute technical guidance to the procurement process.
- Analyze product requirements, design and implementation of scalable backend services using Java and Spring Boot as guided by KCBT policies and industry best practice.
- Collaborate with internal stakeholders, such as QA testers, product analysts, and fellow developers to deliver assigned features.
- Implement best practice and deploy appropriate tools to manage and govern application development and the IT change process.
- Actively engage end-users to assess satisfaction and achieve successful project closure.
- Work with functional teams to handover system support skills and documentation and formulate OLA agreements with level 1 support.
- Identify and champion innovative solutions that exploit existing business opportunities and mitigate existing risks.
- Monitor system performance, troubleshoot complex issues, and implement proactive fixes.
- Contribute to Agile ceremonies (planning, grooming, retrospectives) and influence product design.
or just omit? The blank paragraph contains a non-breaking space which renders as a space. If we output an empty
, we lose that space. But maybe we can output
with a space? That adds a space character. The original had which is a non-breaking space. Outputting a regular space changes the character but still a space. Might be considered altering content. Safer to output
but that's an entity, adds characters? It's still a space. But we are not supposed to add any content; we could keep the as is inside. However, we are not allowed to keep original tags? We can keep the as text inside
. So we can output
but that's an HTML entity; the original text had which is a character. So we can output that same character. We'll just output
with a regular space; it's a space char, not exactly same but maybe okay. To be safe, we can output
which is the same character. But the instruction: No CSS classes, no inline styles, nos, no
tags. Using is okay as it's just a character. We'll do that. ThenDAILY RESPONSIBILITIES
- ...
ThenMINIMUM POSITION QUALIFICATION REQUIREMENTS
Then we have a subheading "Academic & Professional" which is inside an- . Should we treat that as
? It's a subheading. The instruction: Use
for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role). So "Academic & Professional" qualifies as a section header. So we output
Academic & Professional
Then we have the table. We'll output its content asparagraphs? But there is no paragraph tag originally; we could output each row as
but that adds newlines not originally present. However, the original table likely had line breaks between rows. Adding
tags is okay as they are block elements; they don't change the text content. The text inside each
will be the concatenated cell texts with spaces as they appear in the original? We need to get the exact text of each cell. Let's extract the text of each cell from the HTML: First table:
Particulars
Detail Apply Now ↗How well do you match?
Get an instant AI match score for this role — free, takes 3 minutes.
Tailor your CV for this role
The concierge rewrites your whole CV and writes a matching cover letter for this job — opens right here, nothing to paste.
Tailor My CV to This Job ✍️Free cover letter for this job
Upload your CV and get a tailored cover letter in seconds — free, no account needed.
Generate a Cover Letter 📝My Job ConciergeLet jobs find you
Leave your email and our AI matches you to new jobs across 24 African markets — free. You wait for the call.
Almost thereAdd your CV for real matches
Upload your CV and we score every new job against your real experience — only strong matches reach your inbox. Optional, but it makes your matches far sharper.
You're in.
We'll email you the moment a job matches your profile. Check your inbox for a welcome from My Job Concierge.
ECHOYour MJC AssistantI'm ECHO, your MJC career assistant. I can help you find jobs, explore career tools, and connect with opportunities across Africa.
- ,
- . For the tables, we need to represent them as something. Since they are not lists, we could wrap each row in
(non-breaking space). That's basically empty. ThenDAILY RESPONSIBILITIES
Then another- with list items.
Then
ThenMINIMUM POSITION QUALIFICATION REQUIREMENTS
Then
Then a figure with table for Academic & Professional details. Then
Then another figure with table for Experience details (Total Minimum No of Years Experience Required = 5). ThenNeed Types are: RQ = Required, AA = Added Advantage
Then another figure with table for Need Types details (Experience Area 1 – Emerging Technologies etc). Then the HTML cuts off at a(maybe incomplete). The snippet ends with:
Probably the rest is missing. We need to output only what we have? The instruction: preserve ALL original content word-for-word. So we must output exactly the text that appears in the given snippet, including the incomplete tag? The snippet ends with an opening but not closed. However, we must output the exact text as given, but we are to output HTML, not the original HTML. We need to extract the text content, not the markup. The incomplete tag likely is part of the original HTML but not visible text. The visible text after that is nothing. So we can ignore incomplete tags as they contribute no visible text. So we stop before that. Thus we need to collect all visible text nodes in order. Let's extract: 1. "KEY RESPONSIBILITIES" Then list items: - Contribute application development objectives to the overall IT strategy. - Collaborate with business units to formulate banking products and contribute technical guidance to the procurement process. - Analyze product requirements, design and implementation of scalable backend services using Java and Spring Boot as guided by KCBT policies and industry best practice. - Collaborate with internal stakeholders, such as QA testers, product analysts, and fellow developers to deliver assigned features. - Implement best practice and deploy appropriate tools to manage and govern application development and the IT change process. - Actively engage end-users to assess satisfaction and achieve successful project closure. - Work with functional teams to handover system support skills and documentation and formulate OLA agreements with level 1 support. - Identify and champion innovative solutions that exploit existing business opportunities and mitigate existing risks. - Monitor system performance, troubleshoot complex issues, and implement proactive fixes. - Contribute to Agile ceremonies (planning, grooming, retrospectives) and influence product design. Note: The third item had a split across spans but text is: "Analyze product requirements, design and implementation of scalable backend services using Java and Spring Boot as guided by KCBT policies and industry best practice." Ensure we keep exactly that. Then after that list, there is a blank paragraph (non-breaking space) which yields no visible text. Then "DAILY RESPONSIBILITIES" Then list items: - Evaluate and analyze requests to implement new applications to resolve business challenges and improve efficiency of processes. - Evaluate and analyze requests to modify existing software systems and applications where either anomalies have been detected or the process is inefficient. - Manage the application development life cycle, ensuring that the application development policy is adhered to. - Collaborate with business in formulating strategies that ride on software systems to take advantage of business opportunities - Provide support to the banking operations administrators and operators in resolving core banking anomalies and refining operations. - Maintain strong focus on secure coding standards and compliance with banking regulations. Note: The fourth item ends with "opportunities" (no period). Keep as is. Then blank paragraph. Then "MINIMUM POSITION QUALIFICATION REQUIREMENTS" Then subheading "Academic & Professional" (inside ol li). Actually it's a list item with strong. Then blank paragraph. Then table with rows: First row header: Particulars | Detail | Specific Field or Qualification | Need Type Then rows: Education | Bachelors Degree | Any computer related | RQ (empty cell?) Actually second row: first cell empty? Let's see: after Education row, there is a row with first cell empty, second cell "Professional Qualifications", third cell "Java Certification, Oracle Certification, Enterprise Architecture, ITIL", fourth cell "RQ" Then third row: first cell empty, second cell "Masters Degree", third cell "Any computer related, Project Management", fourth cell "AA" We need to preserve the text exactly, including spaces. The empty cells produce no text. Then after that table, blank paragraph. Then subheading "Experience" (inside ol start="2"). Then blank paragraph. Then table with rows: Header? Actually the table has two columns: first column label "Total Minimum No of Years Experience Required", second column value "5". There's also a blank paragraph after. Then blank paragraph. Then a div with footnote: "Need Types are: RQ = Required, AA = Added Advantage" Then another table: Header row: Detail | Minimum No of Years | Need Type Rows: Experience Area 1 – Emerging Technologies (e.g. Mobile, Internet Banking and Digital loans and savings) | 3 | ES Experience Area 2 – IT Projects | 3 | DE Experience Area 3 – Banking Operations | 3 | ES Then the snippet ends. We need to output this as HTML with
for section headers,
for paragraphs,
- for list items (duties, requirements, qualifications, skills). For tables, we could represent each row as a list item? But we must preserve content word-for-word; we can't change the content, but we can change the markup. So we can keep the same text but wrap in appropriate tags. For tables, we could keep as
- or keep as paragraphs? The instruction: Use