.

Christophe Roux
Développeur Logiciel

Programmer, analyser, plannifier,
un vrai plaisir ! 

+33(0) 649 53 25 29

christophe.roux@webmiel.fr

www.webmiel.fr

Ingénieur INSA Lyon, spécialisation en Interfaces Homme/Machine, je développe principalement en Programmation Orientée Objet procédurale avec quelques incursions en programmation fonctionnelle. Je développe en mode "piloté par les tests".

Expérience

De 2016 à aujourd'hui

Association médico-sociale

Audits informatiques : identification de failles de sites officiels (UE, France Travail)

2015

Préparation au Marathon

2013-2014 école Centrale Paris

Paramétrage d'un logiciel pour réaliser un annuaire

2012-2013 AJI et JCM

Apprentissage de techniques administratives

2011 Afpa

Formation à la gestion pour la création d'entreprises

2009-2010 Eschel Formation

Formateur UML; modélisation SGBDR

2006-2008 Acœur

Développement Client/Serveur Java; Formateur Debian; auteur d'un livre sur l'architecture logicielle

2000 - 2006 Euriware

Développement Web en Java/Struts/JDBC; maintenance logicielle; Développement workflow pour MantisBugTracker; apprentissage de techniques d'Assurance Qualité

2000 Télémédecine Technologie

Conception orientée objet; principe d'inversion de contrôle

1997-1999 Avalon, Hexadev

Développement Client/Serveur en Perl et d'IHM en Java

1997 Nexos

Développement d'IHM en Java

1995-1996 Bintta

Développement d'une démonstration d'un logiciel de cartographie; analyse de code C++ par génie logiciel

1994 Jouve

Traduction en anglais de documentations techniques

1993-1994 Selisa

Développement d'IHM en C

1991-1992 Softeam

Développement d'IHM en C++

1990-1991 Bull

Développement d'un logiciel de cartographie

Formation

1988-1991

Ingénieur diplômé de l'INSA de Lyon, IHM

1986-1988

Classes préparatoires INSA Lyon

1986

Baccalauréat série C, mention assez-bien

Langues

Anglais et Espagnol courants, LSF (400 signes)

1990

TOEIC (Anglais) 740/990

Languages

C, C++, Java, Sml, Racket, Html, CSS

Hobbies

Sport

Bénévolat

 

course à pieds, Marathon

Président bénévole de l'Association Hagi-yaki

Visite aux malades en situation de handicap qui testent des logiciels



Un exemple de code que j'ai développé

package com.ajeeig.autologic;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;


public class AutoLogic {
 public String qualityName = "smallness";
 public String antiQualityName = "greatness";
 public String s1 = "megabyte";
 public String s1opt = "mega";
 public String s2 = "epsilon";
 public String word = null;
 public boolean nOrMore = false;
 public boolean quality = false;
 public boolean property = false;
 public boolean shortness = false;
 public boolean smallness = false;
 public int enne = 5;
 public int stepFinish = 7;

 public static void main(String[] args) {
   AutoLogic al = new AutoLogic();
   al.quiz();
   System.out.println("Thank you for playing.");
 }

 boolean result(boolean exact) {
   if (exact) {
     System.out.println("Good!");
   } else {
     System.out.println("Bad!");
   }
   return exact;
 }

 boolean readAnswer() {
   String s;
   try {
     BufferedReader in =
       new BufferedReader(
         new InputStreamReader(
           System.in));
     System.out.println("Please, provide an answer (y/n).");
     s = in.readLine();
     if (s.equals("y") ||
         s.equals("Y") ||
         s.equals("o") ||
         s.equals("O")) {
       System.out.println("You answered Yes.");
       return true;
     }
   } catch (IOException e) {
   }    
   return false;
 }

 boolean checkProperty(boolean value) {
   if (nOrMore && value) {
     return false;
   }
   return true;
 }

 void usage() {
   System.out.println(
     "Use keyboard keys \"y\" or \"n\" for choosing " +
     "then <Enter>.");
 }

 public void quiz() {
   boolean a = false;
   boolean b = false;
   int step = 0;
   boolean swap = true;
   boolean askAgain = false;

   loop:
   while (step <= stepFinish + 1) {
     step++;

     switch (step) {
       case 1:
         askAgain = false;
         System.out.println("Choose a word from " +
                                           "the following:");
         if (swap) {
           System.out.println(s1 + " (y)");
         } else {
           System.out.println(s1opt + " (y)");
         }
         System.out.println(s2 + " (n)");
         break;

       case 2:
         if (word == null) {
           step = 0;
           System.out.println("You have to choose a word and " +
                                             "it cannot be null.");
           continue;
         }
         System.out.println("boolean a <== the word \"" + word +
           "\" expresses the " +
           qualityName + " (y) or the " +
           antiQualityName + " (n)?");
         break;

       case 3:
         System.out.println("boolean b <== the word \"" + 
           word + "\" is " + "short (y) or long (n)?");
         break;

       case 4:
         if (a && b) {
           System.out.println("Is the word \"" + word +
             "\" autologic?");
           break;
         } else {
           step++;
         }

       case 5:
         if ((!a) && (!b)) {
           System.out.println("Is the word \"" + word +
                                             "\" autologic?");
           break;
         } else {
           step++;
         }

       case 6:
         if ((!a) && b) {
           System.out.println("Is the word \"" + word +
                                             "\" heterologic?");
           break;
         } else {
           step++;
         }

       case 7:
         if (a && (!b)) {
           System.out.println("Is the word \"" + word +
                                             "\" heterologic?");
           break;
         } else {
           step++;
         }

       case 8:
       default:
         if (askAgain) {
           step++;
           break loop;
         }
         System.out.println("Do you want to try again?");
         if (!askAgain) {
           askAgain = true;
         }
     }

     usage();
     boolean answer = readAnswer();

     switch (step) {
       case 1:
         if (answer) {
           if (swap) {
             word = s1;
           } else {
             word = s1opt;
           }
         } else {
           word = s2;
         }
         quality = !answer;
         nOrMore = (word.length() >= enne);
         property = !nOrMore;
         break;

       case 2:
         a = answer;
         if (!result((a && quality) || ((!a) && (!quality)))) {
           step = stepFinish;
         }
         break;

       case 3:
         b = answer;
         if (!result((b && property) || ((!b) && (!property)))) {
           step = stepFinish;
         }
         break;

       case 4:
         if (!result(answer == (quality && property))) {
           step = stepFinish;
         }
         break;

       case 5:
         if (!result(answer == ((!quality) && (!property)))) {
           step = stepFinish;
         }
         break;

       case 6:
         if (!result(answer == ((!quality) && property))) {
           step = stepFinish;
         }
         break;

       case 7:
         if (!result(answer == (quality && (!property)))) {
           step = stepFinish;
         }
         break;

       case 8:
       default:
         if (answer) {
           swap = !swap;
           step = 0;
         }
      }
    }
  }
}


Région Parisienne

J'habite en région parisienne sur la commune de Fresnes dans le Val de Marne. Je dispose d'un véhicule et du permis B.

Si vous désirez me contacte, cliquez sur lien ci-dessous.

Nos mentions légales

version 31 juillet 2024

Entreprise Webmiel : Société en Commandite Simple

RCS Nanterre 931 214 126

directeur de la publication : Christophe Roux

email : christophe.roux@webmiel.fr

téléphone : +33(0) 649 53 25 29

Hébergement :

Ionos

7 place de la gare

BP 70109

57201 Sarreguemines Cedex

Christophe Roux

Développeur Logiciel

Copyright ©. Tous droits réservés.

Nous avons besoin de votre consentement pour charger les traductions

Nous utilisons un service tiers pour traduire le contenu du site web qui peut collecter des données sur votre activité. Veuillez consulter les détails dans la politique de confidentialité et accepter le service pour voir les traductions.